自建企业电话会议系统 Freeswitch安装TDM400P实战配置
环境:
硬件: CPU酷睿3G 内存1G 网络100M 宽带ADSL 2M TDM400P(2fxs/2fxo)
软件:Centos5.5,freeswitch1.07 启点IPPBX会议系统
某化工厂用我们免费的启点IPPBX构建了电话会议系统,内部分机采用G711编码,会议室音质设定为宽带高质量。只有内部分机参会时,音质很好,当外呼手机或座机用户参会时,音质明显下降。
故障排查:该厂外呼线路采用对接voip话务平台(价格0.5/分),窄带723,729编码,单路通话效果尚可。根据会议室混音原理,系统都会将每路语音转换为L16无压缩编码。723,729属于高压缩编码,解压混音过程中系统负担大,而且voip话务平台质量并不保障,故而外呼用户参会者的语音质量下降。再次印证,价格和质量成正比。
解决方法:用语音卡PSTN线路外呼。我们还推荐了一家高质量,话务量不太拥挤的话务平台对接,带宽大,支持G711。(价格0.1/分)
效果:通过语音卡外呼参会者,可获得PSTN语音质量效果。与推荐的高质量SIP平台对接外呼,语音较PSTN稍差,但完全满足使用。在30名参会者情况下,系统资源占用10%。
1、 安装系统(略)
请参考z-start.gicp上的安装文档
2、为LINUX安装tdm400p驱动(freeswitch/asterisk剃须刀推荐都需要)
用户购买的是OEM卡,价格1000以内,带回声消除的会贵些。
下载zaptel-1.4.
$ tar -zxvf ar.gz
$ cd zaptel-1.4.x
$ ./configure
$ make
$ make install
$ make config
编译完后确认/etc目录中有zaptel配置文件
Ensure the f is in the /etc directory. Correctly configure country zone f. FXO and FXS are reversed in /f but is normal everywhere else.
我的配置文件如下,采用中国时区cn
----- @/f -----
loadzone=cn
defaultzone=cnqq注册帐号
fxsks=4
fxoks=1
fxsks=2
fxoks=3
加载驱动
# modprobe wctdm
# modprobe zaptel
结婚三金
确认配置
# ztcfg -vv
Zaptel Version: 1.4.2
Echo Canceller: MG2
Configuration
======================
Channel map:
Channel 01: FXO Kewlstart (Default) (Slaves: 01)
Channel 03: FXO Kewlstart (Default) (Slaves: 03)
Channel 02: FXS Kewlstart (Default) (Slaves: 02)
Channel 04: FXS Kewlstart (Default) (Slaves: 04)
2 channels configured.
如果你的FXS/FXO配置反了,系统会出现提示。
重启机器,驱动成功的话,卡后面4个LED灯会亮起来。
3、为freeswitch配置TDM400(网上asterisk这方面的资料较多,在此只讲freeswitch)
3.1 编译mod_openzap模块。
官方文档建议采用FREETDM。我们认为模拟卡的话,还是采用openzap模块好,不然FREETDM会遇到硬件识别问题。如果你是采用原装卡,估计没问题。
3.2 确认/usr/local/freeswitch/conf/autoload_f.xml文件中加载
<load module ="mod_openzap"/>
3.3 为TDM配置通道相关参数
注意Tonegroup 参数如果配置为CN中国,需要在Tone配置中自己加入。
谁是凶手小胡是谁<configuration name="f" description="OpenZAP Configuration">
<settings>
  <param name="debug" value="9"/>
</settings>
<analog_spans>
  <span id="1">
  <param name="tonegroup" value="us"/>
  <param name="digit-timeout" value="2000"/>
  <param name="max-digits" value="11"/>
法国个人旅游签证  <param name="dialplan" value="XML"/>
  <param name="context" value="default"/>
  <param name="enable-analog-option" value="3-way"/>
  <param name="moh" value="$${base_dir}/sounds/Dardedisco.wav"/>
  </span>
  <span id="2">
  <param name="tonegroup" value="us"/>
  <param name="digit-timeout" value="2000"/>
  <param name="max-digits" value="11"/>
  <param name="dialplan" value="XML"/>
  <param name="context" value="default"/>
  <param name="enable-analog-option" value="3-way"/>
  <param name="moh" value="$${base_dir}/sounds/Dardedisco.wav"/>
  </span>
  <span id="3">
  <param name="tonegroup" value="us"/>
  <param name="digit-timeout" value="2000"/>
  <param name="max-digits" value="11"/>
  <param name="dialplan" value="XML"/>
  <param name="context" value="default"/>
  </span>
  <span id="4">
  <param name="tonegroup" value="us"/>
  <param name="digit-timeout" value="2000"/>
  <param name="max-digits" value="11"/>
  <param name="dialplan" value="XML"/>
  <param name="context" value="default"/>
  </span>
</analog_spans>
</configuration>
通道配置
/usr/local/freeswitch/f
[span zt FXS1]
name => OpenZAP-FXS
爱因为在心中歌词number => 1
fxs-channel => 1
[span zt FXO1]
name => OpenZAP-FXO1
number => 2
fxo-channel => 3
[span zt FXO2]
name => OpenZAP-FXO2
number => 3
fxo-channel => 4
4、重启freeswitch
加载过程应有类似如下提示
2008-05-01 18:10:32 [INFO] zap_zt.c:170 zt_open_range() configuring device /dev/zap/channel channel 1 as OpenZAP  device 1:1 fd:33
2008-05-01 18:10:32 [INFO] zap_zt.c:170 zt_open_range() configuring device /dev/zap/channel channel 2 as OpenZAP  device 2:1 fd:34
2008-05-01 18:10:32 [INFO] zap_zt.c:170 zt_open_range() configuring device /dev/zap/channel channel 3 as OpenZAP  device 1:2 fd:35
2008-05-01 18:10:32 [INFO] zap_zt.c:170 zt_open_range() configuring device /dev/zap/channel channel 4 as OpenZAP device 2:2 fd:36
2008-05-01 18:10:32 [INFO] zap_io.c:1978 load_config() Configured 4 channel(s)
2008-05-01 18:10:32 [CONSOLE] switch_loadable_module.c:749 switch_loadable_module_load_file() Successfully Loaded [mod_openzap]
2008-05-01 18:10:32 [NOTICE] switch_loadable_module.c:139 switch_loadable_module_process() Adding Endpoint 'openzap'
2008-05-01 18:10:32 [NOTICE] switch_loadable_module.c:245 switch_loadable_module_process() Adding API Function 'oz'