WEBRTC简介
WEBRTC是一个开源项目,其宗旨是让WEB浏览器通过简单的JavaScript具备实时通信(Real-Time Communications (RTC) )的能力。WEBRTC目前支持JS和HTML5,项目由Google、Mozilla和Opera支持。
其官方网址是:http://www.webrtc.org/
WebRTC主要是让Web开发者能够基于浏览器(Chrome\FireFox\...)轻易快捷开发出丰富的实时多媒体应用,而无需下载安装任何插件,Web开发者也无需关注多媒体的数字信号处理过程,WebRTC提供了实时通信的核心技术,包括音视频的采集、编解码、网络传输、显示等功能,并且还支持跨平台:windows,linux,mac,android。
Asterisk 11 的WEBRTC支持
详见社区链接:
https://wiki.asterisk.org/wiki/display/AST/Asterisk+WebRTC+Support
安装libsrtp
因为WEBRTC要求用SRTP,而asterisk的SRTP模块依赖于libsrtp包,所以要先安装它。
#wgethttp://sourceforge.net/projects/srtp/files/srtp/1.4.4/srtp-1.4.4.tgz/download
# tar vzxf srtp-1.4.4.tgz
# cd srtp
# ./configure
# make
# make install
安装Asterisk11
# wgethttp://downloads.asterisk.org/pub/telephony/asterisk/asterisk-11-current.tar.gz
# tar vzxf asterisk-11-current.tar.gz
#cd asterisk-11.2.1/
#./configure
# make
# make install
检查res_srtp 模块和 res_http_websocket 是否选中,如果没有,添加上这两个模块,保存退出(按x保存退出)。
asterisk配置
配置SIPUSER:
[1000]deny=0.0.0.0/0.0.0.0secret=s1ptest1234dtmfmode=rfc2833canreinvite=nocontext=from-internelhost=dynamictrustrpid=yessendrpid=notype=friendnat=noport=5060qualify=noqualifyfreq=60transport=udpencryption=nocallgroup=pickupgroup=dial=SIP/1000mailbox=1000@defaultpermit=0.0.0.0/0.0.0.0callerid=device <1000>callcounter=yesfaxdetect=nocc_monitor_policy=generictransport = ws,wss ;必须选择为 ws( web socket,其实就是 http)和 wss(对应为 https)encryption=yes ;必须使用SRTPnat=yes,force_rport ;打开NATavpf=yes ;WEBRTC时使用
配置res_http_websocket,修改/etc/asterisk/http.conf(在文件的最末尾添加如下内容)
[general]
;
; Whether HTTP/HTTPS interface is enabled or not. Default is no.
; This also affects manager/rawman/mxml access (see manager.conf)
;
enabled=yes ;;
; Address to bind to, both for HTTP and HTTPS. You MUST specify
; a bindaddr in order for the HTTP server to run. There is no
; default value.
;
bindaddr=0.0.0.0 ;
配置dialplan,修改/etc/asterisk/extension.conf
[from-internel]exten =>_XXXX,1,Answer()exten =>_XXXX,n,Dial(sip/${EXTEN},120)exten =>_XXXX,n,Hangup()
reload asterisk
JsSIP - 提供了一个兼容WebRTC的JS SIP库,在github上有一个用这个库的demo,我们可以到 这里 下载,并直接使用它。直接把它下载到您的HTTP服务器根目录下(比如我的httpd服务根目录/var/www/html)。
cd /var/www/html
wget https://github.com/versatica/jssip-demos/archive/master.zip
注:现在这个项目似乎不再托管或者已经迁移,为了方便大家,上传了一份到我的资源空间里:http://download.csdn.net/detail/yetyongjin/5440685。没找到原链接的同学可以到这里下载。
unzip master
打开chrome,输入web站点路径如下:
http://192.168.122.139/jssip-demos-master/tryit/index.html
出现web客户端登陆界面,并输入sip账号信息,如下:
输入完成后,在任意一个输入框里敲回车,则开始向asterisk建立websocket并发送sip注册消息。
操作界面如下: