持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第21天,点击查看活动详情
介绍
从字面理解FreeSWITCH就是将各种终端连接在一起.
配置一个SIP电话向FreeSWITCH注册
大部分使用中的FreeSWICH要允许用户之间进行通信,SIP电话或其他SIP设备要能向其发起注册.当一个电话或其他设备向FreeSWITCH服务器注册,意味着它将提供一些信息(比如说IP地址和端口)来说明如何通过局域网或互联网来访问自己.FreeSWITCH将保存这些信息为将来如果有人想联络这个电话的时候使用.
在这个例子中,你将注册一个电话到FreeSWITCH.你需要将认证信息分别写入你的电话和FreeSWITCH(两边要匹配).在本书中我们将只说明在FreeSWITCH服务器端的配置.
开始
确保mod_sofia模块已经编译并加载(Sofia是SIP协议栈).
你还需要确定你注册用的IP地址已经允许作为一个特殊的域名.
确认的步骤:
1:运行FreeSWITCH的命令行界面(CLI)
2:执行命令sofia status来确认现在服务器正在监听的IP和端口
3:查看输出结果,特别留意标记ALIASED那行
freeswitch@internal> sofia status
Name Type Data State
======================================================================
external profile sip:mod_sofia@192.168.0.100:5080 RUNNING (0)
my.company.com alias internal ALIASED
internal profile sip:mod_sofia@127.0.0.1:5060 RUNNING (0)
2 profiles 1 aliases
标记为ALIASED的那行意味着在系统中已经识别域名并用来注册.重命名的域名将关联到一个特别的端口和IP地址.在这个例子中,my.company.com被关联到一个叫做internal的接口.该接口是监听在127.0.0.1的IP和5060的端口上.也就是说,如果要向FreeSWITCH上的my.company.com注册,就必须发生在服务器的127.0.0.1和5060端口.
如何做
下面的步骤将说明如何配置一个SIP电话:
1:选择你想要的注册时用到的用户名和密码
2:打开FreeSWITCH配置目录下的directory/default/USERNAME.xml文件. USERNAME需要使用用户名或分机号码来替换(比如说2000)
3:添加以下内容到文件中并保存
代码中的USERNAME和PASSWORD使用你选择的用户名和密码来替换.
4:重新进入FreeSWITCH的命令行界面(CLI)
5:在FreeSWITCH的CLI上执行命令reloadxml 来重新加载当前的配置. 1. SIP协议栈:主要用于会话的建立,修改以及终止。
开源SIP协议栈:
[1]The GNU oSIP library – www.gnu.org/software/os…
[2] reSIProcate – www.resiprocate.org/Main_Page
[3] libmsip – www.minisip.org/download.ht…
[4] Sofia – SIP – sofia-sip.sourceforge.net/
[5] pjsip – www.pjsip.org/
更多的内容可参考网站:www.pernau.at/kd/voip/ind…
2. SDP协议栈:主要用于会话的媒体协商。
3. RTP协议栈:为数据提供了具有实时特征的端对端传送服务。
[1] jrtplib – lumumba.luc.ac.be/jori/jrtpli…
[2] ortp – www.linphone.org/ortp
[3] GNU ccRTP – www.gnu.org/software/cc…
更多的内容可参考网站:www.pernau.at/kd/voip/ind…
4. 音频编解码库:主要用于对音频数据编解码,以适应网络传输。
G.711 A-law
G.711 Mu-law
GSM
G729
Speex – www.speex.org/
还有好多,不一一列举。
5. 视频编解码库:主要用于对视频数据编解码,以适应网络传输。
Xvid – www.xvid.org/
X264 – www.videolan.org/developers/…
Ffmpeg – ffmpeg.org/
6. 界面皮肤及操作库:主要用于软电话界面的显示以及逻辑的控制。
7. 音频数据处理库:对音频数据的基本处理,例如通过声卡获取,然后播放等。
8. 视频数据处理库:对视频数据的基本处理,例如通过显卡获取,然后播放等。
9. NAT以及防火墙穿越技术:穿越私网和防火墙。
- 防窃听防封杀加密技术:防黑客窃听,防有关部门封杀