Переход с CCcam на OScam: полная настройка 2026

Если вы уже настраивали шары через CCcam и думаете о переходе — задача cccam to oscam звучит сложнее, чем есть на самом деле. Основная работа — понять, как параметры из CCcam.cfg ложатся в структуру OScam. После этого миграция занимает час-два, не больше.

Здесь — конкретная таблица соответствия, примеры блоков конфига и типичные ошибки первого запуска. Без воды.

Почему переходят с CCcam на OScam

Ограничения CCcam: закрытый код, нет обновлений

CCcam — закрытый бинарник. Последние активные версии были в районе 2.3.x, после этого разработка фактически встала. На современных ресиверах с Enigma2 он всё чаще даёт сбои: теряет DVB-Api, не корректно отрабатывает таймауты, сыпет ECM-ошибками без внятного лога.

Отлаживать CCcam — боль. Лог минимальный, декодирование ECM отображается без деталей о ридере и времени ответа. Когда канал не открывается — непонятно, проблема в соединении, в картах или в матче CAID.

Преимущества OScam: открытый код, DVB-Api, гибкие протоколы

OScam — открытый проект, собирается под конкретный ресивер с нужными флагами. Поддерживает одновременно несколько протоколов: cccam, newcamd, camd35, mgcamd. Можно держать один экземпляр OScam, который принимает клиентов по cccam и по newcamd одновременно.

Веб-интерфейс на порту 8888 показывает статус каждого ридера, список раскодированных карт, время ответа ECM, активных клиентов. Это реально полезно при отладке — сразу видно, кто декодировал и за сколько миллисекунд.

DVB-Api работает стабильнее: OScam корректно обрабатывает несколько тюнеров, умеет расставлять приоритеты ридеров через параметр weight.

Когда переход не нужен

Честно: если CCcam у вас работает стабильно, каналы открываются без задержек и конфиг не нужно менять — переход не обязателен. Миграция cccam to oscam имеет смысл, если вы используете современный ресивер с Enigma2, хотите детальный лог, планируете подключать несколько источников с разными протоколами, или CCcam начал терять соединения.

Соответствие параметров CCcam.cfg и конфигов OScam

Главное, что нужно понять: одна строка в CCcam.cfg превращается в отдельный блок в одном из файлов OScam. Никакой автоматической конвертации не нужно — достаточно таблицы соответствия.

Структура файлов OScam

CCcam хранит всё в одном файле — обычно /var/etc/CCcam.cfg или /etc/CCcam.cfg. OScam работает с несколькими файлами в одной директории. На большинстве ресиверов это /etc/tuxbox/config/oscam/ или /var/keys/.

Файл OScamДля чего
oscam.confГлобальные настройки: логирование, порты протоколов, dvbapi
oscam.serverРидеры: источники карт (cccam-линии, локальные карты)
oscam.userАккаунты клиентов, которым OScam раздаёт (аналог строк F:)
oscam.servicesФильтрация по CAID и провайдеру (опционально)

Строка C: (клиент) → cccam reader в oscam.server

В CCcam.cfg строка подключения к источнику выглядит так:

C: sharehost.example 12000 mylogin mypassword

В OScam это превращается в блок в файле oscam.server:

[reader]
label        = source1
protocol     = cccam
device       = sharehost.example,12000
user         = mylogin
password     = mypassword
group        = 1
cccversion   = 2.3.0
inactivitytimeout = 30
reconnecttimeout  = 30

Один блок [reader] — одна строка C:. Если у вас было три строки C: — будет три блока reader.

Строка F: (сервер для пиров) → account в oscam.user

Строка F: username password в CCcam.cfg — это доступ, который вы выдали кому-то другому. В OScam это блок в файле oscam.user:

[account]
user  = username
pwd   = password
group = 1
au    = source1

Параметр au указывает, от какого ридера этот клиент будет получать данные авторизации карты. Имя должно совпадать с label в oscam.server.

Локальная карта (dvbapi/internal reader) → reader в oscam.server

Если у вас вставлена физическая карта — она настраивается отдельным блоком reader, не cccam:

[reader]
label    = localcard
protocol = internal
device   = /dev/dvb/adapter0/ca0
group    = 1

Или через smargo:

[reader]
label    = smargo1
protocol = serial
device   = /dev/ttyUSB0
group    = 1

Настройка oscam.server: подключение к источнику

Минимальный блок [reader] для cccam-протокола

Вот рабочий минимум для подключения к cccam-источнику:

[reader]
label        = myprovider
protocol     = cccam
device       = sharehost.example,12000
user         = user123
password     = pass456
group        = 1

Этого достаточно для первого теста. Если соединение нестабильно — добавить таймауты.

Параметры device, user, password, group, cccversion

Параметр device принимает хост и порт через запятую без пробела: host,port. Порт 12000 — типовой для cccam, но это не стандарт, владелец источника задаёт его сам. Менять со своей стороны нельзя — только тот порт, что указан в вашей C:-строке.

Параметр cccversion критичен. Некоторые источники проверяют версию при хендшейке. Если выставить неверную — ридер будет постоянно реконнектиться без объяснений в логе (вернее, в логе будет просто connection closed). Типовые значения: 2.0.11, 2.1.4, 2.3.0. Узнать нужное значение у вашего источника или попробовать 2.3.0 как наиболее распространённое.

Параметр group — важнейший. Об этом подробнее в следующем разделе.

inactivitytimeout и reconnecttimeout для стабильности

Два параметра, которые сильно влияют на стабильность работы:

inactivitytimeout = 30
reconnecttimeout  = 30

inactivitytimeout — сколько секунд ждать без ECM-запросов перед разрывом. Если источник режет idle-соединения, можно поставить 0 (отключить). reconnecttimeout — сколько ждать перед повторным подключением после разрыва. 30 секунд — разумное значение.

Проверка статуса ридера в веб-интерфейсе

После запуска открываете http://IP_ресивера:8888 → вкладка Readers. Нужный статус ридера — connected. Если видите connecting бесконечно — проблема в соединении (firewall, неверный порт или хост). Если connected, но вкладка Entitlements пустая — источник подключился, но карты не переданы, проверьте cccversion.

На вкладке Entitlements видны CAID и provid карт, которые вам передал источник. Это первый способ убедиться, что линия рабочая ещё до попытки открыть канал.

Настройка oscam.user и протокола раздачи пирам

Блок [account]: user, pwd, group, au

Каждый клиент, которому вы раздаёте — отдельный блок в oscam.user:

[account]
user         = client1
pwd          = clientpass
group        = 1
au           = myprovider
cccreshare   = 1

au (auto-update) — имя ридера из oscam.server, от которого клиент получит данные авторизации. Если не задать — клиент видит только те CAID, которые уже раскодированы.

Раздача по cccam: настройка [cccam] в oscam.conf

Чтобы принимать клиентов по протоколу cccam, в oscam.conf нужна секция:

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

Порт 12000 — тот, что вы даёте своим клиентам (аналог того, что вы раньше указывали в строках F:). reshare = 1 разрешает клиентам пересдавать карты на один уровень вниз. Если поставить 0 — пересдача запрещена.

Про nodeid — важный момент. Если у вас несколько ресиверов с OScam, и у каждого одинаковый nodeid (или auto сгенерировал похожий) — источник может видеть их как один клиент и рвать лишние соединения. Задайте уникальный nodeid для каждого устройства вручную в виде 8-байтового hex-значения.

Параметр group — связь ридеров и юзеров

Это самое частое место, где люди застревают при миграции cccam to oscam. Логика такая: клиент из oscam.user видит только те ридеры из oscam.server, у которых совпадает хотя бы одна цифра в параметре group.

Пример: ридер с group = 1 и аккаунт с group = 1 — работает. Ридер с group = 2 и аккаунт с group = 1 — аккаунт этот ридер не видит. Можно задавать несколько групп через запятую: group = 1,2.

В CCcam этой логики не было — там всё было плоско. Поэтому при переходе люди видят, что карты подключены, а каналы не открываются именно из-за group mismatch.

Ограничение доступа: caid, ident, betatunnel

В блоке [account] можно ограничить, какие CAID клиент вообще может запрашивать:

[account]
user   = client1
pwd    = clientpass
group  = 1
caid   = 0500,1810
ident  = 0500:040810

Если не задать — клиент может запрашивать всё, что видит ридер. Для большинства конфигураций ограничение не нужно, но если хотите разграничить доступ разным клиентам к разным пакетам — через caid/ident это делается точечно.

Запуск, проверка и отладка через лог OScam

Запуск бинарника и проверка через oscam.log

Запуск с указанием директории конфигов:

oscam -b -c /etc/tuxbox/config/oscam/

Флаг -b запускает в фоне (daemon mode). Путь к лог-файлу задаётся в oscam.conf:

[global]
logfile = /var/log/oscam/oscam.log
maxlogsize = 500

После запуска сразу смотреть лог:

tail -f /var/log/oscam/oscam.log

Первые 10-15 секунд — инициализация ридеров. Строки вида reader myprovider: connected to sharehost.example говорят об успешном подключении.

Чтение ECM-строк: время ответа и источник

Когда канал пытается открыться, в логе появляются ECM-строки:

2026/01/15 14:23:11 user client1 (cccam) ECM CAID 0500 PROVID 040810 (source myprovider, 187 ms)

Здесь важно всё: CAID (0500 — Viaccess), провайдер, имя ридера который декодировал (myprovider) и время в миллисекундах (187 ms). Если время больше 500-700ms — канал будет подвисать. Если ECM-строки есть, но канал не открывается — проблема в dvbapi или в фильтрации.

Веб-интерфейс: статусы карт и клиентов

Порт задаётся в oscam.conf:

[webif]
httpport = 8888
httpuser = admin
httppwd  = adminpass

Вкладка Readers — статус каждого ридера и его карты. Вкладка Users — активные клиенты, их ECM-запросы в реальном времени. Вкладка Status — общая картина: сколько запросов за последние N минут, соотношение found/not found.

Если found/not found уходит в 50/50 или хуже — источник не отдаёт нужные CAID, или group настроена неверно.

Типичные ошибки первого запуска

Несколько проблем, которые встречаются почти у всех при первой миграции cccam to oscam:

no matching reader — group у ридера и у аккаунта не совпадают. Либо caid/ident в [account] не включает запрашиваемый канал.

group mismatch — то же самое, но явная ошибка в логе. Исправляется выравниванием group в oscam.server и oscam.user.

Ридер в статусе connecting бесконечно — чаще всего firewall. Проверьте, что исходящий порт (12000 или тот, что у вашего источника) не заблокирован. На некоторых роутерах исходящие соединения на нестандартные порты фильтруются. Проверка: telnet sharehost.example 12000 — если не подключается, проблема в сети.

Кириллица или Windows-переносы строк в конфигах — если редактировали файлы в Windows-редакторе и скопировали на ресивер, могут остаться CRLF-окончания строк (\r\n вместо \n). OScam парсит такие файлы с ошибками, часто без явного сообщения. Конвертация: dos2unix oscam.server.

Локальная карта не читается — если CCcam ещё не выгружен, он держит /dev/dvb/adapter0/ca0. OScam не может открыть устройство. Убедитесь, что процесс CCcam остановлен: killall CCcam или через менеджер плагинов Enigma2. После этого перезапустить OScam.

Reshare слишком высокий — параметр reshare = 3 или выше означает, что ваши клиенты могут раздавать карты трём уровням вниз. Некоторые источники это отслеживают и банят линию за избыточную пересдачу. Ставьте reshare = 1 или 0.

Можно ли запускать CCcam и OScam одновременно на одном ресивере?

Технически — да, но с оговорками. Они не должны слушать один и тот же порт (по умолчанию оба хотят 12000). И главная проблема: только один процесс может держать устройство локальной карты /dev/dvb/adapter0/ca0. Если у вас есть физическая карта — её захватит тот, кто запустился первым. Второй будет работать только как клиент к внешнему источнику. На практике при полном переходе CCcam просто отключают.

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

Тот же порт, что стоял в строке C: вашего CCcam.cfg. Обычно это 12000, но это не обязательное правило — порт задаёт владелец источника. В OScam он идёт в параметр device = sharehost.example,12000. Менять порт со своей стороны нельзя — он должен точно совпадать с тем, что открыт на сервере источника.

Почему карты подключились, а каналы не открываются?

Самая частая причина — несовпадение group между блоком [reader] и блоком [account]. Карты есть, но аккаунт их не видит из-за разных групп. Вторая причина — не настроен или не запущен dvbapi в oscam.conf. Третья — CAID или ident отфильтрован в [account]. Смотрите oscam.log: строки group mismatch и no matching reader точно укажут на причину.

Где в OScam задаётся reshare, который в CCcam был числом в строке F:?

На уровне конкретного клиента — параметр cccreshare в блоке [account] в oscam.user. Глобально — параметр reshare в секции [cccam] в oscam.conf. Если в [account] не задано явно — наследуется глобальное значение. Reshare = 1 означает, что клиент может раздать полученную карту одному уровню своих клиентов. Чем выше цифра — тем глубже цепочка пересдачи.

Нужно ли конвертировать CCcam.cfg автоматически или переписывать вручную?

Конвертеры существуют, но дают неполный результат: group не проставляются, au не привязывается, cccversion не учитывается. Для небольшого числа линий (до 10-15 строк C: и F:) надёжнее переписать вручную по таблице соответствия из этой статьи. Так сразу понимаешь структуру и не получаешь мусорный конфиг, который потом часами отлаживаешь.

OScam поддерживает локальную карту через тот же ридер, что и CCcam?

Да. Локальная карта настраивается как отдельный блок [reader] в oscam.server с protocol = internal и device = /dev/dvb/adapter0/ca0. Это полностью отдельный блок от cccam-ридера — у каждого свой label и своя group. Оба могут быть активны одновременно, OScam сам выбирает, кто декодирует конкретный CAID на основе приоритетов.

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_tv_bot to bookmarks — they publish maintenance notices before SEMrush or uptime monitors raise alerts.