Callback über Call-Through Provider?

alvoip

Mitglied
Mitglied seit
31 Okt 2004
Beiträge
490
Punkte für Reaktionen
0
Punkte
16
Ich habe an meinem Asterisk eine Callback Lösung laufen. Konkret sieht das bei mir das Callfile so aus:
Code:
channel: SIP/0043xxxx@Provider
context: callback-disa
extension:s 
priority:1
und der Context in meiner extensions.conf so:
Code:
exten => s,1,Answer
exten => s,2,wait,3
exten => s,3,DISA,no-password|disa 
exten => s,4,Hangup
exten => s,104,Busy
exten => h,1,Hangup
Funktioniert wunderbar. Nun wäre es aber günstiger, wenn ich den Callback über einen Call-Through-Provider abwickeln würde. Ich muss also nach dem Verbinden noch DTMF-Töne nachschicken. Im Dial-Command kenne ich mich aus, da gibt es ein Optionsfeld. Aber wie mache ich das in einem Callfile?
 
Dann mache es doch über Dial, anstelle DISA.

Bei mir geht das so:
extensions.conf schrieb:
[callback]
exten => s,1,Set(LANGUAGE()=de)
exten => s,2,Wait,1
; Soll ein Passwort abgefragt werden?
exten => s,3,GotoIf($[${ask4pass} = true]?4:7)
exten => s,4,DigitTimeout(5)
exten => s,5,Set(TIMEOUT(response)=10)
exten => s,6,Authenticate(${password})

; EingabeSchleife zur Zieleingabe
exten => s,7,Set(NR=)
exten => s,8,Background(vm-enter-num-to-call)
exten => s,9,Set(TIMEOUT(response)=10)
exten => s,10,WaitExten
exten => _X,1,Set(NR=${NR}${EXTEN})
exten => _X,2,Goto(s,9)
exten => i,1,Saydigits(${NR})

; Zuruecksetzen
exten => *,1,Goto(s,7)

; Nummer uebergeben
exten => #,1,Saydigits(${NR})
exten => #,2,Dial(SIP/${NR}@providerxxx,,)|45|m

exten => #,3,Goto(#-${DIALSTATUS},1) ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)

; DialingStates
exten => #-NOANSWER,1,Playback(vm-nobodyavail)
exten => #-NOANSWER,2,Goto(s,7)
exten => #-BUSY,1,Playback(tt-allbusy)
exten => #-BUSY,2,Goto(#,1)
exten => #-CHANUNAVAIL,1,Playback(tt-somethingwrong)
exten => #-CHANUNAVAIL,2,Goto(t,1)
exten => #-CONGESTION,1,Playback(vm-nobodyavail)
exten => #-CONGESTION,2,Goto(s,7)
exten => _#-.,1,Goto(t,1)

; Handling fuer Timeout & bye
exten => t,1,Playback(vm-goodbye)
;exten => t,2,Goto(s,7)
exten => t,2,HangUp
Das sieht zwar komplizierter aus, funktioniert aber auch viel besser:
Wenn ich während der Eingabe einen Fehler mache, kann ich mit * wieder neu beginnen. Abgeschlossen wird die Nummerneingabe mit #.
Ich lasse mir die Nummer noch mal vorlesen, das kannst Du natürlich weglassen. Wenn Du ${ask4pass} nicht setzt, wird direkt bei s,7 angefangen.
Hier
exten => #,2,Dial(SIP/${NR}@providerxxx,,)|45|m
könntest Du ja z. B. anstelle ${NR} z. B. 01049${NR} schreiben.
(Es kann sein, dass noch kleine Fehler drin sind, so funktioniert es aber bei mir.)
 
Bei Deiner Lösung ist aber schon der Rückruf eingelangt. Mein Problem ist, dass ich den Rückruf (auf mein Handy) über einen Call-Through Provider abwickeln will. Und da fehlt mir ein Stück Information.
 
Dann mußt Du Dein Callfile ändern.

channel: SIP/0043xxxx@Provider <= Callthroughprovider
context: callback-disa
extension:s
priority:1

Ich befürchte aber, dass ich Dich völlig falsch verstanden habe. :-(
 
Kostenlos!

Statistik des Forums

Themen
248,537
Beiträge
2,293,771
Mitglieder
378,047
Neuestes Mitglied
Wolfgang53604