Ivr dialplan help

Hi,

I am trying to setup a simple ivr menu on asterisk 1.6. My dialplan is this:

[code][ivr]
exten => 400,1,MP3Player(/home/asterix/${file}.mp3)
exten => 400,2,Background(/home/asterix/menu)
exten => 400,n,WaitExten(5)

exten => 1,1,MP3Player(/home/asterix/confirmed.mp3)
exten => 1,2,System(echo “${CDR(start)} - ${CHANNEL} - ${UNIQUEID} - ${EXTEN}” >> /home/asterix/result.txt)

exten => 2,1,MP3Player(/home/asterix/cancel.mp3)
exten => 3,1,MP3Player(/home/asterix/later.mp3)
exten => 4,1,Goto(ivr,400,2)
exten => i,1,MP3Player(/home/asterix/invalid.mp3)
exten => t,1,Hangup()[/code]

I was hoping that on WaitExten(5), the option selected by the user would be captured and the user would listen to one of the other mp3 recordings. But one the cli, when the dialplan gets to this point, the call hangs up. The user option is not captured using a softphone, or a real mobile.

Which is the correct way to capture the user selection and direct the user to the selected option?

Probably failing to receive the digits. Details depend on the device technology, which you haven’t specified.

Otherwise you will probably need DTMF logging enabled, and certainly need verbose console output.

Enabling the debug I get this:

[code] originate sip/eu extension 400@ivr
== Using SIP RTP CoS mark 5
Audio is at 10.1.1.23 port 10000
Adding codec 0x2 (gsm) to SDP
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
Reliably Transmitting (no NAT) to 10.1.1.79:5060:
INVITE sip:eu@10.1.1.79 SIP/2.0
Via: SIP/2.0/UDP 10.1.1.23:5060;branch=z9hG4bK21db2d33;rport
Max-Forwards: 70
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
To: sip:eu@10.1.1.79
Contact: sip:asterisk@10.1.1.23
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 102 INVITE
User-Agent: Asterisk PBX 1.6.0.1
Date: Mon, 28 Jan 2013 17:40:16 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Supported: replaces, timer
Content-Type: application/sdp
Content-Length: 302

v=0
o=root 909597411 909597411 IN IP4 10.1.1.23
s=Asterisk PBX 1.6.0.1
c=IN IP4 10.1.1.23
t=0 0
m=audio 10000 RTP/AVP 3 0 8 101
a=rtpmap:3 GSM/8000
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
a=ptime:20
a=sendrecv


<— SIP read from UDP://10.1.1.79:5060 —>
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 10.1.1.23:5060;received=10.1.1.23;rport=5060;branch=z9hG4bK21db2d33
To: sip:eu@10.1.1.79
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 102 INVITE
Server: Twinkle/1.4.2
Content-Length: 0

<------------->
— (8 headers 0 lines) —

<— SIP read from UDP://10.1.1.79:5060 —>
SIP/2.0 180 Ringing
Via: SIP/2.0/UDP 10.1.1.23:5060;received=10.1.1.23;rport=5060;branch=z9hG4bK21db2d33
To: sip:eu@10.1.1.79;tag=ooyfh
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 102 INVITE
Contact: sip:eu@10.1.1.79
Server: Twinkle/1.4.2
Content-Length: 0

<------------->
— (9 headers 0 lines) —

<— SIP read from UDP://10.1.1.79:5060 —>
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.1.1.23:5060;received=10.1.1.23;rport=5060;branch=z9hG4bK21db2d33
To: sip:eu@10.1.1.79;tag=ooyfh
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 102 INVITE
Contact: sip:eu@10.1.1.79
Content-Type: application/sdp
Allow: INVITE,ACK,BYE,CANCEL,OPTIONS,PRACK,REFER,NOTIFY,SUBSCRIBE,INFO,MESSAGE
Server: Twinkle/1.4.2
Supported: replaces,norefersub
Content-Length: 188

v=0
o=twinkle 1737153709 1907346529 IN IP4 10.1.1.79
s=-
c=IN IP4 10.1.1.79
t=0 0
m=audio 8000 RTP/AVP 3 101
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15

<------------->
— (12 headers 9 lines) —
Found RTP audio format 3
Found RTP audio format 101
Peer audio RTP is at port 10.1.1.79:8000
Found audio description format GSM for ID 3
Found audio description format telephone-event for ID 101
Capabilities: us - 0x8000e (gsm|ulaw|alaw|h263), peer - audio=0x2 (gsm)/video=0x0 (nothing)/text=0x0 (nothing), combined - 0x2 (gsm)
Non-codec capabilities (dtmf): us - 0x1 (telephone-event), peer - 0x1 (telephone-event), combined - 0x1 (telephone-event)
Peer audio RTP is at port 10.1.1.79:8000
list_route: hop: sip:eu@10.1.1.79
set_destination: Parsing sip:eu@10.1.1.79 for address/port to send to
set_destination: set destination to 10.1.1.79, port 5060
Transmitting (no NAT) to 10.1.1.79:5060:
ACK sip:eu@10.1.1.79 SIP/2.0
Via: SIP/2.0/UDP 10.1.1.23:5060;branch=z9hG4bK6249305b;rport
Max-Forwards: 70
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
To: sip:eu@10.1.1.79;tag=ooyfh
Contact: sip:asterisk@10.1.1.23
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 102 ACK
User-Agent: Asterisk PBX 1.6.0.1
Content-Length: 0


-- Executing [400@ivr:1] MP3Player("SIP/eu-b6c01018", "/home/asterix/.mp3") in new stack

[Jan 28 15:40:23] NOTICE[8746]: app_mp3.c:111 timed_read: Poll timed out/errored out with 0
– Executing [400@ivr:2] BackGround(“SIP/eu-b6c01018”, “/home/asterix/menu”) in new stack
– <SIP/eu-b6c01018> Playing ‘/home/asterix/menu.gsm’ (language ‘en’)
– Executing [400@ivr:3] WaitExten(“SIP/eu-b6c01018”, “5”) in new stack
– Timeout on SIP/eu-b6c01018, going to ‘t’
– Executing [t@ivr:1] Hangup(“SIP/eu-b6c01018”, “”) in new stack
== Spawn extension (ivr, t, 1) exited non-zero on 'SIP/eu-b6c01018’
Scheduling destruction of SIP dialog ‘0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23’ in 32000 ms (Method: INVITE)
set_destination: Parsing sip:eu@10.1.1.79 for address/port to send to
set_destination: set destination to 10.1.1.79, port 5060
Reliably Transmitting (no NAT) to 10.1.1.79:5060:
BYE sip:eu@10.1.1.79 SIP/2.0
Via: SIP/2.0/UDP 10.1.1.23:5060;branch=z9hG4bK5fd820d0;rport
Max-Forwards: 70
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
To: sip:eu@10.1.1.79;tag=ooyfh
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 103 BYE
User-Agent: Asterisk PBX 1.6.0.1
Content-Length: 0


asterix*CLI>
<— SIP read from UDP://10.1.1.79:5060 —>
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.1.1.23:5060;received=10.1.1.23;rport=5060;branch=z9hG4bK5fd820d0
To: sip:eu@10.1.1.79;tag=ooyfh
From: “asterisk” sip:asterisk@10.1.1.23;tag=as296f3307
Call-ID: 0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23
CSeq: 103 BYE
Server: Twinkle/1.4.2
Content-Length: 0

<------------->
— (8 headers 0 lines) —
Really destroying SIP dialog ‘0fcda0e62111e8f62fb346e838dcc61f@10.1.1.23’ Method: INVITE
[/code]

In my softphone application when I press 1, at least it logs : send DTMF 1

Technology is SIP. Both sides seem to be happy with RFC 2833 for digits. No evidence of any digits received.

Turn on DTMF debugging or use wireshark to see what is actually in the RTP stream.