使用Doubango客户端连接
最简单的SIP注册只需要三个选项:服务器地址、用户名、密码。而在Doubango中,就得填很多东西,格式也比较严格和专业。
Mac上的iDoubs往freeswitch上注册:
首先 “Preferences” - “Network” 中设置 Proxy-CSCF-Host 和 Proxy-CSCF-Port,填代理服务器的地址和端口。接着填写注册相关的参数,Public Identity 相当于公有SIP地址,注意格式,“sip:”是必须的。Realm是服务器ip。
对接 IMS
IMS 是新一代通信网络事实上的标准,旨在过渡阶段兼容原有的PSTN TDM网络(基于电路交换的网络,在IMS中称为CS域),并最终将所有的业务都转移到基于包交换的网络(PS域)中。
IMS 网元众多,系统个网元之间通过高速网络相连。在IMS内部,包含P-CSCF、I-CSCF、S-CSCF及AS等功能与实体。P-CSCF位于网络的边缘,接收SIP消息,并转发到内部的S-CSCF和AS上。
IMS运行在运营商内部专门的网络上(承载网),如果要通过互联网与运营商的IMS对接,需要通过SBC设备及层层防火墙。SBC设备横跨运营商的承载网及互联网。
网关配置
与IMS对接最好的方式是使用SIP中继方式对接,配置简单。典型的方式是使用类似电话号码的方式,一个账户一个账户进行对接。
与云南移动的IMS使用账号对接:将freeswitch当作一个SIP客户端注册到IMS上。
添加一个网络:
ims.yn.chinamobile.com 为云南移动内部的域,211.139.x.x是一个SBC的地址。
username 是IMS中的用户账号,和password配合用于鉴权,用户账户包含了用户所属的域,用户名部分是一个PSTN网络中的E164格式的电话号码,+86 表示中国的国家代码,871 是云南昆明的区号,xxxxxx是一个本地的电话号码。
from-user 指定在SIP消息中的源用户信息,from-domain 指定域。
register 的值为true 表示freeswitch会向该网关发起注册。
outbound-proxy 表示呼叫应该发到什么地址。
通过 IMS 呼出
测试:
配置Dialplan:
号码透传:
对所有呼出的电话都显示运营商给我们分配的号码:
通过 IMS 呼入
将来话路由到一个IVR:
将来话 DID 的后4位与我们内部的分机号一一对应:
其他问题
遇到问题时,解决的办法就是抓包,看SIP信令。
与IMS对接测试中,发现主叫听不到被叫方的回铃音。对方需要一个特殊的SIP消息头“P-Early-Media:supported”。在RFC5009中定义。可以使用“sip_h_”开头的通道变量添加:
对于1xx的消息需要使用PRACK消息确认:
连接模拟话机和模拟中继线
FXS 和 FXO
普通电话机是模拟的,通过一根模拟中继线连接到距离最近的电话交换机上。
普通电话都有通过一根电话线连接到某个设备上,该设备提供一个模拟电话线的接入端口,称为 FXS 口。同时,电话机上也有一个模拟线的接口,称为FXO(RJ11接口)。
FXS 口是带电的,而 FXO 口是不带电的。
FXS提供-48V的直流电,为了能感知话机摘挂机的变化、给话机提供拨号音、振铃及其他信号音等。在摘机状态,电压降至-7V,振铃状态电压可能增大至-90V。
FXS 与 FXO 的区别:FXS 能提供拨号音。
拓扑结构
freeswitch 提供一个FXO接口用于连接原来的交换机;提供一个FXS接口用于连接原来的模拟电话。
增加网关后:
使用潮流网关连接模拟话机
潮流网络公司有一款型号为HT701的单口模拟网关,它有一个FXS口和一个以太网接口,FXS口用于连接话机,以太接口用于通过以太网连接freeswitch。
该网关有一个简单的Web配置界面:
使用讯时网关连接模拟话机和模拟中继线
上海讯时的网关设备,迅时MX8,可以配置8个FXS口,8个FXO口。
配置FXS接口
连接MX8的Web配置界面:
拨号规则
配置FXO接口连接外线
FXO可以连接运营商提供的电话线与外界通话。在MX8中,连接到FXO接口的电话线称为中继线。切换到“线路配置” - “中继线功能” :
配置路由
MX8通过路由机制对各种设备的来、去话进行控制,通过编辑路由配置这些路由。进入“拨号及路由” - 添加路由:
查看日志:
可以不在freeswitch上添加网关,直接把去话送到网关的IP地址上:
其他
对于网关来说,还有主机号码检测功能。一般现行的模拟线路都使用FSK方式来传送主叫号码检测。
通过 E1 线路与其他系统对接
配置FS1
FS1上需要安装硬件板卡、驱动程序等。
在IO层,FreeTDM有两种工作模式,1 DAHDI模式,由ftmod_zt 驱动,主要兼容DAHDI和Zaptel协议的板卡;2 Wanpipe模式,用于Sangoma生产的板卡。
安装和配置 mod_freetdm
配置文件:conf/freetdm.con
模块配置文件:conf/autoload_configs/freetdm.conf.xml
加载模块:
查看E1板卡和Span、channel状态:
插入自环电缆后:
配置电话路由
配置 E1 网关设备
鼎信通达的 E1 网关 MTG1000 是一款 E1 转 SIP 的网关设备。
添加 PRI 中继
状态页面查看E1中继端口的状态(绿色表示正常):
添加 SIP 中继
添加路由
配置一条 SIP 到 E1 的中继,让从 SIP 侧过来的通话能送到 E1 上去。
配置FS2
拨打测试
呼叫流程
查看当前Span的占用状态:
指定中继拨打
设置dialplan指定中继拨打:
对接其他厂家的 E1 网关
讯时 E1 数字网关,MX100-TG。
ISDN设置 - 添加
路由设置
对接 Asterisk
Asterisk 是老牌的开源VoIP软件。使用中继方式(peer,对等的连接方式)与Asterisk进行对接。
从 freeswitch 呼叫 Asterisk
呼叫Asterisk上的6000:
在Asterisk上查看日志:
没有在Asterisk上配置路由,编辑 extension.conf,在 public Context 中增加
从 Asterisk 上呼叫 freeswitch
在 Asterisk 上设置dialplan:
其他
电话可以呼通了,但是安全性还待加强。需要使用账户或ip地址对来话进行验证。
使用 H.323 协议对接
H.323 是古老的VoIP协议。
mod_h323
安装
报错:
编辑 h323plus/include/openh323buildopts.h ,将37行的 “#include<ptlib/../../revision.h>” 一行注释。
到freeswitch的源代码目录下安装mod_h323。需要改变mod_h323的Makefile(src/mod/endpoint/mod_h323/Makefile ):/usr -> /usr/local。
到freeswitch源代码目录安装:
配置和加载模块
呼叫测试
呼叫“1000@192.168.7.5”或“1000@192.168.7.5:1720”等。
mod_opal
使用mod_opal呼出: