click2call auto answer

gebetand

Neuer User
Mitglied seit
9 Aug 2013
Beiträge
15
Punkte für Reaktionen
0
Punkte
0
Hallo Leute ich bin neu hier und habe folgendes Problem:

ich nutze dieses Script für click2dial funktioniert einwandfrei nur möchte ich ein Kommando an das Telefon mitschicken das es automatisch weg wählt und nicht erst vorher läutet und ich abheben muss...
zur Info "paging and intercom" funktioniert also das Telefon unterstützt automatische anrufe vom Call Manager...

PHP:
<?php
$dest =   $_GET['dest'];
$caller = $_GET['caller'];
$oSocket = fsockopen("localhost", 5038, $errnum, $errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: on\r\n");
fputs($oSocket, "Username: admin\r\n");
fputs($oSocket, "Secret: amp111\r\n\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: local/".$caller."@from-internal\r\n");
fputs($oSocket, "WaitTime: 30\r\n");
fputs($oSocket, "CallerId: Web Call <".$dest.">\r\n");
fputs($oSocket, "Exten: ".$dest."\r\n");
fputs($oSocket, "Context: from-internal\r\n"); 
fputs($oSocket, "Priority: 1\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
sleep(3);
fclose($oSocket);
?>

könnt ihr mir da einen kleinen Gedanken Anstoß geben? in der AMI habe ich keinen vernünftigen Befehl für die Auto answer bekommen

LG Andi
 
Zuletzt bearbeitet von einem Moderator:
Warum möchtest Du, dass das Telefon irgendwo anruft, ohne dass jemand dran ist? Beschreib doch bitte das Szenario, wie das ganze ablaufen soll.

Bitte in Zukunft [noparse]
Code:
...
[/noparse] verwenden, außerdem würde es nicht schaden, Deinem Beitrag zugunsten der Verständlichkeit ein wenig mehr Interpunktion zu verpassen.
 
Hallo Danke erstmal für die schnelle antwort

Ich möchte nicht irgendwo anrufen ich habe im intratnet eine telefonliste da klicke ich auf einen nummer die führt zu diesem Skript:

Code:
<?php
include("projekt.php");
include("person.php");
$db = new ng_pg();
define("global_src_nr",$db->get_usr_cval("USER_DURCHWAHL"));
if(!$hangup){
    echo "Starte Anruf von #".global_src_nr." nach #".$dest_nr."<br>Sie werden in kürze weitergeleitet.";


    $url = "Location: http://192.168.0.55/click2call.php?caller=".global_src_nr."&dest=".$dest_nr."";
    header($url);
}

$db->ng_pg_close();
?>


bei uns im Intranet ist die eigene Telefonnummer per Cookie hinterlegt daher weiß der Asterisk Server von welcher Nummer er wo anrufen muss...

Nur ist es ärgerlich das jedes Mal vorher mein Telefon läutet => ich abheben muss => und danach wählt es erst weg...

Ich möchte einfach den Anruf der hereinkommt automatisch annehmen damit sofort weggewählt wird und nicht erst der Hörer abgenommen werden muss...

Hoffe das ich mich verständlich genug ausgedrückt habe
 
Letztlich hängt die auszuführende Aktion vom Telefon ab: Je nach Telefonhersteller ist eine andere Message/ein andeerer Zusatzheader im INVITE mitzuliefern, um die Auto-Answer- Funktionalität auszulösen.
Bei bestimmten Telefonnen kann man auch - statt des Originate - den Call direkt an das Telefon geben, z.B. für AAstra ($phone enthält hier die IP-Adresse des Telefons, $dest die anzurufende Nummer, Das Telefon wählt dann über seinen Stammkontext im Asterisk):

PHP:
<?php
	$xml = 'xml=<AastraIPPhoneExecute>' ."\n";
	$xml.= '        <ExecuteItem URI="Dial:'.$dest.'"/>' ."\n";
	$xml.= '</AastraIPPhoneExecute>' ."\n";
	$post = "POST / HTTP/1.1\r\n";
	$post .= "Host: $phone\r\n";
	$post .= "Referer: ".$_SERVER['SERVER_ADDR']."\r\n";
	$post .= "Connection: Keep-Alive\r\n";
	$post .= "Content-Type: text/xml\r\n";
	$post .= 'Content-Length: '.strlen($xml)."\r\n\r\n";
	$fp = @fsockopen($phone,80,$errno, $errstr, 5);
	if($fp)
		{
		fputs($fp, $post.$xml);
		fclose($fp);
		}
?>
 
Danke mal für die Antwort,

Das Problem was dahinter wieder steckt ist natürlich das ich eine IP Adressen Liste für die Telefone führen muss daher muss ich wissen welche Durchwahl hat welche IP , der hacken an der Sache ist natürlich das ich ein X beliebiges SIP Konto auf jedem IP-Phone einrichten kann bzw. mehrere SIP Accounts auf einem Telefon. Daher fällt diese Lösung leider für meinen Gebrauch flach.

IP-Phone benütze ich das Gigaset DE 410 IP Pro im Webinterface kann ich den Servertyp einstellen siehe Screenshot. Das "Paging and Intercom" funktioniert ja auf dem Telefon daher muss es gehen das der Anruf vom Call-Manager automatisch angenommen wird und dann die Route weitergeleitet wird zu meiner Destination... mir fehlt halt nur die Kenntnis mit welchem Befehl das Intercom funktioniert bzw. welchen Zusatz ich mitschicken muss damit das Telefon erkennt das es sich um einen Auto-answer Anruf vom Call-Manager handelt.

Unbenannt.JPG

LG Andi
 
Das wie sollte aber die Gigaset-Doku oder ggf. der Hersteller (ist ja eine Siemens-Tochter) wissen ...
 
So hab mich jetzt nochmal durch FreePbx Foren gequält und habe die Lösung:

Code:
<?php
$dest =   $_GET['dest'];
$caller = $_GET['caller'];
$oSocket = fsockopen("localhost", 5038, $errnum, $errdesc) or die("Connection to host failed");
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: off\r\n");
fputs($oSocket, "Username: admin\r\n");
fputs($oSocket, "Secret: amp111\r\n\r\n");
#fputs($oSocket, "Action: originate\r\n");
#fputs($oSocket, "Channel: local/".$caller."@from-internal\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: local/".$caller."@from-internal\r\n");
fputs($oSocket, "WaitTime: 30\r\n");
fputs($oSocket, "CallerId: Web Call <".$dest.">\r\n");
[B]fputs($oSocket, "Variable: _SIPADDHEADER55=Call-Info: answer-after=1\r\n" );[/B]
fputs($oSocket, "Exten: ".$dest."\r\n");
fputs($oSocket, "Context: from-internal\r\n"); 
fputs($oSocket, "Priority: 1\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
sleep(3);
fclose($oSocket);
?>

die Variable die ich nun mitschicke sagt dem Telefon das es automatisch Antworten soll, wenn man die Zeit auf 0 setzt heben beide Geräte sofort ab daher 1 sec Verzögerung und alles Funktioniert Einwandfrei danke trotzdem für die Hilfestellungen.

LG Andi
 
Zuletzt bearbeitet:
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.