“FreeSWITCH-1.6以上+Sangoma 数字语音板卡安装方式”的版本间的差异

来自最权威最新完整开源SIP,语音通信,融合通信中文技术文档资料,提供详细的Asterisk Freepbx, FreeSBC, 免费会话边界控制器,网关,语音板卡,IPPBX,SBC配置资料-asterisk,freepbx,freesbc 用户手册 界面配置,呼叫路由,IVR, 网关对接,拨号规则,SIP 分机呼叫,pjsip, IVR, 录音, CDR, 队列呼叫,振铃组,CLI 命令中文资料手册
跳转至: 导航搜索
FreeSWITCH 安装
常见问题排查
 
(未显示同一用户的26个中间版本)
第1行: 第1行:
安装FreeSWITCH-1.6 和Sangoma 数字语音卡必须经过以下几个步骤。请用户在安装之前详细阅读。此中文文档内容更新速度可能滞后,所以请用户首先查看Sangoma 官方文档来进行安装部署。在安装FreeSWITCH-1.6时,用户安装几个核心的软件包就可以支持Sangoma 语音卡: <br/>
+
安装FreeSWITCH-1.6 和Sangoma 数字语音卡必须经过以下几个步骤。模拟语音卡也支持此安装步骤,仅无需安装ISDN支持包。请用户在安装之前详细阅读。此中文文档内容更新速度可能滞后或一些链接失效,所以请用户首先查看Sangoma 官方文档来进行安装部署。在安装FreeSWITCH-1.6时,用户安装几个核心的软件包就可以支持Sangoma 语音卡: <br/>
  
 
1)Sangoma 语音卡的驱动(Wanpipe)。 <br/>
 
1)Sangoma 语音卡的驱动(Wanpipe)。 <br/>
第13行: 第13行:
 
https://wiki.freepbx.org/display/PC/Telephony+Cards+for+FreeSWITCH
 
https://wiki.freepbx.org/display/PC/Telephony+Cards+for+FreeSWITCH
  
 +
下面,我们按照具体的步骤一步步安装Sangoma 语音板卡和FreeSWITCH。
 
=下载Sangoma板卡wanpipe驱动支持包=
 
=下载Sangoma板卡wanpipe驱动支持包=
 
'''Sangoma 官方建议在Linux平台安装Sangoma语音板卡。'''<br/>
 
'''Sangoma 官方建议在Linux平台安装Sangoma语音板卡。'''<br/>
Sangoma 板卡用户必须注意,请在安装编译驱动之前,必须确认成功安装驱动支持包;否则会出现编译失败或者报错。<br>
+
Sangoma 板卡用户必须注意,请在安装编译驱动之前,必须确认成功安装驱动支持包;否则会出现编译失败或者报错。安装FreeSWITCH时,需要用户必须安装相应的支持包<br>
 
请访问此链接,查看不同平台'''Redhat Distributions/Ubuntu/Debian 6 Distributions的安装包''':
 
请访问此链接,查看不同平台'''Redhat Distributions/Ubuntu/Debian 6 Distributions的安装包''':
 
<pre>
 
<pre>
https://wiki.freepbx.org/display/PC/Telephony+Cards+for+FreeSWITCH
+
https://wiki.freepbx.org/display/PC/Telephony+Cards+for+FreeSWITCH, Sangoma 语音板卡驱动的支持包
 +
</pre>
 +
FreeSWITCH 平台安装支持包,平台不同,安装方式可能有所不同,用户必须提前准备。
 +
<pre>
 +
https://freeswitch.org/confluence/display/FREESWITCH/Installation+ARCHIVED
 
</pre>
 
</pre>
 
安装过程中,请务必留意几个方面的问题:<br>
 
安装过程中,请务必留意几个方面的问题:<br>
第52行: 第57行:
  
 
==libsng_isdn PRI安装==
 
==libsng_isdn PRI安装==
如果支持PRI, 用户必须下载Sangoma的ISDN支持包,分别支持32位,64位系统:
+
如果支持PRI, 用户必须下载Sangoma的ISDN支持包,分别支持32位,64位系统,最新版本可到官方下载。如果用户使用的是模拟语音卡则无需安装此软件包:
 
<pre>
 
<pre>
 
32-bit library: ftp://ftp.sangoma.com/linux/libsng_isdn/libsng_isdn-current.i686.tgz
 
32-bit library: ftp://ftp.sangoma.com/linux/libsng_isdn/libsng_isdn-current.i686.tgz
第61行: 第66行:
 
</pre>
 
</pre>
 
==两种FreeSWITCH+freetdm模块的安装方式==
 
==两种FreeSWITCH+freetdm模块的安装方式==
用户在安装FreeSWITCH-1.6加Sangoma语音卡时,Sangoma 提供了两种安装方式,用户可以轻松安装相关的FreeTDM模块。</br>
+
通常情况下,编译FreeSWITCH可以通过git下载的方式或者tar文件源代码下载安装的方式编译FreeSWITCH和Sangoma freetdm 模块:<br/>
1)下载Sangoma官方提供的FreeSWITCH+freetdm的软件包,通过此支持包安装FreeSWITCH和FreeTDM。</br>
+
在安装FreeSWITCH之前,用户必须安装所要求的支持包,否则会导致安装失败。请参考官方文档或者其他资源来实现支持包的安装。<br/>
 
<pre>
 
<pre>
Download Public Freeswtich + Sangoma FreeTDM compress file from Sangoma FTP server as given below:
+
git clone git://git.freeswitch.org/freeswitch.git  //如果通过git安装,请提前安装git工具
 +
wget http://files.freeswitch.org/freeswitch-snapshot.tar.gz
 +
./bootstrap.sh                                  // 执行安装配置环境设置
 +
#libs/freetdm/mod_freetdm                        // 打开freeswitch源代码路径下的modules.conf 文件,找到这一行,删除注释符#,保存文件,表示支持Sangoma freetdm 模块编译。
 +
./configure                                    // 默认安装文件到 /usr/local/freeswitch
 +
make                                          // 执行编译
 +
make install                                // 安装文件
 +
</pre>
 +
 
 +
用户在安装FreeSWITCH-1.6加Sangoma语音卡时,Sangoma也提供了两种安装方式,用户可以比较简单和灵活地安装相关的FreeTDM模块。<br/>
 +
1)下载Sangoma官方提供的FreeSWITCH+freetdm的软件包,通过此支持包安装FreeSWITCH和FreeTDM。<br/>
 +
<pre>
 +
从Sangoma官方服务器下载Freeswtich + Sangoma FreeTDM tar 文件,注意,如果此链接失效,请及时联系我们技术支持或者查看官方最新的发布版本:
 
ftp://ftp.sangoma.com/linux/freeswitch/public_fs_merge_v1.6.tgz
 
ftp://ftp.sangoma.com/linux/freeswitch/public_fs_merge_v1.6.tgz
Now, untar the file using command as:
+
对tar文件解压
  
Untar File
 
 
tar -xvf public_fs_merge_v1.6.tgz
 
tar -xvf public_fs_merge_v1.6.tgz
Now, compile the freeswitch as usuall or can refer to  "sangoma-public-fs-compile.txt" as present within public_fs_merge_v1.6 folder, for freeswitch compilation related instruction
+
在解压文件路径下可以进行FreeSWITCH和freetdm的编译。用户可以参考解压文件中的命令执行编译-"sangoma-public-fs-compile.txt"
 
</pre>
 
</pre>
 
2) 安装FreeSWITCH源代码以后,下载freetdm补丁,对FreeSWITCH添加freetdm模块的方式来安装FreeSWITCH和FreeTDM模块。
 
2) 安装FreeSWITCH源代码以后,下载freetdm补丁,对FreeSWITCH添加freetdm模块的方式来安装FreeSWITCH和FreeTDM模块。
 
<pre>
 
<pre>
Using Sangoma FreeTDM and Manully merging it to Public Freeswitch
+
使用Sangoma的FreeTDM 模块,把freetdm模块手动添加到Freeswitch代码中,用户通过补丁的方式添加模块代码,然后进行FreeSWITCH的编译或者重新编译。
Please find below instructions to download our FreeTDM code and copy to Freeswitch source code directory before freeswitch compilation.
+
这里,需要用户手动拷贝源代码到freeswitch的支持包路径下。
  
 
1. Download our FreeTDM source code. Copy and paste below line into your Linux command line to start download.
 
1. Download our FreeTDM source code. Copy and paste below line into your Linux command line to start download.
第81行: 第97行:
  
 
2. Copy the freetdm code to Freeswitch directory.  
 
2. Copy the freetdm code to Freeswitch directory.  
   a) mv <freeswitch_source_code_dir>/libs/freetdm /tmp/freetdm.bkup.junk
+
   a) mv <freeswitch_source_code_dir>/libs/freetdm /tmp/freetdm.bkup.junk // 执行备份,如果无需备份,可忽略此步骤。
   b) cp -r <downloaded_freetdm_dir> <freeswitch_source_code_dir>/libs/freetdm
+
   b) cp -r <downloaded_freetdm_dir> <freeswitch_source_code_dir>/libs/freetdm // 把下载的文件拷贝到freeswitch 源代码相应路径下。
  
3. Please use the below script in order to apply patch and build freeswitch with our FreeTDM. Please find below script file below
+
3. 使用此脚本对其代码进行补丁处理,这样,FreeSWITCH就会支持了FreeTDM模块:
     Sangoma FS-1.6 Patch Apply Script
+
     脚本内容如下:
  
NOTE: Once script is successfully executed "sangoma-public-fs-compile.txt" file is generated. User can refer to this file in order to get the details with respect to How to compile (sangoma + Public) merged FreeTDM with public Freeswitch
+
#!/bin/bash
</pre>
+
 
两种方式可安装FreeSWITCH,通过git安装,或者http下载源代码:
+
# This script is to apply sangoma specific patch depending upon if the
<pre>
+
# same is already present on public freeswitch or not
git clone git://git.freeswitch.org/freeswitch.git  //如果通过git安装,请提前安装git工具
+
 
wget http://files.freeswitch.org/freeswitch-snapshot.tar.gz
+
is_patch_present=`git log | grep "320d5f2015976fed9ca282dfeeb2bd3e977e6f76" | wc -l`
./bootstrap.sh                                  // 执行安装配置环境设置
+
 
#libs/freetdm/mod_freetdm                        // 打开modules.conf 文件,找到这一行,删除注释符#,保存文件
+
if [ "$is_patch_present" != "0" ]; then
./configure                                    // 默认安装文件到 /usr/local/freeswitch
+
    echo "Public freeswitch already has the patch merged. Thus, creating only sangoma-public-fs-compile.txt"
make                                          // 执行编译
+
    patch -p 1 < libs/freetdm/public_freeswitch/README.patch
make install                                // 安装文件
+
else
 +
    patch -p 1 < libs/freetdm/public_freeswitch/sangoma-FS-1.6.patch
 +
fi
 +
 
 +
 
 +
具体链接可访问:https://git.freepbx.org/projects/CORE/repos/freetdm/browse/public_freeswitch/sangoma-FS-1.6-apply_patch.sh?at=public_v1.6-merge
 +
 
 +
脚本成功执行后,可自动生成sangoma-public-fs-compile.txt文件。然后执行文件中的命令进行编译。
 +
 
 +
注意:在编译过程中,FreeSWITCH会自动编译freetdm模块,如果没有编译freetdm模块的话,可能需要用户编辑module.conf 文件,添加freetdm模块,找到此行,编辑修改(#../../libs/freetdm/mod_freetdm,修改为../../libs/freetdm/mod_freetdm),然后保存配置,
 +
重新执行./configure,make, make install。
 
</pre>
 
</pre>
  
 
=配置设置文件=
 
=配置设置文件=
 +
在确保完成了Sangoma 驱动安装,ISDN支持包和成功编译FreeSWITCH+freetdm模块的流程后,用户可以执行sangoma板卡配置基本来自动配置所有相关参数。<br/>
 +
但是在配置过程中,用户一定要注意选择正确的配置选项,以保证语音卡能够正常工作。我们已经列出了中国用户的示例,请按照示例执行。<br/>
 +
如果配置错误的话,用户也可以重新执行脚本覆盖以前的配置。<br/>
 
==配置Wanpipe and mod_freetdm==
 
==配置Wanpipe and mod_freetdm==
执行工具 wancfg_fs,脚本命令将自动检测设置sangoma语音板卡和pri协议配置文件。<br/>
+
执行工具 wancfg_fs,脚本命令将自动检测设置sangoma语音板卡和pri协议配置文件,存储路径都是默认路径。<br/>
 
*  cd /usr/sbin/, 执行安装脚本: ./wancfg_fs<br/>
 
*  cd /usr/sbin/, 执行安装脚本: ./wancfg_fs<br/>
*  /etc/wanpipe/wanpipe#.conf  // 系统生产相应的每个端口的配置文件wanpipe1-wanpipe#<br/>
+
*  /etc/wanpipe/wanpipe#.conf  // 系统生产相应的每个端口的配置文件wanpipe1-wanpipe#,这是物理接口配置文件,每个端口对应一个配置文件。<br/>
*  /usr/local/freeswitch/conf/freetdm.conf  // FreeTDM 配置文件 <br/>
+
*  /usr/local/freeswitch/conf/freetdm.conf  // FreeTDM 配置文件,配置PRI的D通道和B通道设置,这是信令接口的配置文件 <br/>
*  FreeSwtich mod_freetdm 模块配置文件<br/>
+
*  FreeSwtich mod_freetdm 模块配置文件,这是FreeSWITCH的freetdm 具体应用接口的通道配置文件<br/>
 
/usr/local/freeswtich/conf/autoload_configs/freetdm.conf.xml  <br/>
 
/usr/local/freeswtich/conf/autoload_configs/freetdm.conf.xml  <br/>
  
第137行: 第166行:
  
 
==检查Sangoma 物理接入状态,检查ftdm信令状态==
 
==检查Sangoma 物理接入状态,检查ftdm信令状态==
 +
加载了freetdm模块后,我们需要确保pri 信令层的状态是正常状态,然后才能测试呼入呼出。<br/>
 
1)检查物理状态,可以通过Sangoma 驱动底层工具查看物理状态,线路,远端告警信息:<br/>
 
1)检查物理状态,可以通过Sangoma 驱动底层工具查看物理状态,线路,远端告警信息:<br/>
http://wiki.voip88.com/index.php/Sangoma_wanpipemon_T1/E1_line_alarms_%E7%BA%BF%E8%B7%AF%E5%91%8A%E8%AD%A6%E6%8E%92%E6%9F%A5%E5%B7%A5%E5%85%B7
+
http://freepbx.org.cn/wiki/index.php?title=Sangoma_wanpipemon_T1/E1_line_alarms_%E7%BA%BF%E8%B7%AF%E5%91%8A%E8%AD%A6%E6%8E%92%E6%9F%A5%E5%B7%A5%E5%85%B7
  
  
 
2) 或者通过FreeSWITCH CLI命令,执行以下命令查看端口状态和信令:<br/>  
 
2) 或者通过FreeSWITCH CLI命令,执行以下命令查看端口状态和信令:<br/>  
2.1 ftdm sangoma_isdn l1_stats wp1, 返回结果显示:connected, disconnected<br/>
+
2.1 ftdm sangoma_isdn l1_stats wp1, 返回结果显示:connected, disconnected。connected表示物理连接正常。<br/>
2.2 ftdm sangoma_isdn show_spans, 如果物理连接正常,信令正常,显示'''UP,active。'''<br/>
+
2.2 ftdm sangoma_isdn show_spans, 如果物理连接正常,信令正常,显示'''UP,active。''',表示信令正常<br/>
  
 
==呼入呼出拨号规则举例==
 
==呼入呼出拨号规则举例==
拨号规则的语法:
+
在确认了物理连接正常,信令正常以后,用户可以配置FreeSWITCH的配置文件来实现呼入呼出的拨打测试。<br/>
 +
对freetdm支持的语法拨号规则的示例:
 
<pre>
 
<pre>
 
通过指定的端口呼出:
 
通过指定的端口呼出:
第238行: 第269行:
 
* ftdm sangoma_isdn show_spans
 
* ftdm sangoma_isdn show_spans
 
</pre>
 
</pre>
 +
=启动Sangoma语音板卡和启动FreeSWITCH命令=
 +
如果用户需要启动sangoma语音板卡或者停止FreeSWITCH的运行,用户可以使用以下命令来执行。更多命令查看官方网站。这里,需要提醒用户的是:<br/>
 +
启动顺序:先启动Sangoma语音板卡,然后再启动FreeSWITCH。<br/>
 +
卸载顺序:先停止FreeSWITCH,然后再停止Sangoma板卡驱动。因为FreeSWITCH已经调用了freetdm接口和驱动的信令接口,所以必须先停止FS。<br/>
 +
 +
以下是经常使用的命令:<br/>
 +
1)启动,停止,重新启动Sangoma语音板卡命令分别是:wanrouter start/stop/restart。如果用户需要查看log日志,可以访问/var/log/messages 文件<br/>
 +
2) 启动FreeSWITCH 后台模式:/usr/local/freeswitch/bin/freeswitch -nc<br/>
 +
3)通过ps查看FreeSWITCH运行状态:ps fax |grep freeswitch<br/>
 +
4)进入FreeSWITCH CLI 模式:/usr/local/freeswitch/bin/fs_cli, debug freeswitch<br/>
 +
5)停止FreeSWITCH:/usr/local/freeswitch/bin/freeswitch -stop <br/>
 +
 
=常见问题排查=
 
=常见问题排查=
1) Sangoma E1 语音板卡最大支持16E1 PRI免费,不支持SS7。<br/>
+
1) Sangoma E1 语音板卡最大支持1E1-16E1 PRI免费,SS7是付费模块,本文档不支持SS7安装配置。<br/>
 
2)'''启动顺序:先启动Sangoma语音板卡,然后再启动FreeSWITCH。'''<br/>
 
2)'''启动顺序:先启动Sangoma语音板卡,然后再启动FreeSWITCH。'''<br/>
 
3)'''卸载顺序:先停止FreeSWITCH,然后再停止Sangoma板卡驱动。'''<br/>
 
3)'''卸载顺序:先停止FreeSWITCH,然后再停止Sangoma板卡驱动。'''<br/>
第258行: 第301行:
 
10) Sangoma FreeSWITCH 修改排查文件:<br/>
 
10) Sangoma FreeSWITCH 修改排查文件:<br/>
 
http://wiki.sangoma.com/Freeswitch-Troubleshooting-Information-a101-2-4-8<br/>
 
http://wiki.sangoma.com/Freeswitch-Troubleshooting-Information-a101-2-4-8<br/>
 +
11) 如果执行make时,出现 error: libxml/parser.h: No such file or directory,用户需要安装libxml2-dev 支持包,通过yum 安装或源代码编译。<br/>
 +
12)如果系统在初始化检测时,发现找到 yasm 时,可以通过源代码安装yasm,下载链接:http://www.tortall.net/projects/yasm/releases/<br/>

2018年8月24日 (五) 10:51的最新版本

安装FreeSWITCH-1.6 和Sangoma 数字语音卡必须经过以下几个步骤。模拟语音卡也支持此安装步骤,仅无需安装ISDN支持包。请用户在安装之前详细阅读。此中文文档内容更新速度可能滞后或一些链接失效,所以请用户首先查看Sangoma 官方文档来进行安装部署。在安装FreeSWITCH-1.6时,用户安装几个核心的软件包就可以支持Sangoma 语音卡:

1)Sangoma 语音卡的驱动(Wanpipe)。

2)Sangoma 的PRI 协议包(libsng_isdn),如果用户是模拟语音卡,无需安装此支持包。

3)FreeSWITCH包含FreeTDM应用模块来支持PSTN的呼叫。这里,用户要注意,从FreeSWITCH-1.6以后,Sangoma 更新了freetdm模块的安装方式,它可以支持两种安装方式:
1)通过Sangoma 官方的一个含有FreeSWITCH和freetdm的包来下载安装。
2)通过对FreeSWITCH打补丁的方式,添加一个FreeTDM模块。

具体的官方文档链接如下:

https://wiki.freepbx.org/display/PC/Telephony+Cards+for+FreeSWITCH

下面,我们按照具体的步骤一步步安装Sangoma 语音板卡和FreeSWITCH。

下载Sangoma板卡wanpipe驱动支持包

Sangoma 官方建议在Linux平台安装Sangoma语音板卡。
Sangoma 板卡用户必须注意,请在安装编译驱动之前,必须确认成功安装驱动支持包;否则会出现编译失败或者报错。安装FreeSWITCH时,需要用户必须安装相应的支持包
请访问此链接,查看不同平台Redhat Distributions/Ubuntu/Debian 6 Distributions的安装包

https://wiki.freepbx.org/display/PC/Telephony+Cards+for+FreeSWITCH, Sangoma 语音板卡驱动的支持包

FreeSWITCH 平台安装支持包,平台不同,安装方式可能有所不同,用户必须提前准备。

https://freeswitch.org/confluence/display/FREESWITCH/Installation+ARCHIVED

安装过程中,请务必留意几个方面的问题:
1)确认每个支持包安装成功。
2) 确认内核开发包和目前正在使用的内核版本完全一致。否则不能安装语音板卡驱动程序,建议用户最好安装光盘中的内核开发包,不要使用yum从网上安装。使用yum安装经常导致内核开发包版本和内核版本不一致的问题,切记。
3) Sangoma E1 板卡安装仅仅需要安装3个软件包:wanpipe 板卡驱动,libsng_isdn和FreeSWITCH软交换。
4) Sangoma 和FreeSWITCH集成,相关的配置文件包括:
4.1) Sangoma 板卡配置文件,在/etc/wanpipe 目录下,包含:
每个端口配置文件(每个端口配置文件以:wanpipeX.conf 命名),日志文件,启动顺序配置文件。
4.2)Freetdm.conf 文件,配置板卡数据,默认路径是:/usr/local/freeswitch/conf/freetdm.conf
4.3)FreeSWITCH 应用层配置文件默认路径:/usr/local/freeswtich/conf/autoload_configs/freetdm.conf.xml

安装Wanpipe/PRI协议栈/Freeswitch

Wanpipe驱动安装

执行命令 cd /usr/src,下载最新的wanpipe 版本

wget ftp://ftp.sangoma.com/linux/current_wanpipe/wanpipe-current.tgz
tar xfz wanpipe-current.tgz  // 减压tar 文件
cd wanpipe-<version>.tgz  // 进入到这个文件夹
make freetdm   // 编译freetdm
make install   // 安装编译的模块

执行命令 wanrouter hwprobe,检测sangoma 硬件信息(显示A101,如果是其他型号,显示相应产品信息)

-------------------------------
| Wanpipe Hardware Probe Info |
-------------------------------
1 . AFT-A101-SH : SLOT=2 : BUS=4 : IRQ=217 : CPU=A : PORT=1 : HWEC=0 : V=41

Card Cnt: A101=1

libsng_isdn PRI安装

如果支持PRI, 用户必须下载Sangoma的ISDN支持包,分别支持32位,64位系统,最新版本可到官方下载。如果用户使用的是模拟语音卡则无需安装此软件包:

32-bit library: ftp://ftp.sangoma.com/linux/libsng_isdn/libsng_isdn-current.i686.tgz
64-bit library: ftp://ftp.sangoma.com/linux/libsng_isdn/libsng_isdn-current.x86_64.tgz
tar xfz libsng_isdn-current.<arch>.tgz  // 减压到 /usr/src 路径下
cd libsng_isdn-<version>.<arch>   // 进入到 文件夹
make install  // 执行编译安装命令

两种FreeSWITCH+freetdm模块的安装方式

通常情况下,编译FreeSWITCH可以通过git下载的方式或者tar文件源代码下载安装的方式编译FreeSWITCH和Sangoma freetdm 模块:
在安装FreeSWITCH之前,用户必须安装所要求的支持包,否则会导致安装失败。请参考官方文档或者其他资源来实现支持包的安装。

git clone git://git.freeswitch.org/freeswitch.git  //如果通过git安装,请提前安装git工具
wget http://files.freeswitch.org/freeswitch-snapshot.tar.gz
./bootstrap.sh                                   // 执行安装配置环境设置
#libs/freetdm/mod_freetdm                        // 打开freeswitch源代码路径下的modules.conf 文件,找到这一行,删除注释符#,保存文件,表示支持Sangoma freetdm 模块编译。
./configure                                    // 默认安装文件到 /usr/local/freeswitch
make                                          // 执行编译
make install                                 // 安装文件

用户在安装FreeSWITCH-1.6加Sangoma语音卡时,Sangoma也提供了两种安装方式,用户可以比较简单和灵活地安装相关的FreeTDM模块。
1)下载Sangoma官方提供的FreeSWITCH+freetdm的软件包,通过此支持包安装FreeSWITCH和FreeTDM。

从Sangoma官方服务器下载Freeswtich + Sangoma FreeTDM tar 文件,注意,如果此链接失效,请及时联系我们技术支持或者查看官方最新的发布版本:
ftp://ftp.sangoma.com/linux/freeswitch/public_fs_merge_v1.6.tgz
对tar文件解压

tar -xvf public_fs_merge_v1.6.tgz
在解压文件路径下可以进行FreeSWITCH和freetdm的编译。用户可以参考解压文件中的命令执行编译-"sangoma-public-fs-compile.txt" 。

2) 安装FreeSWITCH源代码以后,下载freetdm补丁,对FreeSWITCH添加freetdm模块的方式来安装FreeSWITCH和FreeTDM模块。

使用Sangoma的FreeTDM 模块,把freetdm模块手动添加到Freeswitch代码中,用户通过补丁的方式添加模块代码,然后进行FreeSWITCH的编译或者重新编译。
这里,需要用户手动拷贝源代码到freeswitch的支持包路径下。

1. Download our FreeTDM source code. Copy and paste below line into your Linux command line to start download.
        -> git clone -b public_v1.6-merge https://git.freepbx.org/scm/core/freetdm.git

2. Copy the freetdm code to Freeswitch directory. 
   a) mv <freeswitch_source_code_dir>/libs/freetdm /tmp/freetdm.bkup.junk // 执行备份,如果无需备份,可忽略此步骤。
   b) cp -r <downloaded_freetdm_dir> <freeswitch_source_code_dir>/libs/freetdm // 把下载的文件拷贝到freeswitch 源代码相应路径下。

3. 使用此脚本对其代码进行补丁处理,这样,FreeSWITCH就会支持了FreeTDM模块:
    脚本内容如下:

#!/bin/bash

# This script is to apply sangoma specific patch depending upon if the
# same is already present on public freeswitch or not

is_patch_present=`git log | grep "320d5f2015976fed9ca282dfeeb2bd3e977e6f76" | wc -l`

if [ "$is_patch_present" != "0" ]; then
    echo "Public freeswitch already has the patch merged. Thus, creating only sangoma-public-fs-compile.txt"
    patch -p 1 < libs/freetdm/public_freeswitch/README.patch
else
    patch -p 1 < libs/freetdm/public_freeswitch/sangoma-FS-1.6.patch 
fi


具体链接可访问:https://git.freepbx.org/projects/CORE/repos/freetdm/browse/public_freeswitch/sangoma-FS-1.6-apply_patch.sh?at=public_v1.6-merge

脚本成功执行后,可自动生成sangoma-public-fs-compile.txt文件。然后执行文件中的命令进行编译。

注意:在编译过程中,FreeSWITCH会自动编译freetdm模块,如果没有编译freetdm模块的话,可能需要用户编辑module.conf 文件,添加freetdm模块,找到此行,编辑修改(#../../libs/freetdm/mod_freetdm,修改为../../libs/freetdm/mod_freetdm),然后保存配置,
重新执行./configure,make, make install。

配置设置文件

在确保完成了Sangoma 驱动安装,ISDN支持包和成功编译FreeSWITCH+freetdm模块的流程后,用户可以执行sangoma板卡配置基本来自动配置所有相关参数。
但是在配置过程中,用户一定要注意选择正确的配置选项,以保证语音卡能够正常工作。我们已经列出了中国用户的示例,请按照示例执行。
如果配置错误的话,用户也可以重新执行脚本覆盖以前的配置。

配置Wanpipe and mod_freetdm

执行工具 wancfg_fs,脚本命令将自动检测设置sangoma语音板卡和pri协议配置文件,存储路径都是默认路径。

  • cd /usr/sbin/, 执行安装脚本: ./wancfg_fs
  • /etc/wanpipe/wanpipe#.conf // 系统生产相应的每个端口的配置文件wanpipe1-wanpipe#,这是物理接口配置文件,每个端口对应一个配置文件。
  • /usr/local/freeswitch/conf/freetdm.conf // FreeTDM 配置文件,配置PRI的D通道和B通道设置,这是信令接口的配置文件
  • FreeSwtich mod_freetdm 模块配置文件,这是FreeSWITCH的freetdm 具体应用接口的通道配置文件

/usr/local/freeswtich/conf/autoload_configs/freetdm.conf.xml

'''执行脚本安装过程中,中国用户需要选择的选项''',请小心操作:
Select media type->E1  // 支持中国E1
Select linecode-> HDB3  // E1接口支持两种线路编解码格式:AMI格式和HDB3格式。默认HDB3
Select framing-> NCRC4  // 是否需要支持CRC4 校验,如果不支持选择此项。大多数中国客户使用NCRC4
Select Clock-> Normal
Select Signalling type-> PRI CPE  // '''运营商端上NET 网络侧,本地必须选择CPE 用户侧'''
Select switchtype -> EuroISDN
Select Configure port for full use->yes
Select Dialplan context-> PSTN   // 注意,到这一步,一个端口就算配置完成了,脚本会重复配置 第2 口,3口,如果是16E1的话,执行到16口,直到配置完所有的板卡端口。
Configuration complete-> Yes
Dahdi and Wanpepe configuration complete-> 选择 2
would you like to continue->Yes
would you like  wanrouter to start on system boot-> yes

配置FreeSWITCH和mod_freetdm接口模块

为了使得FreeTDM正确加载,修改/usr/local/freeswitch/conf/autoload_configs/ 目录下的modules.conf.xml文件
修改下面一行

<!-- <load module="mod_freetdm"/> --> 

修改后:

<load module="mod_freetdm"/>

检查Sangoma 物理接入状态,检查ftdm信令状态

加载了freetdm模块后,我们需要确保pri 信令层的状态是正常状态,然后才能测试呼入呼出。
1)检查物理状态,可以通过Sangoma 驱动底层工具查看物理状态,线路,远端告警信息:
http://freepbx.org.cn/wiki/index.php?title=Sangoma_wanpipemon_T1/E1_line_alarms_%E7%BA%BF%E8%B7%AF%E5%91%8A%E8%AD%A6%E6%8E%92%E6%9F%A5%E5%B7%A5%E5%85%B7


2) 或者通过FreeSWITCH CLI命令,执行以下命令查看端口状态和信令:
2.1 ftdm sangoma_isdn l1_stats wp1, 返回结果显示:connected, disconnected。connected表示物理连接正常。
2.2 ftdm sangoma_isdn show_spans, 如果物理连接正常,信令正常,显示UP,active。,表示信令正常

呼入呼出拨号规则举例

在确认了物理连接正常,信令正常以后,用户可以配置FreeSWITCH的配置文件来实现呼入呼出的拨打测试。
对freetdm支持的语法拨号规则的示例:

通过指定的端口呼出:
"freetdm/<span_name>/a/<destination_number>"
通过指定的呼出组呼出:
"freetdm/<group_name>/a/<destination_number>"

测试之前,请使用Xlite在freeswitch注册一个分机1001,默认密码1234. 注意修改配置文件,需要重新加载模块
呼出举例:通过分机拨打9186653XXXX呼出到186653XXXX. 在freeswitch 的配置文件dialplan/default.xml添加

<extension name="outgoing">
        <condition field="destination_number" expression="^9(.+)$"> // 拨9前缀呼出。
            <action application="bridge" data="freetdm/wp1/a/$1"/>
        </condition>
</extension>

呼入举例:E1呼入以后转到分机1001.在/dialplan/public/00_inbound_did.xml中修改成如下:

 
<include> 
  <extension name="public_did"> 
    <condition field="destination_number" expression="^(.+)$"> 
       <action application="set" data="domain_name=$${domain}"/> 
       <action application="transfer" data="1001 XML default"/> // E1 呼入以后转到分机1001  
    </condition> 
  </extension> 
</include> 

PRI 命令检测

Layer 1 驱动层信息

使用方法: l1_stats <span name>
举例: ftdm sangoma_isdn l1_stats wp1

Protocol Status检测

如何检测PRI 端口状态:
使用: show_spans
举例: ftdm sangoma_isdn show_spans // 显示UP/Down Active/Inactive
<pre>
Protocol trace信息
<pre>
如何打开 Q921 trace:
使用: trace q921 <span name>
举例: ftdm sangoma_isdn trace q921 wp1
如何打开 Q931 trace:
使用: trace q931 <span name> 
举例: ftdm sangoma_isdn trace q931 wp1
如何关闭所有traces信息:
使用: trace disable <span name> 
举例: ftdm sangoma_isdn trace disable wp1

无回令音或者不能透传彩令

解决办法,在呼出之前加answer 应用。

FreeSwitch ftdm 命令集

To see a list of your configured spans, at the CLI type
* ftdm list   // 显示端口列表
To see detailed information about a specific span
* ftdm dump <span_id>  
To see detailed information about a specific channel on span
* ftdm dump <span_id> <chan_id>
To start a span (this terminates FS with sangoma_isdn when you stopped the span before)
* ftdm start <span_id> // 启动一个端口
To stop a span
* ftdm stop <span_id> // 停止一个端口
To get a pcap trace (I guess it doesn't work currently)
* ftdm q931_pcap <span_id> on|off [pcapfilename without suffix]
(this command shouldn't be defined in mod_freetdm, but in ftmod_isdn I guess)
To enable/disable DTMF detection on whole span or certain channel
* ftdm dtmf on|off <span_id> [<chan_id>]  // 开启DTMF检测,支持Sangoma 带回声硬件DTMF检测
To enable a trace on whole span or certain channels
* ftdm trace <path where to save files per channel> <span_id> [<chan_id>]
To disable a trace on whole span or certain channels
* ftdm notrace <span_id> [<chan_id>]
To adjust gains on whole span or certain channels
* ftdm gains <rxgain> <txgain> <span_id> [<chan_id>]  // 调整 端口曾益 rx 代表接收 tx 代表呼出
* ftdm sangoma_isdn trace <q921|q931> <span_name>
Call this for both q921 and q931 to have both decoded
To disable decoding of q921 and q931 messages on a span
* ftdm sangoma_isdn trace disable <span_name>
To get layer 1 statistics from span (derived from wanpipe I guess)
* ftdm sangoma_isdn l1_stats <span_name>
To get a short status report of each span
* ftdm sangoma_isdn show_spans

启动Sangoma语音板卡和启动FreeSWITCH命令

如果用户需要启动sangoma语音板卡或者停止FreeSWITCH的运行,用户可以使用以下命令来执行。更多命令查看官方网站。这里,需要提醒用户的是:
启动顺序:先启动Sangoma语音板卡,然后再启动FreeSWITCH。
卸载顺序:先停止FreeSWITCH,然后再停止Sangoma板卡驱动。因为FreeSWITCH已经调用了freetdm接口和驱动的信令接口,所以必须先停止FS。

以下是经常使用的命令:
1)启动,停止,重新启动Sangoma语音板卡命令分别是:wanrouter start/stop/restart。如果用户需要查看log日志,可以访问/var/log/messages 文件
2) 启动FreeSWITCH 后台模式:/usr/local/freeswitch/bin/freeswitch -nc
3)通过ps查看FreeSWITCH运行状态:ps fax |grep freeswitch
4)进入FreeSWITCH CLI 模式:/usr/local/freeswitch/bin/fs_cli, debug freeswitch
5)停止FreeSWITCH:/usr/local/freeswitch/bin/freeswitch -stop

常见问题排查

1) Sangoma E1 语音板卡最大支持1E1-16E1 PRI免费,SS7是付费模块,本文档不支持SS7安装配置。
2)启动顺序:先启动Sangoma语音板卡,然后再启动FreeSWITCH。
3)卸载顺序:先停止FreeSWITCH,然后再停止Sangoma板卡驱动。
3)如何排查Sangoma物理连接,此链接包括了每个参数的具体含义
http://wiki.voip88.com/index.php/Sangoma_wanpipemon_T1/E1_line_alarms_%E7%BA%BF%E8%B7%AF%E5%91%8A%E8%AD%A6%E6%8E%92%E6%9F%A5%E5%B7%A5%E5%85%B7
4)为了快速解决客户问题,Sangoma 一般要求客户提供系统相关日志文件。Sangoma 支持系统打包工具,如何获得整体打包的log日志:
http://wiki.voip88.com/index.php/Sangoma_%E7%B3%BB%E7%BB%9F%E6%8E%92%E6%9F%A5%E6%97%A5%E5%BF%97%E6%89%93%E5%8C%85%E5%B7%A5%E5%85%B7
注:此日志工具仅支持Linux平台。
5)确认已经连接了运营商线路,物理连接检查Disconnected,参考:
http://wiki.sangoma.com/troubleshooter-boards-pri-Wanpipe-Driver-status-shows-Disconnected 6) 线缆线序,E1板卡使用标准的RJ48接口,线序图例,查看:
http://wiki.sangoma.com/Pinouts
7) Sangoma 板卡本身不附送120欧姆-75欧姆转接头,我们发货时会附送此转接头。
8) 如何使用FreeSWITCH的ESL,参考:
http://wiki.sangoma.com/FreeSWITCH-ESL
9) Freetdm.conf 配置举例:
http://wiki.sangoma.com/wanpipe-freeswitch-config-freetdm-isdn
10) Sangoma FreeSWITCH 修改排查文件:
http://wiki.sangoma.com/Freeswitch-Troubleshooting-Information-a101-2-4-8
11) 如果执行make时,出现 error: libxml/parser.h: No such file or directory,用户需要安装libxml2-dev 支持包,通过yum 安装或源代码编译。
12)如果系统在初始化检测时,发现找到 yasm 时,可以通过源代码安装yasm,下载链接:http://www.tortall.net/projects/yasm/releases/