Chinaunix首页 | 论坛 | 博客
  • 博客访问: 303414
  • 博文数量: 99
  • 博客积分: 225
  • 博客等级: 二等列兵
  • 技术积分: 644
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-03 10:22
个人简介

遇顺境,处之淡然;遇逆境,处之泰然

文章分类
文章存档

2014年(12)

2013年(78)

2012年(9)

分类: LINUX

2013-07-11 14:07:50

                                SIP入门(一):建立SIP软电话环境
SIP 软电话开发环境的建立要在windows或者linux平台下开发基于SIP的软电话,需要以下软件
服务器端软件: 注册多个客户端到服务器上,可以进行通话测试
SIP客户端软件:主要用于测试,可以对别人已经完成的客户端进行抓包,以比对自己程序的发包数据
SIP协议栈:基于某个现成的SIP协议栈来开发会加快开发进度
RTP栈:传输语言或者视频数据的协议栈
抓包测试工具:调试网络程序最有效的办法
以下介绍这些软件主要以开源软件为主
一 服务器端软件
2. Vocal:Linux系统下开源的SIP服务器端。可以作为IPPBX也可以作为运营系统。很多voip虚拟运营商都用这个作为自己的运营系统。提供BS结构的管理界面。
3. YATE:跨平台(Linux,Windows)的开源SIP服务器端。在windows下安装非常简单。其他方面没有进行过测试。
4. SER:Linux平台下重量级的SIP服务器断。功能比较丰富,也是很多voip虚拟运营商的系统选择。不过据说配置比较麻烦,具体没有试过。
5. sipX:Linux平台下的SIP服务器。这个好像不能作为客户端再次注册到其他SIP服务器上。提供BS结构的管理界面。 
二 SIP客户端软件
1. Windows Messenger 5.1:微软出的SIP客户端,操作方便。
2. YATE Client:跨平台(Linux,Windows)的开源SIP客户端软件。安装方便,功能简单。
3. xten:windows平台下的SIP软电话。功能齐全,使用方便。
三 SIP协议栈
1. osip:跨平台的开源SIP协议栈。用c语言实现,体积小。
2. exosip:对osip进行封装,使其方便SIP客户端软件开发。同样开源跨平台。
3. sipXtackLib:由SIPfoundry提供的开源跨平台的SIP协议栈,功能齐全。C++开发,已经被用于开发数个商业SIP终端。
四 RTP栈
1. JRTPLIB: 开源的跨平台rtp栈,用C++语言开发,使用方便。
五 抓包测试工具
1. Wireshark:非常有名的开源跨平台网络抓包工具,以前叫做Ethereal。

原文地址:http://blog.csdn.net/ppy521/article/details/7944213

   SIP协议学习入门的最快最好的办法就是在PC机上搭建SIP软电话环境,通过抓包软件(如:Wireshark)对数据进行分析学习,这样可以迅速了解熟悉SIP协议,并深入了解通讯会话的流程,从而达到快速入门的目的。

        下面就介绍如何搭建SIP软电话环境。

        本人使用Yate软件,下载地址为:

        软件版本:yate-4.2.0-2-setup.exe

        运行环境:Windows7 / Windows XP

       硬件要求:两台电脑,或者一台安装虚拟机的电脑。

      推荐使用虚拟机的方式,因为不是每个人都有两台电脑,而且后续的例子还需要用到三台电脑。

      下载得到的软件包同时包含客户端和服务器端程序,安装时建议选择完全安装所有组件。

      Yate客户端支持两种方式的SIP通话:

    1. 通过账号方式(需要通过服务器)
    2. 直接通话方式(不需要通过服务器)

第二种方式实现起来比较简单,不需要复杂的配置即可实现两个用户之间相互通话,所以本次先介绍这种方式。

在两台电脑上分别装好Yate后,启动Yate Client客户端,如下图所示。

Yate Client

用户在软件的红色框中输入被叫用户的URI地址即可,具体的格式为:

sip/sip:username@ip_address:port

sip/sip:第一个”sip”表明使用SIP协议,”/” 为分隔符,第2个”sip:” 是uri语法的一部分;

username:用户名,在这里可以随便输入;

@:分隔符,uri语法的一部分

ip_address:被叫用户的IP地址;

port:IP端口号,SIP协议默认使用端口5060。

若被叫用户的IP为:192.168.1.103,则输入:sip/sip:506@192.168.1.103:5060。之后点击Call按钮,即可产生呼叫,如下图所示,左边为主叫用户,右边为被叫用户。

Yate通话

被叫用户点击接电话按钮后,即可开始语音通话。

用户可以使用Wireshark软件抓包整个通话过程,然后仔细分析SIP的语法格式,了解SIP的会话流程。此外,Wireshark软件还可以通过图像的方式分析SIP会话,非常方便。

下图为Wireshark软件抓包数据截图,下次我们再来具体分析SIP会话流程。

特殊说明:

1、不能在运行Yate服务器的PC上打开Yate客户端软件,否则无法正常运行。

2、按照参考文章1设置Yate服务器的电话路由后,会导致无法直接通话。

参考文章

1、 rosekin:用yate2实现软VoIP语音通话(SIP协议) http://blog.csdn.net/rosekin/article/details/6561225

2、 

阅读(4677) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~