Voicemailbox geht nicht mehr...

ploieel

Aktives Mitglied
Mitglied seit
13 Mrz 2005
Beiträge
1,898
Punkte für Reaktionen
28
Punkte
48
... und ich finde den Fehler nicht, trotz intensiver Suche.
Kann bitte einer der Leser hier mal drüberschauen und mir den Fehler nennen?

Die Fehlermeldung:

Code:
...
...
-- Zap/1-1 is ringing
    -- SIP/2232-082172e8 is making progress passing it to SIP/2232-b6c0b7a8
    -- Nobody picked up in 15000 ms
    -- Hungup 'Zap/1-1'
  == Auto fallthrough, channel 'SIP/2232-b6c0b7a8' status is 'NOANSWER'
fli4l*CLI>

und die relevanten Auszüge aus dem Dialplan:

Code:
[ISDN_eingehend]
exten => 3312/_XX.,1,Ringing
exten => 3312/_XX.,n,Set(CALLFILENAME=${CALLERID(num)}-${TIMESTAMP})
exten => 3312/_XX.,n,MixMonitor(${CALLFILENAME}.gsm|b) ; |W(0)v(2)V(-2)
exten => 3312/_XX.,n,Set(GLOBAL(FOO)=3312&111)
exten => 3312/_XX.,n,Dial,ZAP/g1/111&SIP/2232|15|t/gbr
exten => 3312,1,Goto(anonymer,s,1)
exten => 3312,1,Goto,(DIALSTATUS,r-${DIALSTATUS},1)
...
...
...
[DIALSTATUS]
exten => r-NOANSWER,1,voicemail,u${FOO}
exten => r-NOANSWER,2,Set (LANGUAGE()=de)
exten => r-NOANSWER,3,Playback(vm-nobodyavail)
exten => r-NOANSWER,4,Congestion()
exten => r-NOANSWER,5,Wait(10)
exten => r-NOANSWER,6,Hangup()

Wie gesagt, der Asterisk springt nicht in die Voicemailbox; er ruft 15 Sekunden und dann kommt "Besetztzeichen" (kurze tut-tut-tut-tut).

Bitte um Hilfe; es kann doch nur eine Kleinigkeit sein, weil das Ganze ja bereits einmal längere Zeit funktioniert hat.

Viele Grüße
 
...
exten => 3312,1,Goto(anonymer,s,1)
exten => 3312,1,Goto,(DIALSTATUS,r-${DIALSTATUS},1)

2x die gleich prio "1" und ein komma zuviel in der zweiten zeile nach "Goto", ein blick in die ausgabe nach "dialplan reload" hätte da wohl wunder gewirkt...

grüße,
laureen
 
Danke, der Tipp hat etwas weitergeholfen. :-)

Trotzdem hätte ich bitte noch einen Rat:

Ich möchte, dass Anrufer, die mich mit unterdrückter Rufnummer anrufen, im Context [anonymer] behandelt werden. Das funktioniert soweit sehr gut. Also die anonymen Anrufer legen entweder auf oder sie wählen eine beliebige Ziffer, um verbunden zu werden.

Nun kommt der "Casus knacksus". Wenn der anonyme Anrufer durchgestellt ist, soll falls niemand abnimmt die Mailbox rangehen; was ja auch funktioniert, wenn jemand anruft, der seine Rufnummer mitsendet.
Bei dem anonymen Anrufer aber springt die Mailbox einfach nicht an;
es klingelt fünfmal (ca. 20 Sekunden), dann kommt "besetzt".
Mal ein paar Code-Zeilen:

Code:
[external-ISDN_eingehend]
exten => 3312/_XX.,1,Ringing
exten => 3312/_XX.,n,Dial,ZAP/g1/111&SIP/2232|15|tr
exten => 3312,1,Goto(anonymer,s,1)

exten => 3312,n,Set(CALLFILENAME=${CALLERID(num)}-${TIMESTAMP})
exten => 3312,n,MixMonitor(${CALLFILENAME}.gsm|b) ; |W(0)v(2)V(-2)
exten => 3312,n,Set(GLOBAL(FOO)=3312&111)

exten => 3312,n,Goto(DIALSTATUS,r-${DIALSTATUS},1)

[anonymer]
exten => s,1,Set(TIMEOUT(response)=10)
exten => s,n,Wait,1
...
...
[DIALSTATUS]
exten => r-NOANSWER,1,voicemail,u${FOO}
exten => r-NOANSWER,2,Set (LANGUAGE()=de)
exten => r-NOANSWER,3,Playback(vm-nobodyavail)
exten => r-NOANSWER,4,Congestion()
exten => r-NOANSWER,5,Wait(10)
exten => r-NOANSWER,6,Hangup()

Nochmals kurz zusammengefasst:
- ein Anruf MIT mitgesendeter Rufnummer landet bei Nichtannahme in der Mailbox
- ein Anruf OHNE mitgesendeter Rufnummer landet zunächst in [anonymer]; wenn er sich durchstellen lässt, landet er bei Nichtannahme leider NICHT in der Mailbox, sondern Asterisk gibt folgende Meldung aus:

Code:
 -- Zap/1-1 is ringing
    -- SIP/2232-08219f28 is making progress passing it to CAPI/ISDN1#02/3312-5
    -- Nobody picked up in 20000 ms
    -- Hungup 'Zap/1-1'
  == Auto fallthrough, channel 'CAPI/ISDN1#02/3312-5' status is 'NOANSWER'
  == ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 2
  == Refreshing DNS lookups.
*CLI>

Ich bin für jeden Hinweis sehr dankbar.

Viele Grüße
 
kannst mal den gesamten context [anonymer] posten? die wichtigen zeilen fehlen leider hier...

grundsäzlich machst du das mit einer dialplan-variable, die im [anonymer] gesetzt wird, und abgefragt wird, bevor der anruf auf die mailbox geht.

grüße,
laureen
 
Danke laureen für Deine Nachfrage.
Hier der gesamte Code ab dem eingehenden Telefonat:

Code:
[ISDN_eingehend]
exten => 3312/_XX.,1,Ringing
exten => 3312/_XX.,n,Dial,ZAP/g1/111&SIP/2232|15|tr
exten => 3312,1,Goto(anonymer,s,1)

exten => 3312,n,Set(CALLFILENAME=${CALLERID(num)}-${TIMESTAMP})
exten => 3312,n,MixMonitor(${CALLFILENAME}.gsm|b) ; |W(0)v(2)V(-2)
exten => 3312,n,Set(GLOBAL(FOO)=3312&111)

exten => 3312,n,Goto(DIALSTATUS,r-${DIALSTATUS},1)

[anonymer]
exten => s,1,Set(TIMEOUT(response)=10)
exten => s,n,Wait,1
exten => s,n,Background(anonymer)
exten => s,n,Wait,1
exten => s,n,Background(waehlen)
exten => s,n,Waitexten,2
exten => s,n,Wait,1
exten => s,n,Background(waehlen)
exten => s,n,Waitexten,2
exten => s,n,Wait,1
exten => s,n,Background(waehlen)
exten => s,n,Waitexten,10
exten => _x,1,Dial,ZAP/g1/111&SIP/2232|20|tr

Und je nach der Abfrage des Dialstatus soll der Asterisk in die Mailbox springen, wenn nicht abgenommen wird; aber das erläuterte ich ja bereits.
(Bei mitgesendeten Rufnummern funktioniert das Ganze; bei NICHT mitgesendeten Rufnummern--hier kommen die mit 00 rein -- funktioniert es nicht.)

Der Context [anonymer] funktioniert folgendermaßen:
Bei einemAnruf mit unterdrückter Rufnummer wird das anonymer-gsm-File abgespielt (dank Amooma neuerdings auch aus deren Text-to-Speech-Engine heruntergeladen), das den Anrufer abwimmeln soll. Will der das nicht, soll er eine beliebige Ziffer wählen (waehlen.gsm), und dann erst klingelt das Telefon. Soweit geht alles, eben nur wenn keiner rangeht, landet der Anruf dann NICHT in der Mailbox, sondern am "Besetztzeichen". Aber ich glaube, Du hast mein Problem schon verstanden.

Welche Dialplan-Variable meinst Du, damit ich das Ganze richtig zum Laufen kriege? Ich lese das mal nach und finde es vielleicht auch selbst heraus.

Vielen Dank für Dein Interesse.
 
wie soll er denn auch auf die mailbox springen? da fehlt dir das goto:
Code:
...
[anonymer]
...
exten = _X,1,Dial,ZAP/g1/111&SIP/2232|20|tr
exten = _X,n,Goto(DIALSTATUS,r-${DIALSTATUS},1)
...

im übrigen wird er dir niemals auf die zeile mit dem "Set(CALLFILENAME=..." kommen, du bist ja durch das goto vorher schon weg...das kommt nicht zurück, wenn es mit dem context "[anonymer]" fertig ist! wenn du das willst, musst du das über ein macro machen!

grüße,
laureen
 
Hi laureen,
das dachte ich mir schon, ein macro. Dazu bin ich nicht Experte genug, um nicht zu sagen, nach wie vor Laie. Ein macro einpflegen geht man noch, aber eines schreiben, dazu reichen meine Kenntnisse nicht.

Falls Dir etwas einfällt, ein Beispiel dazu vielleicht, lass es mich bitte wissen. Ansonsten muss es so bleiben wie es jetzt ist.

Viele Grüße
und vielen Dank
Günter
 
wie jetzt - so viele posts und noch kein macro geschrieben???

also gut, ich mach dir mal den teil für den dialplan:
Code:
...
[macro-isdn-in]
exten = s,1,GotoIf($["x${ARG1}"="x"]?do_dial)

exten = s,n(ohne_cid),Answer()
exten = s,n,Set(CALLFILENAME=${CALLERID(num)}-${TIMESTAMP})
exten = s,n,MixMonitor(${CALLFILENAME}.gsm|b)
exten = s,n,Wait(0.5)
exten = s,n,Playback(anonymer)
exten = s,n,Read(DIGIT,waehlen,1,,3,3)
exten = s,n,GotoIf($["x${DIGIT}"!="x"]?do_dial)
exten = s,n,Hangup()

exten = s,n(do_dial),Dial(ZAP/g1/111&SIP/2232,15,tr)
exten = s,n,MacroExit()

[ISDN_eingehend]
exten = 3312/_XX.,1,Ringing()
exten = 3312/_XX.,n,Set(MyMB=3312&111)
exten = 3312/_XX.,n,Macro(isdn-in)
exten = 3312/_XX.,n,Goto(DIALSTATUS,s-${DIALSTATUS},1)

exten = 3312,1,Ringing()
exten = 3312,n,Set(MyMB=3312&111)
exten = 3312,n,Macro(isdn-in,OHNE_CID)
exten = 3312,n,Goto(DIALSTATUS,s-${DIALSTATUS},1)

[DIALSTATUS]
exten = s-NOANSWER,1,Set(CHANNEL(language)=de)
exten = s-NOANSWER,n,Playback(vm-nobodyavail)
exten = s-NOANSWER,n,VoiceMail(s${MyMB})
exten = s-NOANSWER,n,Hangup()

exten = _s-.,1,Hangup()
so ungefähr würde ich das machen, ich hoffe, ich habe keine tipp- oder logik-fehler gemacht.

ist dir dabei alles klar?

grüße,
laureen
 
OHa, laureen; da muss ich mich erst mal durchhangeln. Ich sehe schon, ich bin hier auf einen Experten (oder eine Expertin) getroffen.

So viele Posts:
als ich hier und bei Asterisk vor zwei oder drei Jahren neu angefangen habe,war alles ziemlich einfach und ich habe mein weniges Hardwarewissen an noch jüngere Frischlinge weitergegeben; daher rühren die vielen Posts.
So ganz richtig habe ich die Funktionsweise von Asterisk bis heute nicht verstanden, und werde das wohl auch nicht mehr können. Wenn man alt wird, wird man tütelich...

Ich werde Dein Macro gründlich durcharbeiten, versuchen zu verstehen und einpflegen; vielen Dank dafür. Auf jeden Fall melde ich mich hierzu nochmals.

Herzliche Grüße
Günter

Edit:
habe das Macro eingepflegt; waren keine Tippfehler und auch keine Logikfehler vorhanden. Hat von Anfang an funktioniert -> Mensch, wie machst Du das bloß? :-)

Falls Du mal ein Problem mit Deinem Laserdrucker hast, kannst ja mal schreiben; und auch sonst...
 
Zuletzt bearbeitet:
Hi laureen,
ich bitte nochmals um ein wenig Unterstützung.

Hier soll die Fritz!Card im Asterisk auf die MSN 50462 reagieren, wenn dorthin ein Fax gesendet wird. Tut sie aber nicht, weil Asterisk meint, er würde mit unterdrückter Rufnummer angerufen. Diese Funktion rührt von Deinem Macro her, das bei der MSN 3312 völlig richtig reagiert.

wie könnte ich aus dem Macro die 50462 ausschließen; soll heißen, Asterisk soll auf die 50462 ganz normal reagieren, das Fax annehmen und dann wieder als e-mail raussenden.

Ich habe hier schon was ausprobiert, leider funktioniert das nicht:

Code:
[capifax-in]
exten => 50462,1,Goto(fax-in,s,1)

[fax-in]
exten => s,1,Set(TIME=${STRFTIME(${EPOCH},,%Y%m%d-%H-%M-%S)})
exten => s,n,Set(SCRIPTFILE=/usr/sbin/sendmail)
exten => s,n,Set(FAXFILE=/asterisk/fax/${TIME}.sff)
exten => s,n,Set([email protected])
exten => s,n,capicommand(receivefax|${FAXFILE}|01234550462|Asterisk|k)
exten => s,n,Hangup()
exten => h,1,System("${SCRIPTFILE}" "${CALLERIDNUM}" "${MAILADDR}" "${FAXFILE}" "${TIME}")

Ich denke, es liegt an der zweimal vorhandenen s-extension, einmal in Deinem Macro und einmal im fax-in-Kontext, muss aber nicht unbedingt so sein.
Das Wiederraussenden kriege ich dann schon selber hin (hoffentlich ;-) )

Viele Grüße
Günter
Im obigen Code sind die Nummern und die e-mail-Adresse fiktiv.

Edit:
Ich füge hier mal die Fehlermeldungen aus der CLI noch an, vielleicht kann man dadurch der Ursache für das Fehlverhalten besser näher kommen:

Code:
fli4l*CLI>
    -- Accepting overlap voice call from '111' to '<unspecified>' on channel 0/2, span 1
    -- Starting simple switch on 'Zap/2-1'
    -- Executing [50462@default:1] Set("Zap/2-1", "CALLFILENAME=111-") in new stack
    -- Executing [50462@default:2] MixMonitor("Zap/2-1", "111-.gsm|b") in new stack
    -- Executing [50462@default:3] Dial("Zap/2-1", "Capi/contr1/01234550462/Bo||Tt") in new stack
    -- Called contr1/01234550462/Bo
  == Begin MixMonitor Recording Zap/2-1
    -- CAPI/ISDN1#02/01234550462-16 is making progress passing it to Zap/2-1
  == ISDN1#01: Incoming call '123453312' -> '50462'
  == Starting CAPI/ISDN1#01/50462-17 at external-ISDN_eingehend,50462,1 failed so falling back to exten 's'
  == Starting CAPI/ISDN1#01/50462-17 at external-ISDN_eingehend,s,1 still failed so falling back to context 'default'
    -- Executing [s@default:1] Set("CAPI/ISDN1#01/50462-17", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [s@default:2] Wait("CAPI/ISDN1#01/50462-17", "1") in new stack
    -- Executing [s@default:3] BackGround("CAPI/ISDN1#01/50462-17", "anonymer") in new stack
  == ISDN1#01: Answering for 50462
    -- <CAPI/ISDN1#01/50462-17> Playing 'anonymer' (language 'de')
    -- CAPI/ISDN1#02/01234550462-16 answered Zap/2-1
    -- Channel 0/2, span 1 got hangup request, cause 16
  == ISDN1#02: CAPI Hangingup for PLCI=0x101 in state 2
  == Spawn extension (default, 50462, 3) exited non-zero on 'Zap/2-1'
    -- Hungup 'Zap/2-1'
  == End MixMonitor Recording Zap/2-1
  == Spawn extension (default, s, 3) exited non-zero on 'CAPI/ISDN1#01/50462-17'
  == ISDN1#01: CAPI Hangingup for PLCI=0x201 in state 2
       > ISDN1#01: CAPI INFO 0x3490: Normal call clearing
  == Primary D-Channel on span 1 down for TEI 65
fli4l*CLI>
 
Zuletzt bearbeitet:
Kostenlos!

Statistik des Forums

Themen
248,860
Beiträge
2,303,055
Mitglieder
378,513
Neuestes Mitglied
jezmikosay