上一章JsSIP初识已经介绍了JsSIP的基本使用方法,这一章将使用FreeSWITCH+JsSIP实现视频通讯,截止本文FreeSWITCH使用1.6.18版本,JsSIP使用的3.0.15版本(经过测试使用3.1.x版本不适用本章的例子)
FreeSWITCH配置
- 修改FreeSWITCH安装路径下/conf/var.xml文件中,修改默认密码1
<X-PRE-PROCESS cmd="set" data="default_password=1234"/>
- 修改FreeSWITCH安装路径下/conf/var.xml文件中,增加
<X-PRE-PROCESS cmd=="set" data="proxy_media=true"/>
- 修改FreeSWITCH安装路径下/conf/sip_profiles/internal.xml文件,设置inbound-proxy-media和inbound-late-negotiation为true
<!--Uncomment to set all inbound calls to proxy media mode-->
<param name="inbound-proxy-media" value="true"/>
<!-- Let calls hit the dialplan before selecting codec for the a-leg -->
<param name="inbound-late-negotiation" value="true"/>
- 修改配置之后重启FreeSWITCH或者打开FS_Cli输入
reloadxml
,然后打开两台机器上的eyeBeam
测试视频通话。
如果一直报视频编解码问题的错误,可以尝试修改/conf/var.xml的配置项
global_codec_prefs
和outbound_codec_prefs
如下(增加可用编解码器)
<X-PRE-PROCESS cmd="set" data="global_codec_prefs=OPUS,G722,PCMU,PCMA,GSM,H263,H264,VP8,H263-1998"/>
<X-PRE-PROCESS cmd="set" data="outbound_codec_prefs=OPUS,G722,PCMU,PCMA,GSM,H263,H264,VP8,H263-1998"/>
前端页面源码
<!DOCTYPE html>
<html>
<head>
<title>JsSIP + freeSWITCH</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Author" content="Fly" />
<meta name="description" content="JsSIP Test DEMO" />
<script src="js/jssip-3.0.15.js" type="text/javascript"></script>
<style type="text/css">
</style>
</head>
<body>
<div style="padding-bottom:10px;font-weight:bold;">控制台</div>
<div id="login-page" style="width: 500px; border: 1px solid #f0f0f0;&