Anruferrufnnummer in IPS - wie? Evt. VoIP?

Zur Zeit habe ich ein Siemens HiPath 3500 mit RS232 am IPS hängen. Darüber gibt sie die Anruferrufnummer aus und wird dann im IPS verarbeitet. Wenn die Rufnummer im Script vorhanden ist durch den Namen ersetzt, und dann wird sie an den Raumdisplays angezeigt und per SMS versendet.
Nun soll eine x3r oder x5r reinkommen, die aber leider kein RS232 mehr hat. Bestimmt geht das auch alles irgendwie mit dieser Anlage, nur leider hab ich keine Ahnung wie (den Rest der Anlage auch nur durch Internet und Ausprobieren rausgefunden).
Meine Überlegung nun die Rufnummer gleich im IPS zu haben - evt. mit VoIP Befehlen.
Nur wie??? Ich hab schon viel im Forum gesucht, nur leider nicht das Passende gefunden.

IPS 5.5
Win10
10x Rufnummer Telekom (VoIP)
1x Rufnummer Sipgate (VoIP)
keine Rufnummerprogrammierung in der Fritz

Super wären die Anruferrufnummer und die angerufene Rufnummer in IPS in eine Variable. Habt Ihr eine Idee? Sipgate ist sehr unwichtig, da sehr selten benutzt.

Danke - Jan

Hi,
IPS bietet ja einen VOIP-Client. Ich habe ihn mit meiner Fritzbox verbunden als „Telefon“ und bekomme in meine Script:

if($_IPS["SENDER"] == "VoIP") {
// hier stelle ich fest welche meiner 3 Nummer angerufen wurde
    $VoIPID = $_IPS["INSTANCE"];
    switch($VoIPID){
        case 39859:
            $leitung = "8407";
            break;
        case 36184:
            $leitung = "943617";
            break;
        case 42383:
            $leitung = "943618";
            break;
    }
//hier reagiere ich auf verschiedene Zustände
      switch($_IPS["EVENT"]) {
        case "Incoming":
        case "Connect":
        case "Disconnect":
        case "PlayFinish":

Bei Incoming werte ich die Telefonbücher meiner Fritz aus denn nur VIPs aus diesen Telefonbüchern kommen durch wenn ich da bin und Anrufe entgegen nehmen will. Stichwort "Mittagsschlaf 12-15Uhr:-). Ist es keine bekannte Nummer mache ich noch eine Rückwärts Suche mit dem Modul von Null-Chan, ich weiß aber nicht ob es nicht vielleicht eine Fritz braucht. Dann werte ich auch noch Tellows aus und zu guter Letzt prüfe ich noch auf gültige Vorwahl. Ich habe leider schon einige Anrufe mit gefälschter Nummer bekommen und das hat mich genervt.

Ralf

Danke Ralf,

da muss was in der Fritz eingegeben werden und damit läuft bestimmt auch die Telefonie darüber.
Ich suche ob es etwas gibt wo die Fritz ganz raus ist. Es sollen auch nur die Anrufer und die Gerufene Rufnummer im IPS kommen. Die Telefonie läuft ja über die OpenScape x3r.
Gruß - Jan

Hi,
Die Fritz ist mein voip Provider. Du hast einen anderen Provider trotzdem müsstest du dich mit dem voip Client von IPS da anmelden können und dann auf incoming reagieren wo du ja die Telefonnummer des Anrufers bekommst.

Ralf

Hab es nun mit Deinem Hinweis „Du hast einen anderen Provider“ hinbekommen, das IPS auf die Anrufe reagiert. Nach einigem Probieren was in die Felder muss klappt es nun. Es merkt wenn ein Anruf auf einer Rufnummer reinkommt und das startet das Skript zu dieser angerufenen Rufnummer.
Wie bekomme ich aber raus wer dort angerufen hat? In dem jeweiligen Skript muss etwas rein das dieses auswertet. Ich hab viel im Forum dazu gesucht, aber nigs gefunden. Es geht bestimmt irgend wie mit dem " VoIP_GetConnection", nur leider verstehe ich als „super PHP Skripter“ nicht wie es geht.

Eigentlich sollte die Varable 37454 bei Anruf der Nummer xxx21 mit der Anruferrufnummer befüllt werden - hat nicht hin gehauen.


Jan

Hi,
wenn es nur um die Nummer geht bekommst Du die ja ins Script geliefert mit:

$connection = VOIP_GetConnection($VoIPID, $_IPS["CONNECTION"]);
$string = $connection["Number"];
SetValue(37454, $string); //MUSS String nicht Integer sein

Mit dieser Nummer kannst Du jetzt arbeiten und z.B. dein Telefonbuch durchsuchen.
Ich überprüfe zusätzlich die Tellows-Datenbank ob es Spam ist, überprüfe die Vorwahl ob sie real ist und mache eine Rückwärtssuche mit dem Modul von @Nall-chan.

Die Rückwärtssuche bringt aber nicht so oft Treffer weil viele eine Eintrag ins Telefonbuch verweigert haben und immer mehr nur noch Handy benutzen.

Ralf

Hallo Ralf,

danke das Du dir wieder Zeit genommen hast, aber… …leider geht es nicht.

  • hab die Variable gelöscht
  • neu als STRING wieder eingerichtet
  • Dein Beispiel reinkopiert und die Variablennummer angepasst (ist ja jetzt eine Andere)
  • ausprobiert
  • Rufnummer steht nicht da

Ich glaube es liegt an der $VoIPID. Muss die nicht vorher definiert werden, und was ist das eigentlich?

Jan

Sorry vergessen:

$VoIPID = $_IPS["INSTANCE"];

Ralf

Ich hab das nun über den Rest kopiert (Skript).

Es kommt keine Rufnummer in die Variable, aber die Zeit ändert sich.

Als Meldung kommt das…

Das Erste beim Anrufen und das Zweite beim Auflegen

Jan

Und dabei hast du leider übersehen dass das Forum andere Anführungszeichen benutzt.
„so sind die kaputt“
"Und so sind sie korrekt"
Liegt leider daran, das @HarmonyFan dem Code nicht in einem Code Block eingeschlossen hat; ich habe das oben nachgeholt :wink:
Michael

Ohh, neee. Das hätte selbst mir als „PHP-Spezi“ auffallen müssen. Darauf aufmerksam gemacht, und da fällt es selbst mir auf.

hab das nun angepasst.
getestet
in alle Skripte kopiert

Nun kommt zwar viel mehr als die Rufnummer in die Variable, aber die Rufnummer ist bei.
Gestestet immer mit dem selben Telefon.

Danke Euch beiden.

Jan

Moin versuch das mal mit einem altmodischen Telefon oder SmartPhone da sollte nicht so viel kommen. SIP ist ein wenig speziell.

Sorry für die Anführungszeichen.

edit:
so hole ich die Nummer aus SIP-Anrufen raus:

// Rufnummer aus VOIP extrahieren
            $pos = strpos($string, "@", 4); //SIP fängt mit SIP: an
            if ($pos < 8) return; // kein SIP
            $nummer = substr($string, 4, $pos - 4); // vor dem @ steht die Telefonummer

Ralf

Tach Zusammen,

kurze Frage: IPS scheint derzeit nicht den Anrufernamen aus dem SIP-Invite auszulesen?
Im Array „Connection“ steht diese zumindest nicht, geliefert wird der Name auf jeden Fall von der PBX. Oder gibt es dafür noch eine Einstellung?

Dank und Gruß
kea