.titleBar { margin-bottom: 5px!important; }

zaptel cause - Definitionen

Dieses Thema im Forum "Asterisk ISDN mit Bristuff (hfc, zaptel)" wurde erstellt von Mysterious, 3 Nov. 2008.

  1. Mysterious

    Mysterious Neuer User

    Registriert seit:
    3 Nov. 2005
    Beiträge:
    158
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  2. speedy1980

    speedy1980 Mitglied

    Registriert seit:
    13 Okt. 2004
    Beiträge:
    592
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
  3. Mysterious

    Mysterious Neuer User

    Registriert seit:
    3 Nov. 2005
    Beiträge:
    158
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Oh Okay hatte ich wohl nach dem falschen gesucht. Habe inzwischen auch folgendes dazu gefunden um das manuell zu setzen.

    http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Hangup

    Hat das jemand schon getestet? Werd mal gegen abend testen aber villeicht weis ja hier jemand schon hier ob das klappt oder nicht :)
     
  4. Mysterious

    Mysterious Neuer User

    Registriert seit:
    3 Nov. 2005
    Beiträge:
    158
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  5. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    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
    
     
  6. Mysterious

    Mysterious Neuer User

    Registriert seit:
    3 Nov. 2005
    Beiträge:
    158
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  7. Burmann

    Burmann Mitglied

    Registriert seit:
    16 Feb. 2005
    Beiträge:
    372
    Zustimmungen:
    0
    Punkte für Erfolge:
    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/asterisk04@asterisk03/${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/asterisk04@asterisk03/${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)