1. FreeSwitch模块mod_unimrcp配置数据库化初探:
  2. 宁卫通信
  3. 新闻动态
  4. 宁卫新闻
  5. FreeSwitch模块mod_unimrcp配置数据库化初探

FreeSwitch模块mod_unimrcp配置数据库化初探

     在我们使用FreeSwitch对接mrcp时,最常用的方式就是mod_unimrcp模块,但mod_unimrcp模块需要对conf/mrcp_profiles/这里进行对应的mrcp配置,在这里一定要记住,这里的unimrcp是作为client去和其它第三方的mrcp server对接,由mrcp server和asr/tts打交道。


       不管是asr还是tts,对于unimrcp的配置都差不多,只是在一些参数调整上会存在一定的差别。以下示例为一个使用科大讯飞的mrcp v2的unimrcp在FreeSwitch中的配置示例:


1.  <include>  

2.    <profile name="xfmrcpv2asr" version="2">  

3.      <param name="client-ip" value="172.100.0.217"/>  

4.      <param name="client-port" value="8101"/>  

5.      <param name="server-ip" value="172.100.0.200"/>  

6.      <param name="server-port" value="5070"/>  

7.      <param name="sip-transport" value="udp"/>  

8.      <param name="rtp-ip" value="172.100.0.200"/>  

9.      <param name="rtp-port-min" value="30000"/>  

10.    <param name="rtp-port-max" value="58000"/>  

11.    <param name="rtcp" value="1"/>  

12.    <param name="rtcp-bye" value="2"/>  

13.    <param name="rtcp-tx-interval" value="5000"/>  

14.    <param name="rtcp-rx-resolution" value="1000"/>  

15.    <param name="codecs" value="PCMU PCMA L16/96/8000"/>  

16.    <synthparams>  

17.    </synthparams>  

18.    <recogparams>  

19.    </recogparams>  

20.  </profile>  

21.</include>  

但这样存在一个问题,每增加一个服务器对接,都需要去在conf/mrcp_profiles下做类似的配置,那么可不可以直接配置到数据库中呢?肯定可以啦。

问题在mod_unimrcp.c这个实现中去对以下几个函数进行数据库化的处理:

process_profile_config

process_rtp_config

process_mrcpv1_config  ,只有version为1才调用

process_mrcpv2_config   , 只有version为2才调用

mod_unimrcp_do_config

把这些函数按我们数据库结构进行查询,然后一一对应匹配,那么就把这些内容给数据库化了。