Hi all,
We are testing a new integration with unimrcp. We have faced several challenges:
1. Our FusionPBX apparently was not installed with mod_unimrcp. FreeSwitch documentation explains how to do it:
We ended up doing a dirty trick: get the mod_unimrcp.so file from another freeswitch of the same version and copy it over to /usr/lib/freeswitch/mod/ After definiing the module in FusionPBX and enabling it in /etc/freeswitch/autoload_configs/modules.conf.xml, it happily comes up. We could not help to notice that the freeswitch install has many more *.so files than FusionPBX. It would be interesting to know why.
Our big fat question here is: apparently it is working but is it just that or what are we missing? What else are we supposed to do?
2. An indicator that something is still wrong, comes when we try to test (TTS). We keep getting this:
2019-10-19 15:48:39.443720 [ERR] switch_ivr_play_say.c:3006 Invalid TTS module unimrcp:unimrcpv2[en-US-Wavenet-A]!
We are using a vanilla test config, nothing fancy at all. Again, any word of advice would be welcome! Or config is below for your reference.
Many thanks!
Wilmar
------------------------------
--------------------------------------------------------------------------------------------------------------------------------
<configuration name="unimrcp.conf" description="UniMRCP Client">
<settings>
<!-- UniMRCP profile to use for TTS -->
<param name="default-tts-profile" value="unimrcpv2"/>
<!-- UniMRCP profile to use for ASR -->
<param name="default-asr-profile" value="unimrcpv2"/>
<!-- UniMRCP logging level to appear in freeswitch.log. Options are:
EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG -->
<param name="log-level" value="DEBUG"/>
<!-- Enable events for profile creation, open, and close -->
<param name="enable-profile-events" value="false"/>
<param name="max-connection-count" value="100"/>
<param name="offer-new-connection" value="1"/>
<param name="request-timeout" value="3000"/>
</settings>
<profiles>
<X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/>
</profiles>
</configuration>
--------------------------------------------------------------------------------------------------------------------------------
And the profile: (actual IPs are different)
--------------------------------------------------------------------------------------------------------------------------------
<include>
<!-- UniMRCP Server MRCPv2 -->
<profile name="unimrcpv2" version="2">
<!--param name="client-ext-ip" value="auto"-->
<param name="client-ip" value="1.2.3.4"/>
<param name="client-port" value="16090"/>
<param name="server-ip" value="1.2.3.5"/>
<param name="server-port" value="8060"/>
<!--param name="force-destination" value="1"/-->
<param name="sip-transport" value="udp"/>
<!--param name="ua-name" value="FreeSWITCH"/-->
<!--param name="sdp-origin" value="FreeSWITCH"/-->
<!--param name="rtp-ext-ip" value="auto"/-->
<param name="rtp-ip" value="auto"/>
<param name="rtp-port-min" value="14000"/>
<param name="rtp-port-max" value="15000"/>
<!-- enable/disable rtcp support -->
<param name="rtcp" value="0"/>
<!-- rtcp bye policies (rtcp must be enabled first)
0 - disable rtcp bye
1 - send rtcp bye at the end of session
2 - send rtcp bye also at the end of each talkspurt (input)
-->
<param name="rtcp-bye" value="2"/>
<!-- rtcp transmission interval in msec (set 0 to disable) -->
<param name="rtcp-tx-interval" value="5000"/>
<!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
<param name="rtcp-rx-resolution" value="1000"/>
<!--param name="playout-delay" value="50"/-->
<!--param name="max-playout-delay" value="200"/-->
Universal Speech Solutions LLC | UniMRCP Module 5
<!--param name="ptime" value="20"/-->
<param name="codecs" value="PCMU PCMA L16/96/8000"/>
<!-- Add any default MRCP params for SPEAK requests here -->
<synthparams>
</synthparams>
<!-- Add any default MRCP params for RECOGNIZE requests here -->
<recogparams>
<!--param name="start-input-timers" value="false"/-->
</recogparams>
</profile>
</include>
--------------------------------------------------------------------------------------------------------------------------------
We are testing a new integration with unimrcp. We have faced several challenges:
1. Our FusionPBX apparently was not installed with mod_unimrcp. FreeSwitch documentation explains how to do it:
- Add asr_tts/mod_unimrcp to modules.conf
- Build FreeSWITCH with 'make install'
We ended up doing a dirty trick: get the mod_unimrcp.so file from another freeswitch of the same version and copy it over to /usr/lib/freeswitch/mod/ After definiing the module in FusionPBX and enabling it in /etc/freeswitch/autoload_configs/modules.conf.xml, it happily comes up. We could not help to notice that the freeswitch install has many more *.so files than FusionPBX. It would be interesting to know why.
Our big fat question here is: apparently it is working but is it just that or what are we missing? What else are we supposed to do?
2. An indicator that something is still wrong, comes when we try to test (TTS). We keep getting this:
2019-10-19 15:48:39.443720 [ERR] switch_ivr_play_say.c:3006 Invalid TTS module unimrcp:unimrcpv2[en-US-Wavenet-A]!
We are using a vanilla test config, nothing fancy at all. Again, any word of advice would be welcome! Or config is below for your reference.
Many thanks!
Wilmar
------------------------------
--------------------------------------------------------------------------------------------------------------------------------
<configuration name="unimrcp.conf" description="UniMRCP Client">
<settings>
<!-- UniMRCP profile to use for TTS -->
<param name="default-tts-profile" value="unimrcpv2"/>
<!-- UniMRCP profile to use for ASR -->
<param name="default-asr-profile" value="unimrcpv2"/>
<!-- UniMRCP logging level to appear in freeswitch.log. Options are:
EMERGENCY|ALERT|CRITICAL|ERROR|WARNING|NOTICE|INFO|DEBUG -->
<param name="log-level" value="DEBUG"/>
<!-- Enable events for profile creation, open, and close -->
<param name="enable-profile-events" value="false"/>
<param name="max-connection-count" value="100"/>
<param name="offer-new-connection" value="1"/>
<param name="request-timeout" value="3000"/>
</settings>
<profiles>
<X-PRE-PROCESS cmd="include" data="../mrcp_profiles/*.xml"/>
</profiles>
</configuration>
--------------------------------------------------------------------------------------------------------------------------------
And the profile: (actual IPs are different)
--------------------------------------------------------------------------------------------------------------------------------
<include>
<!-- UniMRCP Server MRCPv2 -->
<profile name="unimrcpv2" version="2">
<!--param name="client-ext-ip" value="auto"-->
<param name="client-ip" value="1.2.3.4"/>
<param name="client-port" value="16090"/>
<param name="server-ip" value="1.2.3.5"/>
<param name="server-port" value="8060"/>
<!--param name="force-destination" value="1"/-->
<param name="sip-transport" value="udp"/>
<!--param name="ua-name" value="FreeSWITCH"/-->
<!--param name="sdp-origin" value="FreeSWITCH"/-->
<!--param name="rtp-ext-ip" value="auto"/-->
<param name="rtp-ip" value="auto"/>
<param name="rtp-port-min" value="14000"/>
<param name="rtp-port-max" value="15000"/>
<!-- enable/disable rtcp support -->
<param name="rtcp" value="0"/>
<!-- rtcp bye policies (rtcp must be enabled first)
0 - disable rtcp bye
1 - send rtcp bye at the end of session
2 - send rtcp bye also at the end of each talkspurt (input)
-->
<param name="rtcp-bye" value="2"/>
<!-- rtcp transmission interval in msec (set 0 to disable) -->
<param name="rtcp-tx-interval" value="5000"/>
<!-- period (timeout) to check for new rtcp messages in msec (set 0 to disable) -->
<param name="rtcp-rx-resolution" value="1000"/>
<!--param name="playout-delay" value="50"/-->
<!--param name="max-playout-delay" value="200"/-->
Universal Speech Solutions LLC | UniMRCP Module 5
<!--param name="ptime" value="20"/-->
<param name="codecs" value="PCMU PCMA L16/96/8000"/>
<!-- Add any default MRCP params for SPEAK requests here -->
<synthparams>
</synthparams>
<!-- Add any default MRCP params for RECOGNIZE requests here -->
<recogparams>
<!--param name="start-input-timers" value="false"/-->
</recogparams>
</profile>
</include>
--------------------------------------------------------------------------------------------------------------------------------