
If you are encountering the concept of cccam for the first time and trying to understand what is happening — this article is for you. No marketing fluff, just technical facts: how the protocol works, what the config looks like, why the line does not connect and how OScam fundamentally differs from CCcam.
What is CCcam and how the protocol works
The purpose of the CCcam protocol in simple terms
CCcam is a proprietary card sharing protocol developed for sharing access to smart cards for satellite TV over a TCP connection. The server holds a physical card, the client connects over the network and receives the decryption of ECM requests in real time. The result is that the channel opens on the receiver where the card is not physically present.
The protocol was created for receivers based on Enigma2 (Dreambox, VU+, GigaBlue, and similar), but is now implemented on other platforms as well. The CCcam software itself is free for the end user, but there is no source code — the binary is closed.
Client and server: line exchange scheme
The scheme is simple: there is a server with a card and a client who needs decryption. The client sends an ECM (Entitlement Control Message) to the server, the server returns a CW (Control Word) — the key for decoding. This exchange occurs every few seconds.
In cccam terminology, there are two types of configuration lines:
- C-line (Client line) — is entered on the client receiver. It indicates which server to connect to.
- F-line (Friend line) — is entered on the server. It allows the specified user to connect and receive decryption.
What are hops (number of transitions) and downgrade
Hops are the number of intermediate servers between the original card and your receiver. Hops 1 means a direct connection to the server with the real card. Hops 2 means your server is connected to an intermediate one, which is already connected to the card.
Each hop adds latency. With hops 1 and a good ping, the ECM response comes in 200–400 ms. With hops 3, it is already 800–1500 ms, which causes noticeable freezes when changing channels or just instability. Downgrade is the forced reduction of hops when passing the line further. For example, in F-line, you can specify uphops to limit how many levels down the line is shared.
Concepts of card, reader, share, and local card
Local card is the card physically inserted into the server's card reader. Reader is the device (internal or external via USB/CI). Share is the virtual access to the card that the server provides to clients. One server can simultaneously have several readers with different cards and share access to them with different clients.
Installation and basic setup of CCcam on the receiver
Where CCcam is installed in Enigma2
On most Enigma2 distributions, the binary is located in/usr/bin/CCcam or/var/bin/CCcam. The exact path depends on the firmware image (OpenATV, OpenPLi, VTi, etc.). To check quickly:
which CCcam
ls -la /usr/bin/CCcam /var/bin/CCcam 2>/dev/null
If CCcam is installed via ipkg/opkg, it usually goes to/usr/bin/. When installed manually — wherever you copied it, with the appropriate execution rights.
File location: /var/etc/CCcam.cfg
The main config is/var/etc/CCcam.cfg. This is the standard location on Enigma2. The log with debugging enabled is written to/tmp/CCcam.log or/tmp/cccamd.log — depends on the version and parameterDEBUG in the config.
Full list of typical paths:
/var/etc/CCcam.cfg— main config/tmp/CCcam.log— log (when DEBUG is enabled)/var/etc/.CCcam— hidden file with state cache (do not edit manually)
Starting, stopping, and autostarting the daemon
Restart via init script (if available):
/etc/init.d/CCcam restart
If there is no init script — a rough but working method:
killall CCcam&& sleep 2&& CCcam&
Autostart on Enigma2 is usually configured via a plugin or symlink in/etc/rc3.d/. Many distributions do this automatically when installed via opkg. Check if the daemon is running:
ps | grep CCcam
Checking status via webif (port 16001)
CCcam has a built-in web interface. By default, it runs on port 16001. Open in your browserhttp://[receiver-IP]:16001 and see the list of active C-lines, their status (online/offline), hops, number of shared channels, and current load.
If webif does not open — check that the parameter is specified in CCcam.cfgWEBINFO LISTENPORT: 16001 and that the port is not blocked by the firewall on the receiver.
CCcam.cfg configuration file: parsing lines and ports
C-line syntax: hostname port username password
C-line is what you are given when purchasing or renting access. It looks like this:
C: my.server.com 12000 myuser mypassword
Breaking down by fields:
C:— line type (client)my.server.com— hostname or IP of the server12000— TCP port on which the server listensmyuser— login (case-sensitive!)mypassword— password (also case-sensitive)
Common mistake — extra space at the end of the line or between fields. CCcam parses the config strictly:myuser andmyuser — different logins from its point of view. Edit in nano or via FTP client in Binary mode — watch for line endings (should be Unix LF, not Windows CRLF).
Syntax of F-line and sharing parameters
F-line is specified on the server and allows a specific user to connect:
F: frienduser friendpass 1 0 { 0, 0, 0 }
Fields after the login and password:
- The first number — maximum hops that the user can share further
- The second — uphops (from which hop sharing starts)
{ 0, 0, 0 }— downgrade parameters for specific CAID (0 = no restrictions)
If you want the user to receive only local cards (hops 1) and not be able to resell access further — set the first number to 0.
Global parameters: WEBINFO LISTENPORT, ALLOW TELNETINFO
Important global settings in CCcam.cfg:
WEBINFO LISTENPORT: 16001
ALLOW TELNETINFO: yes
TELNET LISTENPORT: 16002
DEBUG: no
KEEPCONNECTED: yes
MINIMIZECARDS: no
KEEPCONNECTED: yes — the daemon automatically reconnects on disconnection. It is recommended to keep it enabled.MINIMIZECARDS: no — when yes, CCcam tries to minimize the number of used card slots, which sometimes leads to instability with multiple lines.
Telnet info on port 16002 (or standard 23) allows connecting to the interface viatelnet [IP] 16002 and viewing the status in real time.
Parameters of the local card and SERVER reading the reader
If your receiver itself is a server with a local card, add a reader section. For an internal card reader, it usually looks like this:
DEVICE: /dev/sci0
CAID: 0x0100
Specific parameters depend on the type of card and hardware. In practice, the server part is more often configured today via OScam, rather than directly in CCcam — more on this below.
Solutions to typical CCcam connection problems
Line does not come up: check network and firewall
We start diagnostics with basic things. First, ping to the host:
ping my.server.com
If the ping does not go through — the problem is in DNS or routing, the line is not at fault. Next — check the availability of the port:
telnet my.server.com 12000
If the connection is not established, either the server is not listening on this port, or the firewall on the server is blocking incoming connections, or your provider is filtering non-standard ports. Some ISPs block the range 10000–30000 as potentially used for P2P. In this case, a VPN or changing the port (if the server allows) is needed.
The receiver behind the NAT router does not create problems when connecting as a client — the outgoing connection is initiated by the receiver itself. The NAT issue arises only if you are setting up a CCcam server and want to accept incoming F-line connections — then port forwarding on the router is required.
The line is active, but the channels do not open (no ecm answer)
This is the most confusing situation: the webif shows the C-line online, but specific channels are not decrypted. Reasons in descending order of probability:
- The required CAID/provider is not in the distribution. The server distributes what it has on the cards. If the card does not contain the required package — there is simply no one to process the ECM. Check the CAID list in the webif.
- Limit on simultaneous connections. Most lines have a limitation: 1–2 active connections. If multiple receivers are connected to one line — some will receive a refusal in ECM.
- Time desynchronization on the receiver. ECM packets are time-bound. If the time on the receiver diverges from the server by more than a few minutes — decryption does not work. Check NTP synchronization:
ntpdate -u pool.ntp.org - Filtering by CAID on the server. The F-line may be configured with CAID restrictions — your user simply does not have access to certain packages.
Freezes and long channel opening: hops and ping
If the channel opens, but with a delay of 3–10 seconds or periodically freezes — the first thing to check: hops and ping to the server. Hops for each active line can be seen in the webif. Hops 3+ with a ping of 80+ ms = problems are guaranteed.
The second point — several C-lines with the same CAID. CCcam may switch between them with each ECM request, which gives unpredictable delays if the lines have different pings. It is better to either leave one working line or set priorities.
Hops/downgrade conflict with multiple C-lines
With multiple C-lines for one CAID, CCcam uses the first available one. But if the first line has hops 3, and the second has hops 1 — CCcam will not automatically switch to the shorter chain. The order of lines in CCcam.cfg matters: place the best line (less hops, less ping) higher.
Downgrade conflict occurs when you receive a line with uphops limitations and try to pass it further — the server cuts hops to the specified maximum, and clients receive degraded access.
CCcam or OScam: what are the differences and what to choose
Openness of code and development activity
CCcam is a closed proprietary binary. The last real updates date back several years, and there is no active development. OScam (OSCam — Open Source Conditional Access Module) is a fully open project on GitHub with active commits. For the platform, this is crucial: bugs are fixed, support for new cards and protocols is added.
Flexibility of configuration and protocol support
OScam natively supports the cccam protocol — that is, it can connect to CCcam servers as a client and accept connections as a server. In addition: newcamd, mgcamd, gbox, and other protocols through the same daemon. OScam configs are distributed across files:
/etc/oscam/oscam.conf— global parameters/etc/oscam/oscam.server— readers (card sources)/etc/oscam/oscam.user— users/etc/oscam/oscam.dvbapi— binding to the DVB decoder
This is more complicated for initial setup, but gives precise control over every aspect of operation.
Stability and resource consumption
On weak hardware (old Dreambox 800 HD with 256 MB RAM), CCcam sometimes works more stably simply because the binary is smaller and simpler. OScam, with the correct configuration, consumes comparably, but a non-optimal config with a large number of readers and polling settings can consume CPU.
On modern hardware, the difference is negligible. VU+ Duo4K or GigaBlue UHD XE can easily handle OScam with 10+ readers without overheating.
When it is justified to stay on CCcam
If you have a simple task — one C-line, one receiver, setup took 5 minutes — there is no point in migrating. CCcam works. Transition to OScam is justified when: flexible ECM routing between multiple sources is needed, control by CAID/provider for specific users is required, or you are setting up a full-fledged sharing server.
How to choose a source of CCcam lines: criteria without names
What to look for: uptime, hops, and ping to the server
Uptime is a key indicator. The claimed 99% sounds good, but the real picture is only visible during use. Request a test line for 24–48 hours and check the CCcam logs: how many times the line dropped and for how long.
Hops should be 1. This is not a wish, it is a requirement for normal operation. Hops 2 is still acceptable with good ping, hops 3 and above is already instability by definition. Check the ping to the server from the receiver, not from your home PC: the routes are different.
Stability of distribution and the claimed list of packages
Before payment, request an exact list of CAIDs and providers. A normal source provides specifics: which satellites, which packages, which CAIDs. Vague promises like "thousands of channels" without details are a red flag.
Check compliance through webif: after connecting the test line, see which CAIDs are actually being provided, and compare with the claimed list.
Test period and support as a sign of reliability
A reliable source provides a test line without unnecessary conditions. If the test requires prepayment or registration with a lot of data, that already says something. The presence of a normal support channel (even a simple Telegram) and the speed of response to technical questions are good indicators.
Support that responds to "the line is not coming up" with the advice "restart the receiver" without understanding the problem is also a signal.
Red flags: inflated promises and anonymity
Concerning: promises of "eternal" access for a symbolic fee, lack of any information about the server and owner, inability to check uptime historically, pressure for urgency ("the promotion ends today").
A good source is not afraid of technical questions. If the answer to the question "what is your hops to the card?" is evasive, it means that either hops 3+ is present, or it is not a local card at all.
What does a CCcam request mean in simple terms?
CCcam is the name of the protocol and the software of the same name for sharing access to a satellite smart card over the network. One receiver with a real card (server) provides ECM decryption to other receivers (clients) via a TCP connection. The client sees the channels as if the card were inserted directly into it.
Where is the CCcam.cfg file located and how to edit it?
The standard path on Enigma2 receivers is/var/etc/CCcam.cfg. It can be edited via FTP (FileZilla in binary mode), via SSH using nano or vi, or through the built-in file manager in the firmware web interface. After any changes, the CCcam daemon needs to be restarted — changes are not picked up on the fly.
What ports does CCcam use?
Ports for C/F-line are set manually on the server, the typical range is from 10000 to 30000. The web interface (webif) listens on port 16001 by default. Telnet info is usually on 16002 or the standard 23. Exact values depend on the configuration of the specific server — see the WEBINFO LISTENPORT and TELNET LISTENPORT parameters in CCcam.cfg.
Why is the C-line online, but channels are not opening?
The line is connected, but that does not mean it is providing the required content. Options: there is no card with the required CAID or provider on the server; the limit of simultaneous connections on the line has been exceeded; the time on the receiver is out of sync with the server; the F-line is configured with a CAID restriction. Diagnose through webif — it shows which CAIDs are actually coming through the line.
What is better to use — CCcam or OScam?
CCcam is simpler for basic setup "one line — one receiver," but it is not evolving. OScam is an open project with active updates, supports the CCcam protocol natively, so the same lines work without changes. If flexible ECM routing, multiple sources, or server distribution is needed, OScam is preferable. For simple client connection, CCcam is quite sufficient.
What is hops in CCcam and why is hops 1 important?
Hops is the number of intermediate servers between the source card and your receiver. Hops 1 means a direct connection to the server with a real card, without intermediaries. Each additional hop increases the delay of the ECM response and decreases stability. With hops 3 and poor ping, freezes when switching channels become the norm rather than the exception. Hops 1 is the minimum requirement for comfortable viewing.
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.