oscam.conf(5)

πŸ“¦ version 1.20_svn20201119, in alpine 3.24

πŸ’– NAME πŸ’–

Okay bestie, this is oscam.conf(5) β€” literally the main configuration file for OSCam, from the File Formats Manual. It’s the big-picture config where all the global stuff lives. πŸ’…

🌸 SYNOPSIS 🌸

The main configuration file for OSCam contains global parameters such as debugging, logging, monitor, protocols and anti-cascading. Sections in oscam.conf are nonrecurring. The [global] section is required. All other sections are optional.

✨ DESCRIPTIONS ✨

πŸŽ€ The [global] section πŸŽ€

  • nice = -20..+20 β€” system priority, default: 99.
  • pidfile = filename β€” set the PID file, default: none.
  • logfile = [filename][;syslog][;stdout] β€” logging targets, default: /var/log/oscam.log. You can define a maximum of one filename, and additionally log to stdout or syslog β€” or you can only log to stdout or syslog and omit the filename entirely.
  • PP initial_debuglevel = level β€” set the initial debug level for OSCam start, default: 0. Yes, the line really shows up with PP in front in this manual page, so keep it exactly like that, bestie.
  • PP sysloghost = hostname β€” set the remote syslog host, default: none. Same PP situation here β€” don’t @ me, that’s how the page has it.
  • syslogport = port β€” set the TCP/IP port for the remote syslog host, default: none.
  • ecmfmt = format β€” define the ECM log format, default: c&p/i/s/l:h.

Possible variables:

  • c β€” CAID
  • d β€” PID
  • e β€” CSP hash
  • g β€” ID of origin gbox peer
  • h β€” checksum
  • i β€” channel ID
  • j β€” distance of gbox hops
  • l β€” length
  • o β€” ONID
  • p β€” provider ID
  • s β€” service ID
  • w β€” CW
  • y β€” payload

Use a value as a prefix to hide a variable with this value; control characters will be escaped by \.

Example:

ecmfmt = c&0p/i/d/s/l:h.e_w

(hide provider ID if 0)

  • loghistorysize = bytes β€” size of log message history in the web interface or monitor, 0 = disabled, default: 4096.
  • maxlogsize = kbytes β€” maximum log file size, 0 = unlimited, default: 10.
  • logduplicatelines = 0|1 β€” 1 = enable logging of duplicate lines in the log, default: 0.
  • disablelog = 0|1 β€” 1 = disable log file, default: 0.
  • cwlogdir = path β€” directory for CW logging, default: config dir.
  • emmlogdir = path β€” directory for EMM logging, default: config dir.
  • usrfile = filename β€” log file for user logging, default: none.

Log file format:

  • date
  • time
  • CWs per second
  • username
  • IP address of client
  • TCP/IP port
  • CWs found
  • CWs from cache
  • CWs not found
  • CWs ignored
  • CWs timed out
  • CWs tunneled
  • login time in unix/POSIX format
  • logout time in unix/POSIX format
  • protocol
  • disableuserfile = 0|1 β€” 1 = avoid logging although userfile is set, default: 1 (also set automatically if userfile is empty).
  • usrfileflag = 0|1 β€” usrfile logging mode:
    • 0 = only client logon/logoff will be logged in usrfile (default)
    • 1 = each zapping of a client will be logged in usrfile
  • disablemail = 0|1 β€” 1 = disable saving NDS Videoguard mail messages from provider, default: 1.
  • mailfile = file β€” define file saving NDS Videoguard mail messages from provider, default: none.
  • enableled = 0|1|2 β€” LED support mode:
    • 0 = LED support disabled (default)
    • 1 = LED support enabled for routers
    • 2 = LED support enabled for Qbox HD
  • waitforcards = 0|1 β€” 1 = wait for local SCs on startup before opening network ports, default: 1.
  • waitforcards_extra_delay = delay β€” additional delay in milli-seconds after waiting for local SCs on startup before opening network ports, default: 500.
  • preferlocalcards = 0|1 β€” SC decoding behavior:
    • 0 = local SCs used like a remote reader
    • 1 = prefer cache exchange based SCs (default)
    • 2 = prefer local SCs
  • readerrestartseconds = seconds β€” seconds beetween restarts, 0 = disable reader restart, default: 5.
  • block_same_ip = 0|1 β€” 1 = reject looping ECMs from clients to readers with the same IP address, default: 1.
  • block_same_name = 0|1 β€” 1 = reject looping ECMs from clients to readers with the same name, default: 1.
  • clienttimeout = milli-seconds|seconds β€” value (clienttimeout in seconds < 100, else milli-seconds) for client process to wait for key, default: 5.
  • clientmaxidle = seconds β€” value for client process being idle before disconnect, 0 = idle disconnect disabled, default: 120.
  • suppresscmd08 = 0|1 β€” 0 = tell camd 3.5x, 3.57x and 3.78x clients not to request again for rejected CAID, service ID and provider ID combination, 1 = disable, can be overwritten per user in oscam.user, default: 0.
  • fallbacktimeout = milli-seconds β€” time falling back to fallback reader, default: 2500.
  • fallbacktimeout_percaid = milli-seconds β€” time falling back to CAID restricted fallback reader, default: 2500.
  • sleep = minutes β€” time waiting for inactive users, default: none, can be overwritten per user in oscam.user.
  • serverip = IP address β€” bind service to specified IP address, default: none.
  • bindwait = seconds β€” value to wait for bind request to complete, default: 120.
  • netprio = 0|1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20 β€” value for network priority: IPP value will be applied to SO_PRIORITY (system internal prioritization); DSCP value will be applied to IP_TOS/IPV6_TCLASS (the TOS field in the IP packet header).
    • 0 = IPP=0; DSCP=CS0 (default)
    • 1 = IPP=1; DSCP=CS1
    • 2 = IPP=1; DSCP=AF11
    • 3 = IPP=1; DSCP=AF12
    • 4 = IPP=1; DSCP=AF13
    • 5 = IPP=2; DSCP=CS2
    • 6 = IPP=2; DSCP=AF21
    • 7 = IPP=2; DSCP=AF22
    • 8 = IPP=2; DSCP=AF23
    • 9 = IPP=3; DSCP=CS3
    • 10 = IPP=3; DSCP=AF31
    • 11 = IPP=3; DSCP=AF32
    • 12 = IPP=3; DSCP=AF33
    • 13 = IPP=4; DSCP=CS4
    • 14 = IPP=4; DSCP=AF41
    • 15 = IPP=4; DSCP=AF42
    • 16 = IPP=4; DSCP=AF43
    • 17 = IPP=5; DSCP=CS5
    • 18 = IPP=5; DSCP=EF
    • 19 = IPP=6; DSCP=CS6
    • 20 = IPP=7; DSCP=CS7
  • resolvegethostbyname = 0|1 β€” set mode for DNS resolving:
    • 0 = getadressinfo (default)
    • 1 = gethostbyname
  • failbancount = count β€” number of incorrect logins after an ip address will be blocked, default: 0.
  • failbantime = minutes β€” time for IP based blocking for clients with an invalid login attempt, 0 = failban is disabled, default: 0.
  • dropdups = 0|1 β€” mode for duplicate client connections (requirement: uniq > 0):
    • 0 = mark client as duplicate, but don’t disconnect them (default)
    • 1 = drop duplicate connections instead of marking as duplicate
  • unlockparental = 0|1 β€” 1 = unlock parental mode option to disable Seca and Viaccess pin code request for adult movie, default: 0.
  • double_check = 0|1 β€” 1 = ECM will be send to two or more readers with the same SC and the CWs will be verified against each other, lb_nbest_readers must be set to 2 or higher, default: 0.
  • double_check_caid = [CAID1|first two digits of CAID1],[CAID2|first two digits of CAID2]... β€” ECM will be send to two or more readers with the same SC and the CWs will be verified against each other for defined CAID or first two bytes of CAID, lb_nbest_readers must be set to 2 or higher, default: none.
  • getblockemmauprovid = 0|1 β€” 1 = server overrides EMM blocking defined on client site, default: 0.
  • lb_mode = mode β€” load balancing mode:
    • 0 = load balance disabled, ECMs go to all readers (default)
    • 1 = fastest reader first, after 5 ECMs the reader with the fastest response time will be selected
    • 2 = oldest reader first, reader with the longest no answer
    • 3 = lowest usage level, the usage level will be calculated by the sum of 5 ECMS response times, the higher a reader is busy, the higher is usage level
  • lb_save = 0|counts β€” save auto load balance statistics:
    • 0 = saving of auto load balance statistics disabled (default)
    • counts = save auto load balance statistics every counts ECMs (minimum 100)

To save CPU power a minimum counts of 100 is recommended.

  • lb_nbest_readers = counts β€” set count of best readers for load balancing, default: 1.
  • lb_nfb_readers = counts β€” set count of fallback readers for load balancing, default: 1.
  • lb_nbest_percaid = CAID1:count1[,CAID2:count2]... β€” set count of best readers per CAIDs for load balancing, wildcard CAIDs with two-digit CAIDs possible, default: none.

Example:

lb_nbest_percaid = 0100:4,0200:3,03:2,04:1

(wildcard CAIDs 03xx and 04xx)

  • lb_min_ecmcount = counts β€” minimal ECM count to evaluate load balancing values, default: 5.
  • lb_max_ecmcount = counts β€” maximum ECM count before resetting load balancing values, default: 500.
  • lb_reopen_seconds = seconds β€” time between retrying failed load balanced readers/CAIDs/providers/services, default: 900.
  • lb_reopen_invalid = 0|fB1 β€” 0 = E_INVALID will be blocked until statistics has been cleaned, default: 1.
  • lb_force_reopen_always = 0|1 β€” 1 = force reopening immediately all failing readers if no matching reader was found, default: 0.
  • lb_retrylimit = milli-seconds β€” retry next load balanced reader only if response time is higher then lb_retrylimit, default: 0.
  • lb_savepath = filename β€” filenanme for saving load balancing statistics, default: /tmp/.oscam/stat.
  • lb_stat_cleanup = hour β€” hours after the load balancing statistics will be deleted, default: 336.
  • lb_retrylimits = CAID1:time1[,CAID2:time2]... β€” load balancing retry limit time per CAID, wildcard CAIDs with two-digit CAIDs possible, default: none.

Example:

lb_retrylimits = 12:0100,34:0200,5678:0300

(wildcard CAIDs 12xx and 34xx)

  • lb_noproviderforcaid = CAID1[,CAID2]... β€” ignore provider information for CAIDs to reduce load balancing statistic data, wildcard CAIDs with two-digit CAIDs possible, default: none.

Example:

lb_noproviderforcaid = 0100,02,0300,04

(wildcard CAIDs 02xx and 04xx)

  • lb_max_readers = limit β€” restrict the reader count to limit during load balancing learning:
    • 0 = unlimited (default)
    • limit = restrict load balancer readers to limit
  • lb_auto_timeout = 0|1 β€” 1 = enable automatic timeout based on load balancing statistics, default: 0.
  • lb_auto_timeout_p = percent β€” percent added to average time as timeout time, default: 30.
  • lb_auto_timeout_t = milli seconds β€” minimal time added to average time as timeout time, default: 300.
  • lb_auto_betatunnel = 0|1 β€” 1 = enable automatic Betacrypt tunneling detection for CAIDs 1801, 1833, 1834, and 1835 for load balancing, Betacrypt defintion in oscam.user with betatunnel will be prefered, default: 1.
  • lb_auto_betatunnel_mode = 0|1|2 β€” set mode for automatic Betacrypt tunneling:
  • 0 β€” CAID 18XX tunneling to CAID 17X2 only (default)
  • 1 β€” CAID 18XX tunneling to CAID 17X2 and CAID 17X2 tunneling to CAID 18XX (CAID 1833/1801)
  • 2 β€” CAID 18XX tunneling to CAID 17X2 and CAID 17X2 tunneling to CAID 18XX (CAID 1833/1834)
  • 3 β€” CAID 18XX tunneling to CAID 17X2 and CAID 17X2 tunneling to CAID 18XX (CAID 1833/1835)
  • 4 β€” CAID 17X2 tunneling to CAID 18XX (CAID 1833/1801 only)
  • 5 β€” CAID 17X2 tunneling to CAID 18XX (CAID 1833/1834 only)
  • 6 β€” CAID 17X2 tunneling to CAID 18XX (CAID 1833/1835 only)
  • lb_auto_betatunnel_prefer_beta = direction β€” pick which way the automatic Betacrypt/Nagravision selection leans, bestie:
    • 0 β€” disabled (default)
    • 1 β€” always Betacrypt
    • 105 β€” represents the middle
    • 200 β€” always Nagravision

🎧 The [monitor] section

  • port = 0|port β€” UDP port for monitor. 0 = monitor disabled. default: 0
  • serverip = IP address β€” bind service to a specified IP address. default: all
  • nocrypt = IP address|IP address range[,IP address|IP address range]... β€” unsecured monitor connection. default: none
    • example: nocrypt = 127.0.0.1,192.168.0.0-192.168.255.255
  • aulow = minutes β€” how long no EMM can happen before a client gets set to low, i.e. it switches from status "active" to "on". default: 30
  • monlevel = 0|1|2|3|4 β€” the monitor permission level, okay:
    • 0 β€” no access to monitor
    • 1 β€” only server and own procs
    • 2 β€” all procs, but viewing only (default)
    • 3 β€” all procs, reload of oscam.user possible
    • 4 β€” complete access
    • btw monlevel can be overwritten per user in oscam.user. iykyk πŸ’…
  • hideclient_to = seconds β€” time to hide clients in the monitor if they're not sending requests. 0 = disabled. default: 25

🌐 The [webif] section

  • httpport = [+]port β€” port for the web interface. 0 = disabled, and the prefix + = enable SSL (the manpage literally spells it "praefix", we love a typo king πŸ‘‘). default: none, required
  • httpcert = file β€” file for the http SSL certificate. default: oscam.pem
  • httpforcesslv3 = 0|1 β€” 1 = force using SSLv3. default: 0
  • httpuser = username β€” username for password protection. default: none
  • httppwd = password β€” password for password protection. default: none
  • httpcss = path β€” path for an external CSS file. default: none
  • http_prepend_embedded_css = 0|1 β€” 1 = embedded CSS gets added before the external CSS. default: 0
  • httptpl = path β€” path for external templates and picons. You can run multiple templates and picons at the same time by making sub folders (max length of 32 alphanumeric characters), and the sub folder names match the sub folder in the URL. default: none
    • example: httptpl = /this/is/my/path
    • a folder with multiple templates:
/this/is/my/path/template1
/this/is/my/path/template2
  • valid URLs:
http://host:port/template1
http://host:port/template2
  • httpjscript = path β€” path for oscam.js javascript. default: none
  • httprefresh = seconds β€” status refresh in seconds. default: none
  • httphideidleclients = 0|1 β€” 1 = enables hiding clients after the idle time set in the parameter hideclient_to. default: 0
  • httphidetype = type[type]... β€” characters defining which columns to hide on the web interface status page (peep the type column). default: none
    • the types, bestie:
    • 'c' β€” client
    • 'h' β€” http
    • 'm' β€” monitor
    • 'p' β€” proxy
    • 'r' β€” reader
    • 's' β€” server
    • 'x' β€” cache exchange
  • httpscript = path β€” path to an executable script you want to start from the web interface. default: none
  • httpallowed = IP address|IP address range[,IP address|IP address range]... β€” http web interface connections allowed. default: 127.0.0.1,192.168.0.0-192.168.255.255,10.0.0.0-10.255.255.255,::1
    • example: httpallowed = 127.0.0.1,192.168.0.0-192.168.255.255
  • httpdyndns = hostname[,hostname][,hostname] β€” http web interface connections allowed (yes, the original gives this the exact same description as httpallowed, no we're not fixing it 😭). default: none
    • example: httpdyndns = host.example.com
    • example: httpdyndns = host1.example.com,host2.example.com
  • httpsavefullcfg = 0|1 β€” what actually gets written to the config:
    • 0 β€” all not empty parameters, all not default parameters, all parameters not containing the same value as the same parameter in the global configuration (default)
    • 1 β€” all parameters
  • httpoverwritebakfile = 0|1 β€” 1 = overwrite backup configuration files. default: 0
  • httpreadonly = 0|1 β€” 1 = read only modus for the web interface. default: 0
  • httpshowpicons = 0|1 β€” 1 = show picons in the user list. default: 0
  • httppiconpath = path β€” path to picons. default: none
  • httphelplang = en|de|fr|<available wiki languages> β€” set the right language for the wiki entry point. default: en
  • httplocale = environment β€” set the locale environment. default: none

πŸŽ€ The [lcd] section

  • httposcamlabel = text β€” set an individual label in the web interface header. default: OSCam
  • enablelcd = 0|1 β€” 1 =enable LCD output. default: 0
  • lcd_outputpath = path β€” path for LCD output. default: /tmp
  • lcd_hideidle = 0|1 β€” 1 = hide a reader in the LCD output if that reader has been idle more than 20 seconds. default: 0
  • lcd_writeintervall = seconds β€” LCD refresh interval (minimum 5). default: 10

🧚 The [cache] section

  • delay = milli-seconds β€” a value to delay cached requests. default: 0
  • max_time = seconds β€” the maximum time CWs resist in the cache. Heads up: this time must be 2 seconds higher than the parameter clienttimeout. default: 15
  • max_hit_time = seconds β€” maximum time for cache exchange hits to resist in the cache for evaluating wait_time. default: 15
  • wait_time = [caid][&mask][@provid][$servid][:awtime][:]dwtime[,[caid][&mask][@provid][$servid][:awtime][:]dwtime]... β€” wait time in milli-seconds for cache exchange and Cardservproxy before sending ECMs to a reader or proxy. default: none
    • example:
wait_time = 0:50:250,0200@00009X:50:150,15:950,0500@000001:150,1602&ffdf:1200
  • cacheexenablestats = 0|1 β€” 1 = enable statistics for cache exchange mode. default: 0
Please consider memory consumption. Like, actually consider it, bestie, this one has a cost 🫢
  • cacheex_cw_check = [caid][&mask][@provid][$servid]:mode:counter[,[caid][&mask][@provid][$servid]:mode:counter]...
    • mode = specify behaviour for counter:
      • 0 β€” when wait_time expires, serve the highest counter's CW got anyway, even if no counter was reached (default)
      • 1 β€” never serve a CW from cache exchange stored in cache if its counter doesn't reach counter. When wait_time expires, requests go to the normal readers instead.
    • counter = set the minimum CW counter to allow a CW to be used. default: 1
  • cacheex_mode1_delay = CAID1:time[,[BCAID2:time]... β€” delay in milli-seconds for asking cache exchange mode 1 readers. default: none
  • csp_port = port β€” UDP port of Cardservproxy for cache exchange. default: none
  • csp_serverip = IP β€” bind Cardservproxy for cache exchange to a specified IP address. default: none
  • csp_ecm_filter = [caid][&mask][@provid][$servid][,[caid][&mask][@provid][$servid]]... β€” Cardservproxy incoming ECM filter setting. default: none
  • csp_allow_request = 0|1 β€” allow incoming ECM request from Cardservproxy. default: 1
  • csp_allow_reforward = 0|1 β€” 1 = reforward other cacheex updates to Cardservproxy peers. ⚠️ this option could cause loops. default: 0
  • cwcycle_check_enable = 0|1 β€” 1 = enable CW cycle check. default: 0
  • cwcycle_check_caid = CAID[,CAID]... β€” CAIDs enabled for CW cycle check. default: none
  • cwcycle_maxlist = count β€” maximum CW cycle list entries. default: 500, maximum: 4000
  • cwcycle_keeptime = minutes β€” minimum time a learned cycle time resists in memory. default: 15, maximum: 15
  • cwcycle_onbad = 0|1 β€” 0 = log bad CW cycle only, 1 = drop bad CW cycle. default: 1
  • cwcycle_dropold = 0|1 β€” 1= drop old CW cycle. default: 1
  • cwcycle_sensitive = 0|2|3|4 β€” drop CW mode:
    • 0 β€” disabled
    • 2 β€” 2 (or more) same bytes and drop new CW
    • 3 β€” 3 (or more) same bytes and drop new CW
    • 4 β€” 4 (or more) same bytes and drop new CW (default)
  • cwcycle_allowbadfromffb = 0|1 β€” 1 = allow bad cycles from a fixed fallback reader. default: 0
  • cwcycle_usecwcfromce = 0|1 β€” 1 = use CW info from cache exchange. default: 0
  • wait_until_ctimeout = 0|1 β€” answer when the cache exchange timeout expires, if no normal readers are available for sending ECMs:
    • 0 β€” immediately send 'not found' to client (default)
    • 1 β€” wait for the cache exchange answer until the client timeout expires

πŸ”Œ The [camd33] section

  • port = 0|port β€” TCP port for camd 3.3x clients. 0 = disabled. default: 0
  • serverip = IP address β€” bind service to a specified IP address. default: all
  • nocrypt = IP address|IP address range[,IP address|IP address range]... β€” unsecured camd 3.3x client connection. default: none
    • example: nocrypt = 127.0.0.1,192.168.0.0-192.168.255.255
  • passive = 0|1 β€” 1 = force passive camd 3.3x client. default: 0
  • key = 128 bit key β€” key for camd 3.3x client encryption. default: none
    • example: key = 01020304050607080910111213141516

πŸ“‘ The [cs357x] section

  • port = 0|port β€” UDP port for camd 3.57x clients. 0 = disabled. default: 0
  • serverip = IP address β€” bind service to a specified IP address. default: all
  • suppresscmd08 = 0|1 β€” 0 = tell camd 3.5x / 3.57x clients not to request again for a rejected CAID, service ID and provider ID combination, 1 = disable. Can be overwritten per user in oscam.user. default: 0

πŸ’« The [cs378x] section

  • port = 0|port[@CAID][:provid][,provid]...[;port@CAID[:provid][,provid]...]... β€” TCP port/CAID/provid definitions for camd 3.78x clients. 0 = disabled. default: 0
    • examples:
port = 10000@0100:100000;20000@0200:200000,300000,400000
port = 30000
  • serverip = IP address β€” bind service to a specified IP address. default: all
  • keepalive = 0|1 β€” 0 = disable camd 3.78x keepalive modus. default: 0
  • suppresscmd08 = 0|1 β€” 0 = tell camd 3.78x clients not to request again for a rejected CAID, service ID and provider ID combination, 1 = disable. Can be overwritten per user in oscam.user. default: 0

πŸ¦‹ The [newcamd] section

  • key = DES key β€” default key for newcamd client encryption. default: none
    • example: key = 0102030405060708091011121314
  • port = port[{DES key}]@CAID[:provid][,provid]...[;port[{DES key}]@CAID[:provid][,provid]...]... β€” TCP port/DES key/CAID/provid definitions. default: none
    • example:
port = 10000@0100:100000;20000{0102030405060708091011121314}@0200:200000,300000
  • Each CAID requires a separate port. If you don't specify a DES key for a port, the default DES key will be used. Slay, convenient πŸ’…
  • serverip = IP address β€” bind newcamd service to a specified IP address. default: all

more sections incoming, keep scrolling bestie πŸ‘€βœ¨

  • allowed = IP address|IP address range[,IP address|IP address range]... β€” who’s allowed to make newcamd client connections, bestie. default: none.

example:

allowed = 127.0.0.1,192.168.0.0-192.168.255.255,::1
  • keepalive = 0|1 β€” 0 = disable newcamd keepalive modus, default: 0.
  • mgclient = 0|1 β€” 1 = provide share information of all available CAIDs and provider IDs to mgcamd clients, default: 0.

πŸ¦‹ The [radegast] section

  • port = 0|port β€” TCP/IP port for radegast clients, 0 = disabled, default: 0.
  • serverip = IP address β€” bind service to specified IP address, default: all.
  • allowed = IP address|IP address range[,IP address|IP address range]... β€” client connections allowed from, default: none.

example:

allowed = 127.0.0.1,192.168.0.0-192.168.255.255
  • user = username β€” user name for radegast client.

πŸ“ The [serial] section

  • device = <user>@<device>[:baud][?option1=value1[&option2=value2]...] [;<user>@<device>[:baud][?option1=value1[&option2=value2]...]]... β€” the whole serial-device situation, no cap:
device = <user>@<device>[:baud][?option1=value1[&option2=value2]...]
         [;<user>@<device>[:baud][?option1=value1[&option2=value2]...]]...

parameters:

  • user = account
  • device = serial device name|hostname|IP,port
  • baud = serial port speed (for serial devices only)
  • option = timeout = milli-seconds, timeout for connection, default: 50
    • delay = milli-seconds, additional delay between two characters, default: 0

supported serial devices (autodection β€” their spelling, not mine 😭):

  • HSIC (humax sharing interface client)
  • SSSP (simple serial sharing protocol)
  • bomba (BOMBA firmware)
  • dsr9500 (DSR 9500)

example:

user1@/dev/ttyS1:115200?delay=1&timeout=5000
user2@192.160.0.1,12345?delay=1&timeout=5000

πŸ”₯ The [cccam] section

  • port = 0|port[,0|port]... β€” TCP/IP ports for CCcam clients, 0 = disabled, default: 0.
  • version = <main version>.<version>.<sub version> β€” define CCcam version, minimum CCcam version 2.0.11, used with original CCcam only, default: none.

example:

version = 1.2.34
  • reshare = level β€” reshare level for CCcam clients (default: 10):
    • -1 = no resharing
    • 0 = resharing for direct peer only
    • 1 = resharing for direct peer and next level
    • x = resharing for direct peer and next x level
  • reshare_mode = mode β€” CCcam reshare mode:
    • 0 = reader reshares only received SCs for CCcam readers, defined filters/CAIDs/provids on other readers
    • 1 = reader reshares received SCs (like 0) and defined services
    • 2 = reader reshares only defined reader services as virtual SCs
    • 3 = reader reshares only defined user services as virtual SCs
    • 4 = reader reshares only received SCs (default)

Every server is shared as hop = 0 and with defined reshare values.

Service reshare only works if positive services defined: no service - no reshare! πŸ’€
  • ignorereshare = 0|1 β€” CCcam reshare setting:
    • 0 = use reshare setting of server (default)
    • 1 = use reshare setting of reader or user
  • stealth = 0|1 β€” 1 = behaviour like the original CCcam: no activate partner detection and extended OSCam-CCcam protocol, prevent other OSCam to detect the server as OSCam server, default: 0.
  • minimizecards = mode β€” mode how to provide CCcam servers to CCcam clients:
    • 0 = no aggregation, remove duplicates only (default)
    • 1 = based on minimum hop: two SCs with different hops are summarized, new SCs get a smaller hop
    • 2 = aggregation based on CAIDs: all SCs with the same CAIDs will be merged, provider (maximum 32) will be merged, too
  • updateinterval = seconds β€” interval to provide share list update to CCcam clients, values <= 10 are invalid and will be set to 30, default: 240.
  • keepconnected = 0|1 β€” set CCcam keepalive modus:
    • 0 = disconnect client when maximum idle time is reached
    • 1 = keep client connected (default)
  • recv_timeout = milli-seconds β€” set network timeout for receiving data, default: 2000.
  • forward_origin_card = 0|1 β€” 1 = forward ECM request to reader holding this card, load balancer, fallback and caching will be disabled, default: 0.
  • nodeid = ID β€” set CCcam node ID in hex, default: none.

example:

nodeid = 0a0b0c0d0e0f1011

πŸ‘‘ The [gbox] section

  • hostname = hostname| IP address β€” set hostname or IP address for gbox protocol, default: none.
  • port = port[,port]... β€” UDP port for gbox server, default: 0.
  • my_password = password β€” password for connection to local gbox peer, default: none.
  • proxy_card = <CAID><provid>[,<CAID><provid>]... β€” proxy reader SCs to be reshared into gbox network, default: none.
  • ccc_reshare = 0|1 β€” 1 = enable CCCam reshare, default: 0.
  • my_vers = version β€” set gbox version in hexadecimal low byte, default: 2A.
  • my_cpu_api = byte β€” set gbox CPU and API byte in hexadecimal, default: 40.
  • gbox_reconnect = time β€” send hello message to peers in seconds, default: 180, min: 60, max: 300.
  • log_hello = 0|1 β€” 1 = log hello messages, default: 1.
  • dis_attack_txt = 0|1 β€” 1 = disable creation of attack.txt, default: 0.
  • gsms_disable = 0|1 β€” 1 = disable gbox short message service (GSMS), default: 1.

sending a messeage (again, their spelling πŸ’€): /tmp/gsms.txt: <box ID> <1=mormal message|2=OSD/TV message> <message 6 to 127 characters>, status will be stored in /tmp/gsms.ack respective gsms.nack, receiving a message: The message will be stored in /tmp/gsms.log.

  • tmp_dir = path β€” temporary directory for gbox, default: /tmp/.oscam.
  • accept_remm_peer = peer-id1[,peer-id2]... β€” accept REMM requests from gbox peer(s), default: none.

🌈 The [scam] section

  • port = port β€” UDP port for scam server, default: 0.

πŸ’œ The [dvbapi] section

  • enabled = 0|1 β€” 1 = DVB API enabled, default: 0.

Create file /tmp/.pauseoscam to pause DVB API, e.g. if STB goes into standby and OSCam remains as SC server only.

  • listen_port = 0|port β€” TCP/IP port for SAT IP clients, filtering has to be done on client site, 0 = disabled, default: 0.
  • user = username β€” user name for DVB API client, default: anonymous.
  • ignore = <CAID>[,<CAID>]... (detached by oscam.dvbapi, obsolete) β€” CAIDs to be ignored, default: none.
  • services = <service ID>[,<service ID>]... (detached by oscam.dvbapi, obsolete) β€” services to be prioritized, default: none.
  • priority = <CAID>:<provider ID>[,CAID:<provider ID>]... (detached by oscam.dvbapi, obsolete) β€” CAIDs and provider IDs to be prioritized, default: CAIDs and provider IDs of local SCs will be prioritized.
  • au = 0|1|2 β€” AU mode:
    • 0 = disable AU (default)
    • 1 = enable AU
bestie, 2 is literally in the value list but the page only defines 0 and 1 here β€” that’s all it gives us πŸ‘€
  • pmt_mode = 0|1|2|3|4|5 β€” PMT mode:
    • 0 = use camd.socket and PMT file, default
    • 1 = disable reading PMT file
    • 2 = disable camd.socket
    • 3 = read PMT file on startup only
    • 4 = do not use signal handler for monitoring /tmp
    • 5 = do not use signal handler for monitoring /tmp, disable camd.socket
  • ecminfo_file = 0|1 β€” ecm.info file:
    • 0 = Disable ecm.info file
    • 1 = Enable ecm.info file (default)
  • ecminfo_type = 0|1|2|3|4|5 β€” ecm.info types:
    • 0 = OSCam syntax (default)
    • 1 = OSCam syntax with ECM time in ms instead of seconds
    • 2 = WiCardd
    • 3 = mgcamd
    • 4 = CCcam
    • 5 = camd3
  • request_mode = 0|1 β€” CAID request mode:
    • 0 = try all possible CAIDs one by one (default)
    • 1 = try all CAIDs simultaneously
  • boxtype = dbox2|dreambox|dm7000|duckbox|ufs910|ipbox|ipbox-pmt|qboxhd|coolstream|neumo|samygo|pc β€” set boxtype, auto detection of DVB API will be aspired, default: dreambox.

ipbox with camd.socket support, currently only with PGI image version 0.6 or above, verified on HD models only.

ipbox-pmt can be used on any DGS based images (with or without camd.socket support), verified on HD models only.

pc is for generic pc support (currently supported on VDR with vdr-plugin-dvbapi).

  • read_sdt = 0|1|2 β€” mode of provider, channel name and service type auto detection via SDT:
    • 0 = disabled (default)
    • 1 = enabled for non FTA channels only
    • 2 = enabled for all channels
  • write_sdt_prov = 0|1 β€” mode writing provider name into oscam.srvid2 file:
    • 0 = disabled (default)
    • 1 = enabled
  • cw_delay = milli-seconds β€” delay of CW writing, default: none.
  • delayer = milli-seconds β€” minimum time to write CW, default: 0.
  • reopenonzap = 0|1 β€” 1 = reopen demux devices on each channel switching, default: 0.

πŸŽ€ The [anticasc] section

  • enabled = 0|1 β€” 1 = enable anti-cascading, default: 0.
  • numusers = quantity β€” anti-cascading: user per account, 0 = anti-cascading disabled, default: 0.
  • sampletime = minutes β€” duration of sample, default: 2.
  • samples = quantity β€” quantity of samples over limit, default: 10.
  • penalty = 0|1|2|3 β€” level of penalty:
    • 0 = only logging (default)
    • 1 = send fake CWs
    • 2 = temporary user ban
    • 3 = send delayed CWs

penalty can be overwritten per user in oscam.user.

  • aclogfile = filename β€” file for anti-cascading logging, default: none.
  • fakedelay = milli-seconds β€” fake delay time, default: 1000, minimum value is 100, maximum value is 3000.
  • denysamples = quantity β€” how many samples should be penalized, default: 8.
  • acosc_enabled = 0|1 β€” 1 = enable anti-cascading over SID count, default: 0.
  • acosc_max_ecms_per_minute = count β€” maximum ecms per minute, 0 = unlimited, default: 0.

Can be overwritten per user in oscam.user.

  • acosc_max_active_sids = count β€” maximum active SIDs with anti-cascading over SID, 0 = unlimited, default: 0.

Can be overwritten per user in oscam.user.

  • acosc_zap_limit = count β€” zap limit for anti-cascading over SID, 0 = unlimited, default: 0.

Can be overwritten per user in oscam.user.

  • acosc_penalty = 0|1|2|3|4 β€” level of penalty with anti-cascading over SID count:
    • 0 = only logging (default)
    • 1 = send fake CWs
    • 2 = temporary user ban
    • 3 = send delayed CWs
    • 4 = temporary hidecards to the client

Can be overwritten per user in oscam.user.

  • acosc_penalty_duration = seconds β€” penalty duration for anti-cascading over SID count, default: 0.

Can be overwritten per user in oscam.user.

  • acosc_delay = milli-seconds β€” delay for anti-cascading over SID count, default: 0.

Can be overwritten per user in oscam.user.


⭐ LOGGING

  • reader stages:
    • 1 = cacheex (=1) reader (C)
    • 2 = local SCs (L)
    • 3 = other reader / proxies (P)
    • 4 = fallback reader (F)
  • logging format:
    • stage/used/chosen/possible

πŸ‘€ MONITOR πŸ‘€

okay bestie, this is the monitor command menu β€” the little live console situation. monitor commands:

  • login <user> <password> β€” login (for unencrypted connections only) πŸ”“
  • getuser <user> <parameter>=<value> β€” get parameter for user
  • setuser <user> <parameter>=<value> β€” set parameter for user
  • setserver <parameter>=<value> β€” set parameter for server
  • exit β€” exit monitor
  • log <on|onwohist|off> β€” enable|enable without hitory|disable logging for 2 minutes
  • status β€” list of current processes and clients
  • shutdown β€” shutdown OSCam
  • restart β€” restart OSCam
  • keepalive β€” send keepalive
  • reload β€” reinit user db, clients and anti-cascading, for newcamd connections: after reloading the provid, please restart newcamd client
  • details <PID> β€” details about selected PID
  • reread β€” read again
  • debug <level> β€” set debug level (monlevel > 3 required) πŸ”

debug level mask:

      0 = no debugging (default)
      1 = detailed error messages
      2 = ATR parsing info, ECM dumps, CW dumps
      4 = traffic from/to the reader
      8 = traffic from/to the clients
     16 = traffic to the reader-device on IFD layer
     32 = traffic to the reader-device on I/O layer
     64 = EMM logging
    128 = DVB API logging
    256 = load balacing logging
    512 = cache exchange logging
   1024 = client ECM logging
  65535 = debug all
  • version β€” show OSCam version
  • commands β€” show all valid monitor commands

🌈 WEB INTERFACE 🌈

  • template system β€” The web interface allows you to create your own template. For developing your own template request the orignal template with the non-linked page savetemplates.html. Store your own template in the directory specified by httptpl. πŸŽ€

🧠 CACHING 🧠

types of ECM caching:

  • cache1 β€” ECM and CW in cache already. βœ…
  • cache2 β€” ECM and checksum in cache already. βœ…

πŸ”— SEE ALSO πŸ”—

The whole friend group: list_smargo(1), oscam(1), oscam.ac(5), oscam.cacheex(5), oscam.cert(5), oscam.dvbapi(5), oscam.fakecws(5), oscam.guess(5), oscam.ird(5), oscam.provid(5), oscam.ratelimit(5), oscam.server(5), oscam.services(5), oscam.srvid(5), oscam.srvid2(5), oscam.tiers(5), oscam.user(5), oscam.whitelist(5) β€” go read those too, iykyk πŸ’–


okay that’s a wrap on oscam.conf(5) β€” the footer’s source/version tag and date are doing their little manpage thing, and your Unix bestie is signing off πŸ’…πŸŽ€

πŸ“¦ where this page comes from