Маленькие хитрости и особенности IPTV ресиверов

У нас на работе используются ресиверы фирм ADI и PBI

Эта заметка - больше напоминания самому себе о маленьких хитростях, и рецепты "как сделать" (со временем очень многое к сожаленнию забывается)


Необходимо перегрузить удаленно ресивер, но нестандартным способом

ADI - зайти телнетом на ресивер, набрать волшебное словосочетание "enable adi", затем несколько раз нажать "Enter" - появится приглашение, затем можно набрать команду RESET_UNIT

1
2
3
4
5
6
7
g# telnet 192.168.0.201
Trying 192.168.0.201...
Connected to 192.168.0.201.
Escape character is '^]'.
Magic Word: <b>enable adi</b>
 
MX1><b>RESET_UNIT</b>

PBI - Два способа

1. зайти телнетом. логин root, дефолтный пароль 12345. Ввести команду reboot 

2. SNMP, например /usr/bin/snmpset -v1 -c private $pbi_ip 1.3.6.1.4.1.1070.3.1.1.23.0 i 1


Как получить уровень сигнала, битрейт потока и т.п. параметры для того чтобы, например, вставить их в mrtg

PBI

1
2
snmpget -v1 -Ofn -c private 192.168.15.242 1.3.6.1.4.1.1070.3.1.1.104.1.1.7.0
.1.3.6.1.4.1.1070.3.1.1.104.1.1.7.0 = INTEGER: 8

Выдается BER в следующем формате XYYZ или 8. Если XYYZ то это равно числу X.YY умножить на 10 в степени минус Z т.е. = X.YYe-Z, если 8 - то меньше 10 в степени минус 8, т.е. = 10-8

1
2
snmpget -v1 -Ofn -c private 192.168.15.233 1.3.6.1.4.1.1070.3.1.1.104.1.1.6.0
.1.3.6.1.4.1.1070.3.1.1.104.1.1.6.0 = INTEGER: 610

Выдает strength в dBm/10, в данном случае -61.0 dBm. Аналогично по этому .1.3.6.1.4.1.1070.3.1.1.104.1.1.8.0 оиду доступно число C/No умноженное на 10 и по оиду .1.3.6.1.4.1.1070.3.1.1.104.1.1.9.0 доступно число Eb/No умноженное на 10.

Оид .1.3.6.1.4.1.1070.3.1.1.104.1.1.3.0 отвечает за параметр который в HDMS называется "Input Total Bitrate", .1.3.6.1.4.1.1070.3.1.1.104.1.1.4.0 совпадает с параметром "Input Valid Bitrate". Это параметры для тюнеров dvb-s2. Для ASI-входов, соответствующие оиды это .1.3.6.1.4.1.1070.3.1.1.104.1.2.3.0 и .1.3.6.1.4.1.1070.3.1.1.104.1.2.4.0

ADI

здесь способ поинтересней. Заключаетяся в том что у ADI встроенный вебсервер отдает .xml файлы, надо только знать их название. Например по адресу http://receiver_ip/dvb-s2.1.xml - находится информация по первому тюнеру, аналогично dvb-s2.2.xml - второй тюнер, ipout.1.xml - настройки первого ип-оут, ipout.2.xml - настройки второго. Соответственно из этих файлов можно получить все полезную информацию, вот пример dvb-s2.1.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
<adiCfg ver="1.0">
   <dvbs2-in id="dvb-s2.1">
      <info name="Lock Status" value="ON"/>
      <info name="Board Mode" value="DVBS"/>
      <ctrl name="Select Preset" value="Preset 2" constraints="Preset 1|Preset 2"/>
      <ctrl name="Redundancy" value="OFF" type="bool"/>
      <ctrl name="Acq Step" value="0"/>
      <ctrl name="Roll Off" value="AUTO" constraints="AUTO|0.35|0.25"/>
      <ctrl name="Spectral Inversion" value="AUTO" constraints="AUTO|No Inversion|Invert"/>
      <info name="Receive Level" value="-14. 0 dBm"/>
      <info name="Gain Margin" value=" 21.21 dB"/>
      <info name="BER After RS Decode" value="0 e-6"/>
      <info name="EB/NO" value=" 31. 0 dB"/>
      <info name="Scan Frequency" value="12055"/>
      <info name="Hardware ID" value="1"/>
      <ctrl name="Input Bit Rate" value="72 Mbs" constraints="Bypass|54 Mbs|72 Mbs|108 Mbs"/>
      <info name="Actual Bit Rate" value="72 Mbs"/>
      <preset id="1">
         <info name="Mode" value="DVBS2"/>
         <ctrl name="Frequency" value="12207"/>
         <ctrl name="Lnb Frequency" value="10600"/>
         <ctrl name="Symbol Rate" value="27500"/>
         <ctrl name="Polarization" value="HORIZONTAL" constraints="VERTICAL|HORIZONTAL|NONE"/>
         <ctrl name="22KHz" value="ON" type="bool"/>
         <ctrl name="Modulation" value="QPSK" constraints="AUTO|QPSK|8PSK|16QAM"/>
         <ctrl name="FEC" value="AUTO" constraints="AUTO|NONE|1/2|2/3|3/4|4/5|5/6|6/7|7/8|8/9|9/10|1/4|1/3|2/5|3/5|ALL"/>
         <ctrl name="Pilot Detect" value="OFF" type="bool"/>
      </preset>
      <preset id="2">
         <info name="Mode" value="DVBS"/>
         <ctrl name="Frequency" value="12054"/>
         <ctrl name="Lnb Frequency" value="10750"/>
         <ctrl name="Symbol Rate" value="27500"/>
         <ctrl name="Polarization" value="VERTICAL" constraints="VERTICAL|HORIZONTAL|NONE"/>
         <ctrl name="22KHz" value="ON" type="bool"/>
         <ctrl name="FEC" value="AUTO" constraints="AUTO|NONE|1/2|2/3|3/4|4/5|5/6|6/7|7/8|8/9|9/10|1/4|1/3|2/5|3/5|ALL"/>
      </preset>
   </dvbs2-in>
</adiCfg>

пример ipout.1.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 
<adiCfg>
   <ip-out id="ipout.1">
      <ctrl name="Input" value="DVB-S2 1" constraints="DVB-S2 1"/>
      <info name="Linked to" value="DECODER 1"/>
      <ctrl name="State" value="ON"/>
      <info name="Accumulated Bit Rate" value="8014064" units="b/s"/>
      <ctrl name="Filtering Mode" value="Multiple sockets" constraints="Multiple sockets"/>
      <info name="Max Pids" value="(4 of 32)"/>
      <info name="Max Services" value="(4 of 10)"/>
      <socket name="Socket 1" id="1">
         <info name="Bit Rate" value="4033728"/>
         <ctrl name="Mode" value="Service Filter" constraints="Blocked|Service Filter|BypassAll"/>
         <ctrl name="Ip" value="239.250.0.113"/>
         <ctrl name="Port" value="1234"/>
         <ctrl name="Check Sum" value="OFF"/>
         <ctrl name="CBR Enabled" value="OFF"/>
         <ctrl name="CBR Rate" value="0"/>
         <ctrl name="Services" value="2"/>
      </socket>
      <socket name="Socket 2" id="2">
         <info name="Bit Rate" value="3980336"/>
         <ctrl name="Mode" value="Service Filter" constraints="Blocked|Service Filter|BypassAll"/>
         <ctrl name="Ip" value="239.250.2.31"/>
         <ctrl name="Port" value="1234"/>
         <ctrl name="Check Sum" value="OFF"/>
         <ctrl name="CBR Enabled" value="OFF"/>
         <ctrl name="CBR Rate" value="0"/>
         <ctrl name="Services" value="6"/>
      </socket>
      <socket name="Socket 3" id="3">
         <info name="Bit Rate" value="0"/>
         <ctrl name="Mode" value="Blocked" constraints="Blocked|Service Filter|BypassAll"/>
         <ctrl name="Ip" value="239.0.0.1"/>
         <ctrl name="Port" value="1234"/>
         <ctrl name="Check Sum" value="OFF"/>
         <ctrl name="CBR Enabled" value="OFF"/>
         <ctrl name="CBR Rate" value="0"/>
         <ctrl name="Services" value="10812"/>
      </socket>
      ....
      <socket name="Socket 10" id="10">
         <info name="Bit Rate" value="0"/>
         <ctrl name="Mode" value="Blocked" constraints="Blocked|Service Filter|BypassAll"/>
         <ctrl name="Ip" value="239.0.0.1"/>
         <ctrl name="Port" value="1234"/>
         <ctrl name="Check Sum" value="OFF"/>
         <ctrl name="CBR Enabled" value="OFF"/>
         <ctrl name="CBR Rate" value="0"/>
         <ctrl name="Services" value=""/>
      </socket>
   </ip-out>
</adiCfg>

tags: