[Freeswitch-users] ivr menu matching and execution problem

Antonio asilva at wirelessmundi.com
Tue Aug 24 08:41:42 PDT 2010


During the configuration of an ivr menu and test i just realized that if
you have multiple actions with the same "digits" it executes the both
actions.

The execution of the multiple actions is normal?

The normal behavior should executed only the action that is match first,
reading the priority of the entries in the menu.
I look at the code, and in the function, switch_ivr_menu_execute, looks
like the loop that searches for the match/action should need a break
after a success match, to avoid the continues search for other matches.

Thanks,
António


/* configuration */

<menu name="ivr"
greet-long="/home/system/telephony/sounds/buraka.mp3"
exit-sound="/home/system/telephony/sounds/prompt/en/conf-invalid.gsm"
timeout ="2000"
inter-digit-timeout="2000"
max-failures="10"
digit-len="4"
>
<entry action="menu-exec-app" digits="/^(10[0-9])$/" param="transfer $1
XML local"/>
<entry action="menu-exec-app" digits="9" param="transfer 9 XML
ivr-[1]"/>
<entry action="menu-exec-app" digits="9" param="transfer 8 XML
ivr-[1]"/>
</menu>



/* some log from fs */

2010-08-24 17:07:47.888057 [DEBUG] switch_ivr_menu.c:777 building menu
'ivr'
2010-08-24 17:07:47.888057 [DEBUG] switch_ivr_menu.c:838 binding menu
action 'menu-exec-app' to '/^(10[0-9])$/'
2010-08-24 17:07:47.888057 [DEBUG] switch_ivr_menu.c:838 binding menu
action 'menu-exec-app' to '9'
2010-08-24 17:07:47.888057 [DEBUG] switch_ivr_menu.c:838 binding menu
action 'menu-exec-app' to '9'
2010-08-24 17:07:47.888057 [DEBUG] switch_ivr_menu.c:414 Executing IVR
menu ivr


2010-08-24 17:07:52.616160 [DEBUG] switch_rtp.c:2892 RTP RECV DTMF 9:480
2010-08-24 17:07:52.617160 [DEBUG] switch_ivr_play_say.c:1468 done
playing file
2010-08-24 17:07:52.617160 [DEBUG] switch_ivr_menu.c:329 waiting for 3/4
digits t/o 2000
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:376 digits '9'
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:488 IVR action on
menu 'ivr' matched '9' param 'transfer 8 XML ivr-[1]'
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:492
switch_ivr_menu_execute todo=[2]
EXECUTE sofia/192.168.10.25/101 at 192.168.10.25 transfer(8 XML ivr-[1])
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr.c:1470
(sofia/192.168.10.25/101 at 192.168.10.25) State Change CS_EXECUTE ->
CS_ROUTING
2010-08-24 17:07:54.635190 [DEBUG] switch_core_session.c:1039 Send
signal sofia/192.168.10.25/101 at 192.168.10.25 [BREAK]
2010-08-24 17:07:54.635190 [DEBUG] switch_core_session.c:658 Send signal
sofia/192.168.10.25/101 at 192.168.10.25 [BREAK]
2010-08-24 17:07:54.635190 [NOTICE] switch_ivr.c:1476 Transfer
sofia/192.168.10.25/101 at 192.168.10.25 to XML[8 at ivr-[1]]
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:488 IVR action on
menu 'ivr' matched '9' param 'transfer 9 XML ivr-[1]'
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:492
switch_ivr_menu_execute todo=[2]
EXECUTE sofia/192.168.10.25/101 at 192.168.10.25 transfer(9 XML ivr-[1])
2010-08-24 17:07:54.635190 [DEBUG] switch_core_session.c:658 Send signal
sofia/192.168.10.25/101 at 192.168.10.25 [BREAK]
2010-08-24 17:07:54.635190 [NOTICE] switch_ivr.c:1476 Transfer
sofia/192.168.10.25/101 at 192.168.10.25 to XML[9 at ivr-[1]]
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:470 action regex
[9] [/^(10[0-9])$/] [0]
2010-08-24 17:07:54.635190 [DEBUG] switch_ivr_menu.c:580 exit-sound
'/home/system/telephony/sounds/prompt/en/conf-invalid.gsm'
2010-08-24 17:07:54.635190 [DEBUG] switch_core_state_machine.c:348
(sofia/192.168.10.25/101 at 192.168.10.25) State EXECUTE going to sleep
2010-08-24 17:07:54.635190 [DEBUG] switch_core_state_machine.c:314
(sofia/192.168.10.25/101 at 192.168.10.25) Running State Change CS_ROUTING
2010-08-24 17:07:54.635190 [DEBUG] switch_channel.c:1512
(sofia/192.168.10.25/101 at 192.168.10.25) Callstate Change ACTIVE ->
RINGING
2010-08-24 17:07:54.635190 [DEBUG] switch_core_state_machine.c:341
(sofia/192.168.10.25/101 at 192.168.10.25) State ROUTING
2010-08-24 17:07:54.635190 [DEBUG] mod_sofia.c:142
sofia/192.168.10.25/101 at 192.168.10.25 SOFIA ROUTING
2010-08-24 17:07:54.635190 [DEBUG] switch_core_state_machine.c:77
sofia/192.168.10.25/101 at 192.168.10.25 Standard ROUTING
2010-08-24 17:07:54.635190 [INFO] mod_dialplan_xml.c:331 Processing
101->9 in context ivr-[1]







More information about the FreeSWITCH-users mailing list