[Problem] Kein Hangup von PHP über AMI möglich

tomhamburg

Neuer User
Mitglied seit
7 Mrz 2011
Beiträge
12
Punkte für Reaktionen
0
Punkte
0
Moin Forumgemeinde,

ich habe ein merkwürdiges Problem mit dem Auflegen. Folgendes Szenario:

Ich habe eine Kundenmaske auf meinem Webserver (mit PHP programmiert).
Mit einem Klick auf anrufen wird die Telefonnummer an den Manager weitergegeben:

Code:
           $socket = fsockopen("192.168.1.54","5090", $errno, $errstr, $timeout);
             if (!$socket){
             
                 echo "Keine Verbindung zum Telefonieserver";
    
             }
             else{
             
                 $output = "Action: Login\r\n";
                 $output.= "UserName:".$user."\r\n";
                 $output.= "Secret: ".$pwd."\r\n";
                 $output.= "Events: off\r\n\r\n";
                 $output.= "Action: Originate\r\n";
                 $output.= "Channel: SIP/1971_171\r\n";
                 $output.= "Exten: ".$nr."\r\n";
                 $output.= "Context: hhh_1971_171\r\n";
                 $output.= "Priority: 1\r\n";
                 $output.= "Async: no\r\n\r\n";
                 $output.= "Action: Logoff\r\n\r\n";
                 
               }
           

             fwrite($socket, $output);
             $z=0;
              while((!feof($socket)) && ($z <200)){
                $a=fgets($socket, 128);
                $z++;
             }
             fclose($socket);

Das funktioniert tadellos. Wenn ich nun auf den Button Auflegen klicke, wird der Anruf nicht beendet. (bei Asterisk 1.6 funktionierte das tadellos). Hier der Code

Code:
 $socket = fsockopen("192.168.1.54","5090", $errno, $errstr, $timeout);
 if (!$socket){
            
          echo "Keine Verbindung zum Telefonieserver";
    
               }
             else{
                 
                 $output = "Action: Login\r\n";
                 $output.= "UserName: ".$user."\r\n";
                 $output.= "Secret: ".$pwd."\r\n\r\n";
                 $output.= "Action: Hangup\r\n\r\n";
                 $output.= "Channel: ".$channelid."\r\n";
                 fwrite($socket, $output); 
                 fclose($socket))
               
                 
             fclose($socket);
             
           }

Die Channelid lese ich über das AMI aus und übergebe sie (ist die Richtige).

Wenn ich mich jetzt per telnet auf dem Manager anmelde, sehe ich ja die ganzen ausgeführten Befehle. Beim Anrufen ist auch alles gut. Beim Auflegen kommt nur dieses:

Code:
Event: SuccessfulAuth
Privilege: security,all
EventTV: 2014-10-28T16:19:19.675+0100
Severity: Informational
Service: AMI
EventVersion: 1
AccountID: caller00
SessionID: 0x7fc574005568
LocalAddress: IPV4/TCP/0.0.0.0/5090
RemoteAddress: IPV4/TCP/192.168.1.54/52373
UsingPassword: 0
SessionTV: 2014-10-28T16:19:19.675+0100

Kein Hangup und nichts weiter........

Hat jemand eine Ahnung, wo ich den Fehler habe??

[Beitrag 2:]

Achso, das Problem passiert auf einem Asterisk 12.6.0

Funktionieren tut es auf einem alten 1.8.4.2.

Ich hoffe, das hilft??

Gruß Tom
 
Zuletzt bearbeitet von einem Moderator:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.