Ga naar inhoud


TVHeadend en Ziggo geeft ECM problemen.


Rigolo

Aanbevolen berichten

Ik ben druk bezig om te kijken of tvheadend (http://lonelycoder.com/hts/tvheadend_overview.html) gebruikt kan worden icm met Ziggo. De installatie van tvheadend is vrij eenvoudig en de bediening gaat in zijn geheel via een web interface.

 

De standaard versie van tvheadend kan (natuurlijk) niet overweg met het gebruik van de NIT-o tables op het Ziggo netwerk, maar met een kleine (maar niet erg flexibele) patch is dat probleem ook opgelost

(zie http://trac.lonelycoder.com/hts/ticket/123)

 

Nu kan ik idd alle transponders van Ziggo inscannen en alle services zien die Ziggo uitzend. Dus dat gaat goed.

 

Daarna moet je service naar channels mappen. Tijdens dit process gaat tvheadend proberen de kanalen te decoderen. Hiervoor kan je een NewCS server gebruiken welke je in kan stellen in het "Code Word Client" scherm. Hier heb ik mijn local NewCS server ingesteld (met natuurlijk een eigen gebruikers naam voor tvheadend)

 

Als ik nu de services naar channel ga mappen dan werken 95% van de zender niet. De volgende zenders worden wel meteen herkend (de NewCS server geeft meteen een OK terug als er een ECM wordt gestuurd)

 

  • 13TH STREET
  • Aljazeera International
  • Arte
  • Brabant 10
  • Etalagekanaal
  • Eurosport HD
  • Family 7
  • Goed TV
  • Het Gesprek
  • L1 Limburg
  • Nederland 1
  • Nederland 1 HD
  • Nederland 2 HD
  • Nederland 3 HD
  • Nickelodeon/Comedy Central
  • Omrop Fryslân
  • Preview TV
  • Sat.1
  • TV Flevoland
  • TV Gelderland
  • TV Limburg
  • TV Noord
  • TV Oost
  • Zenderoverzicht
  • Ziggo TV

Voor alle overige zenders uit het basis digitaal pakket geeft de NewCS server meteen een Not OK terug.

 

Nu valt het mij op dat als ik met mijn dreambox naar 1 van deze overige zender zap dat deze ook eerste een Not OK terug krijgt, maar dat er meteen andere ECM's verstuurd worden welke op een gegeven moment WEL een OK terug krijgt. Vanaf dat moment worden alle volgende ECM's wel door de NewCS geaccepteerd.

 

Als ik met mijn dreambox naar 1 van de bovenstaande zender zap (geen FTA zender natuurlijk) dan komt er meteen een OK bericht terug van de dreambox. Dit verklaard ook waarom tvheadend de zenders kan decoderen.

 

Hier een log van mijn NewCS server van als ik zap naar Nederland 3 met mijn dreambox:

http://pastebin.com/mbc0f5a0

 

Dus het lijkt er op dat er in de CA PID voor Nederland 3 verschillende ECM's beschikbaar zijn en dat er eerst gekeken moet worden welke de juiste variant is om Nederland 3 te kijken. Zodra de jusite variant gevonden is wordt voortaan alleen die variant doorgestuurd naar NewCS en werkt alles zonder problemen. (LETOP: Dit is hoe ik de resultaten van mijn logs intrepreteerd, geen idee of dit ook daadwerkelijk zo gaat)

 

Kan iemand met kennis van cardservers, cardclients, irdeto en ECM's eens naar de tvheadend code kijken om te zien of de manier hoe de ECM's naar de cardserver wordt gestuurd wel correct is voor Ziggo/Irdeto?

 

Ik heb er nu 3 dagen aan besteed maar ik ben geen c programeur en ik heb ook niet heel veel kennis van dit alles. (maar natuurlijk wel bereid om te leren hier over)

 

Alvast bedankt,

 

Hein

 

Link naar reactie
Delen op andere sites


  • Reacties 69
  • Aangemaakt
  • Laatste reactie

Beste reacties in dit topic

Beste reacties in dit topic

Misschien komt het omdat kanalen kunnen behoren tot meerdere pakketten. Een ECM bevat dan voor ieder pakket waar een kanaal toe behoort sub informatie die geverifieerd moet worden tegen de op jouw smartcard geregistreerde pakketten. Als het eerste pakket waar een kanaal toe behoort dan niet op jouw smartcard aanwezig is moet het volgende pakket uit de ECM geprobeerd worden. Bij kanalen die maar tot één pakket behoren zal dan de eerste direct raak zijn, tenminste als je ook een abonnement op dat pakket hebt.

Link naar reactie
Delen op andere sites

Laat me raden ... je zit op CAID 0602 ...

 

Ik ben met appiemulder (die een port van vdr-sc voor windows bouwt) aan het stoeien geweest met de CHIDs die Ziggo meezendt op het netwerk.

 

Ik ondervond dezelfde problemen als jij; de dreambox zapt prima, maar ik heb grote problemen met een dvb-c kaart.

 

De oorzaak van het probleem ligt in het feit dat er op het Ziggo netwerk meerdere CHIDs per kanaal actief zijn; en hiervoor worden door je softcam ook ECMs afgevraagd bij NEWCS. CHIDs die actief zijn op je kaart zullen een ECM OK teruggeven; de anderen ECM NOT OK.

 

Mgcamd (dat ik gebruik in de dreambox) lijkt de CHID te onthouden die succesvol beantwoord wordt; je ziet dus ECM NOT OK langskomen (bij zappen) totdat de juiste CHID gebruikt wordt. Hierna blijft de softcam de juiste gebruiken.

 

Vdr-sc heeft in de cardclient/irdeto implementatie vastgelegd dat het alleen de eerste chid zal gebruiken die het ziet langskomen. Als er maar 1 CHID op een kanaal zit, of als toevallig het juiste CHID als eerste langskomt, heb je gewoon beeld; anders heb je gewoon pech.

 

Inmiddels heb ik met behulp van appiemulder in vdr-sc (hardcoded) de voor mij (on)geschikte CHIDs weggefilterd. (in mijn geval 0x0003, 0x0004, 0x0005, 0x0015, 0x0016, 0x0017, 0x0018, 0x0019 en 0x270f).

Ik probeer nu in contact te komen met de ontwikkelaar van vdr-sc om hier een nettere oplossing voor te bouwen (waarden vastleggen in een config bestand).

 

Ik weet niet welke softcam in tvheadend gebruikt wordt; maar hier zal iets dergelijks moeten gebeuren.

 

Link naar reactie
Delen op andere sites

Origineel bericht van: walinsky
Laat me raden ... je zit op CAID 0602 ...

Ik ben met appiemulder (die een port van vdr-sc voor windows bouwt) aan het stoeien geweest met de CHIDs die Ziggo meezendt op het netwerk.

Ik ondervond dezelfde problemen als jij; de dreambox zapt prima, maar ik heb grote problemen met een dvb-c kaart.

De oorzaak van het probleem ligt in het feit dat er op het Ziggo netwerk meerdere CHIDs per kanaal actief zijn; en hiervoor worden door je softcam ook ECMs afgevraagd bij NEWCS. CHIDs die actief zijn op je kaart zullen een ECM OK teruggeven; de anderen ECM NOT OK.

Wat jij een CHID noemt is in feite een pakket. Zie het volgende overzicht van alle pakketten (CHID's) die in gebruik zijn bij Ziggo/Casema/Multikabel:
http://gathering.tweakers.net/forum/list_message/31632929#31632929

Dat overzicht is gemaakt op basis van de ECM's die bij alle kanalen verzonden worden. Bij Ziggo/Casema/Multikabel is er dan nog iets bijzonders aan de hand, namelijk twee ECM data streams bij ieder kanaal omdat er sprake is van twee CAID's.
Link naar reactie
Delen op andere sites

tv headend heeft zelf een eigen implementatie gemaakt. Maar dan alleen met ondersteuning van NewCS. Hij geeft gewoon de ECM die hij vindt in de CA PID door aan NewCS. Maar dit gaat dus idd fout.

 

Ik zat al in de vdr-sc code te kijken (system.c line 185) waar iets met chid's gedaan wordt. Maar ik kan mij herinneren van sasc-ng dat ook zonder het onthouden van geslaagde chid's ik toch alle zenders kon bekijken waar ik recht op had, als de andere ECM's maar ook doorgestuurd werden.

 

Hein

Link naar reactie
Delen op andere sites

Het zou handiger zijn als een implementatie aan de smartcard opvraagt welke actieve CHID's er allemaal op de smartcard geregistreerd zijn zodat alleen die CHID's uit de ECM's gehaald kunnen worden. Het aanbieden van de niet op de smartcard geregistreerde CHID's heeft immers helemaal geen zin.

Link naar reactie
Delen op andere sites

archie,

 

dat zou idd mooi zijn, maar ik heb al gekeken naar het newcamd protocol en dat ondersteund het niet. Daarnaast is het gebruik van chid's een irdeto specifiek iets en worden de servers (natuurlijk) voor meerdere systemen geschreven.

 

Je kan ze natuurlijk wel vanuit het NewCS debug console opvragen, en dan ergens in een config bestand weg schrijven.

 

De andere methode is idd uitproberen welke werkt, en die relatie ergens vast houden. Maar zonder die relatie zou het ook moeten werken, alleen duurt het dan even voordat de correcte key gevonden is.

 

Hein

Link naar reactie
Delen op andere sites

Origineel bericht van: Rigolo
tv headend heeft zelf een eigen implementatie gemaakt. Maar dan alleen met ondersteuning van NewCS. Hij geeft gewoon de ECM die hij vindt in de CA PID door aan NewCS. Maar dit gaat dus idd fout.

Ik zat al in de vdr-sc code te kijken (system.c line 185) waar iets met chid's gedaan wordt. Maar ik kan mij herinneren van sasc-ng dat ook zonder het onthouden van geslaagde chid's ik toch alle zenders kon bekijken waar ik recht op had, als de andere ECM's maar ook doorgestuurd werden.

Een ECM pakket bestaat net als alle andere informatie die via de tables wordt verstuurd uit secties. Iedere sectie komt overeen met een bepaalde CHID. Als een kanaal dus tot 4 pakketten behoort, dan heeft de ECM pakket voor dat kanaal dus ook 4 secties en iedere sectie een aparte CHID.
Link naar reactie
Delen op andere sites

Origineel bericht van: Rigolo
dat zou idd mooi zijn, maar ik heb al gekeken naar het newcamd protocol en dat ondersteund het niet. Daarnaast is het gebruik van chid's een irdeto specifiek iets en worden de servers (natuurlijk) voor meerdere systemen geschreven.

Je kan ze natuurlijk wel vanuit het NewCS debug console opvragen, en dan ergens in een config bestand weg schrijven.

Inderdaad, ik zie hier op dit forum regelmatig van die scherm dumpjes langskomen waarin het pakketten overzicht van de smartcard staat met de daarbij behorende geldigheid in dagen sinds een bepaalde startdatum die smartcard serie nummer afhankelijk lijkt te zijn. Zie de diverse discussies over de geldigheidsduur van het preview pakket in de DVB-C sectie van dit forum voor voorbeelden. De daar getoonde CHID's zijn degene die je uit de ECM data moet halen en aanbieden aan de smartcard mits die CHID nog geldig is tenminste. De CHID voor het preview pakket op mijn smartcard is nog steeds aanwezig, maar uiteraard niet meer geldig.

Citaat:
De andere methode is idd uitproberen welke werkt, en die relatie ergens vast houden. Maar zonder die relatie zou het ook moeten werken, alleen duurt het dan even voordat de correcte key gevonden is.

Precies. Voor de load is het natuurlijk handig om de CHID's niet meer aan te bieden waarvan je na het leer proces weet dat ze toch niet werken omdat de smartcard geen abonnement heeft voor die CHID.
Link naar reactie
Delen op andere sites

Een zelflerend systeem zou natuurlijk het mooist zijn.

Ik weet dat appiemulder hiervoor een 'cache' ingebouwd heeft in acamd.

 

@Rigolo

we hebben inderdaad in system.c de wijziging gemaakt;

function cSystem::CheckECM ziet er bij mij nu zo uit:

Code:
int cSystem::CheckECM(const cEcmInfo *ecm, const unsigned char *data, bool sync){  switch(ecm->caId>>8) {    case 0x06: // Irdeto      {      const int chid=WORD(data,6,0xFFFF);      if(sync && check->caid.sys06.current>0 && chid!=check->caid.sys06.current) {        PRINTF(L_CORE_ECMPROC,"ecmcheck(%s): chid %04x != current %04x",name,chid,check->caid.sys06.current);        return 2;        }      /* these are hardcoded chids we _ignore_ */      if(chid==0x0003 || chid==0x0004 || chid==0x0005 || chid==0x0015 || chid==0x0016 || chid==0x0017 || chid==0x0018 || chid==0x0019 || chid==0x270f) {        PRINTF(L_CORE_ECMPROC,"ecmcheck(%s): chid %04x blocked",name,chid);        return 2;        }      break;      }    }  return 0;}

Nogal rigoreus; maar het werkt bij mij nu feilloos (natuurlijk omdat ik alle pakketten block die ik niet heb)

 

Volgens mij moet het niet al te moeilijk zijn een zelflerend systeem te bouwen;

Je kunt in ieder geval irdeto-specifiek (caid>>8 == 0x06) een extra controle inbouwen.

Mijn gevoel zegt dat het niet erg is om bij zappen de hele lijst chids af te werken tot een ecm ok gevonden wordt. Deze caid/pid/chid combo zou gecached moeten worden.

 

 

Link naar reactie
Delen op andere sites

walinsky ... je zou idd graag die lijst in een irdeto.conf bestand willen hebben of zo in vdr-sc .. om op die manier het flexibel te houden maar volgens mij zou het dan toch andersom moet doen. Dus alles blokeren behalve die CHID's die je kan zien in NewCS of in de lijst van Archie?

 

Als je precies weet welk pakket je hebt dan kan je die lijst zo maken nml.

 

Hein

Link naar reactie
Delen op andere sites

Klopt; hier was ik ook nog niet zeker over -

mgcamd heeft in zijn configuratie echter specifiek block chids staan.

Hier vanuitgaande heb ik het nu zo gedaan.

De wijziging in de code is natuurlijk triviaal wink

 

Zou de sc zelf een tabel bijhouden van CHIDs-> ECM NOT OK (dit zal je moeten bij een zelflerend systeem) dan hou je automatisch natuurlijk ook de lijst van geblockte CHIDs bij.

Link naar reactie
Delen op andere sites

In de SVN editie van TVHeadend kan je nu ook gebruik maken van CCcam icm de PRELOAD configuratie. Had je toevallig dit al geprobeerd?

 

Ik ben een beetje aan het spelen geweest met TVHeadend, maar op dit moment ervaar ik enorm veel problemen met het bekijken van HDTV beelden binnen XBMC. Mijn ION lijkt het niet te kunnen bolwerken wanneer de cpu boven de 100% komt :P

 

Ik ga maar eens kijken of ik een hack/patch kan maken die het cccam2 protocol implementeerd. Want met de PRELOAD configuratie heb ik namelijk het probleem, dat de return van de CAID's enorm lang lijkt te duren en daardoor zegt de TVheadend channelmapping dat ik niet gemachtigd ben voor mijn Canal Digitaal kanalen. En icm newcamd lijk ik helemaal nergens gemachtigd voor te zijn. Met de PRELOAD krijg ik iets van 50% van de kanalen in mijn overview.

 

Mvg,

 

Niels Wagenaar

Woonkamer : Xubuntu 8.04 met VDR 1.7.4 en WinTV NOVA-HD-S2 icm Reel Extension HD.

Slaapkamer : Een MediaMVP icm de vompserver v0.30 VDR plugin.

Link naar reactie
Delen op andere sites

Niels,

 

ik gebruik al geruime tijd de SVN versie (ik bouw altijd zelf even een .deb hier van) en ik weet ook van het bestaan van de capmt koppeling.

 

Maar ik gebruik geen CCcam, en eigenlijk wil ik ook geen CCcam gebruiken. CCcam is net drugs, als je eenmaal aan CCcam zit, kom je er niet meer vanaf. Dit is omdat CCcam dus alleen maar inkomende connecties vanaf andere CCcam clients ondersteund. Met NewCS (of een andere newcamd protocol gebruikende cardserver) heb je wat meer vrijheid.

 

Eigenlijk wil ik OSCam gaan gebruiken, maar dat is weer voor een ander draadje :-)

 

Hein

Link naar reactie
Delen op andere sites

Maak een account aan of log in om te reageren

Je moet een lid zijn om een reactie te kunnen achterlaten

Account aanmaken

Registreer voor een nieuwe account in onze community. Het is erg gemakkelijk!

Registreer een nieuwe account

Inloggen

Heb je reeds een account? Log hier in.

Nu inloggen
  • Wie is er online   0 leden

    • Er zijn geen geregistreerde gebruikers deze pagina aan het bekijken
×
×
  • Nieuwe aanmaken...