Fallback mit mehreren SIP Providern ?

adoII

Neuer User
Mitglied seit
7 Feb 2006
Beiträge
58
Punkte für Reaktionen
0
Punkte
0
Hi,

ich hab in etwa folgende Situation:

An einer Telefonanlage mit 10 Telefonen haengt ein Asterisk .
Es gibt z.B. 3 Sip Accounts, von denen jeder nur 1mal zur gleichen Zeit genutzt werden kann.
Es koennen bis zu 10 Leute gleichzeitig teleefonieren, dafuer hat die Asterisk noch mISDN-Trunks.

Nun bin ich auf der Suche nach nem generischen Macro/extension, mit der ich zunaechst alle verfuegbaren SIP-Provider abfrage und den ersten freien nehme.

Falls das nicht klappt soll der Ruf zum Schluss ueber mISDN rausgehen.

Am liebsten waere mir was voellig frei konfigurierbares so wie etwa
[globals]
SIPPROV1=1111@sipprov1
SIPPROV2=2222@sipprov2
SIPPROV3=3333@sipprov3
SIPPROV4=1111@sipprov1 (zwei accounts bei 1 sip-provider)
NUMSIPPROV=3

(spannend: es koennte gar dazu kommen das es 2 accounts beim gleichen sip-provider geben koennte)

[macro-voipout-mit-fallback]
(hat jemand nen Ansatz fuer den Code ? Kann/sollte man evtl. was mit ael2 und schleifen machen ?)
......

Ich hab insbesondere den Eindruck, das ChanIsAvail nicht so sauber funktioniert und einen Kanal als frei angibt, selbst wenn aktuel ein Call darauf statfindet und obwohl der Parameter s angegeben wurde.

Mein erster Code der erstmal nur mit 1 SIpprovider kann sieht so aus, ich hab die infos im wesentlichen hier im Forum gefunden:

[macro-voipout-fallback]
exten => s,1,NoOp(SIP/${ARG1}@sipgate-out AND mISDN/g:to-dtag)
exten => s,2,ChanIsAvail(SIP/2223333@sipgate-out&mISDN/:to-dtag,s)
exten => s,3,NoOp(verfuegbarer Kanal: ${AVAILCHAN} = ${AVAILORIGCHAN} = ${AVAILS
TATUS} )
exten => s,4,Cut(NEWCHAN=AVAILCHAN,/,1)
exten => s,5,NoOp(verfuegbarer Kanal: ${NEWCHAN})
exten => s,6,GotoIf($["${NEWCHAN}" = "SIP"]?8:7)
exten => s,7,GotoIf($["${NEWCHAN}" = "mISDN"]?15:14)
exten => s,8,NoOp(Outgoing call via SIPGATE)
exten => s,9,SetCallerID(SIPGATE-ID)
exten => s,10,SetLanguage(de)
exten => s,11,Dial(SIP/${ARG1}@sipgate-out,60,r)
exten => s,12,Congestion
exten => s,13,Busy
exten => s,14,Hangup
exten => s,15,Goto(dtagout,${ARG1},1)

[dtagout]
exten => _X.,1,Dial(mISDN/g:to-dtag/${EXTEN})
exten => _X.,2,Hangup()


Bin fuer jeden Hinweis dankbar und poste hier auch, was dabei rausgekommen ist.
 
du könntest probieren nach dem wählen den dialstatus abzufragen und wenn chanunavail auf den nächsten provider zu springen
stand hier auch schon mal irgendwo im forum
 
Hi, setze doch deinen nächsten Provider mit Prio + 101 dran!

exten => _0X.,1,Dial(SIP/${EXTEN:1}@sipsnip,60,TtwW)
exten => _0X.,102,Dial(SIP/${EXTEN:1}@sipgate,60,TtwW)
exten => _0X.,203,Dial(Zap/g2/${EXTEN:1},60,TtwW)
exten => _0X.,204,Hangup


Luci
 
gute idee habe aber nun folgendes:

__ast_pbx_run: Timeout, but no rule 't' in context '10042111'
 

Statistik des Forums

Themen
244,831
Beiträge
2,219,102
Mitglieder
371,532
Neuestes Mitglied
cabajo
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.