
Today, OScam servers remain one of the most popular solutions for sharing satellite cards. I have spent a lot of time on their setup and configuration, and I can say that proper configuration is the key to successful operation. If you want to understand the structure of configuration files, exchange protocols, and ports, you have come to the right place.
What is an OScam server and how is its architecture structured
OScam is a universal gateway for working with access cards. It can simultaneously act as a server, client, and proxy. It is important to understand that OScam works with readers (card sources) and accounts (clients). Thus, different roles can be configured in one installation.
Roles: server, client, and proxy in one installation
Each of the roles has its own tasks. The server manages the readers and responds to client requests. Clients, in turn, request access to channels through the server. The proxy allows requests to be passed between servers, which is convenient for multi-level schemes.
Where the configs are physically located
OScam configuration files can be located in different places depending on the build. By default, this can be/usr/local/etc/,/var/keys/, or/etc/tuxbox/config/oscam/. If you used the--config-dir parameter during the build, the paths may change. It is important to know where to look for configs so as not to get lost.
How OScam determines paths and why it breaks
OScam determines the paths to configuration files based on the specified parameters. However, if you did not specify the correct path or forgot about--config-dir, this can lead to problems. Users often encounter errors related to missing files, so it is important to keep an eye on this aspect.
Key configuration files and their syntax
Let's examine the key configuration files that you will need to set up OScam servers. The main files areoscam.conf,oscam.server andoscam.user.
oscam.conf — global parameters and web interface
In the fileoscam.conf, global parameters are defined, including web interface settings. For example, in the[webif] section, you can specify thehttpport that will be used to access the OScam web interface. Be sure to specify the port on which the web interface will be available to conveniently manage the server.
oscam.server — description of readers and sources
Fileoscam.server configures readers. Here you specify the protocol (for example,cccam ornewcamd), devicedevice, groupgroup and versioncccam cccvversion. Example section:
[reader]
label = MyReader
enable = 1
protocol = cccam
device = my.server.com,12000
group = mygroup
cccversion = 2.3.0
oscam.user — client accounts and groups
Inoscam.user you create client accounts. Here you specify[account], username and password, group, as well as filterscaid/ident. It is important to understand that the relationship between reader groups and accounts is a common mistake for beginners. For example:
[account]
user = testuser
pwd = testpass
group = mygroup
au = 1
caid = 0100
oscam.services and oscam.dvbapi for filtering
These files help filter access to certain channels and services. With their help, you can configure which services will be available to clients and which will not. This is especially relevant if you have many clients with different needs.
Ports and exchange protocols: CCcam, CS378x, Newcamd
When configuring OScam servers, it is important to understand which ports and protocols you will be using. Usually, these are:
- CCcam: port 12000
- CS378x: TCP
- Newcamd: port 15000+
Each protocol has its own features and settings that must be taken into account during configuration.
CCcam protocol (port 12000 by default) and cccam node id
CCcam is the most widely used protocol. It uses port 12000 by default, but you can change it in the[cccam] section of theoscam.conf file. It is important to remember that to connect to the server, the client must know not only the port but also the node id.
CS378x as a secure alternative to camd35
CS378x operates over TCP and provides reliable data delivery. This makes it a preferred choice for unstable connections. If you have issues with packet loss, CS378x will be the best option.
Newcamd (port 15000+) and DES key structure
Newcamd uses DES encryption for data transmission and can operate on ports above 15000. It is important to specify the key correctly in the configuration. For example:
[newcamd]
key = 0123456789ABCDEF0123456789ABCDEF
How to choose a protocol for a specific task
The choice of protocol depends on your tasks. If high security is required, it is better to choose CS378x. For ease of setup, CCcam is suitable. Newcamd is an interesting choice for those who want to experiment with encryption.
Connecting servers to each other and setting up reshare
Configuring the connection between OScam servers allows for the creation of multi-level schemes. This is useful if you have multiple card sources.
Configuring an outgoing reader to another server
To configure an outgoing reader, inoscam.server you need to specify the remote source. For example:
[reader]
label = RemoteReader
protocol = cccam
device = remote.server.com,12000
Reshare parameters, cccreshare and cccmaxhops
The parametersreshare andcccmaxhops allow you to control the depth of sharing.cccreshare is responsible for card retransmission. For example, to limit the number of hops:
cccmaxhops = 3
Hop control and preventing sharing loops
When setting up multi-level schemes, you need to ensure that loops do not occur. Make sure that a uniquecccam node id is configured for each server so that OScam can cut off its own loops.
How to Find the Service IDs Required for oscam.services
To find the services required for an OScam configuration, collect the identifiers from your receiver rather than guessing them from channel names. Tune to a channel you are authorized to receive and inspect its service information or the active request in OScam’s WebIf. Record the service ID (srvid), conditional access system ID (caid), and provider identifier (provid). A channel can advertise multiple CAIDs, so use the combination associated with your authorized reader.
These identifiers are hexadecimal values. Preserve leading zeros and check whether your receiver displays its service ID in decimal or hexadecimal before copying it. The following is an illustrative oscam.services entry, not a working channel definition; replace all three values with identifiers from your own setup:
[authorized_channel]
caid = 0100
provid = 000001
srvid = 1234
Defining this entry does not activate a filter by itself. Reference its label with services = authorized_channel in the intended reader or account. A positive reference allows matching services, while services = !authorized_channel excludes them. Reader and account restrictions both apply, so an account cannot restore access that its eligible readers exclude.
- Keep unrelated combinations separate: comma-separated CAIDs, providers, and service IDs describe matching sets, not paired rows. Separate labels help avoid unintended combinations.
- Distinguish names from access rules:
oscam.srvidoroscam.srvid2, where supported, supplies readable service names; it does not replaceoscam.servicesfiltering. - Verify after a channel change: rescans or broadcaster changes can alter identifiers. Recheck the active request before retaining an old filter.
How to Deploy OScam Config Changes Without Losing a Working Setup
Before changing an OScam server configuration, back up the complete active configuration directory and record how the running process starts. On a systemd-managed installation, inspect the actual unit with systemctl cat <unit-name>; look for its executable, service user, and startup arguments. If the command includes -c, that argument selects the runtime configuration directory. Editing another copy of the files will not update that instance.
Check ownership and permissions before restarting. Configuration files can contain reader credentials, account passwords, and WebIf credentials, so they should not be world-readable. The service account needs read access to its configuration and write access only where required, such as configured log or runtime directories. Avoid recursive permission changes across the installation: they can expose secrets or remove access the process needs.
- Check group assignments: OScam groups use numeric IDs, not descriptive names. For example, a reader with
group = 1is eligible for an account withgroup = 1,2, subject to other filters. - Change one functional item at a time: keep account changes separate from reader, listener, and service-filter changes so failures are easier to isolate.
- Use the existing service manager: do not launch a second instance to test the same configuration; it may compete for ports or card-reader devices.
- Keep a rollback copy: preserve the previous files with their ownership and permissions, and restore them if the changed setup fails validation.
After applying a change, verify the intended behavior rather than checking only that the process is running. Confirm that an authorized account still works, that a deliberately excluded service remains blocked, and that management access is restricted to the intended hosts. Redact passwords and other credentials before sharing configuration excerpts for troubleshooting.
Diagnostics and solving typical problems
Problems with OScam can arise at different stages. It is important to be able to read logs and understand what each status means.
Reading the oscam log via webif and logfile
OScam logs are available through the web interface or in the file/var/log/oscam.log. Keep an eye onECM time and statuses to quickly identify the problem.
ECM time, statuses (found/not found/timeout)
ECM time shows the time spent processing the request. Statuses can indicate the presence or absence of a card. If the statusnot found, it may be related to an incorrectcaid/ident.
AU problems (key updates) and EMM
Key updates may not work if not configuredau inoscam.user. Make sure you have the correct settings for receiving EMM.
NAT, firewall, and port forwarding
If you are having trouble accessing the server, check the NAT settings and port forwarding on the router. Ensure that OScam is listening on the correct interface.
Where are the OScam configuration files located?
By default/usr/local/etc/, but it depends on--config-dir during compilation; on Enigma, it is often/etc/tuxbox/config/oscam/ or/var/keys/. Check via webif → Configuration.
What port does OScam use by default for CCcam?
12000 for the CCcam protocol, but it is specified in the[cccam] section of theoscam.conf file with theport parameter and can be any free one.
Why does the client connect, but channels do not open?
Most often, a mismatch ingroup between reader and account, incorrectcaid/ident, lack ofau, ordvbapi filtering the service. Check the log andECM time.
How does CS378x differ from camd35?
CS378x works over TCP and encrypts traffic, while camd35 uses UDP without reliable delivery. CS378x is preferable in unstable channels and behind NAT.
How to limit the depth of sharing and avoid loops?
Usecccmaxhops to limit the number of hops,cccreshare to control reshare and uniquecccam node id, so that OScam cuts off its own loops.
How to check if the server is accessible from the outside?
Check port forwarding on the router, open the port in the firewall, usetelnet/nc on the IP and port, make sure that OScam is listening on the required interface (nostart,disablelog do not interfere).
Practical checklist for smooth viewing
Even the best CCCam or OSCam line needs two or three simple preparations. Update your receiver firmware, reset the ECM cache once a week and keep 15–20% free space on the USB stick or internal flash so that the reader can store keys without delays.
When tuning a dish, aim for MER/BER reserve: a two‑degree offset or a loose F‑connector often causes the “freezing” that users blame on cardsharing. Keep a short patch cord to test alternative routers, and save two profiles in OSCam — one for TCP, one for UDP — so you can switch instantly if your ISP starts filtering a protocol.
Utgard.tv monitors each hub 24/7, but you can speed up diagnostics by keeping a short log of your receiver actions. Note the time when you changed the channel, which CAID was active and whether you used Wi‑Fi or Ethernet. This tiny “journal” helps engineers reproduce your environment in the lab and return with a solution in minutes instead of hours.
- Keep two line slots enabled: if the first server hits a maintenance window, the second one instantly takes over without re-entering credentials.
- Run a monthly speed and latency test. Stable 1–2 Mbps with ping <80 ms is enough for SD/HD, but if jitter exceeds 20 ms, switch the router to wired mode.
- Save the Utgard.tv status page and Telegram bot @utgard_sharing_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.