[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:
Kostenlos!

Statistik des Forums

Themen
248,859
Beiträge
2,303,046
Mitglieder
378,510
Neuestes Mitglied
Muehle79