--- /tuxbox/anon/head/apps/tuxbox/tools/camd/camd.c	2004-04-04 22:27:57.000000000 +0200
+++ camd.c	2006-06-05 11:40:46.000000000 +0200
@@ -253,6 +253,16 @@
 	startdescramble();
 }
 
+void do_error_message(unsigned char *buffer, unsigned char first, unsigned char second, char *message) {
+        //printf("this is do_error_message %02x%02x", first, second);
+        if (buffer[12] == first && buffer[13] == second) {
+              char cmd[1000];
+              strcpy(cmd, "wget -O /dev/null -q http://localhost/control/message?popup=");
+              strcat(cmd, message);
+              system(cmd);
+      }
+}
+
 void class_23(unsigned char *buffer, unsigned int len)
 {
 	int i;
@@ -275,6 +285,9 @@
 		unsigned short sid = *(unsigned short *)&buffer[7];
 
 		printf("descramble onid: %04x sid: %04x status: %02x%02x\n", onid, sid, buffer[12], buffer[13]);
+                do_error_message(buffer, '\x50', '\x50', "Ihre%20Smartcard%20ist%20f%C3%BCr%20die%20Sendung%20nicht%20freigeschaltet.");
+                do_error_message(buffer, '\x50', '\xd6', "Ihre%20Smartcard%20ist%20f%C3%BCr%20den%20Kanal%20nicht%20geeignet.");
+                do_error_message(buffer, '\x84', '\x84', "Es%20befindet%20sich%20nicht%20die%20richtige%20Karte%20im%20Digital-Receiver.");
 
 		for (i = 0; i < MAX_SERVICES; i++)
 			if ((descrambleservice[i].onID == onid) && (descrambleservice[i].sID == sid))
