使用Doubango客户端连接

freeswitch 与其他设备或系统对接_运营商

最简单的SIP注册只需要三个选项:服务器地址、用户名、密码。而在Doubango中,就得填很多东西,格式也比较严格和专业。

Mac上的iDoubs往freeswitch上注册:

freeswitch 与其他设备或系统对接_加载_02

首先 “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上。

添加一个网络:

freeswitch 与其他设备或系统对接_路由配置_03

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 呼出

测试:

freeswitch 与其他设备或系统对接_加载_04

配置Dialplan:

freeswitch 与其他设备或系统对接_加载_05

号码透传:

freeswitch 与其他设备或系统对接_路由配置_06

对所有呼出的电话都显示运营商给我们分配的号码:

freeswitch 与其他设备或系统对接_运营商_07

通过 IMS 呼入

将来话路由到一个IVR:

freeswitch 与其他设备或系统对接_运营商_08

将来话 DID 的后4位与我们内部的分机号一一对应:

freeswitch 与其他设备或系统对接_路由配置_09

其他问题

遇到问题时,解决的办法就是抓包,看SIP信令。

与IMS对接测试中,发现主叫听不到被叫方的回铃音。对方需要一个特殊的SIP消息头“P-Early-Media:supported”。在RFC5009中定义。可以使用“sip_h_”开头的通道变量添加:

freeswitch 与其他设备或系统对接_加载_10

对于1xx的消息需要使用PRACK消息确认:

freeswitch 与其他设备或系统对接_运营商_11

连接模拟话机和模拟中继线

freeswitch 与其他设备或系统对接_运营商_12

FXS 和 FXO

普通电话机是模拟的,通过一根模拟中继线连接到距离最近的电话交换机上。

普通电话都有通过一根电话线连接到某个设备上,该设备提供一个模拟电话线的接入端口,称为 FXS 口。同时,电话机上也有一个模拟线的接口,称为FXO(RJ11接口)。

freeswitch 与其他设备或系统对接_运营商_13

FXS 口是带电的,而 FXO 口是不带电的。

FXS提供-48V的直流电,为了能感知话机摘挂机的变化、给话机提供拨号音、振铃及其他信号音等。在摘机状态,电压降至-7V,振铃状态电压可能增大至-90V。

FXS 与 FXO 的区别:FXS 能提供拨号音。

拓扑结构

freeswitch 与其他设备或系统对接_路由配置_14

freeswitch 提供一个FXO接口用于连接原来的交换机;提供一个FXS接口用于连接原来的模拟电话。

freeswitch 与其他设备或系统对接_运营商_15

增加网关后:

freeswitch 与其他设备或系统对接_运营商_16

使用潮流网关连接模拟话机

潮流网络公司有一款型号为HT701的单口模拟网关,它有一个FXS口和一个以太网接口,FXS口用于连接话机,以太接口用于通过以太网连接freeswitch。

该网关有一个简单的Web配置界面:

freeswitch 与其他设备或系统对接_运营商_17

使用讯时网关连接模拟话机和模拟中继线

上海讯时的网关设备,迅时MX8,可以配置8个FXS口,8个FXO口。

配置FXS接口

连接MX8的Web配置界面:

freeswitch 与其他设备或系统对接_加载_18

拨号规则

freeswitch 与其他设备或系统对接_加载_19

freeswitch 与其他设备或系统对接_加载_20

配置FXO接口连接外线

FXO可以连接运营商提供的电话线与外界通话。在MX8中,连接到FXO接口的电话线称为中继线。切换到“线路配置” - “中继线功能” :

freeswitch 与其他设备或系统对接_路由配置_21

配置路由

MX8通过路由机制对各种设备的来、去话进行控制,通过编辑路由配置这些路由。进入“拨号及路由” - 添加路由:

freeswitch 与其他设备或系统对接_运营商_22

freeswitch 与其他设备或系统对接_加载_23

freeswitch 与其他设备或系统对接_路由配置_24

freeswitch 与其他设备或系统对接_运营商_25

freeswitch 与其他设备或系统对接_路由配置_26

查看日志:

freeswitch 与其他设备或系统对接_加载_27

freeswitch 与其他设备或系统对接_路由配置_28

freeswitch 与其他设备或系统对接_路由配置_29

可以不在freeswitch上添加网关,直接把去话送到网关的IP地址上:

freeswitch 与其他设备或系统对接_路由配置_30

freeswitch 与其他设备或系统对接_加载_31

其他

对于网关来说,还有主机号码检测功能。一般现行的模拟线路都使用FSK方式来传送主叫号码检测。

freeswitch 与其他设备或系统对接_加载_32

通过 E1 线路与其他系统对接

配置FS1

FS1上需要安装硬件板卡、驱动程序等。

freeswitch 与其他设备或系统对接_加载_33

freeswitch 与其他设备或系统对接_运营商_34

在IO层,FreeTDM有两种工作模式,1 DAHDI模式,由ftmod_zt 驱动,主要兼容DAHDI和Zaptel协议的板卡;2 Wanpipe模式,用于Sangoma生产的板卡。

安装和配置 mod_freetdm

freeswitch 与其他设备或系统对接_运营商_35

配置文件:conf/freetdm.con 

freeswitch 与其他设备或系统对接_运营商_36

freeswitch 与其他设备或系统对接_加载_37

freeswitch 与其他设备或系统对接_运营商_38

模块配置文件:conf/autoload_configs/freetdm.conf.xml

freeswitch 与其他设备或系统对接_运营商_39

加载模块:

freeswitch 与其他设备或系统对接_运营商_40

查看E1板卡和Span、channel状态:

freeswitch 与其他设备或系统对接_运营商_41

插入自环电缆后:

freeswitch 与其他设备或系统对接_运营商_42

freeswitch 与其他设备或系统对接_运营商_43

配置电话路由

freeswitch 与其他设备或系统对接_加载_44

freeswitch 与其他设备或系统对接_运营商_45

配置 E1 网关设备

鼎信通达的 E1 网关 MTG1000 是一款 E1 转 SIP 的网关设备。

添加 PRI 中继

freeswitch 与其他设备或系统对接_路由配置_46

freeswitch 与其他设备或系统对接_运营商_47

状态页面查看E1中继端口的状态(绿色表示正常):

freeswitch 与其他设备或系统对接_路由配置_48

添加 SIP 中继

freeswitch 与其他设备或系统对接_加载_49

添加路由

freeswitch 与其他设备或系统对接_加载_50

freeswitch 与其他设备或系统对接_路由配置_51

freeswitch 与其他设备或系统对接_加载_52

配置一条 SIP 到 E1 的中继,让从 SIP 侧过来的通话能送到 E1 上去。

freeswitch 与其他设备或系统对接_运营商_53

配置FS2

freeswitch 与其他设备或系统对接_运营商_54

拨打测试

freeswitch 与其他设备或系统对接_运营商_55

freeswitch 与其他设备或系统对接_运营商_56

呼叫流程

freeswitch 与其他设备或系统对接_加载_57

查看当前Span的占用状态:

freeswitch 与其他设备或系统对接_运营商_58

指定中继拨打

freeswitch 与其他设备或系统对接_路由配置_59

设置dialplan指定中继拨打:

freeswitch 与其他设备或系统对接_路由配置_60

对接其他厂家的 E1 网关

讯时 E1 数字网关,MX100-TG。

ISDN设置 - 添加

freeswitch 与其他设备或系统对接_加载_61

freeswitch 与其他设备或系统对接_加载_62

路由设置

freeswitch 与其他设备或系统对接_路由配置_63

freeswitch 与其他设备或系统对接_路由配置_64

对接 Asterisk

Asterisk 是老牌的开源VoIP软件。使用中继方式(peer,对等的连接方式)与Asterisk进行对接。

从 freeswitch 呼叫 Asterisk

呼叫Asterisk上的6000:

freeswitch 与其他设备或系统对接_运营商_65

在Asterisk上查看日志:

freeswitch 与其他设备或系统对接_运营商_66

没有在Asterisk上配置路由,编辑 extension.conf,在 public Context 中增加

freeswitch 与其他设备或系统对接_运营商_67

从 Asterisk 上呼叫 freeswitch

在 Asterisk 上设置dialplan:

freeswitch 与其他设备或系统对接_加载_68

其他

电话可以呼通了,但是安全性还待加强。需要使用账户或ip地址对来话进行验证。

使用 H.323 协议对接

H.323 是古老的VoIP协议。

freeswitch 与其他设备或系统对接_路由配置_69

mod_h323

安装

freeswitch 与其他设备或系统对接_运营商_70

报错:

freeswitch 与其他设备或系统对接_运营商_71

编辑 h323plus/include/openh323buildopts.h ,将37行的 “#include<ptlib/../../revision.h>” 一行注释。

freeswitch 与其他设备或系统对接_运营商_72

到freeswitch的源代码目录下安装mod_h323。需要改变mod_h323的Makefile(src/mod/endpoint/mod_h323/Makefile ):/usr  ->  /usr/local。

到freeswitch源代码目录安装:

freeswitch 与其他设备或系统对接_加载_73

配置和加载模块

freeswitch 与其他设备或系统对接_路由配置_74

freeswitch 与其他设备或系统对接_运营商_75

呼叫测试

呼叫“1000@192.168.7.5”或“1000@192.168.7.5:1720”等。

freeswitch 与其他设备或系统对接_运营商_76

mod_opal

freeswitch 与其他设备或系统对接_路由配置_77

freeswitch 与其他设备或系统对接_路由配置_78

使用mod_opal呼出:

freeswitch 与其他设备或系统对接_运营商_79

其他

freeswitch 与其他设备或系统对接_路由配置_80