Sipgate clip no screening

Lapidu

Neuer User
Mitglied seit
29 Mrz 2006
Beiträge
48
Punkte für Reaktionen
0
Punkte
6
Hallo zusammen,

bei Sipgate kann man die Absendenummer nicht mehr vom Endgerät setzen lassen.
Gibt es da eine Möglichkeit über sipgate.io?
 
welcher Tarif denn ueberhaupt?
 
Sipgate basic

Gesendet von meinem SM-G930F mit Tapatalk
 
Gibt es irgendwo eine Anleitung?
 
einfach auf sipgate.io gehen
 
Ich habe oben nicht erwähnt das ich einen Asterisk betreibe. Muss ich bei dem auch etwas einstellen?

Ich habe unter sipgate.io folgendes eingestellt:

io2.JPG

Dann die URL: [FONT=&quot]https://api.sipgate.com/v1/devices/e0/callerid[/FONT] dort eingefügt

io1.JPG

Ist das richtig?
 
Du hast da einen Denkfehler gemacht. Woher soll das Sipgate-API wissen, welche Caller-Id du setzen möchtest? Nein, du brauchst dazu einen eigenen Web-Server, typischerweise auf demselben Rechner, auf dem der Asterisk läuft. Dann musst du es schaffen, einen Weg zu finden, aus dem Asterisk dem Web-Server die Caller-ID mitzuteilen, damit sie von sigptate.io gesetzt werden kann. Ich mache es so, dass ich vor einem Anruf aus Asterisk die Caller-ID für die Ziel-Rufnummer in eine Datei mit dem Namen "/tmp/49Zielrufnummer.txt" schreibe, den Anruf einleite und sipgate.io ruft meinen Web-Server an, um die Caller-ID zu erfragen. Der Web-Server (PHP-Script) liest die Datei aus und liefert die gewünschte Caller-ID zurück.
PHP:
if ($_POST['from'] && $_POST['to'])
{
        $fromNumber = $_POST['from']; // the number of the caller
        $toNumber = $_POST['to']; // the number on which the call was received on

        if ($_POST['direction'] == "out")
        {
                $filename = "/tmp/$toNumber.txt";
                $handle = fopen($filename, "r");
                $caller_id = trim(fread($handle, filesize($filename)));
                fclose($handle);

                // Create new DOM Document for the response
                $dom = new DOMDocument('1.0', 'UTF-8');

                // Add response child
                $response = $dom->createElement('Response');
                $dom->appendChild($response);

                // Add dial command as child in response
                $dial = $dom->createElement('Dial');

                // Create a new attribute for the callerId element
                $callerId = $dom->createAttribute('callerId');
                //$anonymous = $dom->createAttribute('anonymous');

                $fromNumber = $caller_id;

                // set callerId - you should change that to your desired number
                $callerId->value = $fromNumber;
                //$anonymous->value = 'true';

                // Add a number target and append it to the dial command, we're calling '+49211000000' - you should maybe change that... ;-)
                $number = $dom->createElement('Number',$toNumber);

                $dial->appendChild($callerId);
                //$dial->appendChild($anonymous);
                $dial->appendChild($number);

                $response->appendChild($dial);

                header('Content-type: application/xml');
                echo $dom->saveXML();
        }
}
 
Hallo WrMulf,

Danke für deine Antwort.
Könntest du mir da helfen? Gegen Bezahlung?
 
Hallo Lapidu,

ich kann es gerne auch ein bisschen ausführlicher beschreiben. Das obige PHP-Script liegt auf meinem Webserver, z.B. www.meinserver.de/io.php. Diese Adresse muss unter sipgate.io eingetragen werden.
Auf demselben Rechner wie der Webserver läuft der Asterisk. Darin gibt es folgenden Context für ausgehende Anrufe:

Code:
[outgoing]
exten => s,1,NoOp(Callerid(all) is ${CALLERID(all)})
exten => s,n,NoOp(Callerid(number) is ${CALLERID(number)})
exten => s,n,NoOp(REALCALLERIDNUM is ${REALCALLERIDNUM}
exten => s,n,NoOp(DIAL_NUMBER is ${DIAL_NUMBER})
exten => s,n,Set(TO=${DIAL_NUMBER})
exten => s,n,Set(FROM=${REALCALLERIDNUM})
exten => s,n,ExecIf($["${FROM}"=""]?Set(FROM=${CALLERID(number)}))
exten => s,n,ExecIf($["${TO:0:1}"="+"]?Set(TO=${TO:1}))
exten => s,n,ExecIf($["${TO:0:2}"="00"]?Set(TO=${TO:2}))
exten => s,n,ExecIf($["${TO:0:1}"="0"]?Set(TO=49${TO:1}))
exten => s,n,ExecIf($["${FROM:0:1}"="+"]?Set(FROM=${FROM:1}))
exten => s,n,ExecIf($["${FROM:0:2}"="00"]?Set(FROM=${FROM:2}))
exten => s,n,ExecIf($["${FROM:0:1}"="0"]?Set(FROM=49${FROM:1}))
exten => s,n,System(echo ${FROM} > /tmp/${TO}.txt)
exten => s,n,Dial(SIP/sipgate/00${TO},tT,60)

Der Asterisk wandelt in dem Context die gewünschte Caller-ID in ein internationales Format ohne führende Nullen und schreibt sie in eine Datei (vor dem Anruf). Bei Dial() ruft sipgate.io das PHP-Script auf dem Apache-Webserver auf und dieses liest diese "/tmp/*.txt"-Datei aus (immer noch vor dem Anruf) und verwendet die in der Datei enthaltene Rufnummer als Caller-ID. Anrufe mit gesetzter Caller-ID, die über diesen Context laufen, werden damit richtig signalisiert. Das praktiziere ich auch erfolgreich bei Rufumleitungen. Es ist eigentlich nur ein schneller Hack, aber funktioniert bei den wenigen Anrufen, die ich tätige, ohne Probleme.
 

Zurzeit aktive Besucher

Statistik des Forums

Themen
244,975
Beiträge
2,222,038
Mitglieder
371,758
Neuestes Mitglied
OpenStage 001
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.