zaptel cause - Definitionen

Mysterious

Neuer User
Mitglied seit
3 Nov 2005
Beiträge
158
Punkte für Reaktionen
0
Punkte
16
Hi,
gibt es irgendwo eine Liste mit erklärungen zu den Verschiedenen ,ich nenns mal, zap-Causes?

Also was ein cause-16 oder cause -17 oder so weiter bedeutet.

Kann ich diese auch gezielt auslösen also im Dialplan mit nem speziellen Aufruf wie z.b.

Nur ein Beispiel wie ich mir das vorstelle:
exten => *26,1,ZAP_Set(cause-16)

Vielen Dank für eure Infos.


Gruß

Mysterious
 

Mysterious

Neuer User
Mitglied seit
3 Nov 2005
Beiträge
158
Punkte für Reaktionen
0
Punkte
16
So, hab das ganze mal probiert mit folgendem Code:

exten => s-BUSY,1,Set(PRI_CAUSE=17)
exten => s-BUSY,n,Hangup()

Leider bekomme ich so auf dem ISDN Channel kein Busy sondern es wird einfach aufgelegt. Scheint so als würde der ISDN CAUSE nicht richtig zum Telco übermittelt.

Das ganze ist auf einem Freepbx System eingerichtet falls das unterschiede zum normalen Asterisk macht und die Karte ist eine hfc-s im TE-Mode.

ICh habe auch auf einiges Anraten aus diversen beiträgen in der zapata.conf den Parameter
priindication auf outofband gesetzt.

Wieso klappt das so nicht? Ignoriert die hangup-Application den gesetzten PRI_CAUSE oder muss ich noch den HANGUPCAUSE setzen?

Hat hier jemand Erfahrung damit?
 

Burmann

Mitglied
Mitglied seit
16 Feb 2005
Beiträge
372
Punkte für Reaktionen
0
Punkte
0
Hatte mal getestet welche cause-Codes möglich sind und hatte festgestellt, daß je nach Technologlie (SIP/IAX2/mISDN) unterschiedliche Resultate kommen. Ich habe aber das nicht fertig getestet, weil in dem Fall wo ich es benötigt hätte, wegen inband Nachricht der Call nicht beendet wird. Möglicherweise unterscheiden sich die Meldungen in welchen Zustand der Call gerade ist (Ringing, Connected u.a.)

Hier die Ergebnisse:
Wenn Asterisk A mit Hangup(1) das Gespräch beendet ist auf Asterisk B bei SIP der ${DIALSTATUS}=CONGESTION und der ${HANGUPCAUSE}=1; bei IAX2 ist ${DIALSTATUS}=CHANUNAVAIL, bei Capi BUSY und bei mISDN CHANUNAVAIL.
d.h. die Zahlen die hinter "<=" stehen sind die Hangup(cause) welche zu den davorstehenden DIALSTATUS/HANGUPCAUSE der Gegenseite führten.
Code:
;Cause SIP:
;DIALSTATUS=[COLOR="darkorange"][B]CONGESTION[/B][/COLOR]  HANGUPCAUSE=[B][COLOR="magenta"]1[/COLOR][/B]  <=[COLOR="seagreen"][B]1[/B][/COLOR],2,3,22
;DIALSTATUS=BUSY        HANGUPCAUSE=17 <=17
;DIALSTATUS=CHANUNAVAIL HANGUPCAUSE=28 <=28
;DIALSTATUS=CONGESTION  HANGUPCAUSE=19 <=31
;DIALSTATUS=CONGESTION  HANGUPCAUSE=34 <=34,42,66
;DIALSTATUS=CONGESTION  HANGUPCAUSE=x  <x=18,19,21,27,29,34,38,58
;DIALSTATUS=BUSY        HANGUPCAUSE=21 <=alles andere
Code:
;Cause IAX2:
;DIALSTATUS=NOANSWER    HANGUPCAUSE=16 <=16
;DIALSTATUS=BUSY        HANGUPCAUSE=17 <=17
;DIALSTATUS=CONGESTION  HANGUPCAUSE=34 <=34
;DIALSTATUS=[B][COLOR="DarkOrange"]CHANUNAVAIL [/COLOR][/B]HANGUPCAUSE=x  <=x
Code:
;ISDN Cause Capi: 
;DIALSTATUS=BUSY        HANGUPCAUSE=16 <=0
;DIALSTATUS=NOANSWER    HANGUPCAUSE=16 <=2,8,12,19,22,27,33,38,42,46,52,55,60,66,72,75,80,86,92,95,100,106,112,115,121
;DIALSTATUS=CHANUNAVAIL HANGUPCAUSE=0  <=5,15,16,30,49,63,69,83,89,103,109,118,124,125,126,127
;DIALSTATUS=BUSY        HANGUPCAUSE=0  <=37,48,56,58,61,85
;DIALSTATUS=[COLOR="darkorange"][B]BUSY[/B][/COLOR]        HANGUPCAUSE=x  < X= rest
Code:
;ISDN Cause mISDN:
;DIALSTATUS=NOANSWER    HANGUPCAUSE=16 <=0,16
;DIALSTATUS=BUSY        HANGUPCAUSE=17 <=17
;DIALSTATUS=CONGESTION  HANGUPCAUSE=34 <=34
;DIALSTATUS=[B][COLOR="darkorange"]CHANUNAVAIL [/COLOR][/B]HANGUPCAUSE=x  <=rest bis 127
;DIALSTATUS=CHANUNAVAIL HANGUPCAUSE=31 <= wenn >=128
 

Mysterious

Neuer User
Mitglied seit
3 Nov 2005
Beiträge
158
Punkte für Reaktionen
0
Punkte
16
Vielen Dank für diese Liste, schon seltsam die unterschiedlichen erkennungen an der Gegenstelle...kann man das nicht mal vereintheitlichen???

Aber die hfc-s Karte und freepbx bauen ja auf misdn auf und ein PRI_CAUSE=17 müsste ja zur BUSY-Signalisierung führen. Wie hattest du damals das Gespräch beendet? So ähnlich wie meine oben genannte Anweisungen oder anderst? Wie stehen bei dir die Parameter der priindication?
 

Burmann

Mitglied
Mitglied seit
16 Feb 2005
Beiträge
372
Punkte für Reaktionen
0
Punkte
0
Quick & Dirty.

Da ich kein _X! verwenden wollte habe ich die Zeilen für Ein-Stellige-Rufnummer und Mehrstellige doppelt geschrieben. Aufgerufen habe ich dies mit "Goto(test-561,0,1)"

Asterisk A:
Code:
[default]
exten => _X0,1,Wait(1)   ;jeden 10. Anruf 1 Sekunde warten
exten => _XX0,1,Wait(1)
exten => _.,1,NoOP()

;exten => _.,n,Set(PRI_CAUSE=${EXTEN}) ;mit und ohne die Zeile gab keinen Unterschied (glaub ich)
;exten => _.,n,Answer()                ;mit und ohne die Zeile gab keinen Unterschied (glaub ich)
exten => _.,n,Hangup(${EXTEN})
Asterisk B:
Code:
[test-561]
exten => _X,1,NoOp(${CALLERID(all)} ruft ${EXTEN} an = ${DIALSTATUS} == ${PRI_CAUSE} ++  ${HANGUPCAUSE})
;exten => _X,n,Dial(SIP/${EXTEN}@10.2.0.111)
;exten => _X,n,Dial(CAPI/te1/${EXTEN})
;exten => _X,n,Dial(mISDN/g:te/${EXTEN})
exten => _X,n,Dial(IAX2/[email protected]/${EXTEN})
exten => _X,n,NoOp(Hangup(${EXTEN}) =>DIALSTATUS=${DIALSTATUS} HANGUPCAUSE=${HANGUPCAUSE})
exten => _X,n,goto(test-561,$[${EXTEN} + 1],1)
exten => _X.,1,NoOp(${CALLERID(all)} ruft ${EXTEN} an = ${DIALSTATUS} == ${PRI_CAUSE} ++  ${HANGUPCAUSE})
;exten => _X.,n,Dial(SIP/${EXTEN}@asterisk03)
;exten => _X.,n,Dial(CAPI/te1/${EXTEN})
;exten => _X.,n,Dial(mISDN/g:te/${EXTEN})
exten => _X.,n,Dial(IAX2/[email protected]/${EXTEN})
exten => _X.,n,NoOp(Hangup(${EXTEN}) =>DIALSTATUS=${DIALSTATUS} HANGUPCAUSE=${HANGUPCAUSE})
exten => _X.,n,goto(test-561,$[${EXTEN} + 1],1)
exten => h,1,NoOp(${CALLERID(all)} rief ${EXTEN} an = ${DIALSTATUS} == ${PRI_CAUSE} ++  ${HANGUPCAUSE})
exten => h,2,SET(__ext=$[0${ext} + 1])
exten => h,3,goto(test-561,${ext},1)
 

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,912
Beiträge
2,028,111
Mitglieder
351,067
Neuestes Mitglied
duakt