- Mitglied seit
- 14 Apr 2006
- Beiträge
- 8
- Punkte für Reaktionen
- 0
- Punkte
- 0
Hallo Leute!
Ich versuche gerade, mit meinem Asterisk auf einem vServer eine Callback-Lösung mit Webinterface aufzusetzen. Der User gibt seine Rufnummer und die Zielnummer in ein Formular ein, und ein PHP-Skript soll die Verbindung herstellen, indem es sich mit dem Manager verbindet und per Action: Originate eine Verbindung anfordert.
Das klappt auch soweit erstmal, d.h. das eigene Telefon klingelt und beim Abheben werde ich mit dem Zielanschluss verbunden.
Was allerdings nicht richtig klappt, ist das Beenden der Verbindung. Wenn ich am eigenen Telefon auflege, legt der Asterisk die Verbindung zum Ziel deswegen nicht auf bis der angerufene Anschluss die Verbindung selbst beendet. Das kann natürlich bei Sprachcomputern lange dauern.
Ich bin jetzt etwas ratlos, mir fehlen vor allem die Ansatzpunkte. Wie kriege ich Asterisk dazu, dass wenn der über Originate geöffnete Channel durch auflegen geschlossen wird auch die andere Verbindung beendet wird?
Es funktioniert übrigens andersrum, d.h. wenn der Angerufene auflegt - dann legt der Originate-Channel auch auf.
Mein php-Skript:
extensions.conf:
Wäre nett wenn sich jemand auskennt
. Danke schon mal für jede Hilfe!
Sebastian
Ich versuche gerade, mit meinem Asterisk auf einem vServer eine Callback-Lösung mit Webinterface aufzusetzen. Der User gibt seine Rufnummer und die Zielnummer in ein Formular ein, und ein PHP-Skript soll die Verbindung herstellen, indem es sich mit dem Manager verbindet und per Action: Originate eine Verbindung anfordert.
Das klappt auch soweit erstmal, d.h. das eigene Telefon klingelt und beim Abheben werde ich mit dem Zielanschluss verbunden.
Was allerdings nicht richtig klappt, ist das Beenden der Verbindung. Wenn ich am eigenen Telefon auflege, legt der Asterisk die Verbindung zum Ziel deswegen nicht auf bis der angerufene Anschluss die Verbindung selbst beendet. Das kann natürlich bei Sprachcomputern lange dauern.
Ich bin jetzt etwas ratlos, mir fehlen vor allem die Ansatzpunkte. Wie kriege ich Asterisk dazu, dass wenn der über Originate geöffnete Channel durch auflegen geschlossen wird auch die andere Verbindung beendet wird?
Es funktioniert übrigens andersrum, d.h. wenn der Angerufene auflegt - dann legt der Originate-Channel auch auf.
Mein php-Skript:
Code:
$socket = fsockopen("127.0.0.1","5038", $errno, $errstr, $timeout);
fputs($socket, "Action: Login\r\n");
fputs($socket, "UserName: xxxx\r\n");
fputs($socket, "Secret: xxxx\r\n");
fputs($socket, "Events: off\r\n\r\n");
fputs($socket, "Action: Originate\r\n" );
fputs($socket, "Channel: SIP/".$callback."@49228xxxxx\r\n" );
fputs($socket, "Exten: ".$ziel."\r\n" );
fputs($socket, "Context: default\r\n" );
fputs($socket, "Priority: 1\r\n" );
fputs($socket, "Async: no\r\n\r\n" );
fputs($socket, "Action: Logoff\r\n\r\n");
while (!feof($socket)) {
$wrets .= fread($socket, 8192);
}
fclose($socket);
echo $wrets;
extensions.conf:
Code:
[default]
exten=>_49.,1,Dial(SIP/${EXTEN}@49228xxxxxx,60,tTr)
exten=>_49.,2,Hangup
Wäre nett wenn sich jemand auskennt
Sebastian