Dialstatus auswerten klappt nicht

ploieel

Aktives Mitglied
Mitglied seit
13 Mrz 2005
Beiträge
1,898
Punkte für Reaktionen
28
Punkte
48
Hallo, ich habe folgendes Problem:

ich möchte den Dialstatus wir folgt auswerten lassen:

Code:
[external-ISDN_ausgehend]
exten => _0X.,1,Set(CALLERID(number)=3312) ; abgehende MSN 
exten => _0X.,2,Dial(Capi/contr1/0${EXTEN:1}/Bo,,Ttr)
exten => _0X.,3,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?5:4)
exten => _0X.,4,GotoIf($["${DIALSTATUS}" = "BUSY"]?6:7)
exten => _0X.,5,Congestion
exten => _0X.,6,Busy
exten => _0X.,7,Hangup
...
...
[DIALSTATUS]
exten => NOANSWER,1,Set(LANGUAGE()=de)
exten => NOANSWER,2,Playback(vm-nobodyavail)
exten => NOANSWER,3,Congestion()
exten => NOANSWER,4,Wait(10)
exten => NOANSWER,5,Hangup()

exten => BUSY,1,Set(LANGUAGE()=de)
exten => BUSY,2,Playback(tt-allbusy)
exten => BUSY,3,Congestion()
exten => BUSY,4,Wait(10)
exten => BUSY,5,Hangup()

exten => CHANUNAVAIL,1,Set(LANGUAGE()=de)
exten => CHANUNAVAIL,2,Playback(tt-somethingwrong)
exten => CHANUNAVAIL,3,Congestion()
exten => CHANUNAVAIL,4,Wait(10)
exten => CHANUNAVAIL,5,Hangup()

exten => CONGESTION,1,Set(LANGUAGE()=de)
exten => CONGESTION,2,Playback(vm-nobodyavail)
exten => CONGESTION,3,Congestion()
exten => CONGESTION,4,Wait(10)
exten => CONGESTION,5,Hangup()
...
...
[ausgehend]
include => external-ISDN_ausgehend
...
...
include => DIALSTATUS

Nur funktioniert das nicht. Er springt in einen default-context, und bringt damit auch keine Ansagen.

Code:
 -- Got SIP response 486 "Busy here" back from 85.214.61.130
    -- SIP/voipstation-08161b38 is busy
  == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing GotoIf("Zap/2-1", "0?4:3") in new stack
    -- Goto (default,93xxxxxxxxx,3)
    -- Executing GotoIf("Zap/2-1", "1?5:6") in new stack
    -- Goto (default,93xxxxxxxxx,5)
    -- Executing Busy("Zap/2-1", "") in new stack
    -- Channel 0/2, span 1 got hangup request
  == Spawn extension (default, 93xxxxxxxxx, 5) exited non-zero on 'Zap/2-1'
    -- Hungup 'Zap/2-1'

Es gibt einen default-context, aber da ist kein DIALSTATUS-context includiert...

Was kann man tun?

Viele Grüße
Günter
 
Hast Du auch die richtigen contexte gepostet?
Bei external-ISDN_ausgehend steht was von CAPI

in deiner Ausgabe erscheint aber:

Got SIP response 486 "Busy here" back from 85.214.61.130
-- SIP/voipstation-08161b38 is busy


Wie wäre es mit

Code:
[external-ISDN_ausgehend]
exten => _0X.,1,Set(CALLERID(number)=3312) ; abgehende MSN 
exten => _0X.,2,Dial(Capi/contr1/0${EXTEN:1}/Bo,,Ttr)
exten => _0X.,3,Goto(DIALSTATUS, ${DIALSTATUS}, 1)
 
OK, war falscher Auszug aus extensions.conf. Hatte ja mit voipstation raustelefonieren wollen, also SIP, sorry.
Aber das Prinzip habe ich wenigstens verstanden, hoffe ich.

Hier nochmals ein Auszug und die Bitte, mal kurz drüber zu schauen.
Es wäre also falsch:

Code:
[external-voipstation_ausgehend]
exten => _9X.,1,Dial(SIP/0049${EXTEN:1}@voipstation,60,Ttr)
exten => _9X.,2,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?4:3)
exten => _9X.,3,GotoIf($["${DIALSTATUS}" = "BUSY"]?5:6)
exten => _9X.,4,Congestion
exten => _9X.,5,Busy
exten => _9X.,6,Hangup

richtig wäre dann hoffentlich:

Code:
[external-voipstation_ausgehend]
exten => _9X.,1,Dial(SIP/0049${EXTEN:1}@voipstation,60,Ttr)
exten => _9X.,2,Goto(DIALSTATUS, ${DIALSTATUS}, 1)

Danke für den Hinweis, und bitte nochmals melden.

Viele Grüße
Günter

Edit:

habe es wohl doch nicht richtig verstanden, es klappt so auch nicht:

Code:
 == Everyone is busy/congested at this time (1:1/0/0)
    -- Executing Goto("Zap/2-1", "DIALSTATUS| BUSY| 1") in new stack
    -- Goto (DIALSTATUS, BUSY,1)
Feb 11 21:33:40 WARNING[24541]: pbx.c:2358 __ast_pbx_run: Channel 'Zap/2-1' sent into invalid extension ' BUSY' in context 'DIALSTATUS', but no invalid handler
    -- Hungup 'Zap/2-1'
fli4l*CLI>

Was mache ich falsch?
 
Zuletzt bearbeitet:
ok, probiers mal so:

Code:
[external-voipstation_ausgehend]
exten => _9X.,1,Dial(SIP/0049${EXTEN:1}@voipstation,60,Ttr)
exten => _9X.,2,Goto(DIALSTATUS,${DIALSTATUS},1)

wusste nicht das Asterist so eigen ist
 
OK, das wars! Vielen Dank für die Mühe!! :D :D
Grüße
Günter

"ich kann jetzt die Ansagen der freundlichen Dame hören!!"

Edit:
ich finde für BUSY das File "tt-allbusy.gsm" ein wenig unpassend. Gibt es was anderes, etwa:

"Der Teilnehmer ist besetzt, bitte versuchen Sie es später noch einmal."
 
Zuletzt bearbeitet:
Du hast einen GoTo Befehl zur BUSY.
BUSY gibt es aber nicht, also sucht Asterisk eine Extension i (invalid).

Hier ein Beispiel wie man es machen sollte.
mit exten => _s-. fängst Du auch evtl. vergessene Dialstati ab.


exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-CHANUNAVAIL,1,NoOp(Status CHANUNAVAIL)
exten => s-CHANUNAVAIL,n,Macro(callforward_local_fetchstring,callfor_ext_unr,${ARG1})
; exten => s-CHANUNAVAIL,n,Macro(AB_umleitung,ext_AB_u,${ARG1},u)
exten => s-CHANUNAVAIL,n,PlayTones(congestion)
exten => s-CHANUNAVAIL,n,Congestion(10)
exten => s-CHANUNAVAIL,n,HangUp()
exten => s-CANCEL,1,NoOp(Status CANCEL)
exten => s-CANCEL,n,Macro(callforward_local_fetchstring,callfor_ext_una,${ARG1})
; exten => s-CANCEL,n,Macro(AB_umleitung,ext_AB_b,${ARG1},b)
exten => s-CANCEL,n,PlayTones(congestion)
exten => s-CANCEL,n,Congestion(10)
exten => s-CANCEL,n,HangUp()
exten => s-BUSY,1,NoOp(Status BUSY)
exten => s-BUSY,n,Macro(callforward_local_fetchstring,callfor_ext_busy,${ARG1})
; exten => s-BUSY,n,Macro(AB_umleitung,ext_AB_b,${ARG2},b)
exten => s-BUSY,n,PlayTones(busy)
exten => s-BUSY,n,Busy(10)
exten => s-BUSY,n,HangUp()
exten => s-CONGESTION,1,NoOp(Status CONGESTION)
exten => s-CONGESTION,n,Macro(callforward_local_fetchstring,callfor_ext_una,${ARG1})
; exten => s-CONGESTION,n,Macro(AB_umleitung,ext_AB_u,${ARG1},u)
exten => s-CONGESTION,n,PlayTones(congestion)
exten => s-CONGESTION,n,Congestion(10)
exten => s-CONGESTION,n,HangUp()
exten => s-NOANSWER,1,NoOp(Status NOANSWER)
exten => s-NOANSWER,n,Macro(callforward_local_fetchstring,callfor_ext_una,${ARG1})
; exten => s-NOANSWER,n,Macro(AB_umleitung,ext_AB_u,${ARG1},u)
exten => s-NOANSWER,n,PlayTones(congestion)
exten => s-NOANSWER,n,Congestion(10)
exten => s-NOANSWER,n,HangUp()
exten => _s-.,1,NoOp(WARNING: Nicht erfasster Status: ${DIALSTATUS})
exten => _s-.,n,Goto(s-CHANUNAVAIL,1)
 
Um Gotteswillen, willst Du mich erschlagen? :D
Ich habe hier werder Macros noch Argumente implementiert, soweit will ich meine Home-Anwendung auch garnicht treiben! :-)

Jetzt brauche ich lediglich noch ein gsm-prompt für etwa so: " Der Teilnehmer ist zur Zeit leider besetzt. Bitte versuchen Sie es später noch einmal."

Das wars dann. Ich habe in den Pforzheimer prompts ein wenig herum gesucht, aber auf die Schnelle nichts gefunden.
Vielleicht hast Du ja dazu noch einen Tipp; trotzdem vielen Dank für Deine Mühe. Anderen Usern hast Du damit vielleicht sehr geholfen. :-)

Viele Grüße
Günter
 
Hallo Thomas007,

jetzt, mit etwas Abstand, habe ich Deinen Code nochmals angsehen. Je mehr ich mich damit beschäftige, umso interessanter wird es. Aber bis ich das von Dir Geschriebene anwenden kann, muss ich noch ganz gewaltig üben. ;-)

Vielleicht kannst Du mir aber trotzdem noch etwas auf die Sprünge helfen (oder auch ein anderer, der hier mitliest):

Ich würde mir die von mir gewünschte Ansage wie folgt zusammenbasteln wollen, wobei mir aber etwas fehlt, nämlich das Einfügen der gewählten Nummer...

Es soll bei busy abgespielt werden
1. das File vm-theperson.gsm (Der Teilnehmer mit der Nummer...)
2. die gewählte Nummer soll angesagt werden
3. das File vm-isonphone.gsm (...ist gerade im Gespräch.)

Falls jemand dazu eine Idee hat, bitte heraus damit! :D

Viele Grüße
Günter
 
Kostenlos!

Neueste Beiträge

Zurzeit aktive Besucher

Statistik des Forums

Themen
248,236
Beiträge
2,285,174
Mitglieder
377,502
Neuestes Mitglied
nico22de