使用FreeSwitch进行SIP对讲 和 RTP组播

时间:2024-03-04
新悦网络

编辑:

FreeSwitch简介

FreeSwitch是一个开源的电话软交换平台,从一个简单的软电话客户端到运营商的软交换设备几乎无所不能,FreeSwitch 可以用作交换机引擎、PBX、多媒体网关以及多媒体服务器等。FreeSwitch具有很强的伸缩性。旨在为音频、视频、文字或任何其他形式的媒体,提供路由和互连通信协议。它创建于2006年,填补了许多商业解决方案的的空白。FreeSWITCH的也提供了一个稳定的电话平台,许多广泛使用的免费电话就是在使用它开发的,但是它不支持视频通话。

FreeSwitch能原生地运行在Windows、Max OS X、Linux、BSD 及 solaris 等诸多32/64位平台,可以用作一个简单的交换引擎、一个PBX,一个媒体网关或媒体支持IVR的服务器等。它支持SIP、H323、Skype、Google Talk等协议,并能很容易地与各种开源的PBX系统如sipXecs、Call Weaver、Bayonne、YATE及Asterisk等通信。FreeSWITCH 遵循RFC并支持很多高级的SIP特性,如 presence、BLF、SLA以及TCP、TLS和sRTP等。它也可以用作一个SBC进行透明的SIP代理(proxy)以支持其它媒体如T.38等。FreeSWITCH 支持宽带及窄带语音编码,电话会议桥可同时支持8、12、16、24、32及48kHZ的语音. 而在传统的电话网络中,要做到三方通话或多方通话需要通过专门的芯片来处理,其它像预付费,彩铃等业务在PSTN网络中都需要依靠智能网(IN)才能实现,而且配置起来相当不灵活。

 

获取FreeSwitch

本文档不是详细介绍FreeSwitch理论的文章,而是讲其在实际中的应用的文章。FreeSwitch的各种版本的源码可以在一下的网址下载:

http://wiki.freeswitch.org/wiki/Download_FreeSWITCH

Windows用户可以直接下载编译好的安装文件

https://files.freeswitch.org/windows/installer/x64/FreeSWITCH-1.8.7-x64-Release.msi

下载后点击安装,安装完成执行FreeSwitchConsole.exe便启动了此服务器,其配置文件在C:\Program Files\FreeSWITCH\conf。

服务器启动后界面如图1所示.

 FreeSwitch启动后界面

图1 FreeSwitch启动后界面

 

FreeSwitch的配置

FreeSwitch默认设置了20个用户,如果需要更多的用户,那么只需要简单的三步就可以完成。

  • 在conf/directory/default/中增加一个用户配置文件
  • 修改拨号计划(Dialplan)使其它用户可以呼叫它
  • 重新加载配置使其生效

 

例如,要添加用户Jack,分机号是1020,只需要到conf/directory/default目录下,将1000.xml拷贝到1020.xml,然后打开1020.xml,将所有1000都改为1020,并把effective_caller_id_name的值改为Jack,然后保存退出。

如:<variable name="effective_caller_id_name" value="Jack"/>

接下来,打开 conf/dialplan/default.xml,找到<condition fied=“destionation_number” expression=“^(10[01][0-9]) $” > 行,将其改为:<condition field=“destionation_number” expresstion=“^(10[01][0-9]|1020) $” >保存退出,回到控制台,然后执行reloadxml命令或按快捷键F6,使新的配置生效,那么新用户1020便添加成功。

如果你在某个运营商拥有SIP账号,你可以配置拨打外部电话,由于这不是本文介绍的重点,所以不作详细介绍。

 

安装配置SIP软电话PortGo Professional

PortGo Professional具有直观的界面,易于使用,易于使用,是一款免费的SIP软电话软件。它支持SIP,并与大多数主要VOIP供应商和ITSP完全可互操作。

下载地址:

https://www.portsip.com/download-portsip-softphone/

下载后点击安装,安装完成执行PortGo Professional.exe,便启动了此SIP软电话

FreeSwitch默认配置了1000~1019共20个用户,你可以随便选择一个用户进行配置(相当于已经在此服务器下注册了20个用户,用户名分别是1000、1001、……),下面就将来测试这个服务器,这里我们可以选用支持SIP协议的PortGo Professional来测试。执行PortGo Professional.exe,填入以下参数:

用户名: 1000
密码: 1234
服务器: Freeswitch软件所在电脑的IP地址 
端口:5060

其它都是用默认设置,点登陆就可以了。

软电话登录界面

图2 软电话登录界面

 

SIP设备的配置

1、进入“* \Operation Tutorial\软件” 文件夹,解压并运行Manager.exe软件,双击进入SIP设备(设备名称:Dev01)属性界面,点击“基本参数”,设置设备的IP地址、网关、子网掩码以及DNS服务器。

 

 

2、点击“账号信息”,填入SIP设备的显示名称、用户名称、用户密码和SIP服务器IP地址及其服务器端口。这里可以用Freeswitch的默认用户名和密码

 

显示名称:1001
用户账号: 1001
用户密码: 1234
服务器地址: Freeswitch软件所在电脑的IP地址 
服务器端口:5060
其它参数使用默认的出厂参数即可

 

3、在对讲设置和组播设置中可以配置SIP设备的对讲以及组播喊话参数,一般用默认即可。

 

 

4、设置“按键定义”,可以对SIP设备的按键功能进行配置(SIP对讲/IP直呼/组播)

这里我们设置呼叫目标为SIP软电话,即填入SIP软电话在Freeswich上的用户账号(1000)即可

 

 

SIP测试

1、语音通话

测试1

在SIP软电话上输入SIP设备的的用户账号(1001),然后点击呼叫按键或者按下回车按键,SIP软电话就会呼叫拨打1001(SIP设备)。在默认的振铃声后(振铃时长可在Manager上设置),SIP设备自动接听,之后双方可以进行SIP对讲通话。

 

图3 软电话拨打界面

 

测试2

前文我们已经设置了SIP设备的呼叫目标为SIP软电话(1000),此时短接SIP设备的呼叫接口(C1 and COM),SIP设备就会呼叫拨打1000(SIP软电话)。在SIP软电话提示有来电呼入后,SIP软电话点击接听按钮,之后双方可以进行SIP对讲通话。

 

2、RTP组播

进行RTP组播设置,先要设置SIP设备的监听RTP组播地址,设备会监听网络上指定的RTP组播地址,当发送端发送RTP组播流时,SIP设备会自动接收并播放

 

测试1

设置监听组播地址,点击进入之前预设好的组播地址列表,当网络中有其它SIP设备发起同一组的组播时,本SIP设备会监听接收并自动播放该音频信号。

点击红色方框的 … 按钮,在弹出界面中,添加组播地址和端口号,之后选择组播地址。然后再点击确认。

 

监听组播地址设置

 

监听组播地址有10组(1组最低,10组最高),优先级高的组播可以打断优先级低的组播。

 

监听组播

通过上述设置,SIP设备监听并播放224.5.6.20:10008这个组播流,现在下一步设置Freeswitch向该地址发送一个RTP流。

这个需要将Freeswitch的默认组播地址设置成224.5.6.20,端口号10008,而在Freeswitch默认配置中, 拨打号码7243就直接向默认地址发送组播。

在Freeswitch安装目录下,打开\conf\dialplan\default.xml文件

 

    <extension name="rtp_multicast_page">

      <condition field="destination_number" expression="^pagegroup$|^7243$">

       <action application="answer"/>

<action application="esf_page_group"/>

 

将这部分内容改成如下所示

 

    <extension name="rtp_multicast_page">

      <condition field="destination_number" expression="^pagegroup$|^7243$">

       <action application="answer"/>

<action application="esf_page_group" data="224.5.6.20 10008 6001"/>

 

这样设置过后,就将Freeswitch的默认组播地址设置成224.5.6.20,端口号10008,然后在SIP软电话上拨打号码7243就直接向默认地址发送组播。

 

 

测试2

将另外一个SIP设备(设备名称:Dev02)上电,在Manager软件里进入设备属性界面,点击“按键定义”,设置Key1为采播,点击进入之前预设好的组播地址列表,选择组播目标为224.5.6.20:10008。

短接SIP设备(Dev02)的呼叫接口(C1 and COM),SIP设备(Dev02)就会将麦克风(或Line in)输入采集到的模拟音频编码成数字信号,然后将RTP包发送到组播地址224.5.6.20:10008。

 

 

最新内容

知识库