Opened 13 years ago

Closed 12 years ago

#1914 closed defect (fixed)

DBVAPI: Canal Digitaal 0100:00006a and 0100:00006c ecmpid seca 2 / 3 selection

Reported by: theparasol Owned by: _network
Priority: blocker Component: DVBApi
Severity: high Keywords:
Cc: erik@… Sensitive: no

Description

Revision

5364 (although cli and webif reports 5363!) But I never seen it work with any revision :(

Issue Description

Canal Digitaal SD channels not decoded properly with 0100:00006a card in reader. Tested with RTL7 SD and RTL8 SD.
HD channels like NED1 HD en NED2 HD are decoded ok.

When the issue occurs

Always on SD channels, if I enable my cardserver that can decode irdeto 0622 than these SD channels will decode ok.

How the issue is reproducable

Insert 0100:00006a in cardreader and try to watch any SD channel, it seems to me the wrong SRVID is asked in combination with 0100:00006a, with iredeto 0622 this is ok

attach seca is with disabled cardserver my working 0100:0006a doesn't work on SD channels but does on HD!
attach irdeto is with enabled cardserver and SD works on irdeto 0622.

attch irdeto

Attachments (8)

oscamseca.txt (16.2 KB ) - added by theparasol 13 years ago.
oscamirdeto.txt (15.3 KB ) - added by theparasol 13 years ago.
cccamlog.txt (5.8 KB ) - added by theparasol 13 years ago.
cccam log working rtl7 SD
oscam_cd_5436.patch (707 bytes ) - added by deeptho 13 years ago.
patch for providers with 0 ecmpid on canaal digitaanl NL
cdsnlpatch.zip (1.4 KB ) - added by theparasol 12 years ago.
Simulcrypt V4 for all providers. No more misuse of availkeys
cdsnlpatchv5.zip (1.1 KB ) - added by theparasol 12 years ago.
Fixed: loadbalancer in case of ecm <> card mismatch
cdsnlpatchv5fixed.zip (1.1 KB ) - added by theparasol 12 years ago.
Fixed: loadbalancer in case of ecm <> card mismatch
cdsnlpatchv6tryfixforticket2468.zip (467 bytes ) - added by theparasol 12 years ago.
Tryfix for 2468 / code optimalization

Download all attachments as: .zip

Change History (55)

by theparasol, 13 years ago

Attachment: oscamseca.txt added

by theparasol, 13 years ago

Attachment: oscamirdeto.txt added

by theparasol, 13 years ago

Attachment: cccamlog.txt added

cccam log working rtl7 SD

comment:1 by Admin, 13 years ago

You cannot build a r5364 from trunk because this version only exists in the dynamic-threads branch.
To topic: You should really setup a correct oscam.dvbapi so that not all caids are tried blindly. Furthermore, it seems like you block these 0100 requests via your reader settings: services, ecmwhitelist or whatever.

comment:2 by theparasol, 13 years ago

BTW: nothing is blocked anywhere,

This is a simple log with only my local card in readerslot of DM800HD Openpli2

2011/06/07 20:12:51 2B1F94B0 c plain dvbapi-client granted (lokaal, au=auto (2 reader))
2011/06/07 20:12:51 2B1F94B0 c dvbapi: 1 entries read from oscam.dvbapi
2011/06/07 20:12:56 2B1F94B0 c dvbapi: [ADD PID 0] CAID: 0622 ECM_PID: 056D PROVID: 000000
2011/06/07 20:12:56 2B1F94B0 c dvbapi: [ADD PID 1] CAID: 1817 ECM_PID: 0711 PROVID: 02006A
2011/06/07 20:12:56 2B1F94B0 c dvbapi: [ADD PID 2] CAID: 0100 ECM_PID: 0649 PROVID: 00006A
2011/06/07 20:12:56 2B1F94B0 c dvbapi: [ADD PID 3] CAID: 0100 ECM_PID: 0711 PROVID: 00006A
2011/06/07 20:12:56 2B1F94B0 c dvbapi: new program number: 07D6 (0622:07D6 unknown)
2011/06/07 20:12:56 2B1F94B0 c lokaal (1817&000000/07D6/64:D73A): rejected group (0 ms) (of 0 avail 0) (no matching reader)
2011/06/07 20:12:56 2B0F94B0 r Error processing ecm for caid 0100, srvid 07D6 (servicename: RTL7 SD) on reader kaartlezer.
2011/06/07 20:12:56 2B1F94B0 c lokaal (0100&00006A/07D6/64:7A65): not found (232 ms) by kaartlezer (of 1 avail 1) (kaartlezer ins3c card res: 9
2011/06/07 20:12:56 2B1F94B0 c dvbapi: Start descrambling PID #3 (CAID: 0100) 2
2011/06/07 20:12:56 2B1F94B0 c lokaal (0100&00006A/07D6/64:D73A): found (288 ms) by kaartlezer (of 1 avail 1)
2011/06/07 20:13:03 2B0F94B0 r Error processing ecm for caid 0100, srvid 07D6 (servicename: RTL7 SD) on reader kaartlezer.
2011/06/07 20:13:03 2B1F94B0 c lokaal (0100&00006A/07D6/64:F7DE): not found (233 ms) by kaartlezer (of 1 avail 1) (kaartlezer ins3c card res: 9
2011/06/07 20:13:03 2B1F94B0 c lokaal (0100&00006A/07D6/64:6168): found (518 ms) by kaartlezer (of 1 avail 1)
2011/06/07 20:13:13 2B0F94B0 r Error processing ecm for caid 0100, srvid 07D6 (servicename: RTL7 SD) on reader kaartlezer.
2011/06/07 20:13:13 2B1F94B0 c lokaal (0100&00006A/07D6/64:6D02): not found (233 ms) by kaartlezer (of 1 avail 1) (kaartlezer ins3c card res: 9

2011/06/07 20:13:13 2B1F94B0 c lokaal (0100&00006A/07D6/64:139E): found (524 ms) by kaartlezer (of 1 avail 1)
2011/06/07 20:13:18 2AAC6C70 s thread 2AAC6C70 exit with signal 2
2011/06/07 20:13:18 2AAC6C70 s cardserver down

What is happening? Takes action to descramble and next is: error processing?!
Seems to me some wrong data is send to de local card by oscam!

comment:3 by BurnMasterRecords, 13 years ago

Nothing is wrong you must block the fake ECM Pids.

comment:4 by theparasol, 13 years ago

Tried to do that, don't know how. Even don't know what ecm pid are wrong.
I give up, stick to CCCam for use on dreambox :(

comment:5 by theparasol, 13 years ago

Found it!!!!

For all users with same problem do this:

oscam.dvbapi

P: 0100::0FAB:070B #NED1 SD
I: 0100::0FAB: #NED1 SD
P: 0100::0FAC:070C #NED2 SD
I: 0100::0FAC: #NED2 SD
P: 0100::0FAD:070D #NED3 SD
I: 0100::0FAD: #NED3 SD
P: 0100::07D4:070B #RTL4 SD
I: 0100::07D4: #RTL4 SD
P: 0100::07D5:070C #RTL5 SD
I: 0100::07D5: #RTL5 SD
P: 0100::0FA2:0709 #SBS6 SD
I: 0100::0FA2 #SBS6 SD
P: 0100::07EF:070F #Veronica SD
I: 0100::07EF #Veronica SD
P: 0100::1793:070E #Boomerang
I: 0100::1793 #Boomerang
P: 0100::07FF:0714 #Animax
I: 0100::07FF #Animax
P: 0100::07D6:0711 #RTL7 SD
I: 0100::07D6: #RTL7 SD
P: 0100::0FA3:070A #NET5 SD
I: 0100::0FA3: #NET5 SD
P: 0100::13AA:0134 #NAT GEO WILD
I: 0100::13AA: #NAT GEO WILD

Is it possible to enhance oscam dvbapi so the ignore and priority isn't needed in these cases? CCcam does it alright so there must be a way I think!

comment:6 by theparasol, 13 years ago

Efficiently it's selection of seca3 and seca2.
CCcam has an special priority settings. Try first seca2, second seca3 or first seca3 then other. Maybe something to enhance oscam with in a future version

comment:7 by pooyair, 13 years ago

Owner: set to _network

comment:8 by deeptho, 13 years ago

Unfortunately the above P ad I lines do not seem to work.

Take the case of RTL5 and oscam r5436.
I added the above lines to oscam.dvbapi
plus an additional
I: 0622
to make sure that this caid is not used

What I write below is also valid ith a minimal version of oscam.dvbapi:
I: 0622:
P: 0100::07D5:070C #RTL5 SD
I: 0100::07D5: #RTL5 SD

2011/06/20 21:00:33 34832490 c dvbapi: [ADD PID 0] CAID: 0622 ECM_PID: 0566
PROVID: 000000
2011/06/20 21:00:33 34832490 c dvbapi: [ADD PID 1] CAID: 1817 ECM_PID: 070C
PROVID: 00006A
2011/06/20 21:00:33 34832490 c dvbapi: [ADD PID 2] CAID: 0100 ECM_PID: 0644
PROVID: 00006A
2011/06/20 21:00:33 34832490 c dvbapi: [ADD PID 3] CAID: 0100 ECM_PID: 0000
PROVID: 00006A
2011/06/20 21:00:33 34832490 c dvbapi: new program number: 07D5 (RTL 5)
2011/06/20 21:00:38 34832490 c anonymous (1817&00006A/07D5/64:AC61): timeout (5101 ms)
2011/06/20 21:00:38 34832490 c dvbapi: try pids again #2
DT:dvbapi_set_filter_61 open: demux_id=0 demux_index=0 adapter_index=0 pid=0x70c
2011/06/20 21:00:38 34832490 c anonymous (1817&00006A/07D5/64:AC61): timeout (1 ms)
2011/06/20 21:00:38 34832490 c dvbapi: try pids again #3
2011/06/20 21:00:38 34832490 c dvbapi: can't decode channel
2011/06/20 21:00:38 34832490 c anonymous (1817&00006A/07D5/64:AC61): timeout (1 ms)

So for some reason only 1817&00006A is tried and none of the ecmpids for caid 100.
It is not clear why caid 100 is not even tried in this case.

However, as as you can see, one of the EMC PIDS is 0000, so even if caid 100 was tried
it might still use pid 0 which is absolutely wrong.

And now for some good news: with a patched version of oscam and the same oscam.dvbapi,
I get the following result:
2011/06/20 21:19:52 339FF490 c dvbapi: [ADD PID 0] CAID: 0622 ECM_PID: 0566
PROVID: 000000
2011/06/20 21:19:52 339FF490 c dvbapi: [ADD PID 1] CAID: 1817 ECM_PID: 070C
PROVID: 00006A
2011/06/20 21:19:52 339FF490 c dvbapi: [ADD PID 2] CAID: 0100 ECM_PID: 0644
PROVID: 00006A
2011/06/20 21:19:52 339FF490 c dvbapi: [ADD PID 3] CAID: 0100 ECM_PID: 070C
PROVID: 00006A
2011/06/20 21:19:52 339FF490 c dvbapi: new program number: 07D5 (RTL 5)
2011/06/20 21:19:52 339FF490 c dvbapi: Start descrambling PID #3 (CAID: 0100)
2011/06/20 21:19:52 339FF490 c anonymous (0100&00006A/07D5/64:7ABD): found (689 ms)

As you can see, it now tries 0100. And there is picture :->

Actually, this also opens all other channels even without lines in oscam.dvbapi.
Even comedy-central (the most difficult channel to open), opens.

by deeptho, 13 years ago

Attachment: oscam_cd_5436.patch added

patch for providers with 0 ecmpid on canaal digitaanl NL

comment:9 by theparasol, 13 years ago

Nice hack for tunnelled seca, hope it will be implemented!

Here no problem with RTL5 SD here, it must be your specific config, ecm pid is right!

Enhanced my list a little further:

#
# dvbapi configuration
#
# types:
# P - Priority
# format:
# P: <caid>:[<provider>]:[<srvid>]:[<ecmpid>]
# I - Ignore
# format:
# I: <caid>:[<provider>]:[<srvid>]:[<ecmpid>]
# M - Map
# format:
# M: <caid>:[<provider>]:[<srvid>]:[<ecmpid>] <target caid>:[<target provider>]
# D - Delay
# format:
# D: <caid>:[<provider>]:[<srvid>]:[<ecmpid>] <delay (ms)>
#
#
#P: 0100:00006A
I: 0622
I: 1817
I: 1818
#M: 1817:02006a:: 0100:00006a
P: 0100::0FAB:070B #NED1 SD
I: 0100::0FAB: #NED1 SD
P: 0100::0FAC:070C #NED2 SD
I: 0100::0FAC: #NED2 SD
P: 0100::0FAD:070D #NED3 SD
I: 0100::0FAD: #NED3 SD
P: 0100::07D4:070B #RTL4 SD
I: 0100::07D4: #RTL4 SD
P: 0100::07D5:070C #RTL5 SD
I: 0100::07D5: #RTL5 SD
P: 0100::0FA2:0709 #SBS6 SD
I: 0100::0FA2 #SBS6 SD
P: 0100::07EF:070F #Veronica SD
I: 0100::07EF #Veronica SD
P: 0100::1793:070E #Boomerang
I: 0100::1793 #Boomerang
P: 0100::07FF:0714 #Animax
I: 0100::07FF: #Animax
P: 0100::07D6:0711 #RTL7 SD
I: 0100::07D6: #RTL7 SD
P: 0100::0FA3:070A #NET5 SD
I: 0100::0FA3: #NET5 SD
P: 0100::13AA:0134 #NAT GEO WILD
I: 0100::13AA: #NAT GEO WILD
P: 0100::1B67:070A #NAT GEO WILD
I: 0100::1B67: #NAT GEO WILD
P: 0100::17CA:0717 #SBS6HD
I: 0100::17CA: #SBS6HD
P: 0100::5212:0709 #RTL7HD
I: 0100::5212: #RTL7HD
P: 0100::1B7B:070E #NED1HD
I: 0100::1B7B: #NED1HD
P: 0100::17C0:0716 #NED2HD
I: 0100::17C0: #NED2HD
P: 0100::51D6:0711 #NED3HD
I: 0100::51D6: #NED3HD
P: 0100::1B6C:070B #RTL4HD
I: 0100::1B6C: #RTL4HD
P: 0100::5217:070A #RTL5HD
I: 0100::5217: #RTL5HD
P: 0100::07F3:0710 #RTL8
I: 0100::07F3: #RTL8
P: 0100::521c:070B #NET5HD
I: 0100::521c: #NET5HD
P: 0100::522b:070E #Veronica/disneyXD
I: 0100::522b: #Veronica/disneyXD
P: 0100::1784:070B #Consumenten TV 24
I: 0100::1784: #Consumenten TV 24
P: 0100::177A:0709 #Geschiedenis 24
I: 0100::177A: #Geschiedenis 24
P: 0100::177F:070A #Holland Doc 24
I: 0100::177F: #Holland Doc 24
P: 0100::1789:070C #Humor/NostalgieNet
I: 0100::1789: #Humor/NostalgieNet
P: 0100::5146:070E #AT5
I: 0100::5146: #AT5
P: 0100::5142:070A #Limburg
I: 0100::5142: #Limburg
P: 0100::5144:070C #TV WEST
I: 0100::5144: #TV WEST
P: 0100::51DB:0712 #FILM1 HD
I: 0100::51DB: #FILM1 HD
P: 0100::07E9:0718 #Eurosport
I: 0100::07E9: #Eurosport
P: 0100::13B1:00B5 #Eurosport HD
I: 0100::13B1: #Eurosport HD
P: 0100::13B9:00B5 #Eurosport HD dut
I: 0100::13B9: #Eurosport HD dut

P: 0100::0041:1FDA #Eurosport 2
I: 0100::0041: #Eurosport 2
P: 0100::3335:01CF #ESPN America
I: 0100::3335: #ESPN America
P: 0100::2525:15DB #Motors TV
I: 0100::2525: #Motors TV
P: 0100::219F:15CB #Y&S
I: 0100::219F: #Y&S
P: 0100::1B71:070C #BRAVA HD
I: 0100::1B71: #BRAVA HD
P: 0100::1F47:16D1 #MEzzo
I: 0100::1F47: #MEzzo
P: 0100::6FB8:07DF #MTV HD
I: 0100::6FB8: #MTV HD
P: 0100::6FF3:190E #MTV ROCKS
I: 0100::6FF3: #MTV ROCKS
P: 0100::31F9:0715 #TV Oranje
I: 0100::31F9: #TV Oranje
P: 0100::6FF0:1911 #VH1
I: 0100::6FF0: #VH1
P: 0100::6FF1:1910 #VH1 Classic
I: 0100::6FF1: #VH1 Classic
P: 0100::1B62:0709 #Discovery HD
I: 0100::1B62: #Discovery HD
P: 0100::13B0:00B6 #History HD
I: 0100::13B0: #History HD
P: 0100::07F4:0715 #Comedy Central
I: 0100::07F4: #Comedy Central
P: 0100::17AC:0713 #BiB
I: 0100::17AC: #Bib
P: 0100::07E4:070D #Animal Planet
I: 0100::07E4: #Animal Planet
P: 0100::07DF:070A #Discovery
I: 0100::07DF: #Discovery
P: 0100::1798:070F #Discovery Science
I: 0100::1798: #Discovery Science
P: 0100::179D:0710 #Discovery Travel & Living
I: 0100::179D: #Discovery Travel & Living
P: 0100::0FAF:0713 #NGC
I: 0100::0FAF: #NGC
P: 0100::13c0:0EC2 #Travel Channel HD
I: 0100::13c0: #Travel Channel HD
P: 0100::0FAE:0716 #Nickelodeon
I: 0100::0FAE: #Nickelodeon
P: 0100::17CC:0719 #EDL1 HD
I: 0100::17CC: #EDL1 HD
P: 0100::51E0:0713 #Sport1LiveHD
I: 0100::51E0: #Sport1LiveHD
P: 0100::51C2:070D #Sport1Golf
I: 0100::51C2: #Sport1Golf
P: 0100::51BD:070C #Sport1Tennis
I: 0100::51BD: #Sport1Tennis

Last edited 13 years ago by theparasol (previous) (diff)

comment:10 by _network, 13 years ago

Resolution: fixed
Status: newclosed

comment:11 by deeptho, 13 years ago

Resolution: fixed
Status: closedreopened

As I reported in #1409, the fix I proposed above is not enough to reliably decrypt canaal
digitaal without adding I: and P: lines in oscam.dvbapi. The above fixes makes sure that
oscam sees the seca3 pid and allows I: and P: lines to work. So it is an improvement.

However, oscam still gets confused by the simultaneous presence
of seca2 and seca3.

So the current workaround is to add I: and P: lines, but I think a better more reliable
solution should be found, which does not require I: and P: lines. See #1409 for more details.

Last edited 13 years ago by deeptho (previous) (diff)

comment:12 by theparasol, 13 years ago

Update for radio channels / all tv channels.

Please implement a seca3 prio switch soon, the dutch en belgian people want to kick cccam also!

# dvbapi configuration
#

# types:
# P - Priority
# format:
# P: <caid>:[<provider>]:[<srvid>]:[<ecmpid>]
# I - Ignore
# format:
# I: <caid>:[<provider>]:[<srvid>]:[<ecmpid>]
# M - Map
# format:
# M: <caid>:[<provider>]:[<srvid>]:[<ecmpid>] <target caid>:[<target provider>]
# D - Delay
# format:
# D: <caid>:[<provider>]:[<srvid>]:[<ecmpid>] <delay (ms)>

I: 0622 #NL irdeto
I: 1817 #NL Nagra
I: 1818 #BE Nagra
I: 1819 #?? Nagra

P: 0100::0808:0745 #NL-Radio2
I: 0100::0808: #NL-Radio2
P: 0100::0809:0746 #NL-3FM
I: 0100::0809: #NL-3FM
P: 0100::080A:0747 #NL-Radio4
I: 0100::080A: #NL-Radio4
P: 0100::0FBE:0718 #BNR nieuwsradio
I: 0100::0FBE: #BNR nieuwsradio
P: 0100::0FAB:070B #NED1 SD
I: 0100::0FAB: #NED1 SD
P: 0100::0FAC:070C #NED2 SD
I: 0100::0FAC: #NED2 SD
P: 0100::0FAD:070D #NED3 SD
I: 0100::0FAD: #NED3 SD
P: 0100::07D4:070B #RTL4 SD
I: 0100::07D4: #RTL4 SD
P: 0100::07D5:070C #RTL5 SD
I: 0100::07D5: #RTL5 SD
P: 0100::0FA2:0709 #SBS6 SD
I: 0100::0FA2 #SBS6 SD
P: 0100::07EF:070F #Veronica SD
I: 0100::07EF: #Veronica SD
P: 0100::1793:070E #Boomerang
I: 0100::1793 #Boomerang
P: 0100::07FF:0714 #Animax
I: 0100::07FF: #Animax
P: 0100::07D6:0711 #RTL7 SD
I: 0100::07D6: #RTL7 SD
P: 0100::0FA3:070A #NET5 SD
I: 0100::0FA3: #NET5 SD
P: 0100::13AA:0134 #NAT GEO WILD
I: 0100::13AA: #NAT GEO WILD
P: 0100::1B67:070A #NAT GEO WILD
I: 0100::1B67: #NAT GEO WILD
P: 0100::17CA:0717 #SBS6HD
I: 0100::17CA: #SBS6HD
P: 0100::5212:0709 #RTL7HD
I: 0100::5212: #RTL7HD
P: 0100::1B7B:070E #NED1HD
I: 0100::1B7B: #NED1HD
P: 0100::1B7C:070D #RTL8HD
I: 0100::1B7C: #RTL8HD
P: 0100::17A7:0726 #Vitaliteit
I: 0100::1B7C: #Vitaliteit
P: 0100::17C0:0716 #NED2HD
I: 0100::17C0: #NED2HD
P: 0100::51D6:0711 #NED3HD
I: 0100::51D6: #NED3HD
P: 0100::1B6C:070B #RTL4HD
I: 0100::1B6C: #RTL4HD
P: 0100::5217:070A #RTL5HD
I: 0100::5217: #RTL5HD
P: 0100::07F3:0710 #RTL8
I: 0100::07F3: #RTL8
P: 0100::521c:070B #NET5HD
I: 0100::521c: #NET5HD
P: 0100::522b:0711 #Veronica HD
P: 0100::522b:070F #Veronica/disneyXD
I: 0100::522b: #Veronica/disneyXD
P: 0100::1784:070B #Consumenten TV 24
I: 0100::1784: #Consumenten TV 24
P: 0100::177A:0709 #Geschiedenis 24
I: 0100::177A: #Geschiedenis 24
P: 0100::177F:070A #Holland Doc 24
I: 0100::177F: #Holland Doc 24
P: 0100::1789:070C #Humor/NostalgieNet
I: 0100::1789: #Humor/NostalgieNet
P: 0100::5146:070E #AT5
I: 0100::5146: #AT5
P: 0100::5142:070A #Limburg
I: 0100::5142: #Limburg
P: 0100::5144:070C #TV WEST
I: 0100::5144: #TV WEST
P: 0100::51DB:0712 #FILM1 HD
I: 0100::51DB: #FILM1 HD
P: 0100::07E9:0718 #Eurosport
I: 0100::07E9: #Eurosport
P: 0100::13B1:00B5 #Eurosport HD
I: 0100::13B1: #Eurosport HD
P: 0100::13B9:00B5 #Eurosport HD dut
I: 0100::13B9: #Eurosport HD dut
P: 0100::0041:1FDA #Eurosport 2
I: 0100::0041: #Eurosport 2
P: 0100::3335:01CF #ESPN America
I: 0100::3335: #ESPN America
P: 0100::2525:15DB #Motors TV
I: 0100::2525: #Motors TV
P: 0100::219F:15CB #Y&S
I: 0100::219F: #Y&S
P: 0100::1B71:070C #BRAVA HD
I: 0100::1B71: #BRAVA HD
P: 0100::1F47:16D1 #MEzzo
I: 0100::1F47: #MEzzo
P: 0100::6FB8:07DF #MTV HD
I: 0100::6FB8: #MTV HD
P: 0100::6FF3:190E #MTV ROCKS
I: 0100::6FF3: #MTV ROCKS
P: 0100::6FFF:190F #MTV
I: 0100::6FFF: #MTV
P: 0100::31F9:0715 #TV Oranje
I: 0100::31F9: #TV Oranje
P: 0100::6FF0:1911 #VH1
I: 0100::6FF0: #VH1
P: 0100::6FF1:1910 #VH1 Classic
I: 0100::6FF1: #VH1 Classic
P: 0100::1B62:0709 #Discovery HD
I: 0100::1B62: #Discovery HD
P: 0100::13B0:00B6 #History HD
I: 0100::13B0: #History HD
P: 0100::07F4:0715 #Comedy Central
I: 0100::07F4: #Comedy Central
P: 0100::17A7:0726 #Vitaliteit
I: 0100::17A7: #Vitaliteit
P: 0100::0046:1FE7 #Alpengluhen
I: 0100::0046: #NED1 SD
P: 0100::17AC:0713 #BiB
I: 0100::17AC: #Bib
P: 0100::07E4:070D #Animal Planet
I: 0100::07E4: #Animal Planet
P: 0100::07DF:070A #Discovery
I: 0100::07DF: #Discovery
P: 0100::1798:070F #Discovery Science
I: 0100::1798: #Discovery Science
P: 0100::179D:0710 #Discovery Travel & Living
I: 0100::179D: #Discovery Travel & Living
P: 0100::0FAF:0713 #NGC
I: 0100::0FAF: #NGC
P: 0100::13c0:0EC2 #Travel Channel HD
I: 0100::13c0: #Travel Channel HD
P: 0100::0FAE:0716 #Nickelodeon
I: 0100::0FAE: #Nickelodeon
P: 0100::17CC:0719 #EDL1 HD
I: 0100::17CC: #EDL1 HD
P: 0100::51C7:070E #EDL2
I: 0100::51C7: #EDL2
P: 0100::6FB8:07DF #MTV Live HD
I: 0100::6FB8: #MTV Live HD
P: 0100::51E0:0713 #Sport1LiveHD
I: 0100::51E0: #Sport1LiveHD
P: 0100::51C2:070D #Sport1Golf
I: 0100::51C2: #Sport1Golf
P: 0100::51BD:070C #Sport1Tennis
I: 0100::51BD: #Sport1Tennis
P: 0100::31E7:070D #Een SD
I: 0100::31E7: #Een SD
P: 0100::5221:070C #Een HD
I: 0100::5221: #Een HD
P: 0100::5226:070D #Ketnet HD
I: 0100::5226: #Ketnet HD
P: 0100::31E8:070E #Ketnet SD
I: 0100::31E8: #Ketnet SD

comment:13 by theparasol, 13 years ago

Summary: DBVAPI: Canal Digitaal 0100:00006a no decoding on SD channelsDBVAPI: Canal Digitaal 0100:00006a and 0100:00006c ecmpid seca 2 / 3 selection

comment:14 by Erik Slagter, 12 years ago

I think the core of the problem is not discussed clearly.

The core of the problem is that CDS broadcasts a number of channels that have TWO ecm pids with exactly the same traits. Both are CAID 100, PROVID 6A. Personally I think that's illegal against DVB, but who am I to say... If you have a CDS smartcard, (100:6a) oscam will start to decrypt using 100:6a, and happily takes the first 100:6a ecm pid it finds. Depending on what version smartcard you have, that will either be the right pid or the wrong pid. "SD" customers have a mediaguard 2 smartcard that needs "true mediaguard 2" ecm's. "HD" customers have a nagra smartcard that needs "nagra tunneled in mediaguard 2" ecm's. Both ecm pid's are broadcast as 100:6a, in seemingly random order.

What needs to be done (imho) is a detection mechanism for mediaguard 2 or tunneled nagra ecm's and then use the appropriate ecm pid. It can be done, CCcam does it, it's called "seca handler" there.

comment:15 by Erik Slagter, 12 years ago

Cc: erik@… added

comment:16 by deeptho, 12 years ago

One possible fix was added to this ticket 7 months ago. If I remember correctly
it still required a few P and I lines in oscam.dvbapi but at least it works.

comment:17 by fricco, 12 years ago

But...why after seven months the patch of deeptho has not been implemented yet?? it's impossible to see canal+nl SD with oscam currently

comment:18 by marley, 12 years ago

rev. 6407 prevents seca2 ecm's to be processed by a seca3 card and vice versa.

The ecms are still sent by dvbapi, but are blocked before accessing the card. This is necessary to prevent unnecessary access times. Blocking dvbapi is not sufficient, since ecm's could reach the card through a network client also.

The blocked ecm's show up by "not found (0ms)". Sometimes the 0ms is more (e.g. 115ms), when a global emm is being processed at the exact moment the ecm is blocked. No extra waiting/processing time is added.

comment:19 by marley, 12 years ago

Resolution: fixed
Status: reopenedclosed

Sending the ecms by dvbapi can be prevented by configuring oscam.dvbapi.

E.G. for Canal Digitaal NL:

I: 0100
I: 0500:042500
I: 0622
M: 1817:00006A 0100:00006A
P: 1817:00006A

comment:20 by theparasol, 12 years ago

Resolution: fixed
Status: closedreopened

This old 1817 mapping dvbapi trick was also working before rev 6407.
Changes in 6407 doesn't add anything good. A good patch should work with oscam.dvbapi:

P:0100:00006A

dvbapi should only ask mediaguard 3 ecmpids in case of a mediaguard 3 reader and only seca2 ecmpids in case of seca2 card.

I can't program it myself but think in oscam.dvbapi should be a toggle setting prefer seca2 and not toggled defaulting to prefer mediaguard 3. (most commonly used card in NL/BE)

comment:21 by Blacktiger, 12 years ago

I second this request.

For Seca2 everything worked ok with a decent oscam.dvbapi to ignore the seca3 sids, but I now have version 6434 running and my local seca2 card is running, but not addresses anymore by Oscam.
So it's not used anymore by Oscam. That's not good.

comment:22 by theparasol, 12 years ago

And even worse: 6407 or newer is giving permanent black screens on mezzo, nautical and motors channels.

Please remove this 6407 code change: its doing more harm and isn't "fixing" anything :(

comment:23 by theparasol, 12 years ago

Priority: criticalblocker

comment:24 by Erik Slagter, 12 years ago

IMHO the problem is in the ecm "seca version" detection. The algorithm doesn't seem to be all-proof. Please have a look at the format of the ecm's of the mentioned channels.

comment:25 by zywo, 12 years ago

c+nl ecms

ecm seca2

80 00 61 00 6A 00 00 FC 10 01 FD 80 B2 B5 51 03
1C 69 A6 64 AD 08 34 EE 3F 76 5C 32 7E 99 F7 1D
C5 18 52 83 E4 1A 9C 72 CC 1C 4D 3B F5 FF 51 01
3D C1 14 26 C6 5B A8 8F 5F F4 D3 16 D3 FF DB 0E
47 4A 21 C4 EA 7B A8 23 EF 88 78 C2 50 E9 AD 55
51 98 66 D8 E4 2E 53 32 E2 60 62 D9 E0 CA 12 A3
B2 89 0A 08

ecm seca3

80 30 61 00 6A 00 07 5C 00 33 2B C8 BE D4 7F CF
62 B5 F6 7B 10 EF FA F9 A3 94 0D 32 5E 50 EA 2E
3E E8 B9 0B DB 5B 01 36 3F 77 DF 68 D1 B0 7B 6D
27 F2 03 12 78 A7 DE 1E 4E 48 0A B9 3D AE 0D 5E
F4 9B 90 06 37 D5 41 BF 45 92 E2 E6 18 AD 2F 8B
2C 5B 49 00 77 1A 25 91 54 F7 D5 EA 04 04 21 FF
B4 05 2C 7B

Last edited 12 years ago by zywo (previous) (diff)

comment:26 by Erik Slagter, 12 years ago

Did you fetch these from the problematic channels mentioned above?

comment:27 by zywo, 12 years ago

Yes: NED1, NED2, NED3, SBS6.....

comment:28 by Erik Slagter, 12 years ago

See comment 22 please.

comment:29 by zywo, 12 years ago

There's only seca3 ecm on mezzo, nautical and motors channels.

comment:30 by theparasol, 12 years ago

Mezzo logging:

After seca2/3 patch:

2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 0] CAID: 0500 ECM_PID: 1ABD PROVID: 022610
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 1] CAID: 0500 ECM_PID: 1ABE PROVID: 032940
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 2] CAID: 0500 ECM_PID: 1ABF PROVID: 032830
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 3] CAID: 0500 ECM_PID: 1AC0 PROVID: 043330
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 4] CAID: 0500 ECM_PID: 1AC1 PROVID: 032920
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 5] CAID: 0500 ECM_PID: 1AC2 PROVID: 042500
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 6] CAID: 1863 ECM_PID: 16D9 PROVID: 003342
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 7] CAID: 1811 ECM_PID: 16D2 PROVID: 003311
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 8] CAID: 1817 ECM_PID: 16D1 PROVID: 00006A
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 9] CAID: 1818 ECM_PID: 16D8 PROVID: 00006C
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 10] CAID: 1811 ECM_PID: 16D0 PROVID: 003317
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 11] CAID: 0100 ECM_PID: 16D3 PROVID: 00A821
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 12] CAID: 0100 ECM_PID: 16D2 PROVID: 003311
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 13] CAID: 0100 ECM_PID: 16D0 PROVID: 003317
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 14] CAID: 0100 ECM_PID: 16D1 PROVID: 00006A
2012/02/24 17:18:04 59D600 c dvbapi: [ADD PID 15] CAID: 0100 ECM_PID: 16D8 PROVID: 00006C
2012/02/24 17:18:04 59D600 c dvbapi: new program number: 1F47 (0500:1F47 unknown)
2012/02/24 17:18:04 59D600 c dvbapi: Start descrambling PID #14 (CAID: 0100) 1
2012/02/24 17:18:04 59D600 c lokaal (0100&00006A/1F47/64:1000): not found (3 ms) by kaartlezer
2012/02/24 17:18:11 59D600 c lokaal (0100&00006A/1F47/64:1848): not found (4 ms) by kaartlezer
2012/02/24 17:18:21 59D600 c lokaal (0100&00006A/1F47/64:1128): not found (3 ms) by kaartlezer
2012/02/24 17:18:31 59D600 c lokaal (0100&00006A/1F47/64:FCEF): not found (20 ms) by kaartlezer

Before seca 2/3 patch:

2012/02/24 17:19:58 5954A8 c dvbapi: 24 entries read from oscam.dvbapi
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 0] CAID: 0500 ECM_PID: 1ABD PROVID: 022610
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 1] CAID: 0500 ECM_PID: 1ABE PROVID: 032940
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 2] CAID: 0500 ECM_PID: 1ABF PROVID: 032830
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 3] CAID: 0500 ECM_PID: 1AC0 PROVID: 043330
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 4] CAID: 0500 ECM_PID: 1AC1 PROVID: 032920
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 5] CAID: 0500 ECM_PID: 1AC2 PROVID: 042500
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 6] CAID: 1863 ECM_PID: 16D9 PROVID: 003342
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 7] CAID: 1811 ECM_PID: 16D2 PROVID: 003311
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 8] CAID: 1817 ECM_PID: 16D1 PROVID: 00006A
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 9] CAID: 1818 ECM_PID: 16D8 PROVID: 00006C
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 10] CAID: 1811 ECM_PID: 16D0 PROVID: 003317
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 11] CAID: 0100 ECM_PID: 16D3 PROVID: 00A821
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 12] CAID: 0100 ECM_PID: 16D2 PROVID: 003311
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 13] CAID: 0100 ECM_PID: 16D0 PROVID: 003317
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 14] CAID: 0100 ECM_PID: 16D1 PROVID: 00006A
2012/02/24 17:20:00 5954A8 c dvbapi: [ADD PID 15] CAID: 0100 ECM_PID: 16D8 PROVID: 00006C
2012/02/24 17:20:00 5954A8 c dvbapi: new program number: 1F47 (0500:1F47 unknown)
2012/02/24 17:20:00 5954A8 c dvbapi: Start descrambling PID #14 (CAID: 0100) 1
2012/02/24 17:20:00 5954A8 c lokaal (0100&00006A/1F47/64:420A): found (273 ms) by kaartlezer
2012/02/24 17:20:03 5954A8 c lokaal (0100&00006A/1F47/64:D5B9): found (286 ms) by kaartlezer
2012/02/24 17:20:13 5954A8 c lokaal (0100&00006A/1F47/64:EB27): found (268 ms) by kaartlezer
2012/02/24 17:20:23 5954A8 c lokaal (0100&00006A/1F47/64:3A39): found (264 ms) by kaartlezer

comment:31 by theparasol, 12 years ago

This is the correct way to distingues between seca2 or seca3 ecm:

Logged only first line from each ecm block!

Mediaguard 3 ecm:

81 30 61 00 6A 00 07 5C 00 E6 EF 85 CE 8F 6D 9C (Random channel)
-- -- -- -- -- 00 07 5C 00 -- -- -- -- - -- --

81 30 61 00 6A 00 07 5C 00 FA 83 D1 70 5D 81 55 (Random channel)
-- -- -- -- -- 00 07 5C 00 -- -- -- -- -- -- --

81 30 61 00 6A 00 07 5C 00 43 CA 2E 3F 9C 61 2A (Random channel)
-- -- -- -- -- 00 07 5C 00 -- -- -- -- -- -- --

80 00 61 00 6A 00 07 5C 00 33 1A 83 FB 17 DB 2C (problem channel nautical!)
-- -- -- -- -- 00 07 5C 00 -- -- -- -- -- -- --

81 00 61 00 6A 00 07 5C 00 52 66 6A 9E 46 04 C7 (problem channel motors!)
-- -- -- -- -- 00 07 5C 00 -- -- -- -- -- -- --

Seca2 ecm:

80 00 61 00 6A 00 00 FC 10 01 B4 E3 43 A3 57 16
-- 00 -- -- -- 00 00 FC 10 01 -- -- -- -- -- --

81 00 61 00 6A 00 00 FC 10 01 A9 94 59 26 C7 84
-- 00 -- -- -- 00 00 FC 10 01 -- -- -- -- -- --

Together:

-- -- -- -- -- XX XX XX XX -- -- -- -- -- -- --

Conclusion:

seca2 ecm.....: byte (6789) contains always 00 00 FC 10
Mediaguard ecm: byte (6789) contains always 00 07 5C 00

@Marley: Please adopt this ecm check into your code and it will work perfectly!

comment:32 by theparasol, 12 years ago

My codingskills are a bit rusty but I'm thinking of something like this:

static int32_t seca_do_ecm(struct s_reader * reader, const ECM_REQUEST *er, struct s_ecm_answer *ea)
int ecm_type;
int seca_version = reader->availkeys[0][1]; misusing availkeys to store seca_version
if (seca_version == 3) ecm_type = 3;
assume ecm type same as card in reader
if (seca_version == 2) ecm_type = 2; assume ecm type same as card in reader
if (er->ecm[5..8] == 0x0000FC10) ecm_type = 3;
this is a mediaguard 3 ecm request
if (er->ecm[5..8] == 0x00075C00) ecm_type = 2; this is a seca2 ecm request
if ((ecm_type == 2 && seca_version == 3) :: (ecm_type == 3 && seca_version == 2)) return ERROR;

Last edited 12 years ago by theparasol (previous) (diff)

comment:33 by zywo, 12 years ago

FC:
0xF = Table used (it can change to 0xB or 0x9.
0xC = Key used (it changes every month to be 0xC or 0xD)

5C: maybe the same as FC ?

The good chance is:
er->ecm[8] == 0x00 for seca3

er->ecm[8] == 0x10 && er->ecm[9] == 0x01 for seca2

comment:34 by theparasol, 12 years ago

Good point, jumped my conclusions :)

Think your absolutly right. But this should work then:

static int32_t seca_do_ecm(struct s_reader * reader, const ECM_REQUEST *er, struct s_ecm_answer *ea)
int ecm_type;
int seca_version = reader->availkeys[0][1]; misusing availkeys to store seca_version
if (seca_version == 3) ecm_type = 3;
assume ecm type same as card in reader
if (seca_version == 2) ecm_type = 2; assume ecm type same as card in reader
if(er->ecm[8] == 0x00) ecm_type = 3;
this is a mediaguard 3 ecm request
if(er->ecm[8] == 0x10 && er->ECM[9] == 0x01) ecm_type = 2; this is a seca2 ecm request
if ((ecm_type == 2 && seca_version == 3) :: (ecm_type == 3 && seca_version == 2)) return ERROR;

Version 1, edited 12 years ago by theparasol (previous) (next) (diff)

comment:35 by theparasol, 12 years ago

It isn't helping: while we are correct blocking the wrong ecm going to the seca card
at the same time we are returning error and effictivly later on automatically sending a CW 00000000 to the client -> black screen / caid:provid on the blacklist also blocking the correct ecm's. Its the same caid:provid :(

UPDATE!!!! * Make sure dvbapi requestmode is set to 1 *

Loadbalancer disabled

Found a workaround by modifying module-dvbapi.c also:

line 609/610:

for (j=0; j<demux[demux_id].ECMpidcount; j++) {

if (demux[demux_id].curindex == j) {


code change in reader-seca.c:

line 220:

static int32_t seca_do_ecm(struct s_reader * reader, const ECM_REQUEST *er, struct s_ecm_answer *ea)
{

if (er->ecm[3] == 0x00 && er->ecm[4] == 0x6a) { provid 006A = CDNL uses seca2/seca3 simulcrypt on same caid

int ecm_type = 0;
int seca_version = reader->availkeys[0][1]; misusing availkeys to store seca_version
if (seca_version == 3) {
assume ecm type same as card in reader

ecm_type = 3;

}
if (seca_version == 2) { assume ecm type same as card in reader

ecm_type = 2;

}
if (er->ecm[8] == 0x00) { this is a mediaguard 3 ecm request

ecm_type = 3;

}
if (er->ecm[8] == 0x10) { first seca2 request byte found

if (er->ecm[9] == 0x01) {second seca2 ecmrequest byte found

ecm_type = 2;

}

}
if (ecm_type != seca_version){ only accept ecmrequest for right card!

snprintf( ea->msglog, MSGLOGSIZE, "invalid ecm for cardtype!" );
return ERROR;

}

}


Last edited 12 years ago by theparasol (previous) (diff)

comment:36 by theparasol, 12 years ago

with new solution request mode might be 0 or 1, doesn't matter.
But loadbalancer still have to be disabled to work correctly
simulcrypt uses same CAID:PROVID and only diffrent ECMPID, so channel is blacklisted by balancer and efficiently blacklisting other ECMPID entry too.

Has to be investigated for further improvement

comment:37 by theparasol, 12 years ago

seca version detection by pbm isn't sound. The old seca2 black card is also detected as an seca3 (also no PBM)
and isn't working anymore after applying my patches. It is although working now: Marleys code isn't recognizing a seca2 ecm correct so both cards are getting seca2 and 3 ecm's. It's critical that mediaguard3 cards don't receive invalid ecm's: the ratelimier won't work correct and the card will be locked causing blackscreens(!)

Beter is to use the cardversion:

Orange/white (mediaguard3) = 2012/02/26 15:32:59 57CC58 r type: SECA, caid: 0100, serial: xxxxxx, card: Canal+ NL v10.0
Grey/green (seca2) = 2012/02/26 15:50:26 59CFD8 r type: SECA, caid: 0100, serial: xxxxxx, card: Canal+ NL v7.3

Black (seca2) = 2012/02/26 16:28:44 5C5A48 r type: SECA, caid: 0100, serial: xxxxxxxx, card: Canal+ NL v7.3

Last edited 12 years ago by theparasol (previous) (diff)

comment:38 by theparasol, 12 years ago

Seca2 or mediaguard3 detection now implemented on version of card in reader.
V10=mediaguard3, V7=seca2

comment:39 by theparasol, 12 years ago

Updated the patch to V4

Misusing reader->availkeys[0][1] to store secacard version isn't a good idea.
Now the cardatr is used to extract the cardversion at the right spot.

Also adopted the suggested changes by zywo:
Stripped the 0100:00006a, any seca provider who uses simulcrypt is now supported.

Hope we now have the right seca2 / mediaguard3 ecm detection algorithm.
Time will tell

Last edited 12 years ago by theparasol (previous) (diff)

by theparasol, 12 years ago

Attachment: cdsnlpatch.zip added

Simulcrypt V4 for all providers. No more misuse of availkeys

comment:40 by pooyair, 12 years ago

@theparasol
Thanks for posting patch (unfortunately , i don't have this provider to test , but sure rest will feedback ...

i just want to invite u to join oscam developer team and commit all your further change-set (improvement) to the project if u would like, u just need to send a pm to admin of streamboard He makes u access to svn.
Best Regards.

Last edited 12 years ago by pooyair (previous) (diff)

comment:41 by theparasol, 12 years ago

Updated the patch to V5

  • Seca reader returns E2_CORRUPT in case of mismatch ecmtype <> cardversion
  • oscam-reader returns same event as if reader is in ratelimit mode -> not triggering blacklist of loadbalancer

comment:42 by theparasol, 12 years ago

Fixed loadbalancer in case of ecm <> card mismatch

Last edited 12 years ago by theparasol (previous) (diff)

by theparasol, 12 years ago

Attachment: cdsnlpatchv5.zip added

Fixed: loadbalancer in case of ecm <> card mismatch

comment:43 by theparasol, 12 years ago

Still in request mode 1 there are provids registered in the loadbalancer as found

Checked it out, not something my code change broke.
It's broken by commit 5460 of corsair.

Changed my V5 patch a little bit again.

Last edited 12 years ago by theparasol (previous) (diff)

by theparasol, 12 years ago

Attachment: cdsnlpatchv5fixed.zip added

Fixed: loadbalancer in case of ecm <> card mismatch

comment:44 by theparasol, 12 years ago

Attention:

ECM's are ok, but no EMM's anymore in requestmode 1.

Something in 6461/6462 broke emm updates on 0100:00006a if dvbapi requestmode = 1. Requestmode = 0 works fine!

Hope Corsair mentions this too and can fix it.

Last edited 12 years ago by theparasol (previous) (diff)

comment:45 by theparasol, 12 years ago

Ticket 2428 99,9% sure result of my patching http://www.streamboard.tv:8001/ticket/2428

No logs but my crappy code revised a bit more.

As a result: should execute faster and future proof in case ecm's algorithm change.

Last edited 12 years ago by theparasol (previous) (diff)

by theparasol, 12 years ago

Tryfix for 2468 / code optimalization

comment:46 by theparasol, 12 years ago

Tryfix #2 for 2428 works.

Dutch community is reporting working and no more locked mediaguard3 cards.
Finaly the ecmratelimiter is working for new CHID-4 lock on V10 cards of M7 group

ratelimitecm = 4
ratelimitseconds = 9

comment:47 by Deas, 12 years ago

Resolution: fixed
Status: reopenedclosed
Note: See TracTickets for help on using tickets.