• 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.

CFD - Extension Settings auslesen und Manipulieren

suessmilch

Bronze Partner
Advanced Certified
Mitglied seit
7. Dezember 2020
Beiträge
17
Guten Morgen,

ich habe einen Komplexen Call Flow erstellt.
Diesen möchte ich erweitern um zwei Features:

1. Kontroll Variable, die bei Anruf gesetzt wird und später ausgelesen wird ==> Realisiert über eigenen globalen Parameter
2. Das Weiterleitungsverhalten von Verfügbar einer Nebenstelle auslesen, in weiterer globalen Variable oder DN Parameter speichern.

Beispiele:
Anruf kommt zu Nebenstelle 123
hier soll ausgelesen werden was mit Internen / Externen Anrufen passiert als Weiterleitungsregel für den Status verfügbar explizit für den Parameter "Nach Überschreitung des Zeitlimits interne / externe Anrufe weiterleiten an:"

z.b. soll für Intern Anruf beenden gespeichert werden in die neue Variable RBFLOWINTERNMETHOD / RBFLOWEXTERNMETHOD und fall bei Methode ein Ziel angeben ist, soll dieses in RBFLOWINTERNDESTINATION / RBFLOWEXTERNDESTINATIONgespeichert werden, wäre z.b. für Mailbox einer Nebenstelle der Fall, an Nebenstelle Weiterleiten sowie an Nummer weiterleiten.
Nachdem die Informationen gespeichert wurden soll das Verhalten geändert werden in nach Überschreitung des Zeitlimits interne / externe Anrufe weiterleiten an: NEBENSTELLE und NUMMER 666

Ich möchte NICHT den Status der Nebenstelle ändern von Abwesend zu Verfügbar, sondern explizit die Weiterleitungseinstellungen auslesen / ändern.
 
Hallo @suessmilch

Schau dir einmal dieses Schnipsel an. Da steht konkret mit einem Beispiel und Kommentaren beschrieben, wie man die 3CX Weiterleitungsregeln setzt.

So ähnlich werden die Daten auch ausgelesen, hier einige Stichpunkte dazu:
C#:
var ext = PhoneSystem.Root.GetDNByNumber(strExtNr) as Extension;
var profile=ext.FwdProfiles.Where( x => x.Name == "Available").First(); // 'Available', 'Away', 'Out of office', 'Custom 1', 'Custom 2', maybe parameter?
if( profile != null ) {
    // DestinationStruct need 3 parameter
    // 1 DestinationType: 'None', 'VoiceMail', 'Extension', 'Queue', 'RingGroup', 'IVR', 'External', 'Fax', 'Boomerang' (external number),
    //                    'Deflect', 'VoiceMailOfDestination', 'Callback' (reserved), 'RoutePoint'
    // 2 internal DN, maybe select by parameter  - OR -
    // 3 external number as string, maybe select by parameter
   
    // profile.External.AllCalls.Internal.Number bietet z.B. hier die Nummer der Weiterleitung auf eine int. NSt.
}

Das sauber auszulesen ist nicht ganz trivial, da so ein FwdProfiles eine sehr variable Destinationstruct ist. Setzen ist einfacher als zuverlässig lesen, wenn man nicht weiss was einen erwarten kann.
 
Vielen Dank,

das habe ich mir angeschaut und etwas modifiziert.
Funktioniert teilweise, ganz gut, ich kann das Ziel setzen wie gewünscht.
Auslesen scheitert noch.
Und was ich leider nicht finde, ist eine ordentliche Dokumentation dazu.
Ich müsste die Zeit bis die Weiterleitung greift noch ändern müssen. Leider finde ich dazu keine passende Methode dazu :(
 
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.