[Freeswitch-users] FreeSWITCH/UniMRCP: Using multiple mrcp profiles in a single dialplan: how to switch/destroy session

. joes.mailing.lists at gmail.com
Wed May 2 08:52:44 UTC 2018


Hi,

I am trying to use two separate MRCP profiles in the context of the same
dialplan.

The configurations work fine as long as a given dialplan only uses _one_ of
the profiles during a given call.

However I currently I have a dialplan where I would like to use profile A.
(connecting to MRCP server 1) to field one question, and profile B.
(connecting to MRCP server 2) to field another question.

I issue the following command for profile A. and question 1:

   - %[current_grammar=s0]/usr/local/freeswitch/scripts/test-ivr/prompts/prompt.wav
   detect:unimrcp:profile-a {start-input-timers=false,no-
   input-timeout=3000,speech-incomplete-timeout=3500,
   recognition-timeout=5000,define-grammar=true,save-
   waveform=true,speech-language=es-MX}builtin:speech/grammar1

and the next one for profile B. and question 2:

   - %[current_grammar=s1]/usr/local/freeswitch/scripts/test-ivr/prompts/prompt.wav
   detect:unimrcp:profile-b {start-input-timers=false,no-
   input-timeout=3000,speech-incomplete-timeout=1500,
   recognition-timeout=5000,define-grammar=true,save-
   waveform=true}builtin:grammar/grammar2?language=es-MX

Again, these both work fine if I only use one profile for a given dialplan
application or call.  However, in the current case, I can see in my
FreeSWITCH logs, in my ESL logs, and in the respective UniMRCP server logs,
that the second request is apparently somehow reusing the session and
profile details from the first request.

In my log I see the correct command is sent, but FreeSWITCH/the UniMRCP
client still sends the second request using the connection details from the
first profile, which then fails because grammar2 is not available via
profile A [because it is handled by the server sitting behind profile B].
If I reverse the order, I see that both requests again arrive at the MRCP
server attached to profile B.

I dug around the confluence wiki and found some references to parameters
being sticky:

   - https://freeswitch.org/confluence/display/FREESWITCH/
   mod_dptools%3A+play_and_detect_speech#mod_dptools:
   play_and_detect_speech-Lua
   <https://freeswitch.org/confluence/display/FREESWITCH/mod_dptools%3A+play_and_detect_speech#mod_dptools:play_and_detect_speech-Lua>

and also tried manually setting "play_and_detect_speech_close_asr=true", but
nothing seems to close the session.

Any hints would be greatly appreciated; alternatively if this impossible
without digging around in the mod_ source that would be good to know too.

Best regards,
Joe
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20180502/08547f49/attachment.html>


More information about the FreeSWITCH-users mailing list