Bei ausgehendem IFMC nicht "angezeigte Nummer" verwenden

  • Hallo,


    ich hab eine Frage ... Gibt es die Möglichkeit z.B über ein Modul das IFMC verhalten bei "internen" Anrufen zu verändern ?
    Ich würde gerne wenn ein interner Teilnehmer einen anderen internen Teilnehmer anruft und dann auf IFMC klingelt das hier nicht die eingestellt "angezeigte" Rufnummer sondern
    die "richtige" externe Nummer des Teilnehmers signalisiert wird. Ich habe hier das Problem das wir quasi nach aussen immer eine Gruppennummer signalisieren "Support" und nicht die eigentlichen Durchwahlen...
    Aber wenn ein Kollege einen anderen Anruft dann sieht dieser eben nur die angezeigte Rufnummer per IFMC und weiß dann z.B nicht direkt wem er zurückrufen soll ...
    Es sollte auch wirklich nur dieser Fall abgefangen sein sonst ist das IFMC so richtig wie es gerade tut :)



    Grüße


    Patrick

  • naja scheint zumindest niemanden sonst zu betreffen ... dann werde ich mich wohl mit den Modulen beschäftigen und mal schauen wie ich das bauen kann ...
    als ich mir das schonmal angeschaut hatte bin ich bisher dran gescheitert das ich noch nicht gefunden habe wie ich prüfen kann ob der ausgehende ruf ein ifmc ruf ist .. hast du da grade ne idee/ tipp ?


    Gruß
    Patrick

  • hast du da grade ne idee/ tipp ?


    Ja das Problem hatte ich auch schon :
    https://support.starface.de/fo…5020&viewfull=1#post35020



    Zitat

    Tom hat mich auf "_callerIFMCNumber" in GetCaller() hingewiesen.
    Diese Variable habe ich erst gesehen nachdem ich GetCaller() erneut in mein Modul gezogen habe, muss irgendwann dazugekommen sein.


    Ich prüfe diese nun auf "empty" und setzte nur dann den SetCaller() um, so bleiben meine iFMC Calls ganz.

  • Danke für den super Tipp.
    Habe es ein bisschen anderst gelöst aber der teil mit der CallerIFMCNumber war super... hab mich in den ausgehenden Telefonaten reingehängt und per isinteranlcall abgefragt und entsprechend die ausgehende nummer auf die ifmc nummer gesetzt.


    Hast du zufällig eine Idee wie ich prüfen kann ob die gewählte nummer bei irgendeinem user als ifmc gesetzt ist ?


    Gruß


    Patrick


  • Hast du zufällig eine Idee wie ich prüfen kann ob die gewählte nummer bei irgendeinem user als ifmc gesetzt ist ?


    Müsste ich selber suchen, wenn es viele Benutzer sind würde man evtl. direkt ein SELECT in der Datenbank machen...


  • Huhu,


    schau dir mal die REST-Modulfunktionen an - dort gibt es ein paar Funktionen mit denen man die Eigenschaften von FMC-Devices von Benutzern zur Weiterverwendung in anderen Modulbausteinen auslesen kann :)

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Huhu,


    schau dir mal die REST-Modulfunktionen an - dort gibt es ein paar Funktionen mit denen man die Eigenschaften von FMC-Devices von Benutzern zur Weiterverwendung in anderen Modulbausteinen auslesen kann :)



    naja das habe ich soeben ... :) allerdings mit wenig erfolg



    die userreadlens scheint nicht so zu funktionieren wie ich das denke... die userliste wird allerdings korrekt ausgelesen...
    ich brauche ja die userids um dann die IFMC auslesen zu können ... Oder ?



    Gruß


    Patrick


  • Die Account-ID gibts ja auch bei GetCaller (rufst du ja bestimmt ganz am Anfang auf :))

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Die Account-ID gibts ja auch bei GetCaller (rufst du ja bestimmt ganz am Anfang auf :))


    Ja ich verfolge jetzt grade einen anderen ansatz:


    Ich will alle IFMC Nummern die bei irgendeinem user konfiguriert sind 1 bis 2x täglich in eine "LIST" füllen und dann im call processing prüfen wenn ein call aufgebaut wird ob die gewählte nummer in der liste enthalten ist wenn ja dann
    verändere ich die "angezeigte" Nummer wenn nein dann einfach normal ...



    Bin auch schon ein gutes stück weiter ... ich blicke nur grade nicht wie ich beim ergebnis der IFMC Phones auf die Werte innerhalb der class FmcPhone {
    id: 1022
    telephoneId: 1024
    }


    zugreifen kann also beispielsweise nur einen wert zurück bekomme den ich dann in die liste füllen kann wie hier z.B nur die id also als rückgabe nur die 1022...



    Gruß


    Patrick



    EDIT: Okay. durchgewühlt ... FMCPhoneReadLense war das was ich gesucht hatte ... die nummer wird mit 0049 angegeben aber beim call processing mit +49 kann das sein ?

    Einmal editiert, zuletzt von p.huegel ()

  • EDIT: Okay. durchgewühlt ... FMCPhoneReadLense war das was ich gesucht hatte ... die nummer wird mit 0049 angegeben aber beim call processing mit +49 kann das sein ?


    Das kommt soweit ich weiß auf das Wählformat deiner SIP bzw. ISDN Leitung drauf an.

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Okay. ihr lieben ich danke euch schon mal für die super Hilfen und Denkanstöße ... Ich hab alles soweit funktionierend bis auf 2 kleine makel ... ich musste das Modul logischerweise auf call processing setzen damit es sich bei den ausgehenden rufen einschalten kann.. ich habe dann darin 2 funktionen gebaut eben eine die die IFMC ausliest und in die Liste pflegt und eine die das eigentliche Call Rewriting durchführt. als Startfunktion habe ich logischerweise die Call rewriting funktion genommen und für die andere hab ich einen Timer definiert.. jetzt sieht es aber so aus das die eigentlich nur per Timer getriggerte Funktion ebenfalls bei jedem ausgehen ruf ausgeführt wird .... unnötig ... muss ich das jetzt in 2 Module splitten ? oder kann ich das anderweitig regeln ? und das zweite ist kann ich einen APIUSER anlegen der keine Lizenz zieht ? muss mich ja für die api requests authen...


    Danke Gruß


    Patrick

  • Okay. ihr lieben ich danke euch schon mal für die super Hilfen und Denkanstöße ... Ich hab alles soweit funktionierend bis auf 2 kleine makel ... ich musste das Modul logischerweise auf call processing setzen damit es sich bei den ausgehenden rufen einschalten kann.. ich habe dann darin 2 funktionen gebaut eben eine die die IFMC ausliest und in die Liste pflegt und eine die das eigentliche Call Rewriting durchführt. als Startfunktion habe ich logischerweise die Call rewriting funktion genommen und für die andere hab ich einen Timer definiert.. jetzt sieht es aber so aus das die eigentlich nur per Timer getriggerte Funktion ebenfalls bei jedem ausgehen ruf ausgeführt wird .... unnötig ... muss ich das jetzt in 2 Module splitten ? oder kann ich das anderweitig regeln ? und das zweite ist kann ich einen APIUSER anlegen der keine Lizenz zieht ? muss mich ja für die api requests authen...


    Danke Gruß


    Patrick


    Es wäre wahrscheinlich am einfachsten wenn du das in 2 Modulen aufsplittest und die Daten in einer Textdatei auf dem System zwischenspeicherst.


    Warum nimmst du nicht einen Administrator-Login dafür (muss ja Admin sein um Einstellungen von anderen Benutzern einsehen zu können)? Warum willst du dafür einen eigenen User anlegen?

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • hm okay. finde halt immer schlecht weil ich ja mein kennwort auch ändere und dann dran denken muss das in der modulkonfig auch anzupassen ... aber egal ...
    kurze frage zum WriteToFile ... wie muss ich den Pfad angeben damit ich das irgendwo ablegen kann wo ich aus dem anderen modul dann auch zugreifen kann ?
    Gibts da ne Doku ?


    Gruß
    Patrick

  • Habe noch ein thema ... wie bekomme ich im modul die nummer des anrufers ?
    Get-Caller und Get-Callee sind irgendwie nicht das richtige ...


    Grüße


    Patrick

  • Habe noch ein thema ... wie bekomme ich im modul die nummer des anrufers ?
    Get-Caller und Get-Callee sind irgendwie nicht das richtige ...


    Grüße


    Patrick


    GetCaller() liefert dir die Informationen zum Anrufer die die STARFACE übermittelt bekommt.

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • //edit: Tom war wohl schneller ;)


    Hallo Patrick


    GetCaller ist schon das richtige.


    Die gibt dir ja einige Werte zurück, und 3 davon sind Nummern


    _callerExtNumber ==> Externe Nummer des Anrufers
    _callerIntNumber ==> Interne Nummer des Anrufers
    _callerSignallingNumber ==> Die Nummer, welche Signalisiert wurde


    Du musst natürlich den Anruf via Call Processing Entrypoint, oder Service Entrypoint mitbekommen.


    MfG


    Fabian

  • jap. ich hatte nur call processing und dann auf outgoing call daher hab ich dann im modul vom get-caller natürlich die internen infos bekommen nicht die vom externen ...
    kannst du mir vielleicht sagen wie ich die nummern in eine textdatei schreiben kann die ich von einem andern modul aus laden kann ?
    habe ja immer noch das Problem mit der dauernden api anfrage die eigentlich timergesteuert reicht statt bei jedem anruf ...


    Gruiße
    Patrick

  • jap. ich hatte nur call processing und dann auf outgoing call daher hab ich dann im modul vom get-caller natürlich die internen infos bekommen nicht die vom externen ...
    kannst du mir vielleicht sagen wie ich die nummern in eine textdatei schreiben kann die ich von einem andern modul aus laden kann ?
    habe ja immer noch das Problem mit der dauernden api anfrage die eigentlich timergesteuert reicht statt bei jedem anruf ...


    Gruiße
    Patrick


    Im Rubrik Input/Output gibt es beispielsweise Methoden, mit denen du Dateien lesen und schreiben kannst. Mit dem foreach (List) und den List-Operand Methoden kannst du über die eingelesene Datei iterieren und die Daten verwenden.

    Quality Assurance


    STARFACE GmbH | Adlerstraße 61 | 76137 Karlsruhe | www.starface.com

  • Hallo Patrick


    Wenn du im Experten-Modus (Häkchen oben) bist, dann gibt es im Tab "Variables" Möglichkeiten Werte für die spätere Verwendung wieder zu Speichern.


    SetVariableValue == Eine Variable mit einem Wert setzen
    GetVariableValue == Einen Wert von einer Variable holen.


    Im groben würde ich es so lösen:


    Code
    LIST Daten //Variable definieren  	 
    GetVariableValue('Instance','LISTE') --> Daten 	 //Wert der Variable "LISTE" in Daten Schreiben 	 
    Size(Daten) --> _size //Prüfen ob Liste einen Wert drinn hat
    if((_size == '0')) //Wenn die grösse 0 ist davon ausgehen, dass die Liste entweder Leer ist, oder noch nicht existiert hat
    {	 
    	CreateList() --> Daten //Eine neue Liste erstellen, um Sicherzugehen, dass der Add Befehl korrekt funktioniert
    }
    Add(Daten,['Test123']) 	//Den wert Test123 zur Liste hinzufügen  	 
    SetVariableValue('Instance','LISTE','Daten') //Die Liste wieder zurück in die Variable Schreiben


    Und natürlich das gleiche nochmal, beim Timer.



    MfG


    Fabian

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!