Categories: homepageUncategorized

Common Interface (CI) for descrambling TV channels

Hello everybody! This post describes how Common Interface (CI) works on Joker TV device. Common Interface (CI) is required for descrambling (decrypt) TV channels. Usually operators do the encryption for paid TV content (not free content), and end users have to buy Conditional Access Module (CAM) and smart cards for decryption. Smart card should be inserted into CAM, then the CAM should be inserted into a Common Interface (CI) slot on Joker TV device. Here is a photo below:

Joker TV with inserted CAM module and smart card

Note: Joker TV firmware revision 0x37 or newer and libjokertv version 1.10.2 or newer is recommended to work with Common Interface (CI).

Common Interface (CI) and CAM usage

Joker TV does the Common Interface (CI) and CAM initialization. If it is successful then a green LED near the CI should come on. Then we should use joker-tv console app for RF tuning and configuring CI and CAM. For testing purposes I will use following command:

joker-tv -d 6 -f 12303000000 -s 27500000 -y 18 -z 10750,10750,0 -p -q 31001 -c -g

This command will tune the satellite DVB-S2 transponder 12303MHz 27500H on Eutelsat 36B satellite. This transponder broadcasts encrypted content for largest Russian satellite TV operator “Tricolor TV”. I’m using Neotion DRE Pro CAM and smart card officially ordered from Tricolor TV. If everything is ok you should see decrypted content in the out.ts file. Here is the correct output for the above mentioned command:

Channel freq 12303.00 MHz, LO 10750.00 MHz, L-Band freq 1553.00 MHz 22kHz tone Off
CAM detected
CAM: Validated. Infostring:NEOTION CAM CI MANID: 0xffff DEVID:1 CONFIGBASE:0x1fe CONFIGOPTION:0xf
CAM: CAM interface initialized
CAM: EN50221 link initialized
EN50221 initialized
joker_en50221_server_worker: Server is listening on 7777
 CAM info: 
 Application type: 01
 Application manufacturer: 4a60
 Manufacturer code: 0001
 Menu string: Multi Pro CAM 
 Info string: NEOTION CAM CI
 Supported CAIDs: 
 CAID: 2710
 CAID: 7be1
 CAID: 7be0
 CAID: 4ae1
 CAID: 4ae0
 CAID: 2710
 CAID: 7be1
 CAID: 7be0
 CAID: 4ae1

joker_en50221_sync_cam: 1 program(s) will send to CAM 
CA PMT object sent into CAM for program=31001 listmgmt=3
Enable TS traffic through CAM

INFO: status=0 (LOCK) ucblocks=0, rflevel=58.975 dBm, SNR 12.200 dB, BER 1.17e-02, quality 2
USB ISOC: all/complete=7930.599262/6899.801235 transfer/sec 14.50 MBytes 57.972239 mbits/sec, 61.957807 calls/sec

As you can see, CAM is successfully configured and has started the decryption.

Man-Machine Interface (MMI)

Man-Machine Interface (MMI) is a control interface to interact with CAM. Joker-tv console app exports MMI interaction to TCP port (by default localhost:7777). You can use simple telnet console app to connect to MMI and some useful information can be obtained through it. Here is an example:

# telnet 127.0.0.1 7777
Connected to 127.0.0.1.

Main menu

Press Ok to select, or Exit to quit
 1: Information
 2: Settings

Smart card

Press Ok to select, or Exit to quit
 1: General information
 2: Providers

Subscriptions
 Provider: Tricolor TV
 Press Ok or Exit to quit
 1: - Class 000:2018/02/28-2018/04/02
 2: - Class 001:2018/02/28-2018/04/02
 3: - Class 012:2015/12/07-2015/12/13

In the above listing I have obtained the available subscriptions that are saved to my smart card. Date ranges specify the period of time that I have been allowed to see paid TV content. CAM is unable to decrypt channels after this period of time if I do not extend my subscriptions.

Analyzing interaction with CAM

Joker-tv app can dump all communications to a file with CAM. Option ‘–cam-pcap cam.pcap’ should be used for this. This file contains all traffic control to/from CAM in PCAP format. We can use the Wireshark application to analyze it. Here is screenshots of Wireshark app after opening cam.pcap:

CAM and Host interaction in Wireshark

I have marked the most important information in red. This command was sent from “Host” to “CAM” and contains command (CA PMT command ID: ok descrambling (0x01) to decrypt TV program number 0x7919. This TV program consists of one Video (TS PID 0x1201) and one Audio (TS PID 0x1202) stream. CAM starts decryption after receiving this command from the host.

Transport Stream (TS) traffic to and from CAM

Now, Joker TV should pass TS through CAM and it will transparently decrypt TS traffic and send it back to the Joker TV. Signals form and timings defined in EN50221 standard in section “A.5.5.4 Signal Description”.

Signal to and from CAM according to EN50221 standard

MCLKI signal is a clock generated by Joker TV. According to EN50221, the clock period is 111 ns which means 9 MHz. Data (TS) transmitted on MDI0-7 lines in parallel. This gives us maximum bitrate on Common Interface (CI):

9 MHz * 8 bit = 72 Mbit/sec

Return channel clock (MCLKO) is generated by the CAM module and actually can be clocked at any frequency. As stated in EN50221 – “There is no specification for delay between MCLKI and MCLKO. In the case of a module providing its own MCLKO, they may not even be the same frequency”. Joker TV Verilog implementation takes this into account and should work with any reasonable MCLKO frequencies.

All these lines are connected to a FPGA inside the Joker TV. For those who want to dig deeper into CI lines traced on Joker TV can check this post about hardware sharing.

CAM collection that I have successfully tested with Joker TV

Conclusion

Joker TV has fully supported Common Interface (CI) but is not limited to this functionality. It can be adopted to CAM’s specific set of features or even implement workarounds for known bugs. Please send me your success stories with descrambling TV channels using Joker TV and CAM. I will also maintain compatibility list of supported CAM’s.

Thank you, until next time!

Abylay Ospan

Share
Published by
Abylay Ospan

Recent Posts

  • EV
  • Solar

Floridian Unlimited – rollable solar panel for Electric Vehicles (EV)

I use "Floridian Unlimited" prototype in this video. 400W and 1000W models are planned. For instance, 1000W model can gives…

5 years ago
  • EV
  • Solar

Open Electric Car project

Open eCar Open Source Software for Electric Vehicle (EV) Open eCar project is open source software for electric car. The…

6 years ago
  • Uncategorized

Joker TV hardware functional testing with OpenHTF

Joker TV hardware functional testing with OpenHTF Functional Testing of PCBs is always used as a final manufacturing step. Functional…

6 years ago
  • Uncategorized

DTMB TS dumps (China)

Following TS dumps created on January 2018 in Changsha, Hunan Province, China. DTMB dump (722MHz) sands-722mhz.ts (50MB) This stream plays without problems…

6 years ago
  • Uncategorized

DVB-S/S2 blind scan with Joker TV

Hello everybody! This post describes satellite transponders (DVB-S/S2) blind scan with Joker TV’s universal USB DTV receiver.  Firstly, I will…

6 years ago
  • homepage
  • Uncategorized

High bandwidth USB Isochronous transfers

Hello everybody, this post describes data transfer over USB from Joker TV to a host using high bandwidth USB isochronous transfers…

6 years ago