Anständiges Voicemenü einrichten

Nimrod

Aktives Mitglied
Mitglied seit
26 Jul 2005
Beiträge
1,172
Punkte für Reaktionen
1
Punkte
0
Hallo,

ich versuche seit einiger Zeit ein richtig gutes Voicemenü zu erstellen scheitere leider an den wichtigen Punkten: Wählen per SIP nach draussen und direkt auf eine Voicemail anrufen.

Was ich vorhabe ist dass mich jemand auf einer Nummer anruft und direkt in einem Menü landet und die Ansage bekommt:

Für Handy die 1 drücken
Für Festnetz die 2 drücken
Für Mailbox die 3 drücken

Das ist jetzt natürlich die Kurzfassung, soll schon ein wenig freundlicher klingen ;) . Ich hab schon einige Tipps bekommen aber immer nur mit 1.2er Code oder irgendwelche Macken und der hat dann bei mir meistens dafür gesorgt dass der Anrufer mich hören konnte aber ich ihn nicht. Ich wäre dankbar wenn mir also jemand mit echtem 1.4er Code weiterhelfen kann.

Mal angenommen meine Nummer auf der das Gespräch eingeht ist 040 123456 (1und1.de), das Gespräch wird auf dem Voicemenü 800 angenommen und soll auf die Nummern 0170 123456 (1) oder 040 222333 (2) oder auf die Mailbox vom Teilnehmer 400 (3) umgeleitet werden.

Mein größtes Problem war einen passenden Code zu finden dass die Gespräche dann über meinen 1und1 Account rausliefen. Mir wär es am allerliebsten wenn man im Webinterface beim Customeintrag reinschreiben könnte: "Dial 040 222333" aber so einfach scheint das nicht zu gehen. Die Befehle dafür habe ich nirgends finden können.

Hier war einer meiner Versuche an eine externe Nummer weiterzuleiten: http://www.ip-phone-forum.de/showthread.php?t=131751&highlight=voicemail

Bei der Voicemail möchte ich den Anrufer direkt auf der Mailbox haben, der Anschluss selbst wird von einem Telefon genutzt. Ist das machbar? Wenn nicht nehme ich eine Extension die standardmäßig nicht angemeldet ist, dann geht die Mailbox ja automatisch ran, ist als das geringere Problem.

Bin für jede Hilfe dankbar

Gruß

Nimrod
 
[wg-menu]
exten => s,1,Wait(1)
exten => s,2,DigitTimeout,5
exten => s,3,ResponseTimeout,8
exten => s,4,BackGround(123waehle) ; wobei ich hier einfach entweder selber aufnehmen würde oder ein fertieges TTP wie z.B: ;http://www.research.att.com/~ttsweb/tts/demo.php
exten => s,5,Waitexten(20)
exten => s,6,Goto(s,4)

exten => 1,1,Goto(call,11,1)
exten => 2,1,Goto(call,12,1)
exten => 3,1,Goto(call,13,1)

[call]
exten => 11,1,Dial(SIP/0176123654@sipgate,60,tr)
exten => 11,2,Congestion
exten => 11,3,Hangup

exten => 12,1,Dial(SIP/0211123456@sipgate,60,tr)
exten => 12,2,Congestion
exten => 12,3,Hangup

exten => 13, Wie der das jetzt in die mailbox weiter leitet weiß ich jetzt nicht wirklich ...
exten => 13,Congestion
exten => 12,3,Hangup

Aber so müste das schon mal gehen ...
 
Ok, danke schon mal für die Hilfe werde es heute gleich ausprobieren. Also ich habe das so verstanden dass wenn man die 1,2 oder 3 zur exten 11, 12 oder 13 kommt und dort dann jeweils gewählt wird. Muss ich die erst noch in der users.conf erstellen oder geht das auch ohne dass die existieren? Und muss ich "wg-menu" oder ähnliches und "call" noch irgendwo anführen?

Bei einigen Sachen bin ich halt noch am Lernen, aber vielen Dank für die gute Antwort ohne das manchmal übliche Gemeckere :)
 
;-) ich mecker eigedlich nicht ^^
Also um das jetzt zu nutzten gibt es mehrere möglich keine.

erst mal muss ich wissen was in deiner Sip.conf steht also wie du die einzelnen personen die context= weiter geleietet werden.
in die Extens wo diese weiter geleitet werden machst du jetzt einfach z.b.

exten => 666,1,Goto(wg-menu,s,1)

UNd wenn du jetzt mit dem SIp telefon die 666 anrufst wird dieser ins menu geleitet.
Schreib mir einfach mein die SIp.conf und die extensions.conf rein und wir basteln die eine Lösung :-)
 
Ok, ich such dir die später mal raus, komm da gerade nicht dran. Wo ich noch am meisten am Grüblen bin ist z.B. so eine Zeile:
Code:
exten => 11,1,Dial(SIP/0176123654@sipgate,60,tr
Mal angenommen ich hätte zwei Sipgate Accounts, woher weiß mein Asterisk welchen Account er nehmen soll? Ich wollte an diesen Stellen immer DID_trunk_1 oder ähnliches hinschreiben weil die so in meiner Extensions.conf angelegt sind. In der Sip.conf habe ich z.B. überhaupt keine Provider oder User eingetragen. In den DID trunks ist bei mir in der ext.conf eingetragen welcher Provider es ist, Login und Passwort. Daher habe ich nirgens [sipgate], [1und1], [ankommend] oder ähnliches stehen sondern [DID_trunk_1] und aufsteigend - ich habe wirklich so viel wie möglich mit dem Webinterface gearbeitet und das erstellt die auch mit solchen Namen.

Falls ich meine extensions.conf bisher nicht mehr geändert habe dann ist sie da: http://www.ip-phone-forum.de/showpost.php?p=827150&postcount=3
Die Sip.conf poste ich mal wenn ich wieder zu Hause bin.
 
Zuletzt bearbeitet:
nein das kommt immer ganz drauf an wie du die benennst in der sip.conf habe auch mehrer accs z.B. nutzte ich einen arcor acc für das festnetzt einen Voipstation fürs handy und einen weitern für andere sachen ... ist also kein problem und freunde haben wieder rum auch andere Voipstation accs auf dem server du must du halt nur irgend wie anders benennen ;-)


bei dem link zeit bellshare wie die das empfehlen für asterisk das kann man dann aber auch für alle andern provider übernehmen
http://www.bellshare.com/de/help.php?folder=4&topic=13
 
Wenn das so ist dann poste ich erst mal meine confs bevor ich irgendwas verbocke.

sip.conf:
Code:
[general]
context = default
language = de
useragent = AVM FRITZ!Box Fon WLAN 7170 (UI) 29.04.29 (Dec  8 2006)
allowoverlap = yes
bindport = 5060  ; UDP Port to bind to (SIP standard port is 5060)
bindaddr = 8X.XX.XX.XX
srvlookup = yes  ; Enable DNS SRV lookups on outbound calls
allowguest = yes
allowtransfer = yes
relaxdtmf = yes
dtmfmode = rfc2833
t38pt_udptl = yes
disallow = all
allow = ulaw
callevents = no
alwaysauthreject = no
allowsubscribe = no
nat = yes
canreinvite = yes
pedantic = no
tos_sip = ef
tos_audio = ef
tos_video = ef
maxexpiry = 3600
minexpiry = 60
t1min = 100
trustrpid = no
sendrpid = no
progressinband = never
promiscredir = no
usereqphone = no
compactheaders = no
videosupport = no
maxcallbitrate = 384
g726nonstandard = no
sipdebug = no
recordhistory = no
extensions.conf
Code:
[general]
static = yes
writeprotect = no
clearglobalvars = no

[globals]
CONSOLE = Console/dsp  ; Console interface for demo
IAXINFO = guest  ; IAXtel username/password
TRUNK = Zap/g2  ; Trunk interface
TRUNKMSD = 1  ; MSD digits to strip (usually 1 or 0)
trunk_1 = SIP/trunk_1
trunk_2 = SIP/trunk_2
trunk_3 = SIP/trunk_3
trunk_4 = SIP/trunk_4
trunk_5 = SIP/trunk_5
trunk_8 = SIP/trunk_8
trunk_6 = SIP/trunk_6
trunk_7 = SIP/trunk_7
trunk_10 = SIP/trunk_10
trunk_9 = SIP/trunk_9

[trunklocal]
exten => _9NXXXXXX,1,Dial(${GLOBAL(TRUNK)}/${EXTEN:${GLOBAL(TRUNKMSD)}})

[international]
ignorepat => 9

[longdistance]
ignorepat => 9
include => local

[local]
ignorepat => 9
include => default
include => trunklocal
include => parkedcalls

[macro-trunkdial]
exten => s,1,Dial(${ARG1})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,Hangup
exten => s-BUSY,1,Hangup
exten => _s-.,1,NoOp

[macro-stdexten];
exten => s,1,Dial(${ARG2},20)  ; Ring the interface, 20 seconds maximum
exten => s,2,Goto(s-${DIALSTATUS},1)  ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,Voicemail(${ARG1},u)  ; If unavailable, send to voicemail w/ unavail announce
exten => s-NOANSWER,2,Goto(default,s,1)  ; If they press #, return to start
exten => s-BUSY,1,Voicemail(${ARG1},b)  ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,2,Goto(default,s,1)  ; If they press #, return to start
exten => _s-.,1,Goto(s-NOANSWER,1)  ; Treat anything else as no answer
exten => a,1,VoicemailMain(${ARG1})  ; If they press *, send the user into VoicemailMain

[macro-stdPrivacyexten];
exten => s,1,Dial(${ARG2},20|p)  ; Ring the interface, 20 seconds maximum, call screening 
; option (or use P for databased call screening)
exten => s,2,Goto(s-${DIALSTATUS},1)  ; Jump based on status (NOANSWER,BUSY,CHANUNAVAIL,CONGESTION,ANSWER)
exten => s-NOANSWER,1,Voicemail(${ARG1},u)  ; If unavailable, send to voicemail w/ unavail announce
exten => s-NOANSWER,2,Goto(default,s,1)  ; If they press #, return to start
exten => s-BUSY,1,Voicemail(${ARG1},b)  ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,2,Goto(default,s,1)  ; If they press #, return to start
exten => s-DONTCALL,1,Goto(${ARG3},s,1)  ; Callee chose to send this call to a polite "Don't call again" script.
exten => s-TORTURE,1,Goto(${ARG4},s,1)  ; Callee chose to send this call to a telemarketer torture script.
exten => _s-.,1,Goto(s-NOANSWER,1)  ; Treat anything else as no answer
exten => a,1,VoicemailMain(${ARG1})  ; If they press *, send the user into VoicemailMain

[macro-page];
exten => s,1,ChanIsAvail(${ARG1}|js)  ; j is for Jump and s is for ANY call
exten => s,n,GoToIf([${AVAILSTATUS} = "1"]?autoanswer:fail)
exten => s,n(autoanswer),Set(_ALERT_INFO="RA")  ; This is for the PolyComs
exten => s,n,SIPAddHeader(Call-Info: Answer-After=0)  ; This is for the Grandstream, Snoms, and Others
exten => s,n,NoOp()  ; Add others here and Post on the Wiki!!!!
exten => s,n,Dial(${ARG1}||)
exten => s,n(fail),Hangup

[page]
exten => _X.,1,Macro(page,SIP/${EXTEN})

[mailbox_own]
exten = 900,1,answer
exten = 900,2,wait,1
exten = 900,3,VoiceMailMain(s${CALLERID(num)})
exten = 900,4,hangup

[default]
exten => 901,1,VoiceMailMain
exten = 900,1,Goto(mailbox_own,900,1)
exten = 800,1,Goto(voicemenu-custom-1|s|1)
exten = 241,1,Goto(voicemenu-custom-2|s|1)

[asterisk_guitools]
exten = executecommand,1,System(${command})
exten = executecommand,n,Hangup()
exten = record_vmenu,1,Answer
exten = record_vmenu,n,Playback(vm-intro)
exten = record_vmenu,n,Record(${var1})
exten = record_vmenu,n,Playback(vm-saved)
exten = record_vmenu,n,Playback(vm-goodbye)
exten = record_vmenu,n,Hangup
exten = play_file,1,Answer
exten = play_file,n,Playback(${var1})
exten = play_file,n,Hangup
hasbeensetup = Y

[DID_trunk_1]
include = default
exten = _X.,1,Goto(default|200|1)
exten = s,1,Goto(default|200|1)

[numberplan-custom-1]
plancomment = DialPlan1
include = default
exten = _001801422X.,1,Macro(trunkdial,${trunk_5}/${EXTEN:0})
comment = _001801422X.,1,BYU-1,standard
exten = _001801378Z.,1,Macro(trunkdial,${trunk_5}/${EXTEN:0})
comment = _001801378Z.,1,BYU-2,custom
exten = _001800X.,1,Macro(trunkdial,${trunk_5}/${EXTEN:2})
comment = _001800X.,1,USA 0800,standard
exten = _001877X.,1,Macro(trunkdial,${trunk_5}/${EXTEN:2})
comment = _001877X.,1,USA 0877 Free,standard
exten = _001866X.,1,Macro(trunkdial,${trunk_5}/${EXTEN:2})
comment = _001866X.,1,USA 0866 Free,standard
exten = _001888X.,1,Macro(trunkdial,${trunk_5}/${EXTEN:2})
comment = _001888X.,1,USA 0888 Free,standard
exten = _1222XXXXXXX,1,Macro(trunkdial,${trunk_5}/${EXTEN:0})
comment = _1222XXXXXXX,1,Konferenzraum,standard
exten = _3010,1,Macro(trunkdial,${trunk_4}/${EXTEN:0})
comment = _3010,1,VS - Netzzeitung,standard
exten = _3011,1,Macro(trunkdial,${trunk_4}/${EXTEN:0})
comment = _3011,1,VS - Schlafl. in München,standard
exten = _3012,1,Macro(trunkdial,${trunk_4}/${EXTEN:0})
comment = _3012,1,VS -  Deutschland-Radio,standard
exten = _3013,1,Macro(trunkdial,${trunk_4}/${EXTEN:0})
comment = _3013,1,VS -  Wanhoffs Wunderbare Welt der Wissenschaft,standard
exten = _3014,1,Macro(trunkdial,${trunk_4}/${EXTEN:0})
comment = _3014,1,VS - Handelsblatt,standard
exten = _3015,1,Macro(trunkdial,${trunk_4}/${EXTEN:0})
comment = _3015,1,VS - Hit-Radio Antenne Teamtests,standard
exten = _411,1,Macro(trunkdial,${trunk_5}/${EXTEN:0})
comment = _411,1,TellMe,standard
exten = _511XXX,1,Macro(trunkdial,${trunk_7}/${EXTEN:0})
comment = _511XXX,1,Konferenz,standard
exten = _613,1,Macro(trunkdial,${trunk_6}/${EXTEN:0})
comment = _613,1,FWD Echo Test,standard
exten = _001[2-9].,1,Macro(trunkdial,${trunk_10}/${EXTEN:0})
comment = _001[2-9].,1,USA Festnetz,custom
exten = _0N.,1,Macro(trunkdial,${trunk_1}/${EXTEN:0})
comment = _0N.,1,Festnetz,custom

[DID_trunk_2]
include = default

[DID_trunk_3]
include = default
exten = _X.,1,Goto(default|200|1)
exten = s,1,Goto(default|200|1)

[DID_trunk_4]
include = default
exten = _X.,1,Goto(default|800|1)
exten = s,1,Goto(default|800|1)

[DID_trunk_5]
include = default
exten = _X.,1,Goto(default|200|1)
exten = s,1,Goto(default|200|1)

[DID_trunk_8]
include = default
exten = _X.,1,Goto(default|200|1)
exten = s,1,Goto(default|200|1)

[DID_trunk_6]
include = default

[DID_trunk_7]
include = default

[DID_trunk_10]
include = default

[voicemenu-custom-1]
comment = International ankommend
alias_exten = 800
exten = s,1,Answer
exten = s,2,Background(Ankommend International)
exten = s,3,DigitTimeout(10)
exten = s,4,Hangup

[DID_trunk_9]
include = default
exten = _X.,1,Goto(default|241|1)
exten = s,1,Goto(default|241|1)

[voicemenu-custom-2]
comment = Extern
alias_exten = 241
exten = s,1,Answer
exten = 1,1,Goto(default|200|1)
exten = 2,1,Goto(default|250|1)
exten = 3,1,Goto(default|901|1)
users.conf
Code:
[general]
fullname = Neuer Benutzer
userbase = 200
hasvoicemail = yes
hassip = yes
hasiax = no
hasmanager = yes
callwaiting = yes
threewaycalling = yes
callwaitingcallerid = yes
transfer = yes
canpark = yes
cancallforward = yes
callreturn = yes
callgroup = 1
pickupgroup = 1
localextenlength = 3
allow_aliasextns = no
hasdirectory = yes
hasagent = yes
allow_an_extns = no

[200]
fullname = name
secret = XXXXXX
email = [email protected]
cid_number = 200
zapchan = 
context = numberplan-custom-1
hasvoicemail = yes
hasdirectory = no
hassip = yes
hasiax = no
hasmanager = no
callwaiting = yes
threewaycalling = yes
mailbox = 200
hasagent = yes
group = 
host = dynamic
vmsecret = XXXXXX
registersip = yes
registeriax = no


[trunk_1]
secret = XXXXXX
provider = 1und1
trunkstyle = voip
username = 49XXXXXX
trunkname = 1und1 - 49XXXXXX
callerid = 
hasexten = no
hassip = yes
hasiax = no
registeriax = no
registersip = yes
host = sip.1und1.de
dialformat = ${EXTEN:1}
context = DID_trunk_1
group = 
insecure = port,invite
fromuser = 49XXXXXX
contact = 49XXXXXX
fromdomain = 1und1.de

Alles nach dem Schema, sind noch mehr Accounts hab die nur nicht alle rein gemacht. Die contexte aus den trunks könnte ich auch in 1und1-1 -2 -3 ändern anstatt die DID_trunk_X bennenen zu lassen, ich hab die aber so gelassen wie vom GUI erstellt. Ich hätte jetzt angenommen dass ich nur die Namen an meine anpassen muss und deinen code in meine extensions.conf mache. Liege ich da richtig?
 
Sorry leider kann ich dir nicht wirklich weiter helfen da ich die .conf nicht ganz verstehe.
Welcher trunk ist denn da für eingehende und welcher für ausgehende oder hast du garkein eigehende verbindung.
Mach mal 2 sipgates rein und zeig mir dann mal was sich genau verändert hat.
Dann müste da dann halt das hier rein
exten => 666,1,Goto(wg-menu,s,1)
und anstatt der 666 müste dann die sipgate nummer rein.
 
Hi,

ich finds wirklich nett dass du mir helfen willst, aber ich will die ganzen 1.4er Befehle schon so drin lassen wie sie sind und nicht wieder auf 1.2er Syntax oder komplett manuelle Konfiguration zurückgehen.

Ich hab meine Provider in der providers.conf, in der sip.conf ein paar Einstellungen, in der Users.conf sind die user und die eingehenden Gespräche unter trunk_1 - trunk_10 und in der extensions.conf die Wahlregeln und ausgehende Gespräche unter DID_trunk_1 bis -10. Ich brauche nirgends einen register-Befehl.


Falls sich also jemand mit den Custom Befehlen der VoiceMenüs aus dem GUI auskennt oder mir sagen kann wie ich bei meinem jetzigen configs ein Sprachmenü erstelle das per SIP nach draussen telefoniert dann zahle ich auch gerne für eine gute Anleitung, Kontakt in dem Fall bitte per PN

Gruß

Nimrod

PS: Danke an Admins fürs Verschieben, hab das Unterforum bisher nie bemerkt.
 
Zuletzt bearbeitet:
Kostenlos!

Neueste Beiträge

Statistik des Forums

Themen
248,873
Beiträge
2,303,515
Mitglieder
378,533
Neuestes Mitglied
PatrickSt91