Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Версия 1.15 (2013-08-18) (paranoia)
- * Reader CAMD csS378x исправлена ошибка, которая приводила к подвисанию ридера
- * Reader DRE3/Exset добавлена обработка нешифрованных ECM
- * Balancer mode=3 все одинаковые запросы отправляются на один ридер, счетчик не увеличивается
- + Reader поддержка SOCKS4a прокси, для ридеров, которые работают через TCP
- + Reader эксперементальная поддержка CCCAM протокола
- + Reader type = batch EMM/ECM запросы отрабатываются внешним shell-скриптом
- + Core секция batch позволяет отправлять EMM/ECM запросы из внешнего shell-скрипта
- + Core шифрованный файл конфигурации (openssl aes-128-cbc), пароль задается ключем -P password
- + DVB secured_config шифрованный конфиг, который расшифровывается определенной комбинацией переключения каналов
- + emucworks поддержка нано 8060
- + Viaccess добавлены алгоритмы дешифрования ECM (D2 02 0F xx) и (D2 02 11 xx)
- + Core поддержка ARM
- Версия 1.14 (2013-05-03) (day123)
- * Core исправления в расчетах ecm_ttl, время жизни подсчитывается локально для каждого ридера, с момента поступления запроса в ридер
- * CAMD35 исправлена ошибка в версии x86_64
- * Tuner исправлена ошибка с подвисанием декодирования и определениея длины пакета Openbox
- + Reader добавлена опция emm_priority
- + Core добавлена кодировка Exset
- * Reader исправлена ошибка загрузки бинарных прошивок PIC и AVR
- * DVB иправления в алгоритме работы с CCW
- + STAPI поддержка карт Irdeto на ресиверах Fortis
- * Cygwin снижена нагрузка на процессор
- * DVB рестарт EMM фильтров при обновлении состояния любого из ридеров
- Версия 1.13 (2013-03-28) (STeady)
- * DVB переписана поддержка STAPI
- * STAPI одновременное декодирование PiP, отложенной записи.
- * STAPI моментальное декодирование звуковой дорожки при смене последней
- + STAPI добавлена возможность назначения соответствия PMT файла к PTI устройству (stapi_pmt_map)
- + Reader NewCAMd добавлена опция multiport, упрощающая конфигурацию подключения к серверу с одинаковыми параметрами доступа, но разными портами
- * emuvia поправлена работа с идентом 030B00
- * emucworks поправлена работа с ключами 00/01
- Версия 1.12 (2013-02-23) (doublemu)
- + Reader добавлена эмуляция goldcard/bluecard, funcard
- Версия 1.11 (2012-12-12) (FreeOne/12)
- + Core тестовая сборка для x86_64 систем
- + DVB добавлен стриминг TS потоков с аппаратным декодированием на ресиверах с DVB API >= 3 и программным наш i386
- + Reader NewCAMd добавлена возможность прописать до 8-ми серверов, переключаются в случае проблем покругу
- + Core учетные записи пользователей хранятся в AVL деревьях
- + Core реализация кеширования доступа к памяти (object pool) для ECM запросов, пользовательского контекста и тд.
- + Conax поддержка RSA оверкрипта (ключ rsamod)
- * STAPI испарвления в инициализации карты на Fortis ресиверах
- * Filter изменения в алгоритме правила limit (антикаскадинг)
- * Irdeto исправлена подписка на групповые EMM
- * Server ключи allow_ip и deny_ip не работали
- * Server уменьшено кол-во создаваемых тредов (потоков)
- * DVBAPI восстановлена работа опции dre_fix
- * Core отключен алгоритм Нейгла
- * Filter исправлена ошибка в ACCEPT при переходе непосредственно на указанный ридер
- * CCCAM исправлена ошибка обработки keepalive
- * CAMD35 исправлена ошика обработки длинных ECM
- * WebIF исправлнеа ошика отображения "длинных" страниц
- Версия 1.10 (2012-04-15) (EasterEgg)
- + Filter изменения в логике прохождения цепочек фильтров, добавлены типы pre, post, both, emm
- + Filter расширены операторы сравнения и присвоения, добавлены переменные, появилась возможность фильтрации по содержимому ECM/EMM и многое другое.
- + Filter добавлено правило uniq, ограничение по IP
- + Filter добавлено правило timeframe, позволяющее изменять логику фильтров с привязкой к текущему времени
- + Filter добавлено правило demux, номер DVB демультиплексора, позволит переназначить запросы PVR на определенный ридер
- + Filter в действии ACCEPT можно указывать имя ридера, запрос пойдет напрямую в ридер минуя балансировщик
- + Filter добавлено правило entrust, позволяющее отправлять на декодировани запрос, который пришел с двух разных источников и совпадает
- + Balancer добавлен round-robin алгоритм (mode = 3) позволяет равномерно распределять нагрузку между несколькими ридерами
- + Balancer добавлен режим (mode = 4) параллельного декодирования несколькими ридерами
- + CAMd35 асинхронный режим работы (async_mode = 1)
- + DVBAPI реализовано декодирование PiP и PVR на устройствах с Enigma2
- + DVBAPI добавлена поддержка DVB-S2 транспондеров
- + DVBAPI добавлена поддержка VDR DVBAPI plugin, type = VDR в секции [DVB]
- + Core опция provider поддерживает маску 0:0, 0:FFFFFF, FFFF:0 FFFF:FFFFFF = любой CAID:Ident
- чтобы отправлять все запросы на сервер CAMD, нужно в provider секции reader прописать 0:0
- 0500:FFFFFF - отправлять все запросы с CAID 0500 не проверяя идент.
- + Reader добавлены эмуляторы NDS и Irdeto2
- + Reader добавлена поддержка карт кодировки Seca
- + Server в секциях server, webif, account добавлены ключи allow_ip и deny_ip позволяющие контролировать доступ на уровне IP адреса
- + Config добавлен тип секции [section_name.preset], в которой можно задавать параметры поумолчанию для [section_name]
- + Config добавлены макросы $name, задаются в секции global и подменяют значения во всех параметрах в конфиге
- * DVBAPI AzBox исправления в режиме emm_filter_mode = 1
- * DVBAPI исправлена ошибка при определении провайдера кодировки Seca
- * DVBAPI в ecm.info добавлена информация о сервере декодировавшем запрос
- * STAPI исправлена ошибка инициализации дескремблера на Amiko Alien 8900 Spark
- * Phoenix исправлена ошибка, карта не сбрасывалась, если в буфере были данные
- * NewCAMd исправлен алгоритм обработки keepalive
- * Reader NagraVision исправлена ошибка приводившая к падению демона, исправлена ошибка переодического недекодирования запроса
- * Reader переоткрытие COM-порта в случае ошибки, должно помочь при выпадении USB ридеров
- * Reader исправлена ошибка в поддержке системы кодирования Cryptoworks
- * Reader убрана задержка инициализации ридера при старте
- * Reader в CYGWIN версии исправлена ошибка определения наличия карты в картоприемнике
- Версия 1.09 HighLoad fix(2011-11-14)
- * Reader newcamd устранена ошибка приводившая к большой загрузке процессора
- Версия 1.09 (2011-11-12)
- + Server поддержка протокола CCcam в режиме сервера
- + Videoguard (NDS) добавлена поддержка CWE Key, проверено на 090D
- + Viaccess добавлено определение карт 5-й версии.
- + Viaccess добавлена возможность передать карте boxid.
- + AUTOCONF добавлена опция коммандной строки -a для генерации конфигурационного файла
- + AUTOCONF импорт конфигурации mgcamd, camd, cccam
- * Reader добавлена опция пересчета контрольной суммы СW (recalc_cw_checksum = 1)
- * Reader исправлена ошибка в протоколе обмена с картой, не отрабатывалаось 0x60 после INS ACK
- * Filter в условии limit подсчитываются только декодированные запросы
- * Filter ChID содержит номер версии кодировки DRE
- * Filter добавлена проверка геокода (geo) для кодировки Viaccess
- * NewCAMd исправлена ошибка подключения к удаленному серверу, переписана работа с сокетами
- * CAMD35 добавлена поддержка "длинных" ECM
- + Core ecm_dedup_delay режим задержки одинаковых ECM, если однотипная ECM отправлена на один из ридеров,
- то остальные однотипные запросы будут приостановлены на ecm_dedup_delay мс, при получении ответа от ридера -
- приостановленные ECM декодируются из кеша, в ином случае отправляются на декодирование в ридер по
- окончанию времени задержки
- * Core при обрыве соединения с удаленным сервером, опправленные запросы, на которые не получены ответы,
- повторно добавляются в очередь на отправку (ранее запрос не декодировался со статусом expired).
- * Core оптимизирован алгоритм проверки кешированных ECM
- * CCcam server исправлена ошибка, не блокировался пользователь во время активной сессии
- + DRE возобновлена поддержка модулей первой версии, задействован сигнал DTR для переключения между MSP и ATMEL,
- RTS - сброс модуля.
- * Conax вычитывются все SA карты, не работало обновление подписки и активация карт Irdto в режиме Conax тунелирования
- * Core EMM не доставлялись серверу в случае о ошибки соединения с сервером
- * Server переписана серверная часть с использованием epoll() и разделением рабочего потока, в результате уменьшена нагрузка на процессор
- * Core использование read/write locks вместо mutex lock (возможен одновременный доступ на чтение кеша и тд.)
- * Filter неверно работало условие при ChID равном FFFF, кодировка Irdeto
- * Conax исправлена ошибка активации карт 0B0F
- * DVBAPI изменен алгоритм регистрации EMM фильтров, должно уменьшить загрузку на AzBox. Параметр emm_filter_mode=1
- * DVBAPI добавлен параметр adapter для запуска на нескольких DVB картах
- + WEBIF просмотр текущих подписок на картах
- * WEBIF переписана серверная часть с использованием poll()
- * STAPI исправлена ошибка приводившая к зависанию ресивера при удалении процесса WiCard
- + NagraVision добавлена поддержка системы кодирования
- * Tuner исправлена ошибка работы с ресиверами по COM порту
- + Core отложенный запуск ридеров, должно решить проблему с подвисанием, если инициализация сети не закончена, так же ускорен процесс запуска
- * Core переписана серверная часть, что должно уменьшить кол-во расконнектов.
- + Core добавлен backtrace лог падения процесса по seg fault
- + DVBAPI добавлена поддержка AU систем BetaCrypt (17xx) и NagraVision (18xx)
- * Core исправлены ошибки приводившие к падению процесса
- Версия 1.08 (2011-06-09)
- + DRECrypt поддержка карт DRE3 (4AE1:02)
- * DRECrypt поддержка оверкрипта
- * DRECrypt 52-я карта определяется как 4AE0:15
- * DRECrypt исправлена ошибка EMM_S для 52-й карты
- * DRECrypt исправлена ошибка EMM_S (AU) карт Триколор Сибирь
- * Irdeto исправлена ошибка в передаче карте CAMKey
- * Irdeto не отдавались UA провайдеров 01-03, из-за чего не работал апдейт подписок
- * Viaccess исправлен AU ключей.
- * DVBAPI исправления в AU Irdeto
- * Phoenix не работала опция card_detect под Linux
- * Card, Tuner, декодировался только один запрос.
- * DVBAPI исправлена ошибка обработки EMM Viaccess
- * DVBAPI затиралась частота текущего транспондера в реализации OpenXCAS, требуется для работы с TWIN протоколом
- * DVBAPI исправлена ошибка записи ключей в дескремблер, проявлялось в виде фризов в кодировке NDS (где передается только четный или нечетный ключ)
- * ST40 (SH4) Не определялись карты на Enigma, не работал DVBAPI
- * Viaccess skip_geo не отправлять геокод в карту.
- + Cryptoworks добавлена поддержка системы кодирования (DVB, cardreader)
- + Phoenix добавлен параметр clock_freq, задается в Гц, позволяет разогнать карту (проверено на чипе FT232)
- + Videoguard (NDS) добавлена поддержка карт NDS, проверено на 090F и 093E
- + NewCAMd асинхронный режим работы async_mode
- * Filter ошибка в отработке цепочки BANNED:=x
- + Filter добавлена инициализация маркера в секциях [card] и [server], что позволяет использовать в условии признак принадлежности к источнику запроса
- + Filter добавлено условие RLEN - длинна ECM запроса
- + Filter добавлено условие по группе, инициализация в секциях [card], [server] и [account], что позволяет использовать в условии признак принадлежности к источнику запроса
- + Filter добавлено действие BETAWRAP - тунелирование
- + Filter добавлено действие NEXT - переход к следующему фильтру
- * Core изменения в выделении памяти для потока (thread), по умолчанию выделялось ulimit -s памяти для стека
- + Core добавлен поиск по wildcard имен секций, работает в auto_provider, chain и еще где-то где привязка идет к имени секции
- + CAMD35 добавлена опция not_decoded_answer_mode
- Версия 1.07 (2011-01-13) fix
- * DVBAPI при работе с кодировкой Irdeto, не перебирались ChID из-за ошибки в алгоритме принудительной задежки ECM (ecm_delay)
- * DVBAPI OpenXCAS проблемы с декодированием каналов из-за ошибки в алгоритме принудительной задежки ECM (ecm_delay)
- Версия 1.07 (2011-01-10) Памяти отца посвящается.
- + AUTOCONF режим автоконфигурации в случее если файл конфигурации не найден
- + TWIN экспериментальная поддержка протокола, проверено с Microbox
- + Discovery protocol автоматическая настройка паритетов в локальной сети
- + Reader cache добавлен тип кеш, все запросы попавшие в этот ридер отрабатываются только из ECM кеша
- + Balancer балансировщик запросов, позволяет задавать сценарий декодирования запроса, группы и цепочки
- + Server автоматическое завершение неактивных TCP сессий (keepalive)
- + Добавлено логирование IP адреса сетевых клиентов
- + NewCAMd в сервере добавлена опция guest_account, которая позволяет мапить пользователей, которых нет в списке на один эккаунт без учета пароля
- + Добавлен режим автообновления провайдеров серверной части при изменении провайдеров в секции reader, если прописан ключ auto_provider, как результат - клиенты перечитывают новые CAID:ProvID
- + DVBAPI параметр dre_fix = 1 - игнорировать информацию о номере провайдера, помогает в случае, если сервер возвращает 0-й провайдер
- * Исправлена ошибка балансировки ECM (запросы отправлялись на неактивный ридер)
- * DVBAPI исправлена ошибка при инициализации PID фильтра, не учитывался ProvID
- * CAMd3 добавлен параметр suppress_cmd08, помогает для кодировки DRE, в случае если клиент перебирает все PID
- * NewCAMd (Extended newcamd) исправлена ошибка инициализации соединения, из-за которой mgcamd не отправлял CAID:ProvID
- * Изменения в логике отработки EMM запросов, фильтрация не только по UA но и по SA для DRE
- * Filter расширены опции BANNED, FAKECW, ACCEPT
- * DRECrypt E2 отдает PMT таблицу с ошибкой, вместо CAID 4AE1 - CAID 4AE5, из-за чего не работает HD Life в связке с картоприемником GS9300
- * DRECrypt улучшения в алгоритме инициализации картоприемника GS9300
- * DVBAPI STAPI исправлена ошибка инициализации STPTI Slot, проверено на оригинальной прошивке cuberevo.13554
- Версия 1.06 (2010-11-07)
- + Betatunnel добавлена поддержка тунелирования
- + Добавлен фильтр в секции [tuner]
- + CAMD35 клиент и сервер (TCP и UDP)
- + NewCAMd добавлена возможность отдавать несколько CAID на одном порту (Extended newcamd)
- + NewCAMd автодетект WiCard сервера, позволяет использовать один порт для декодирования разных CAID
- + Вывод информации в syslog
- + UDP логирование
- + Время жизни ECM запроса, задается в секции reader
- + Логирование ECM запросов
- + Добавлена возможность выполнения картой комманд из файла exec_cmd_file
- + DVBAPI добавлена функция чтения SDT таблиц (название сервиса в логе и ecm.info файле)
- * Изменения в логике отработки EMM запросов, фильтрация по UA и SA в теле EMM запроса
- * DRECrypt исправлена ошибка при разборе ECM для карт "52-й" серии в режиме DRE1
- * DRECrypt исправлено ошибка вычитывания текущей подписки
- * Phoenix исправлена ошибка поддержки PTS карт Irdeto, поддержка SmarGo, изменения в алгоритме инициализации карты
- * Cryptoworks EMU исправлена ошибка разбора файла ключей
- * DVBAPI обнуление счетчика попыток декодирования в случае успешного запроса
- * DVBAPI CA дескриптор Cryptoworks не содержит номер провайдера, инициализация ECM фильтра по совпавшему CAID
- * DVBAPI исправлена ошибка приводившая к задержке декодирования канала при переключении
- * DVBAPI STAPI работает PIP (проверено на Openbox S серии)
- * DNotify исправлена ошибка обработки сигналов, приводило к завершению процесса
- * NewCAMd keepalive для ридера, используются неблокируемые сокеты, подвисала сессия
- * NewCAMd not threadsafe, исправлено
- * NewCAMd не передавался CAID EMM (в случае с Extended newcamd не правильно подставлялся CAID EMM)
- * Приложение отваливалось по SIGPIPE
- * NewCAMd клиент не инициализировал SA, в результате чего могли частично не проходить апдейты карты
- * Изменения в серверной части, используется poll, макс. кол-во дескрипторов задается в ОС
- - Сборка без библиотек libz, librt (clock_gettime, ftime)
- - Исключен параметр au_reader.
- ? STAPI нет поддержки карт Irdeto (T14)
- Версия 1.05 (2010-08-25)
- + Добавлен глобальный кеш ECM
- + Добавлена возможность изменения размера очереди ECM запросов
- + Добавлена балансировка запросов между однотипными ридерами
- + Добавлена поддержка WiDongle (радиоудленитель COM-порта)
- + Реализована поддержка DVBAPI, (DVBAPI 1, DVBAPI 3, STAPI, QBoxHD, AzBox, DGSAPI)
- + Поддержка встроенных картоприемников STAPI, OpenXCAS (AzBox)
- + Добавлена система фильтров
- + В Cygwin версии реализована работа с COM портом через функции Windows
- + Реализованы EMU Viaccess (1, 2, 3), Cryptoworks, BISS
- + Поддержка OverCryptProcessor
- + Viacces поддержка нового формата ЕСМ (два запроса в одном пакете)
- * Исправлена ошибка в диспетчере запросов, в некоторых случаях время декодирования увеличивалось на 500мс
- * Viacces исправлена ошибка при обработке EMM
- * DRECrypt исправлена ошибка при обработке индивидуальных EMM
- * Устранена ошибка при инициализации [reader] type = tuner
- * Ключи в секции [reader]: force_caid, force_provider, force_ua для тонкой настройки работы с картами DRE
- - Удалена поддержка CCW (Constant CW)
- Версия 1.04 (2010-03-25)
- + Реализована поддержка картоприемника DreamBox 600,800
- + DRECrypt реализована поддержка модулей первой версии (Atmel и MSP)
- + DRECrypt добавлена поддержка карт с ATR 3B 15 11 12 01 01 11 07
- * DRECrypt исправлена ошибка вычисления DRE ID
- * DRECrypt изменения в алгоритме обработки EMM
- Версия 1.03 (2010-02-25)
- * DRECrypt поддрежка карт версии 2, провайдер 11 (новые карты Триколор)
- * DRECrypt изменения в алгоритме обработки EMM
- + DRECrypt поддержка карт Платформа HD (провайдер 14), общение с картой через картоприемник GS9300HD
- + Viaccess эмулятор кодировки версии 2.6
- Версия 1.00 (2009-10-25)
- #ключи командной строки
- # -h help показать помощь
- # -d daemon запустить в режиме демона
- # -v verbose
- # -c [filename] use config filename использовать файл конфигурации отличный от /etc/wicardd.conf и ./wicardd.conf
- # -l [filename] use log filename
- # -a сохранить результат автоконфигурации в конфиг файле
- # -b [arg] configure WiBase конфигурирование радиобазы
- # -w [arg] configure WiCard конфигурирование радиозонда
- # -C calibrate mode
- # -A spectrum analizer mode
- # -R log rssi/lqi
- # -L [channel] card logger логирование протокола обмена карты и радиозонда
- # -P password пароль для дешифрования файлов конфигурации зашифрованных openssl aes-128-cbc
- # openssl enc -aes-128-cbc -pass pass:YourPassword -in wicardd.conf -out wicardd.conf.aes
- # -w "arg=1:arg1=:arg2"
- #args:
- #show показать настройки радиозонда
- #devaddr=1..7 присвоить адресс радиозонду
- #atrno=0..15 использовать ATR номер 0-15
- #atrconf= дополнительные настройки протокола обмена карты доступа
- #atrX=3B240030423030 задать значение для ATR номер X (atr0=, atr1=,... atr15=)
- #freqno=0..3 использовать частотный канал 0-3
- #updatefw обновить прошивку радиозонда
- #calibrate калибровать частоту передатчика ()
- #пример: wicardd -w "devaddr=3:atrno=5:freqno=1"
- # -b "arg=1:arg1=:arg2"
- #args:
- #show показать настройки радиобазы
- #freqno=0..3 использовать частотный канал 0-3
- #updatefw обновить прошивку радиобазы
- #DM800 mknod -m 660 /dev/ttyS0 c 4 64
- [section_name.preset] #задает значение по умолчанию, для всех секций [section_name]
- debug = 4
- #пример:
- [reader.preset] #задает значение по умолчанию, для всех секций [reader]
- reconnect_delay = 100
- debug = 4
- [server.preset] #задает значение по умолчанию, для всех секций [server]
- max_not_decoded = 5
- debug = 4
- [global] #глобальные настройки
- name = test_server #имя сервера, применяется для включения секций по маске active_if
- #@/path/file вычитать имя из файла
- log = /tmp/wicardd.log #имя лог-файла, по-умолчанию выводится в консоль
- log_size = 1 #максимальный размер лога в килобайтах
- log_udp = hostname:port #сетевое логирование на hostname:514
- syslog = 1 #вывод информации в syslog
- debug = 0 #включить глобальные отладочные сообщения 0 - выключено, 3 - детальный лог
- daemon = 0 #1 - запускать в режиме демона
- ecm_cache_size = 128 #размер ECM кеша
- pending_ecm_cache_size = 128 #размер буфера
- account_file = ./wicard.account #путь к файлу с описанием пользователей
- account_diff_file = ./wicard.account.diff #путь к файлу с описанием пользователей
- active = 0 #отлючение секции
- default_balancer_debug = 0
- thread_stack_size = 128 #размер стека выделяемого потоку в килобайтах
- thread_priority = 0 #приоритет потоков 0..99
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс, значение по умолчанию
- dre_hack = 4 #кол-во сравниваемых байт UA для индивидуальных EMM CAS DRE
- ecm_dedup_delay = 1000 #задержка отправки ECM запроса в мс
- filter_gvar_array_size = 32 #размер массива глобальных переременных для фильтров
- $replace_val1 = val #
- $replace_val2 = val
- [webif] #
- port = 8081 #порт HTTP сервера
- debug = 3 #уровень логирования 0 - 3
- active = 0 #отлючение секции
- active_if = name* #активировать секцию если имя сервера соответствует wildcard
- active_if = !name* #активировать секцию если имя сервера не соответствует wildcard
- allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
- deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей
- [card] #секция конфигурации радиозондов (одна секция на один радиозонд)
- name = card1 #
- cas = irdeto #тип эмулируемой кодировки карты доступа (auto, conax, viaccess, irdeto, dre)
- channel = 2 #сетевой адрес/канал радиозонда
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
- #список провайдеров, которые будут анонсированы клиенту
- #provider = 1234@00010203:5678@04030201
- auto_provider = all, reader_name,caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
- send_null_ins = 1 #отправлять тюнеру команду NULL (60) в период ожидания CW
- delay_after_ecm = 500 #дополнительная задержка после отправки ECM серверу
- ascserial = 0000000000U0000000A
- ACS = 0608 #Irdeto ACS
- coco = MCR
- dre_version=1 #DRECrypt version 1/2
- write_delay = 0
- filter = name,idx #перечень используемых фильтров
- debug = 3 #уровень логирования 0 - 3
- active = 0 #отлючение секции
- filter_group = 0 #группа, используется в условиях фильтра
- [card.auto] #если секция присутствует - автоматически будут добалены процессы
- #обрабатывающие запросы от радиозондов не описанных в секции(ях) [card]
- cas = auto
- channel = x
- debug = 3
- send_null_ins = 1 #отравлять команду 60 ресиверу (карта занята)
- delay_after_ecm = 400
- active = 0 #отлючение секции
- filter_group = 0 #группа, используется в условиях фильтра
- [server] #конфигурация сервера
- type = newcamd525 #тип сервера (поддерживается newcamd525)
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
- #список провайдеров, которые будут анонсированы клиенту
- #provider = 1234@00010203:5678@04030201
- auto_provider = all, reader_name, caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
- port = 34000 #порт сервера
- key = 0102030405060708091011121314 #DES ключ
- debug = 3 #уровень логирования 0 - 3
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- extended_newcamd = 0 #отдавать несколько CAID на одном порту
- #1 - отдаем все что прописано в данной секции в provider
- #2 - сканируем все сервера типа newcamd и передаем информацию прописанную в provider найденных серверов
- keepalive = 300 #закрывать неактивное соединение по истечению n секунд
- max_not_decoded = N #отправлять нулевой DW в случае N неудачных попыток декодирования
- guest_account = account_login #
- filter_group = 0 #группа, используется в условиях фильтра
- force_auto_update = 0 #1 - отдавать принудительно номера карт для AU
- allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
- deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей
- extra_data = 1 #1 - отправлять расширенный статус декодирования WiCardd клиенту
- [server] #конфигурация сервера
- type = cs357x | cs378x #тип сервера CAMD35
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
- #список провайдеров, которые будут анонсированы клиенту
- #provider = 1234@00010203:5678@04030201
- auto_provider = all, reader_name,caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
- port = 34000 #порт сервера
- debug = 3 #уровень логирования 0 - 3
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- keepalive = 300 #закрывать неактивное соединение по истечению n секунд
- suppress_cmd08 = 0 #
- not_decoded_answer_mode = 0 # 0 - по умолчанию
- # 1 - отправлять нулевой DW
- # 2 - игнорировать запрос, ничего не отправлять в ответ
- filter_group = 0 #группа, используется в условиях фильтра
- allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
- deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей
- [server] #конфигурация сервера
- type = cccam #тип сервера CCcam
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
- #список провайдеров, которые будут анонсированы клиенту
- #provider = 1234@00010203:5678@04030201
- auto_provider = all, reader_name, caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
- port = 34000 #порт сервера
- cc_version = 2.0.00 #версия
- cc_build = 1892 #билд
- debug = 3 #уровень логирования 0 - 3
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- keepalive = 300 #закрывать неактивное соединение по истечению n секунд
- max_not_decoded = N #отправлять нулевой DW в случае N неудачных попыток декодирования
- filter_group = 0 #группа, используется в условиях фильтра
- allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
- deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей
- #секция конфигурации источника DCW
- [reader]
- name = #уникальное имя
- type = newcamd525 #тип - клиент newcamd525
- account = login:password@host:15000:0102030405060708091011121314
- socks = 127.0.0.1:5090 #хост:порт SOCKS прокси
- filter = name #перечень используемых фильтров
- debug = 3
- reconnect_delay = 10 #в секундах
- keepalive = 0 #в секундах/0 - отключить
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- repeat_section = 1 #вычитать секцию N раз
- auto_update = 1 #включить поддержку EMM запросов
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- async_mode = 1 #включить/выключить асинхронный режим (запросы передаются без ожидания ответа от сервера)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- reconnect_to_account_ip = name #подключаться к серверу, используя IP адрес подключенного пользователя
- force_auto_update = 0 #отправлять все ЕММ с CAID:provid не учитывая UA/SA
- #
- extra_data = 1 #1 - отправлять расширенную информацию о клиенте серверу
- multiport = 2000-2005 #диапозон портов подключения к серверу
- multiport = 10,11,12,13 #список портов подключения к серверу
- [reader]
- name = #уникальное имя
- type = cs357x | cs378x #тип - клиент CAMD35
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров
- #provider = 1234@00010203:5678@04030201
- account = login:password@host:15000
- socks = 127.0.0.1:5090 #хост:порт SOCKS прокси
- filter = name #перечень используемых фильтров
- debug = 3
- reconnect_delay = 10 #в секундах
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- repeat_section = 1 #вычитать секцию N раз
- auto_update = 1 #включить поддержку EMM запросов
- emm_cache = 1 #включить EMM кеш
- timeout = 1500 #время ожидания ответа от сервера
- retry_count = 1 #кол-во попыток
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = cccam #тип - клиент CCCAM
- account = login:password@host:15000
- socks = 127.0.0.1:5090 #хост:порт SOCKS прокси
- filter = name #перечень используемых фильтров
- debug = 3
- reconnect_delay = 10 #в секундах
- keepalive = 0 #в секундах/0 - отключить
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- repeat_section = 1 #вычитать секцию N раз
- auto_update = 1 #включить поддержку EMM запросов
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- async_mode = 1 #включить/выключить асинхронный режим (запросы передаются без ожидания ответа от сервера)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- reconnect_to_account_ip = name #подключаться к серверу, используя IP адрес подключенного пользователя
- force_auto_update = 0 #отправлять все ЕММ с CAID:provid не учитывая UA/SA
- [reader]
- name = #уникальное имя
- type = sci #встроенный картоприемник (WiCard)
- debug = 3 #уровень логирования 0 - 3
- handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
- emm_process_delay = 10 #
- write_delay = 0
- force_crypted_cw = 1 #не проверять контрольную сумму CW
- ocp = 1 #overcrypt proccessor
- wait_active = 1 #ожидать активации ридера (таймаут 13 сек)
- force_caid = 0 #DRE CAID fixup
- force_provider = 0 #DRE provider fixup
- force_ua = 0000 #DRE UA fixup
- force_ua = 0000 #Irdeto UA fixup
- filter = name #перечень используемых фильтров
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- camkey = #Irdeto camkey
- camkey_data = #Irdeto camkey_data
- boxid = #4 байта boxid
- cwekey = #NDS 26 байт CWE key
- boxkey #nagra boxkey
- rsamod = #nagra/conax RSA модуль
- rsaexp = #
- auto_update = 1 #включить поддержку EMM запросов
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- block_subs_emm = 0 #блокирование EMM с подпиской
- exec_cmd_file = ./card.cmd #путь к файлу с коммандами, которые будут отправлены на карту после инициализации
- #для DRE 59 xx xx xx CS, контрольная сумма пересчитываеся
- skip_geo = 0 #не отправлять геокод (Viaccess)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- emm_priority = 0 #задает более высокий приопритет для EMM, по умолчанию EMM отправляются в случае, если в очереди нет ECM запросов
- [reader]
- name = #уникальное имя
- type = tuxbox #встроенный картоприемник DreamBox
- device = /dev/sci0
- debug = 3 #уровень логирования 0 - 3
- handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
- emm_process_delay = 10 #
- write_delay = 0
- filter = name #перечень используемых фильтров
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- camkey = #Irdeto camkey
- camkey_data = #Irdeto camkey_data
- boxid = #NDS 4 байта boxid
- cwekey = #NDS 26 байт CWE key
- aeskey = #AES ключ
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- skip_geo = 0 #не отправлять геокод (Viaccess)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- emm_priority = 0 #задает более высокий приопритет для EMM, по умолчанию EMM отправляются в случае, если в очереди нет ECM запросов
- [reader]
- name = #уникальное имя
- type = stapi #встроенный картоприемник ST40
- device = SC0 #картоприемник SC0, SC1
- debug = 3 #уровень логирования 0 - 3
- handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
- emm_process_delay = 10 #
- write_delay = 0
- filter = name #перечень используемых фильтров
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- camkey = #Irdeto camkey
- camkey_data = #Irdeto camkey_data
- boxid = #NDS 4 байта boxid
- cwekey = #NDS 26 байт CWE key
- aeskey = #AES ключ
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- skip_geo = 0 #не отправлять геокод (Viaccess)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- emm_priority = 0 #задает более высокий приопритет для EMM, по умолчанию EMM отправляются в случае, если в очереди нет ECM запросов
- [reader]
- name = #уникальное имя
- type = openxcas #встроенный картоприемник AzBox
- device = /dev/scard #номер картоприемника
- debug = 3 #уровень логирования 0 - 3
- handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
- emm_process_delay = 10 #
- write_delay = 0
- filter = name #перечень используемых фильтров
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- camkey = #Irdeto camkey
- camkey_data = #Irdeto camkey_data
- boxid = #NDS 4 байта boxid
- cwekey = #NDS 26 байт CWE key
- aeskey = #AES ключ
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- skip_geo = 0 #не отправлять геокод (Viaccess)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- emm_priority = 0 #задает более высокий приопритет для EMM, по умолчанию EMM отправляются в случае, если в очереди нет ECM запросов
- [reader]
- name = #уникальное имя
- type = phoenix #phoenix
- device = /dev/ttyS0 #COM-порт
- device = COM1 #COM-порт под Windows
- intrts = 1 #RTS управляется через контроллер (для внутреннего порта D-Link)
- t14 = 1 #Irdeto protocol
- timeout = 1000 #
- debug = 3 #уровень логирования 0 - 3
- handle_pts = 1 #включить поддержку переключения скорости обмена с картой доступа
- card_detect = 1 #определять наличии карты по сигналу CTS
- clock_freq = 3571200 #частота клока картоприемника в Гц
- filter = name #перечень используемых фильтров
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- camkey = #Irdeto camkey
- camkey_data = #Irdeto camkey_data
- boxid = #NDS 4 байта boxid
- cwekey = #NDS 26 байт CWE key
- aeskey = #AES ключ
- emm_cache = 1 #включить EMM кеш
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- skip_geo = 0 #не отправлять геокод (Viaccess)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- emm_priority = 0 #задает более высокий приопритет для EMM, по умолчанию EMM отправляются в случае, если в очереди нет ECM запросов
- [reader]
- name = #уникальное имя
- type = tuner #использовать тюнер с установленной картой доступа как источник
- device = /dev/ttyS0 #COM-порт
- device = COM1 #COM-порт под Windows
- baudrate = 115200 #скорость обмена
- protocol = bomba #протокол (HSIC, Bomba, DSR9500, Alpha)
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров
- #provider = 1234@00010203:5678@04030201
- write_delay = 0
- timeout = 50 #таймаут чтения данных
- debug = 3
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = emuvia #эмулятор viaccess
- debug = 3 #уровень логирования 0 - 3
- file = ./SoftCam.Key #файл с ключами
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = emucworks #эмулятор CryptoWorks
- debug = 3 #уровень логирования 0 - 3
- file = ./SoftCam.Key #файл с ключами
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = emubiss #поддежка BISS
- debug = 3 #уровень логирования 0 - 3
- file = ./SoftCam.Key #файл с ключами
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = emunds #эмулятор videoguard
- debug = 3 #уровень логирования 0 - 3
- file = ./SoftCam.Key #файл с ключами
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = emuirdeto #эмулятор irdeto2
- debug = 3 #уровень логирования 0 - 3
- file = ./SoftCam.Key #файл с ключами
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = drecas #
- device = /dev/ttyS0 #COM-порт
- device = COM1 #COM-порт под Windows
- dre_cas_type = 3 # 1 - модуль первой версии (ZM_2.04) (2-5V, 10-RxD(компьютер TxD), 12-TxD(компьютер RxD), 13-GND)
- # сигнал DTR используется для переключения между MSP и ATMEL, RTS - сброс модуля.
- #
- # 3 - проприетарный картоприемник GS9300HD (1-5V, 2-RxD(компьютер TxD), 3-TxD(компьютер RxD), 4-GND)
- # сигналы расписаны поотношению к модулю и картоприемнику, RxD - входной сигнал для модуля, TxD - выход
- # Следовательно схема должна выглядеть примерно так:
- # PC_TxD -> MAX232 -> MOD_RxD
- # PC_RxD <- MAX232 <- MOD_TxD
- # GND ------------------- GND
- emm_key_file = ./ #файл в котором будут сохраняться ключи DRE при работе с модулем первой версии
- timeout = 2000 #
- debug = 3 #
- write_delay = 1 #
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- type = ocp #OverCryptProcessor
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- [reader]
- name = #уникальное имя
- type = cache #кеш ридер, все запросы попавшие в очередь этого ридера отрабатываются только из кеша
- debug = 3 #уровень логирования 0 - 3
- active = 0 #отлючение секции
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров
- #provider = 1234@00010203:5678@04030201
- [reader]
- name = #уникальное имя
- type = twin #TWIN протокол
- device = /dev/ttyS0 # COM-порт
- device = COM1 #COM-порт под Windows
- baudrate = 115200 #скорость обмена
- timeout = 2000 #
- debug = 3 #
- write_delay = 1 #
- ecm_queue_size = 8 #размер очереди запросов
- ecm_ttl = 5000 #время жизни ECM запроса в мс
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс
- recalc_cw_checksum = 0 #пересчитать контрольную сумму СW
- file = ./freq_table.txt #файл в котором прописывается связь между CAID:ProvID/SID и частотами транспондера (не нужен при работе с DVB)
- #формат файла:
- #CAID:ProvID/SID,орбитальная позиция * 10, частота транспондера в МГц
- #0500:023700/2B00,360,12322
- [reader]
- name = #уникальное имя
- type = goldcard | funcard #поддерживается эмуляция 16F84 и 90S8515
- fw_file = ./fw.hex #путь к файлу прошивки
- intee_file = ./int.hex #путь к файлу данных внутренней EEPROM (необязательный параметр)
- extee_file = ./ext.hex #путь к файлу данных внешней EEPROM (необязательный параметр)
- extee_size = 16 #размер внешней EEPROM в килобитах (необязательный параметр)
- guardtime = 1 #extra guard time задержка в ETU между посылкой байт в "карту"
- [reader]
- type = batch
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список обслуживаемых провайдеров
- #provider = 1234@00010203:5678@04030201
- request_handler = /tmp/request_handler.sh
- #при получении запроса, запускается скрипт с параметрами:
- # arg1 client name (text string)
- # arg2 CAID (decimal)
- # arg3 ProvID (decimal)
- # arg4 SID (decimal)
- # arg5 ECM/EMM body (hex string)
- #скрипт должен вернуть DW в hex, в случае если запрос не декодирован, вернуть все 0
- #для EMM ответ игнорируется
- debug = 3
- [batch]
- request_producer = /tmp/request_producer.sh
- #скрипт должен возвращать в stdout:
- #CAID:ProvID:SID:ECM all values in hex
- #1234:5678:1:800010111111111111111111111111111111
- response_handler = /tmp/response_handler.sh
- #после обработки запроса запускается скрипт с параметрами:
- # arg1 CAID (decimal)
- # arg2 ProvID (decimal)
- # arg3 SID (decimal)
- # arg4 ECM body (hex string)
- # arg5 DW (hex string)
- # arg6 status (quoted text string)
- period = 10 #период выполнения скрипта request_producer в секундах
- filter = 0,name1,name2 #использовать фильтр
- ecm_queue_size = 16 #размер очереди ответов
- debug = 3
- [tuner] #
- device = /dev/ttyS0
- device = COM1 #COM-порт под Windows
- #device = /dev/tts/0
- baudrate = 115200 #скорость обмена (9600, 19200, 38400, 57600, 115200)
- protocol = auto #auto, HSIC, SSSP, Bomba, GI, DSR9500, GS, Alpha, DSR9500old, GBox
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA
- #список провайдеров, которые будут анонсированы клиенту
- auto_provider = all, reader_name, caid #автоматический импорт всех идентов с reader устройств с таким же CAID или по имени
- globo = 1 #если 1 - сразу отдавать ноли в DCW для неподдерживаемых идентов (ускоряет переключение каналов)
- #write_delay = 1 #ms
- #timeout = 50 #ms
- debug = 3
- #caid = 0500
- filter = 0,name1,name2 #использовать фильтр
- [account] #секция конфигурации пользователей (повторяется для каждого пользователя)
- #используется для разграничения доступа к серверам описанным в секции [server]
- login = wicard
- password = wicard
- auto_update = 1 #accept AU
- filter = 0,name1,name2 #использовать фильтр
- provider = caid:provid,provid;caid@UA:provid@SA,provid@SA #список провайдеров, которые будут анонсированы клиенту
- allow_ip = 127.0.0.1/32, 10.0.0.1/8 #разрешить доступ только с перечисленных адресов/сетей
- deny_ip = 127.0.0.1/32, 10.0.0.1/8 #запретить доступ с перечисленных адресов/сетей
- [dvb]
- type = auto #auto, DVBAPI1, DVBAPI3, STAPI, OpenXCAS, DGSAPI, QBoxHD, VDR
- adapter = 0 #номер адаптера
- cadev_offset = 0 #fix для Enigma на IPBox
- filter = 0,name1,name2 #использовать фильтр
- beta_tunnel = 0 #тунелирование запросов
- decode_try_count = 0 #кол-во попыток декодирования канала
- dre_fix = 1 #1 - игнорировать провайдер DRE, помогает в случае если сервер возвращает provider = 0 (4ae1:0)
- sdt = 1 #вычитывать названия сервисов из потока
- ecm_info = 1 #создавать файл /tmp/ecm.info
- #1 - формат WiCard
- #2 - формат mgcamd
- twin = 0 #поддержка TWIN протокола (вычитывается SDT и NIT для определения частоты транспондера и орбитальной позиции спутника)
- ecm_delay = 0 #принудительная задержка отправки ECM запроса в мс, требуется для работы с TWIN протоколом
- rerequest_not_decoded = 0 #отправлять повторный запрос если не декодировано
- ecm_double_check = 1 #сравнивать предыдущую и текущую ECM и отправлять на декодирование если совпадают
- auto_update = 1 #включить AU
- emm_filter_mode = 0 #0 - вычитывается весь EMM PID, фильтруется WiCard
- #1 - вычитывать EMM PID с настроенными фильтрами для linux DVB API
- debug = 3
- camd_socket = 1 #создать сокет /tmp/camd.socket
- stapi_pmt_map = 0,1,2 | <стока с мапингом> #соответствие pmt файлов к демультиплексору
- #пресеты:
- #0 (fortis, octagon, openbox, PGI) - "pmt1_1.tmp:PTI;pmt1_2.tmp:PTI;pmt1_3.tmp:PTI;pmt2_1.tmp:PTI1;pmt2_2.tmp:PTI1;pmt2_3.tmp:PTI1;pmt3_1.tmp:PTI2"
- #1 (ipbox) - "pmt.tmp:PTI2;pmt1.tmp:PTI;pmt2.tmp:PTI1"
- #2 (kathrein) - "pmt_PTI0.tmp:PTI0;pmt_PTI1.tmp:PTI1;pmt_PTI2.tmp:PTI2;pmt_PTI3.tmp:PTI3;pmt_PTI4.tmp:PTI4"
- #
- #или формат:
- # pmt_файл1 : PTI_устройство ; pmt_файл2 : PTI_устройство ; ...
- # можно перечислить до 10 пар, через точку с запятой
- stapi_pmt_map = pmt1_1.tmp:PTI;pmt1_2.tmp:PTI;pmt1_3.tmp:PTI;pmt2_1.tmp:PTI1;pmt2_2.tmp:PTI1;pmt2_3.tmp:PTI1;pmt3_1.tmp:PTI2
- multi_decode = 0 #1 - отправлять ECM со всех каналов текущего транспондера
- #2 - отправлять ECM со всех каналов транспондеров описанных параметром dvbs
- #3 - отправлять TS потоки со всех каналов транспондеров описанных параметром dvbs
- #4 - отправлять EMM с переключением транспондеров описанных параметром dvbs через tune_period секунд
- multi_decode_demux = 0 #номер демультиплексора
- multi_decode_resend_ecm = 0 #0 - отправлять ECM только при смене таблицы 80/81
- #1 - отправлять ECM после каждого цикла сканирования транспондера
- multi_decode_recheck_pat = 0 #1 - отслеживать изменение PAT и пересканировать транспондер
- multi_decode_sid = 01,0A #список каналов, которые будут декодироваться
- multi_decode_ignore_sid = 01,0A #список игнорируемых каналов, не вычитывать PMT
- dvbs = freq:pol:sr:lnb:diseqc #lnb - X 10750, U - Universal
- dvbs2 = freq:pol:sr:fec:roll-off:mod:lnb:diseqc:filter_group
- #freq frequency in MHz
- #pol H,V,R,L
- #sr symbolrate
- #fec 12,23,34,45,56,67,78,35,910, 0 - AUTO
- #roll-off factor 35,25,20, 0 - AUTO
- #mod QPSK, 8PSK
- #lnb - X 10750, U - Universal
- #diseqc 0 do not use, 1-16 port number
- multi_decode_diseqc = 0 # diseqc version 0 - 1.0 (commited); 1 - 1.1(uncommited)
- tune_timeout = 500 #
- tune_period = 600 # время в секундах, через которое, в 4 режиме, будет залочен следующий транспондер в списке
- multi_decode_scan_timeout = #
- multi_decode_softcsa = 0
- lnb_sharing = 0
- check_cc = 0
- stream_buffer_size = #
- stream_udp = host:port # стримить все TS на host:port
- stream = sid_hex1:host1:port #стримить привязанные к SID vpid, apid, если SID = 0, стримить все каналы
- stream = sid_hex2:host2:port #
- stream = sid_hex3:host3:port #
- dmx_buffer_size = #
- dmx_pes_buffer_size = #
- remap_sid_on_vpid = 0 #
- secured_config = /var/tuxbox/config/wicardd.conf.dvbaes
- #путь к шифрованному конфигу, который будет подгружен в случае правильной комбинации переключения каналов
- #паролем служит последовательность из SID каналов в десятичном исчислении, через тире, маскимальная длина комбинации - восемь каналов
- #в примере приведена последовательность: Кинорейс 1, Кинорейс 2, Кинорейс 3, Кинорейс 4, Кинорейс 5
- #openssl enc -aes-128-cbc -pass pass:11106-11107-11110-31001-18101 -in wicardd.conf.dvbplain -out wicardd.conf.dvbaes
- #----------------------------------------------------------------------------------------
- # Фильтры.
- #----------------------------------------------------------------------------------------
- [filter]
- type = pre|post|both|emm
- rule = [условие];[условие];[присвоение];[присвоение];[функция];[условие];[действие]
- debug = 0
- операторы присвоения:
- := присвоить
- += прибавить
- -= вычесть
- /= разделить
- %= модуль
- *= умножить
- |= ИЛИ
- &= И
- ^= исключающее ИЛИ
- операторы отношения
- = равны
- != не равны
- >= больше или равно
- <= меньше или равно
- &&= истенно если результат (A & B) не равен нулю
- [] индексация данных начиная с 0, адрес задается в десятичной системе ecm[0] = 80,81
- переменные:
- gvar[] глобальные, доступны для всех фильтров
- lvar[] локальные, привязаны к цепочке фильтров секций account, dvb, tuner
- rvar[] переменные запроса, доступны для всех фильтров через которыее проходит запрос
- EMM
- emm[] доступ к содержимому EMM, emm[0] - номер таблицы, emm[2] - младший байт размера EMM
- caid
- pid
- rlen
- ip ip = 127.0.0.1/32,10.0.0.1/8 проверить принадлежность к IP адресу
- service_type тип:
- SERVICE_TYPE_NEWCAMD = 4
- SERVICE_TYPE_CS357 = 5
- SERVICE_TYPE_CS378 = 6
- SERVICE_TYPE_CCCAM = 7
- service_id номер порта сервера на который пришел запрос
- timeframe
- rvar[]
- lvar[]
- gvar[]
- client имя клиента отправившего запрос client=DVB*,test_account,tuner*
- dump вывод содержимого ECM/EMM в лог
- reset
- accept
- reject
- next
- skip
- ECM pre/post/both
- caid
- provid
- ident
- sid
- pid
- chid
- group
- demux
- status : ECM_REQ = 0,
- ECM_PENDING = 1,
- ECM_DECODED = 2,
- ECM_DECODED_CACHE = 3,
- ECM_DECODED_FAKE = 4,
- ECM_NOT_DECODED = 5,
- ECM_REJECTED = 6,
- ECM_DECODE_ERROR = 7,
- ECM_TIMEOUT = 8
- ecm_delay
- service_type
- service_id
- ecm[]
- rlen
- class
- overcrypt
- banned
- limit
- geo
- timeframe
- ip
- rvar[]
- lvar[]
- gvar[]
- client
- betawrap
- betaunwrap
- hash вывести в лог хеш сигнатуру запроса
- ban
- dump
- reset
- accept
- reject
- next
- skip
- fakecw
- обход фильтров:
- pre-фильтр источника запроса -> [балансировщик или ридер] -> pre-фильтр ридера ->
- -> [декодирование] -> post-фильтр ридера -> post-фильтр источника
- источником запросов являются server/account, dvb, tuner
- список pre/post/both/emm фильтров задаются ключем filter в секциях конфигурации account, dvb, tuner, reader
- в процесе обхода, последовательно, выбираются нужные pre/post/both/emm фильтры из списка
- пример:
- [filter]
- name = fRpre #pre-фильтр ридера
- type = pre
- rule = accept
- [filter]
- name = fRpost #post-фильтр ридера
- type = post
- rule = accept
- [filter]
- name = fRemm #EMM-фильтр ридера
- type = emm
- rule = accept
- [reader]
- filter = fRpre,fRpost, fRemm
- [filter]
- name = fSpre #pre-фильтр источника
- type = pre
- rule = accept
- [filter]
- name = fSpost #post-фильтр источника
- type = post
- rule = accept
- [filter]
- name = fSemm #EMM-фильтр источника
- type = emm
- rule = accept
- [dvb]
- filter = fSemm,fSpost,fSpre
- при поступлении ECM от DVBAPI, запрос пройдет по цепочке фильтров: fSpre->fRpre->fRpost->fSpost
- при поступлении ЕММ от DVBAPI, запрос пройдет по цепочке фильтров: fSemm->fRemm
- rule = lvar[0]+=1;lvar[0]>=100;lvar[0]:=0;lvar[1]+=1;lvar[1]>=2;lvar[1]:=0
- rule = sid=123;lvar[1]=0;accept
- rule = sid=456;lvar[1]=1;accept
- примем lvar[0] за счетчик запросов, а lvar[1] - счетчик состояний
- получается, что по поступлению запроса мы увеличиваем счетчик на 1, проверяем на переполнение (>=100), обнуляем его, увеличиваем на один счетчик состояния, проверяем его на переполнение (>=2), сбрасываем
- # [filter]
- # rule = [условие];[условие];[присвоение];[присвоение];[действие]
- # условия:
- # rlen - длинна тела ECM/EMM 80 7[0 12] 12, задается в hex
- # caid, ident, class, sid, chid, group
- # caid=0500,0B00 - положительно, если caid запроса один из перечисленных
- # overcrypt - проверка флага оверкрипта (GS9300)
- # geo - прверка на гео, задается в hex(VIA)
- # limit n,s,b,m - n колличество запросов за s секунд, (b) бонусных запросов за (m) минут.
- # то есть: limit=1,10,15,10 означает, что за десять минут можно послать 600/10 + 15 = 75 запросов
- # banned - проверить на бан
- # uniq = (0,1,2) | (8,16) TCP: 0 - не проверять, 1 - проверять только IP, 2 - проверять IP и source port
- UDP: 0 - не проверять, 8 - проверять только IP, 16 - проверять IP и source port
- # entrust = 0|1 "доверенный" все запросы
- # timeframe = hhmm,HHMM проверить текущее время на попадение во временные рамки с hhmm по HHMM
- # timeframe = hhmm,HHMM,0,1,2 через запятую указаны дни недели, 0 - вс., 1 - пн., 6 - сб., 7 - вс.
- # demux = 0,1,2 номер демультиплексора (demux_id в DVB)
- #
- # для всех условий поддерживается логическое NOT
- # caid!=0500,0B00 - положительно, если caid запроса отличается от перечисленных
- #
- # присвоение:
- # caid := N
- # ident := N
- # chid := N
- # group := N
- # banned := N
- #
- # так же почти для всех условий вожно задавать - больше или равно, меньше или равно
- # caid >= N
- # ident <= N
- #
- #
- # действия:
- # accept - отработать запрос используя балансировщик по умолчанию
- # accept = balancer name - отработать запрос используя балансировщик запросов
- # accept = reader name - отработать запрос используя указанный ридер
- # reject - отвергнуть запрос и прервать проверку условий
- # next - перейти к следующему фильтру (по умолчанию)
- # skip=N - пропустить N правил
- # ban=N - забанить на N минут
- # fakecw=N - вернуть пустой CW при N = 0, случайный при N > 0
- # betawrap - тунерирование запроса
- # betaunwrap - детунерирование запроса
- # reset = balancer name обнулить состояние балансировщика
- # reset = reader namе сбросить ридер
- [filter]
- name = name
- debug = 3
- rule = caid=500;ident=030600;reject
- rule = caid=500;ident=023700;accept
- rule = caid=4ae0;ident=0;caid:=4ae1;ident:=11;accept
- rule = fakecw
- #-----------------------------------------------------------------------------------------
- #
- #-----------------------------------------------------------------------------------------
- [balancer]
- name = name #уникальное имя
- name = default #в случае переопределения настроек для балансировщика, который используется поумолчанию
- chain = 0,1;2;3 #цепочка ридеров задается имя ридера
- #chain = card_1, сard_2; card_3
- #что означает - запрос будет сбалансирован (по степени загрузки ридера) между двумя ридерами card_1 и card_2 и в случае,
- #если не будет декодирован, то будет передан в следующую по цепочке группу в которой только один ридер card_3
- mode = 0 #0 - выбирать ридер с наименьшим временем декодирования запроса (кол-во запросов в очереди * среднее время декодирования)
- #1 - выбирать ридер с наименьшим кол-вом запросов в очереди
- #2 - выбирать первый ридер в группе
- #3 - round-robin
- # chain = cardA/3, сardB/5, cardC/123
- # через косую черту задается кол-во запросов, которые можно отдать в ридер, если порядковый номер поступившего запроса больше,
- # то запрос отправляется в следующий по цепочке ридер, если это последний ридер и кол-во запросов превышено,
- # обнуляются счетчики запросов всех ридеров и запрос передается в начало цепочки
- #4 - параллельное декодирование несколькими ридерами
- debug = 3
- [exmlog]
- log_path = /tmp/
- queue_size = 10
- log_ecm = 1 #логировать ECM запросы
- log_emm = 1 #логировать EMM запросы
- exm_flush_delay = 30 #задается в секундах
- ecmlog_mode = 0 #
- skip_fakecw = 0 #не сохранять в логе запросы с фейковыми ответами
- skip_rejected = 0 #не сохранять в логе отвергнутые запросы
- [discovery]
- active = 1
- debug = 0
- reader_debug = 0 #уровень логирования для создаваемых ридеров
- request_ad = 0 #запрашивать тестовые настройки с сервера wicard.tv
- bind = 1 #22339
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement