Google开放实时通信框架WebRTC
据说WebRTC是Web方式进行语音、视频实时通信的框架。项目地址如下:
http://sites.google.com/site/webrtc/ (需翻墙浏览?)
暂时还不太清楚这个技术的细节,不过如果像Google宣传的那样,就可以实现高质量的web通信方式。传统的SIP软终端就面临很大的挑战,从另一方面来说,可能也是一次打破现有格局的机遇。
通信,让生活更美好!
据说WebRTC是Web方式进行语音、视频实时通信的框架。项目地址如下:
http://sites.google.com/site/webrtc/ (需翻墙浏览?)
暂时还不太清楚这个技术的细节,不过如果像Google宣传的那样,就可以实现高质量的web通信方式。传统的SIP软终端就面临很大的挑战,从另一方面来说,可能也是一次打破现有格局的机遇。
SIPp是一个非常好的SIP性能测试工具,我们一直用它,:-) 不过一直是在windows环境中使用这个软件。
而最近忙于将已有系统迁移到Linux环境,因此就有必要研究一下linux环境下的SIPp,我们以ubuntu环境为主。在ubuntu环境中安装、运行SIPp基本是非常简单的,因为ubuntu的软件源中已经加入了SIPp,不过运行时有些地方需要注意。
下面我们逐一进行介绍:
step 1: 安装SIPp
sudo apt-get install sip-tester
step 2: 运行SIPp
命令与windows环境的SIPp一样,需要注意的是Ubuntu/Kubuntu的网络环境中,缺省会安装一个循环网卡,如果运行SIPp时不指定本地地址,SIPp很可能会以该Loopback的地址填写SIP消息中的各项参数,导致大量呼损。因此我们只需注意以-i指定本地地址,以-p指定本地端口即可。下面是两个示例:
运行SIPp接收端程序:sipp -sn uas -i 192.168.1.10 -p 5060
运行SIPp发起端程序:sipp 192.168.1.20:5060 -sn uac -i 192.168.1.10 -p 5061 -r 3 -rp 1000 -m 30000
在运行SIPp进行测试时,经常有人会问到:“为什么我运行sipp会出现下面这个错误提示呢?”
Error opening terminal: cygwin
这个错误是说SIPp无法找到运行时必要的terminal信息,这有可能是由以下几方面的因素导致的:
(1)计算机上没有安装cygwin。cygwin是必须要有的。
(2)直接在command命令行窗口运行sipp。这个是最常见的错误。大家可能觉得把cygwin的bin目录以及sipp的目录加入到path路径就可以直接运行sipp了。直接运行时,还是没有指定cygwin的terminal信息,同样会出错。
那么该如何运行SIPp呢?
请注意SIPp安装后,在“start”程序组中建立了快捷方式“start sipp”,我们应点击这个快捷方式来运行SIPp。这个快捷方式,实际上是指向SIPp安装目录下的批处理文件:startterm.bat。打开这个批处理文件,我们可以很清楚地看到,首先进行了terminal信息的设置,然后进行了必要的mount操作,最后才能正常运行SIPp。
从cnBeta网站看到一条信息(http://www.cnbeta.com/articles/116220.htm),大致的意思是:
让HSPA网络也可以承载语音数据,并且还可以在无SIM卡的情况下实现紧急呼叫。这意味着只要有HSPA数据连接,用户就可以直接通过数据网络拨打电话而不是走传统的蜂窝网。新的标准还优化了语音路由,并加入了一系列LTE手机的服务端API。
我比较感兴趣的是:
Windows下应用SIPp非常简单, 直接下载SIPp的安装文件安装即可。
需要注意的是,不要直接从cmd窗口启动SIPp,而是 点击SIPp的快捷方式“start sipp”,这样,它会将SIPp的安装目录加入路径中。或者,可以将sipp的安装目录加入系统的PATH路径,然后也可以直接在cmd窗口启动 SIPp。
sipp 192.168.1.100:5060 -sf caller_basic.xml -p 5062 -m 1 -r 1 -rp 2000 -d 2000
-sf 加载外部的xml定义文件
-inf 从外部csv文件导入数据信息
-p 指定本地端口。 如果不指定的话,系统使用一个随机的空闲端口;
-m 呼叫次数
-d 每个呼叫的保持时间(毫秒)
其他常用配置参数:
-r -rp Specify the rate period for the call rate.
Example: -r 7 -rp 2000 ==> 7 calls every 2 seconds.
实际上SIPp内置了缺省的UAS和UAC,因此,我们可以不需要定制xml脚本,直接用下面的命令进行测试:
启动SIPp做呼出:sipp 192.168.1.100:5060 -sn uac -p 5062 -r 1 -rp 2000 -d 2000
启动SIPp接受呼叫:sipp 192.168.1.100:5060 -sn uas -p 5063
应用在Fedora系统
下载sipp的源代码在Fedora 9下编译时,会有编译错误“INT_MAX未定义”。 解决方法:
修改sipp.hpp文件,增加以下宏定义即可:
#ifndef INT_MAX
#define INT_MAX 0xFFFFFFFF
#endif
直接使用命令make即可进行编译,在当前目录下产生sipp可执行文件。