Wenn CAPI-B-Kanäle belegt, dann per SIP rausrufen

JN3piogZ

Neuer User
Mitglied seit
22 Dez 2006
Beiträge
48
Punkte für Reaktionen
0
Punkte
0
Hi!

Ich habe eine ISDN-Flatrate. Ich möchte nun, dass ausgehende Gespräche zunächst auf den ISDN-Kanälen (per CAPI) versucht werden und nur falls die ISDN Kanäle beide voll sind, soll ein ausgehender Ruf per SIP erfolgen. Wie kann ich das realisieren?

T.
 
Such mal hier im Forum nach Groupcount oder Dialstatus, mit beiden Varianten kann man das lösen.
 
Such mal hier im Forum nach Groupcount oder Dialstatus, mit beiden Varianten kann man das lösen.

Erst mal danke für den Tipp.

Leider geht es nicht ganz so einfach, wie es in den Beispielen geschildert wurde. Bei mir ist die Besonderheit, dass neben Asterisk auch noch capi4hylafax läuft und eben hylafax einen oder sogar beide B-Kanäle der CAPI belegen kann, wenn gerade gefaxt wird. Das scheint Asterisk nicht mitzubekommen. Denn wenn ich von meinem Telefon aus über das Amt meine Faxnummer wähle (ein B-Kanal über Asterisk raus zur Vermittlung, der andere wieder rein und wird dann von Hylafax angenommen) dann scheint Asterisk nur mitbekommen zu haben, dass ein B-Kanal belegt ist. Beim Versuch über das CAPI Interface rauszuwählen bekomme ich dann den Dialstatus "CONGESTION" statt wie erwartet "CHANUNAVAIL". Ich habe mir jetzt geholfen, indem ich beides abfange, aber ich fürchte das ist eine unsaubere Lösung, die noch andere Nachteile mit sich zieht, oder?

Code:
[nach_extern_erlaubt]
exten => _XXXX.,1,Macro(dialout,${EXTEN})

[macro-dialout]
; Ausgehende Gespraeche: MSN setzen, zuerst die CAPI Leitungen probieren
; erst wenn die besetzt sind (congestion oder chanunavail)SIP probieren
exten => s,1(waehl),Dial(CAPI/g1/${ARG1})
exten => s,n,NoOp( Dial Status: ${DIALSTATUS})
exten => s,n,Goto(${DIALSTATUS})
exten => s,n(NOANSWER),Hangup
exten => s,n(CONGESTION),NoOp(Congestion, calling ${ARG1} via SIP)
exten => s,n(CONGESTION),Dial(SIP/${ARG1}@sip-out,60,T)
exten => s,n(CONGESTION),Hangup()
exten => s,n(CANCEL),Hangup
exten => s,n(BUSY),Busy
exten => s,n(CHANUNAVAIL),NoOp(Chan Unavail erreicht, calling ${ARG1})
exten => s,n(CHANUNAVAIL),SetCallerId(${CALLERIDNUM})
exten => s,n(CHANUNAVAIL),Dial(SIP/${ARG1},,T)
 
Kostenlos!

Zurzeit aktive Besucher

Statistik des Forums

Themen
247,974
Beiträge
2,278,239
Mitglieder
377,074
Neuestes Mitglied
Oblix66