• Eigenständig gehostete oder lokal installierte Instanzen sind komplexer in der Einrichtung und Fehlerbehebung und erfordern daher kostenpflichtigen technischen Support. Kostenlosen Support erhalten Sie mit 3CX StartUP oder einer gehosteten 3CX-Installation mit einen unterstützten SIP-Trunk-Anbieter.

Auslesen der Mobilfunknummer einer Nebenstelle via CFA

patrickb

Gold Partner
Advanced Certified
Mitglied seit
6. Februar 2021
Beiträge
756
Hi, ich habe mal wieder ein CFA Anliegen. Wie zum Teufel kann ich die Mobilfunknummer einer Nebenstelle via C# auslesen? Ich habe diverse Parameter durchprobiert aber keiner gibt mir den Wert zurück den ich benötige.

Probiert habe ich:
extension.MobileNumber
extension.Mobile
extension.Number
extension.Mobil

Wie kann ich solche Parameter im allgemeinen herausfinden? Habe mich bisher immer an den CSV Export Felder orientiert, was bisher auch super funktioniert?

Liebe Grüße und Danke im Voraus.
 
Ändern:
C#:
Extension ext = (Extension)PhoneSystem.Root.GetDNByNumber("222");
ext.SetProperty("MOBILENUMBER", "0815");
ext.Save();
Auslesen:
C#:
return PhoneSystem.Root.GetDNByNumber("222").GetPropertyValue("MOBILENUMBER");

Suchstichwort: CFD Programm Schnipsel CallFlowApp
 
  • Like
Reaktionen: patrickb
Ich bastele schon die ganze Zeit mit Arrays, irgendwelchen If Konstruktionen und Loops im CFD rum, komme aber irgendwie nicht wirklich "schlank" zum Ziel. Gibt's auch die Möglichkeit alle Mobilfunknummern sämtlicher Nebenstellen auszulesen und zu prüfen?

Ziel: Ich würde gerne überprüfen ob die Anrufernummer (session.ani) einer Nebenstelle im System als Mobilfunknummer zugeordnet ist um denn Call dann (sofern die Abfrage true ergibt) an vorhandenen Auswahlmenüs und Ansagen vorbeizuleiten.

Alternativ hatte ich auch schon rumprobiert mit einer Option aus einem früheren Post, Nebenstellen einer bestimmten (Dummy)Warteschleife auszulesen und nur diese auf Ihre Mobilfunknummer zu überprüfen - das will aber so gar nicht.
 
Nachtrag zu meinem vorherigen Post: mit dem Standard CFD Blöcken Set DN Property und Get DN Property kann man mit der Property MOBILENUMBER die Mobilnummer der NSt. schreiben und lesen. Das ist im Bedarfsfall viel einfacher. Es muss also gar kein C# sein. Ich hatte o.g. Schnipsel aus einem etwas größeren Konstrukt rauskopiert.

Zurück zur jetzigen Frage:
Gibt's auch die Möglichkeit alle Mobilfunknummern sämtlicher Nebenstellen auszulesen und zu prüfen?
Das wiederum macht sich mit einem C# Code Schnipsel besser (Achtung, eine lange Zeile gefolgt von einem langen Satz):
C#:
return string.Join(',', PhoneSystem.Root.GetAll<Extension>().Select(x => x.GetPropertyValue("MOBILENUMBER")).Select(x => x=System.Text.RegularExpressions.Regex.Replace(x, @"^[^0-9]*\+(.*)$","00$1")).Select(x => x=System.Text.RegularExpressions.Regex.Replace(x, @"[^0-9,]", "")).Where( x=>x.Length>0).ToArray());
liefert einen CSV String mit den in allen NSt. hinterlegten Mobilnummern (String enthält wirklich nur Zahlen 0-9 und das CSV Komma, keine sonstigen Zeichen, ist alles bereinigt, führendes + wurde durch 00 ersetzt), der dann z.B. mit dem CFD CSV Parser in einer Schleife weiter verarbeitet werden kann oder (wesentlich einfacher, was interessieren da schon die Kommas) in dem nur mit der CFD Inbuilt Function CONTAINS (z.B. innerhalb eines CFD Blockes mit einer Condition) auf eine bestimmte Zahlenfolge hin (der gesuchten Nummer, z.B. aus session.ani, Achtung dort wg. +) gesucht wird.
 
Zuletzt bearbeitet:
Nachtrag zu meinem vorherigen Post: mit dem Standard CFD Blöcken Set DN Property und Get DN Property kann man mit der Property MOBILENUMBER die Mobilnummer der NSt. schreiben und lesen. Das ist im Bedarfsfall viel einfacher. Es muss also gar kein C# sein. Ich hatte o.g. Schnipsel aus einem etwas größeren Konstrukt rauskopiert
Jetzt checke ich auch woher du weisst welche Bezeichnung die zu suchende Zeile hat und wie man da ansonsten an andere Werte kommt. Die Bezeichnungen bekommt man ja wenn man die DN Property Ansicht im Adminpanel aktiviert. Nice und vor allem auch Nice to know das es manchmal sehr einfach gehen kann. Funktionieren tut es mit deinem Schnippsel aber trotzdem super. :)

liefert einen CSV String mit den in allen NSt. hinterlegten Mobilnummern (String enthält wirklich nur Zahlen 0-9 und das CSV Komma, keine sonstigen Zeichen, ist alles bereinigt, führendes + wurde durch 00 ersetzt), der dann z.B. mit dem CFD CSV Parser in einer Schleife weiter verarbeitet werden kann oder (wesentlich einfacher, was interessieren da schon die Kommas) in dem nur mit der CFD Inbuilt Function CONTAINS (z.B. innerhalb eines CFD Blockes mit einer Condition) auf eine bestimmte Zahlenfolge hin (der gesuchten Nummer, z.B. aus session.ani, (Achtung dort wg. +) gesucht wird.
Contains nutze ich in der Hinsicht und Art auch öfter, wobei gerade die Suche mit führendem + oder enthaltenem Komma im String die Contains-Variante erst möglich macht. Sonst könnte er ja auch andere Zeichenfolgen finden. Wie z.B. "045017112" in "0170123045017112345", das Plus bzw. Komma ist an der Stelle dann ein super Trennzeichen um sicher zu sein das nur die wirklich gesuchte Nummer matcht.
 
Wenn das Komma am Anfang für eine Suche mit CONTAINS so wichtig ist, dann einfach ein extra Komma davor setzen:
C#:
return ","+string.Join(',', PhoneSystem.Root.GetAll<Extension>().Select(x => x.GetPropertyValue("MOBILENUMBER")).Select(x => x=System.Text.RegularExpressions.Regex.Replace(x, @"^[^0-9]*\+(.*)$","00$1")).Select(x => x=System.Text.RegularExpressions.Regex.Replace(x, @"[^0-9]", "")).Where( x=>x.Length>0).ToArray());
Damit ist der erste Datensatz des CSV String zwar leer, aber man kann so nach ,<Nummer> suchen lassen.
 
  • Like
Reaktionen: patrickb
Yes, so hatte ich es mir auch gedacht. Immer wieder nice was du hier an Fachwissen am Start hast!
 
@mana: schau hier, Property MOBILENUMBER der DN. Das geht auch mit den CFD Bordmitteln Set DN Property und Get DN Property.

Hier hat der TO explizit nach einer Lösung per C# gefragt, s.o.. Es funktioniert beides.
 
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 register cta
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.