1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Das kleine 1 x 1 der Oscam Services und Idents

Dieses Thema im Forum "OScam Archiv" wurde erstellt von T1x, 18. Juni 2011.

  1. T1x
    Offline

    T1x VIP

    Registriert:
    11. Juni 2010
    Beiträge:
    3.859
    Zustimmungen:
    2.719
    Punkte für Erfolge:
    113
    Hallo Zusammen,

    in der Vergangenheit gab es immer wieder falsche Interpretationen der Oscam Services. Außerdem werde ich auf die Idents eingehen.

    Ich möchte euch hier den Sinn der Oscam Services verdeutlichen und euch zeigen, wie Ihr fehlerhafte Anfragen auf euren Readern unterbindet und auf diesem Weg so für Entlastung für euren Server sorgt.

    Die wichtigste Frage ist: Was ist ein Service?
    Ein Service definiert einen verfügbaren Dienst.
    In OScam kann man auf diesem Weg definieren, welche Sender (die Dienste) auf den Readern und für die Peers verfügbar sind.

    Jetzt müssen wir aber zwischen Readern und Usern unterscheiden.

    Reader

    Folgende Situation:
    Wir haben uns ein Sky Abo Full HD mit Big Brother, ohne Bundesliga aber mit gebuchten Big Brother besorgt, bekommen Sky Bundesliga aber über ein Share.
    Außerdem möchten wir die Sky Select Kanäle sperren.

    Lösung:
    Um unnötige Anfragen auf unseren Sky Reader zu vermeiden und um diesen zu entlasten, müssen wir dafür sorgen das die Anfragen nicht bearbeitet werden. Also bauen wir uns drei Services:

    PHP:
    [sky]
    caid   1702,1833
    provid 
    000000
    srvid  
    = 0008,0009,000A,000B,000C,000D,000E,0010,0011,0013,0014,0015,0016,0017,0018,0019,001A,001B,001C,001D,0021,0022,0023,0024,
    0025,0026,0027,0029,002A,002B,0032,0034,0035,0037,0038,0039,003A,003C,003D,003E,003F,0040,0041,0042,0043,0044,0077,007A,007B,007C,
    007D,007E,007F,0080,0081,0082,0083,0084,00A8,00DD,00DE,00DF,00FC,00FD,0106,0107,0110,0111,011A,011B,0124,0125,012E,012F,0138,0139,
    0142,0143,014C,014D,0156,0160,016B,0175,0201,0203,0204,0206,07FF,2EFE,3331,4461,4462,6FF1,7001,7009,700A,0071,006A,006B,0072,0070,
    006F
    PHP:
    [skybundesliga]
    caid   1702
    provid 
    000000
    srvid  
    00FC,00DF,0106,0110,011A,0124,012E,0138,0142,014C,0156,0160
    PHP:
    [skyselect#Hier sind Sky Select, Blue Movie, Alpenglühen, Sky Select+ zusammen gefasst.
    caid 1702
    provid 
    000000
    srvid 
    0012,0078,0079,007A,00FB,00FE,0105,0108,010F,0119,0123,012D,0137,0141,014B,0201,0159,0163,016D,0096,0097,0098,0099,009A,009B,009C,0045,0046,003B
    PHP:
    [bigbrother]
    caid 1702
    provid 
    000000
    srvid 
    000F

    Bevor wir uns dem Reader widmen, hier noch ein Hinweis:
    Wenn wir einen Service zulassen setzen wir einfach einen Haken auf den Service sky. Wenn wir den Service nicht zulassen wollen, müssen wir den Haken bei !sky setzen. Das Ausrufezeichen negiert den Service.

    Jetzt bearbeiten wir unseren Service:
    Wir haben wie in der Ausgangssituation beschrieben zwei Reader.
    Einen lokalen mit Voll Abo ohne Sky Bundesliga und einen CCcam Proxy Reader mit Voll Abo inkl. Bundesliga, wollen aber nur Bundesliga abfragen.

    Oscam.server
    PHP:
    [reader]
    label sky
    protocol 
    mouse
    device 
    = /dev/ttyUSB0
    services 
    sky,bigbrother,!skyselect,!skybundesliga
    caid   
    1702,1833
    boxkey 
    1122334455667788
    ecmwhitelist 
    93
    detect 
    cd
    mhz    
    600
    cardmhz 
    600
    ident  
    1702:000000;1833:000000
    group  
    1
    emmcache 
    1,3,2
    blockemm
    -unknown 1
    PHP:
    [reader]
    label share
    protocol 
    cccam
    device
    sharepartner.dyndns.org,22558
    user  
    share
    password 
    share
    services 
    = !sky,!bigbrother,!skyselect,skybundesliga
    caid  
    1702
    group 
    2
    emmcache 
    1,3,2
    cccversion 
    2.2.1
    cccmaxhops 
    #Hier bekommen wir nur die lokalen Karten!
    ccckeepalive 1

    User
    Folgende Situation:
    Wir haben unseren lokalen dvbapi User und unseren Sharepartner.
    Das besondere hier ist, dass unser Sharepartner kein Big Brother bekommen soll.

    Lösung:
    Da wir in den Readern die verfügbaren Dienste bereits festgelegt haben, können wir drei Wege gehen:


    1. Wir setzen die Services in den Usern gar nicht ein.
    2. Wir setzen nur die erlaubten Services, negieren aber nicht. Damit hebeln wir das Prinzip der Services allerdings aus und es kann zu Timeouts kommen
    3. Wir erlauben und verweigern Services, um eine saubere Arbeitsweise zu gewährleisten.
    Ich empfehle Weg 3, da es wunderbar funktioniert.

    PHP:
    [account]
    user dvbapi
    group 
    1,2
    monlevel 
    4
    services 
    sky,bigbrother,!skyselect,skybundesliga #Wir erlauben Sky, Big Brother, Bundesliga, aber verbieten Sky Select.
    caid 1702,1833
    betatunnel 
    1833.FFFF:1702
    ident 
    1702:000000;1833:000000
    suppresscmd08 
    1
    cccmaxhops 
    #Um zu unserem Share zu kommen
    PHP:
    [account]
    user share
    pwd 
    partner
    group 
    #Nur für unsere lokale Karte!
    services sky,!bigbrother,!skyselect,!skybundesliga #Wir erlauben im Sky, verbieten aber Big Brother, Sky Select und Bundesliga
    caid 1702,1833
    betatunnel 
    1833.FFFF:1702
    ident 
    1702:000000;1833:000000
    suppresscmd08 
    1
    cccmaxhops 
    #Um nur unsere lokalen Karten zu bekommen

    Warum aber die Idents verwenden?
    Der Ident ist ein wunderbares Werkzeug um nur bestimmte Caids abzugreifen. Außerdem sorgen wir mit den Idents im Reader dafür, dass auch nur die in den Idents definierten Caids verarbeitet werden. Es ist also eine Anweisung zum Filtern für den Reader, nur diese zutreffenden Kartenspezifischen Anfragen zu beantworten.

    Im User ist die arbeitsweise ähnlich, allerdings müssen wir zwischen den freigegebenen Caids und Idents ein wenig unterscheiden. Die Caids sind die global für den User freigegebenen Kartendienste. Mit den Idents kann man allerdings genau bestimmen was genau der User abfragen darf. Ein gutes Beispiel hierfür ist ORF mit den Caids 0D95 und 0D05.

    Bei diesen beiden Karten haben wir drei Provider IDs, wobei wir die ID 000000 ignorieren da diese global verwendet wird und uns mit den Provider IDs 000004 und 000010 beschäftigen.

    Auf den ORF Karten kann man sich bekanntlich zum einen natürlich ORF, zum anderen aber auch Austria Sat buchen lassen. Der Provider 000004 steht für ORF, die 000010 steht für Austria Sat.

    So schauen die Oscam Services aus (Wir gehen von der ICE Karte aus):

    PHP:
    [orf]
    caid   0D95 #ICE
    provid 000000,000004
    srvid  
    132F,1330,32C9,32CA,32CB,32CC,32CD,32CE,32CF,32D0,32D1,32D2,32D3,32D4,3332,4E27
    PHP:
    [austriasat]
    caid   0D95
    provid 
    000000,000010
    srvid  
    003E,0045,0046,07FA,07FD,07FF,2EFE,4461,4462,6FEE,6FEF,6FF0,6FF3,6FFF,003B

    Natürlich wollen wir auch hier eine saubere Trennung und Arbeitsweise erreichen. Daher trennen wir die Services ganz bewusst und definieren das auch in dem ORF Reader:

    PHP:
    [reader]
    label orf
    protocol 
    mouse
    device 
    = /dev/ttyUSB1
    services 
    orf,!austriasat
    caid   
    0D95
    ecmwhitelist 
    80,B8
    detect 
    cd
    mhz    
    368
    cardmhz 
    368
    ident  
    0D95:000000,000004
    group  
    3
    emmcache 
    1,3,2
    blockemm
    -unknown 1

    So schaut dann der User aus:

    PHP:
    [account]
    user dvbapi
    group 
    3
    monlevel 
    4
    services 
    orf,!austriasat
    caid 
    0D95
    ident 
    0D95:000000,000004
    suppresscmd08 
    1

    Wenn wir den Ident nicht setzen würden, können die Austria Sat Anfragen dennoch versucht werden vom ORF Reader geöffnet zu werden.

    Im schlimmsten Fall senden wir Timeouts zum Reader und bringen diesen so zum aussteigen.

    Durch den definierten Ident 0D95:000000,000004 wird der Provider 000010 (Austria Sat) für den Reader und den User ignoriert und verursacht die Fehlermeldung No Matching Reader (was das Betrieb nicht beeinflusst) und Invalid SID (wird von keinem Reader beantwortet, wenn der Provider nicht konfiguriert ist.).

    Ein weiterer Vorteil der sauberen Service und Ident Konfiguration ergibt sich beim Einsatz von CCcam in OScam und in OScam to OScam Verbindungen:

    Sauber konfigurierte Services und definieren Good SIDs und Bad SIDs.
    Die Idents hingegen sage dem CCcam Peer und Share (reiner CCcam Server) welche Provider er abfragen darf. Bei zwei sauber konfigurierten OScam Servern die untereinander sharen, ist die Möglichkeit von Invalid SID, No Matching Reader, Timeouts gleich gegen Null.

    Außerdem haben wir als Peer die Möglichkeit bei großen Kartenpools mit den Idents die Möglichkeit, genau zu definieren welche Caids und Services wir tatsächlich nur unbedingt haben wollen. Alle anderen, nicht definierten Idents werden einfach ignoriert und sollen uns auch nicht weiter stören.

    In diesem Sinne...
     
    Zuletzt von einem Moderator bearbeitet: 26. September 2011
    #1
    mister-k, DIABLO21, Jerry5428 und 37 anderen gefällt das.

Diese Seite empfehlen