Настройка CCcam в OScam: dvbapi и cccam клиент 2026

Что значит «CCcam в OScam» и зачем это нужно

Если у тебя есть рабочие C-line от провайдера и ты хочешь использовать их через OScam — это реально. OScam поддерживает протокол CCcam нативно: в файле oscam.server создаётся блок [reader] с параметром protocol=cccam, и сервер работает как CCcam-клиент. Именно это и называется cccam in oscam в режиме клиента. Строчка C: host port user pass из старого CCcam.cfg превращается в несколько понятных строк конфига.

Зачем вообще переходить? CCcam как демон — это чёрный ящик с минимальной диагностикой. OScam даёт веб-интерфейс на порту 8888, подробные логи в oscam.log, гибкую маршрутизацию ECM по группам, поддержку нескольких протоколов одновременно (cccam, newcamd, camd35, biss). Плюс можно одновременно получать линии и раздавать их дальше — всё в одном процессе.

Разница между CCcam.cfg и OScam reader

В CCcam.cfg клиентская линия выглядит так: C: myserver.example.com 12000 myuser mypass. Одна строка, всё. В OScam каждая такая строка разворачивается в полноценный блок [reader] с десятком параметров. Это многословнее, зато каждый параметр контролируется явно — версия протокола, таймауты, группы, фильтрация по caid.

Главное понять: один C-line = один reader в oscam.server. Если у тебя три линии — три отдельных блока с разными label.

Протокол cccam внутри OScam (clientmode)

OScam реализует протокол CCcam 2.x в clientmode. Это значит, он устанавливает TCP-соединение с удалённым CCcam-сервером, проходит аутентификацию и получает список доступных карт (CARD list). ECM-запросы от локального тюнера или dvbapi OScam направляет через этот reader к удалённому серверу, получает CW и расшифровывает поток.

Когда оправдан переход с CCcam на OScam

Переход имеет смысл, если нужна диагностика — когда канал не открывается и непонятно почему. OScam покажет в логах весь путь ECM: откуда пришёл запрос, куда ушёл, какой ответ получен, сколько миллисекунд заняло. CCcam в этом плане почти слепой.

Ещё один случай — reshare. Если нужно одновременно получать линии и раздавать их другим клиентам, OScam делает это гораздо чище и с контролем hop-лимитов.

Настройка reader типа cccam в oscam.server

Основной файл для настройки входящих линий — oscam.server. Путь зависит от прошивки: на Enigma2/Dreambox это обычно /etc/tuxbox/config/oscam/oscam.server, на Vu+ и OpenPLi — /etc/oscam/oscam.server, на самосборном OScam под Linux — /usr/local/etc/oscam/oscam.server или /var/etc/oscam/oscam.server.

Структура блока [reader] для протокола cccam

Вот рабочий пример блока для одной C-line:

[reader]
label                = cccam_server1
protocol             = cccam
device               = myserver.example.com,12000
user                 = mylogin
password             = mypassword
group                = 1
cccversion           = 2.3.0
cccmaxhops           = 2
cccwantemu           = 0
inactivitytimeout    = 30
reconnecttimeout     = 30

Label должен быть уникальным — никаких пробелов, только буквы, цифры, подчёркивания. Если у тебя две линии на одном сервере от одного провайдера — назови их cccam_server1_a и cccam_server1_b, иначе OScam либо проигнорирует второй блок, либо поведёт себя непредсказуемо.

Перенос C-line в параметры device, user, password

Строка C: host port user pass разбивается так: host и port идут в device через запятую, user и pass — в отдельные параметры. Порт в device указывается без пробела: device = host,port. Это самая частая ошибка при переносе с CCcam.cfg — люди пишут device = host и порт отдельно, но так не работает.

Параметры cccversion, cccwantemu, group, caid, ident

Параметр cccversion — это версия протокола CCcam, которую OScam представится серверу. Распространённые значения: 2.0.11, 2.1.4, 2.3.0. Если не знаешь точную версию сервера, попробуй 2.3.0 — большинство современных серверов её принимают. Но если коннект не проходит — попробуй 2.1.4.

cccwantemu=1 запрашивает у сервера эмулированные карты. Если сервер эмуляцию не поддерживает — он может разорвать соединение или вернуть пустой список карт. По умолчанию ставь 0.

cccmaxhops — максимальное количество хопов, через которые reader принимает карты. Значение 1 означает только прямые карты сервера. Некоторые провайдеры организуют сети так, что нужные каналы идут через 2 хопа — тогда нужно cccmaxhops=2. Дефолтное значение в OScam — 10, но лучше ограничить до 2, чтобы не тащить весь граф чужих серверов.

Параметры caid и ident позволяют фильтровать, какие карты принимать от этого reader. Например: caid=0500 оставит только Viaccess. Если не указывать — принимаются все карты от сервера.

Проверка статуса reader через webif

После правки конфига либо рестартуй OScam (killall -HUP oscam или полный рестарт), либо открой webif на http://ip:8888 и нажми Reload в разделе Readers. Там же видны все reader, их статус (CONNECTED, OFF, NEEDINIT) и список карт, полученных от сервера. Если карты не появились — смотри в логах, почему.

Связка cccam reader с dvbapi (просмотр на ресивере)

Многие настраивают cccam in oscam, добиваются статуса CONNECTED — и дальше ничего не работает. Причина почти всегда одна: не настроена или неверно настроена связь reader с dvbapi через группы.

Настройка oscam.dvbapi и oscam.conf [dvbapi]

В oscam.conf нужна секция:

[dvbapi]
enabled              = 1
au                   = 1
pmt_mode             = 4
request_mode         = 1
boxtype              = dreambox

boxtype зависит от оборудования: для Enigma2 (Dreambox, Vu+, GigaBlue) — dreambox. Для самосборных сборок под PC или VU Solo4K в некоторых прошивках — pcsc или dvbapi. Неверный boxtype даст тишину без ошибок в логах — это классическая ловушка.

Файл oscam.dvbapi (тот же каталог, что и остальные конфиги) задаёт правила маршрутизации ECM. Минимальный вариант — пустой файл или базовые правила:

P: 0500:042800
P: 0604:000000

Формат: P: — приоритет (использовать), I: — игнорировать, D: — удалить из списка. Если файл отсутствует, OScam пытается сам разобраться с маршрутизацией, но результат непредсказуем.

Привязка локального тюнера к удалённым линиям

ECM от тюнера приходит в OScam через dvbapi. OScam смотрит, к какой группе привязан dvbapi, и ищет reader с той же группой. Если reader в group=1, а dvbapi не указывает группу — запрос уйдёт в никуда. Это и есть та самая «нет картинки при CONNECTED».

Группы (group) как связующее звено reader и dvbapi

Параметр group — это ключевой механизм маршрутизации в OScam. Reader с group=1 обслуживает ECM-запросы, помеченные той же группой. В oscam.user (для клиентских подключений) тоже указывается group=1. Так строится граф: кто кому отдаёт и от кого получает.

Если у тебя несколько reader — можно распределить их по группам и задать приоритеты. Например, основной сервер в group=1, резервный в group=2, а в аккаунте клиента написать group=1,2 — тогда при недоступности первого автоматически подхватится второй.

Раздача (server mode): OScam отдаёт линии как CCcam

OScam умеет одновременно быть и клиентом (reader), и сервером. Это и есть режим reshare — получаю линии от провайдера и раздаю их своим клиентам по протоколу CCcam.

Настройка [cccam] в oscam.conf (port, reshare)

В oscam.conf добавляется секция:

[cccam]
port                 = 12000
reshare              = 1
version              = 2.3.0
nodeid               = 0102030405060708

nodeid — уникальный идентификатор узла в сети CCcam, 16 hex-символов. Можно сгенерировать любой, главное — уникальный в сети. reshare=1 разрешает пересдачу карт клиентам. reshare=0 — OScam слушает порт, но карты не отдаёт (иногда нужно для тестирования).

Создание аккаунтов в oscam.user

Каждый клиент, который будет подключаться к OScam по CCcam, получает свой блок в oscam.user:

[account]
user                 = client1
pwd                  = clientpass
group                = 1
cccmaxhops           = 1
cccreshare           = 1
cccignorereshare     = 0

Путь к файлу: тот же каталог, что oscam.server и oscam.conf. После добавления аккаунта — reload через webif, не нужен полный рестарт.

Параметры cccreshare, cccmaxhops, cccignorereshare

cccreshare на уровне аккаунта определяет, сколько хопов клиент может пересдать дальше. cccreshare=0 — клиент получает карты, но сам не раздаёт. cccreshare=1 — может раздавать на один уровень глубже.

cccignorereshare=1 — OScam игнорирует настройки reshare от вышестоящего сервера и использует собственные. Нужно в специфических случаях, когда провайдер ограничивает reshare, а тебе нужно раздавать локально.

Чтобы не создать петлю (карты ходят по кругу между серверами), следи за hop-счётчиком: cccmaxhops=1 в reader + cccreshare=1 в аккаунтах = два уровня в сумме. Больше редко нужно.

Диагностика и типичные ошибки подключения

Большинство проблем с cccam in oscam решаются чтением логов. Но нужно знать, что именно искать.

Reader CONNECTED / OFF / CARDOK в логах

Статус Что означает Что делать
CONNECTED TCP-соединение установлено, аутентификация прошла Проверить список карт — возможно, пустой
CARDOK Карты получены и ECM проходят успешно Всё работает
NEEDINIT Соединение установлено, ждёт инициализации протокола Подождать 10-15 секунд, если не меняется — смотреть лог
OFF Нет соединения, reader отключён или недоступен Проверить host/port, фаервол, учётные данные

Ошибки 'cccam connect failed' и таймауты

Если в логах видишь cccam connect failed — первым делом проверь сетевую доступность сервера:

nc -zv myserver.example.com 12000
telnet myserver.example.com 12000

Если nc зависает или возвращает Connection refused — проблема в сети или фаерволе, не в OScam. Если соединение устанавливается, но OScam всё равно пишет ошибку — скорее всего неверный логин/пароль или несовместимая cccversion.

Таймауты при нестабильном пинге лечатся увеличением reconnecttimeout до 60 и inactivitytimeout до 60-120. При очень нестабильном соединении можно поставить inactivitytimeout=0 — тогда OScam не будет разрывать соединение по таймауту активности.

Проблема нулевых карт и отсутствия caid/provid

Reader показывает CONNECTED, но в webif во вкладке Readers список карт пустой. Причин несколько:

  • Провайдер не отдаёт нужный caid — например, у него Viaccess, а ты ищешь Nagravision
  • cccmaxhops слишком мал — карты находятся на 2 хопа дальше, а у тебя стоит 1
  • cccwantemu=1 при сервере без эмуляции — сервер присылает пустой список
  • Провайдер ограничил количество одновременных подключений — если уже есть активный коннект от тебя или кто-то использует те же credentials, второй коннект получит пустой CARD list или вовсе будет отклонён

Решение: открыть webif → Readers → кликнуть на нужный reader → внизу будет секция Cards. Если пусто при CONNECTED — это проблема с параметрами, а не с сетью.

Чтение oscam.log и уровней debug (-d)

Запуск OScam с максимальным дебагом: oscam -d 255 -c /etc/oscam. В лог пойдёт всё — каждый ECM-запрос, каждый ответ, каждое состояние reader. Это много текста, но именно там видно, почему канал не открывается.

В oscam.conf секция [global] управляет логированием:

[global]
logfile              = /var/log/oscam.log
loglevel             = 64
maxlogsize           = 512

loglevel=64 — логировать ECM. loglevel=128 — добавить EMM. Сумма флагов: 1 (ошибки) + 2 (предупреждения) + 4 (инфо) + 8 (HTTP) + 16 (клиенты) + 32 (reader) + 64 (ECM) + 128 (EMM) = 255 для полного лога.

Смотреть лог в реальном времени: tail -f /var/log/oscam.log или через вкладку Log в webif. Поиск конкретного reader: grep cccam_server1 /var/log/oscam.log.

Можно ли использовать CCcam.cfg напрямую в OScam?

Нет. Форматы полностью несовместимы. C-line вида C: host port user pass нужно вручную переписать в блок [reader] с protocol=cccam в файле oscam.server. Один C-line — один отдельный блок reader. Автоматического импорта нет.

Какой порт CCcam использует по умолчанию в OScam?

Для входящих линий порт берётся из C-line провайдера — обычно в диапазоне 12000–18000. Для раздачи (когда OScam сам становится сервером) порт задаётся в секции [cccam] файла oscam.conf, параметр port=. Типичное значение — 12000. Веб-интерфейс OScam по умолчанию на порту 8888.

Что означает cccversion и почему линия не подключается из-за него?

Это версия протокола CCcam, которую OScam анонсирует при подключении. Если сервер ожидает определённую версию, а клиент предъявляет другую — возможен отказ в аутентификации. Узнай у провайдера, какую версию использует его сервер, и укажи ту же. Попробуй 2.3.0, 2.1.4, 2.0.11 по очереди, если точной информации нет.

Почему reader показывает CONNECTED, но каналы не открываются?

Это самая частая проблема. Причины: нет нужного caid/provid в полученном списке карт, превышен лимит хопов (увеличь cccmaxhops), ECM не маршрутизируется из-за несовпадения group между reader и dvbapi, или неверный boxtype в секции [dvbapi]. Открой webif → Readers → проверь список карт и group.

В чём разница между reader cccam и server cccam в OScam?

Reader (настраивается в oscam.server) — это OScam как клиент: он подключается к чужому CCcam-серверу и получает карты. Server (секция [cccam] в oscam.conf + аккаунты в oscam.user) — это OScam сам раздаёт карты другим клиентам. Оба режима можно совмещать: получаешь от провайдера и раздаёшь своим через reshare.

Как включить автообновление ключей (AU) для cccam reader?

Установи au=1 в блоке reader в oscam.server и au=1 в секции [dvbapi] файла oscam.conf. Но это работает только если удалённая линия передаёт EMM — большинство CCcam-провайдеров EMM не отдают. Если AU нужен, уточни у провайдера заранее, иначе параметр ничего не даст.

Практические советы для стабильного просмотра

Даже самая стабильная линия CCCam или OSCam требует пары простых подготовительных шагов. Обновляйте прошивку ресивера, раз в неделю очищайте ECM‑кеш и держите 15–20% свободного места на USB‑накопителе или во встроенной памяти, чтобы кардридер записывал ключи без задержек.

При настройке антенны оставляйте запас по MER/BER: смещение на два градуса или ослабленный F‑коннектор чаще становится причиной “фризов”, чем сам кардшаринг. Держите под рукой короткий патч‑корд для проверки другого роутера и сохраните два профиля в OSCam — под TCP и под UDP — чтобы мгновенно переключиться, если провайдер начнёт фильтровать протокол.

Utgard.tv следит за каждым хабом 24/7, однако вы можете ускорить диагностику, если будете вести небольшой журнал действий. Записывайте время переключения канала, активный CAID и то, использовали ли вы Wi‑Fi или Ethernet. Такой мини‑отчёт позволит инженерам воспроизвести вашу конфигурацию в лаборатории и предложить решение не за часы, а за минуты.

  • Держите активными две линии: если первый сервер уходит на обслуживание, второй тут же подхватывает поток без повторного ввода логина.
  • Раз в месяц делайте замер скорости и задержек. Стабильных 1–2 Мбит/с при пинге до 80 мс достаточно для SD/HD, но если джиттер превышает 20 мс — переведите роутер на провод.
  • Сохраните в закладки страницу статуса Utgard.tv и Telegram‑бота @utgard_tv_bot — там появляются уведомления о работах раньше, чем успеют среагировать SEMrush или внешние мониторы.