获取FreeSwitch
本文档不是详细介绍FreeSwitch理论的文章,而是讲其在实际中的应用的文章。FreeSwitch的各种版本的源码可以在一下的网址下载:
http://wiki.freeswitch.org/wiki/Download_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完全可互操作。
下载地址:
下载后点击安装,安装完成执行PortGo Professional.exe,便启动了此SIP软电话
FreeSwitch默认配置了1000~1019共20个用户,你可以随便选择一个用户进行配置(相当于已经在此服务器下注册了20个用户,用户名分别是1000、1001、……),下面就将来测试这个服务器,这里我们可以选用支持SIP协议的PortGo Professional来测试。执行PortGo Professional.exe,填入以下参数:
用户名: 1000
密码: 1234
服务器: Freeswitch软件所在电脑的IP地址
端口:5060
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、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。