SearchWiki:
Freie IT-Beratung
 Rolf Winterscheidt
http://www.rowi.net

Main.SideBar (edit)

Rolf

||align=center ||||

Scirocco

Das Scirocco-Wiki ist nun unter: http://wiki.sciroccoforum.de

IP-Telefonie

SecondLife

Weitere Themen

Das Passwort zum Ändern von Seiten ist der Firmenname links neben dem Vogel, was auch gleichzeitig der Domainname ist.

Impressum: http://www.rowi.net
Recent Changes Printable View Page History Edit Page
Die Idee zu einer Serverüberwachung kommt irgendwann von selbst, wenn man mehrere Asterisk-Serve betreibt. Um halbwegs einen normalen Anruf nachzustellen, hatte ich mir überlegt, einen Asterisk-Server einen anderen anrufen zu lassen, der dann abhebt und lauscht. Der anrufende Asterisk sollte dann eine DTMF-Tonfolge senden, die der angerufene Server dann prüft, also z.B. 1234567890#. Empfängt der angerufene Server diese Daten korrekt, kam offensichtlich eine Verbindung zustande. Man kann das nun noch etwas näher an die Realität anpassen, indem man die DTMF-Signale wirklich als Audiodaten verschickt, man muss hier dann nur als DTMF inband angeben (aber auch empfangsseitig!).

Auf dem Server, der den Call empfängt kann man folgendes Shellskript aufrufen. Dieses Skript wird dann einen Anruf an den sendenden Server tätigen, der dann wiederum mit einer Extension des empfangenen Servers verbunden wird.

 #!/usr/bin/php4
 <?php
 # Die Callerid ist untereinander ziemlich egal, es ist das, was man im Display sehen würde.
 $callerid=999; 

 # Hier kommt die Extension für den empfangenden Server hin:
 $exten=1234;

 $zufall=rand(1,100000);
 echo ">> Testcall...\n";

 $fd=fopen("tmp.txt", "w");
 fputs($fd, "Channel: SIP/4321@sip.example.com\n");
 fputs($fd, "MaxRetries?: 1\nRetryTime: 60\nWaitTime: 30\nContext: default\nExtension: $exten\nPriority: 1\n"); 
 fputs($fd, "Callerid: $callerid\n");
 fclose($fd);

 copy("tmp.txt", "/var/spool/asterisk/outgoing/$zufall");
 ?>

Zusätzlich brauchen wir noch in der /etc/asterisk/extensions.conf (wenn wir nicht ausschließlich auf Realtime setzen) einige Einträge:

 ;Check Testcall with DTMF 123456789#
 exten => 1234,1,Answer
 exten => 1234,2,Read(nummern|ha/system|11|skip|1|20)
 exten => 1234,3,NoOp?
 exten => 1234,4,Hangup

Dies ist nur ein Anfang, d.h. der Server wird in die Extension 1234 gehen und im NoOp? an Priorität 3 sieht man dann die übertragene Nummer, also die 123456789. Mehr macht das Skript noch nicht, aber den Phantasien sind ja keine Grenzen gesetzt.

Auf dem sendenden Server muss natürlicha uch irgendwas sein und das steckt auch im Dialplan (Datei extensions.conf):

 exten => 4321,1,Answer
 exten => 4321,2,Playback(ha/security-system)
 exten => 4321,3,SIPdtmfMode?(rfc2833)
 exten => 4321,4,SendDTMF?(123456789#|300)
 exten => 4321,5,Hangup

Wie geschrieben, das Skript ist nicht richtig fertig, es ist eher ein Ansatz und das nicht mal der Beste. Man ruft also das Skript auf dem angerufenen Server auf und schaut, was sich so tut. Bei Fragen hierzu bitte Mail an mich, z.B. über das Formular auf http://www.rowi.net.

Rolf
Edit Page - Page History - Printable View - Recent Changes - WikiHelp - SearchWiki
Page last modified on December 12, 2005, at 07:59 PM