Provider rotation

Flece

Neuer User
Mitglied seit
11 Nov 2007
Beiträge
10
Punkte für Reaktionen
0
Punkte
0
Im moment wechsel ich mit diesem Konstrukt zwischen 2 Providern:


extension.conf
Code:
[globals]
PROVIDER=Berlin_1

[SIP-out]
; alles mit führender 0 per SIP raus
exten => _0X.,1,Set(GLOBAL(PROVIDER)=${IF($[ ${PROVIDER} = Berlin_1]?Berlin_2:Berlin_1)})
exten => _0X.,n,Dial(SIP/${EXTEN}@${PROVIDER},50,gTr)
exten => _0X.,n,Hangup()

nun möchte ich aber 1. zwischen 3 Providern wechseln und 2. soll jeder Provider nur einmal zur selben Zeit benutzt werden. Sprich: wenn 3 Leitungen benutzt werden bekommt der Anrufer ein Besetztzeichen.

Dazu folgende Fragen: geht das noch irgendwie sinnvoll in der extension.conf zu realisieren, wenn ja: wie ? Wenn nein: welche Wege sollte ich mir anschauen? AGI, callfiles oder anbindung an eine DB?

thx und grüße Flece
 
groupcount dürfte eine lösung sein. Dazu im Global folgendes entsprechend eigenenen Wünschen definieren:

Code:
provider_0=sipgate.de
provider_1=1und1.de
provider_2=dus.net
curProv=0
maxProv=2

und das vor den DIAL

Code:
exten => _0X.,n,Set(incruns=0)
exten => _0X.,n(incProv),ExecIF($[ ${incruns} > ${maxProv} ]|Busy)
exten => _0X.,n,Set(GLOBAL(curProv)=${IF($[ ${curProv} = ${maxProv} ]?0:${MATH( ${curProv} + 1 )})})
exten => _0X.,n,GotoIf($[ ${GROUP_COUNT(OutProv_${curProv})} > 0 ]?incProv)   

exten => _0X.,n,Set(GROUP()=OutProv_${curProv})
exten => _0X.,n,Dial(SIP/${EXTEN}@${provider_${curProv}},50,gTr)
exten => _0X.,n,Hangup()

Nicht getestet, sollte aber klappen, hab sowas ähnliches im Einsatz. Das Ding kann auf beliebig viele Provider ausgedehnt werden. einfach die Variablen im Global hinzudefinieren/anpassen.

Grüße
John
 
Zuletzt bearbeitet:
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.