通信猫产品文档通信猫产品文档
通信猫系统
通信猫官网
通信猫系统
通信猫官网
  • 产品介绍
  • 快速开始
  • 常用业务场景
  • API参考

    • 概述
    • 获取token
    • 客户

      • 创建客户
      • 修改客户
      • 客户单个查询
      • 客户分页查询
      • 客户充值
      • 客户充值单个查询
      • 客户充值分页查询
    • 话机

      • 创建话机
      • 修改话机
      • 话机单个查询
      • 话机分页查询
    • 落地网关

      • 创建落地网关
      • 修改落地网关
      • 落地网关单个查询
      • 落地网关分页查询
    • 费率

      • 创建费率
      • 修改费率
      • 费率单个查询
      • 费率分页查询
      • 费率版本单个查询
    • 回拨请求

      • 创建回拨请求
      • 回拨请求单个查询
    • AX绑定

      • 创建AX绑定
      • 修改AX绑定
      • AX绑定单个查询
      • AX绑定分页查询
      • 创建AX临时绑定
      • 修改AX临时绑定
      • AX临时绑定单个查询
      • AX临时绑定分页查询
    • AXB绑定

      • 创建AXB绑定
      • 修改AXB绑定
      • AXB绑定单个查询
      • AXB绑定分页查询
    • 话单

      • 话单通知
      • 回拨话单通知
      • AX话单通知
      • AXB话单通知
    • 录音

      • 录音事件通知
      • 录音下载
  • 知识库

    • webrtc快速开始

1 webrtc简介

WebRTC,名称源自 网页即时通信 (英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。它于2011年6月1日开源并在Google、Mozilla、Opera支持下被纳入万维网联盟的W3C推荐标准。 WebRTC 适用于许多不同的应用场景,从使用摄像头或麦克风的基本 Web 应用,到更高级的视频通话应用和屏幕共享,不一而足。本文用代码实现一个语音通话的demo,以便更好地说明该技术的工作原理及用途。

以B2BUA(Back-to-Back User Agent,背靠背用户代理)模式为例,快速实现webrtc语音通话,B2BUA模式也是webrtc最常见的模式,架构图如下所示 b2bua 如架构所示,要想实现webrtc语音通话,要分别实现服务端和客户端

2 实现服务端

服务端实现方式

方式说明优点缺点
FreeSwitch开源的软交换系统,支持linux和win系统开源、免费、易于扩展对技术要去较高,安装繁琐
通信猫saas模式软件换系统,web架构注册即可使用,费用低新系统
vosvos是商业软件cs架构模式老牌的软交换系统,市场占有率高,系统稳定价格昂贵10W起步

如果财大气粗可以直接购买vos,下面主要介绍FreeSwitch和通信猫

2.1 用FreeSwitch实现服务端

下面的步骤假定你已搭建完FreeSwitch并实现可以用客户端软件(eyeBeam、MicroSIP、linphone.....)通信。

  1. 安装证书 如果有域名建议直接在https://freessl.cn/ 申请一个免费证书,如果没有域名直接跳过此步骤,区别是没有证书只能使用ws协议而不能使用wss协议,且使用ws协议时需要对浏览器进行设置,如果你只是用于测试区别不大,如果想用到生产环境还是最好使用wss。 以nginx类型证书为例,先合并证书
cat xxx.pem xxx.key > wss.pem

然后将合并过的证书上传到 /usr/local/freeswitch/certs 2. 修改配置 在 /usr/local/freeswitch/conf/sip_profiles/internal.xml 确定这两行代码没有被注释掉

<param name="ws-binding"  value=":5066"/>
<param name="wss-binding" value=":7443"/>

第一行代码表示支持ws协议,使用5066端口;第二行代码表示支持wss协议,使用7443端口 还是在该文件中添加这两行代码

<param name="apply-candidate-acl" value="rfc1918.auto"/>
<param name="apply-candidate-acl" value="wan.auto"/> 

用户处理NAT相关问题 至此用FreeSwitch实现服务端已经完成.

2.2 用通信猫实现服务端

用通信猫实现服务端非常简单,在https://www.tongxinmao.net注册账户。 在下面这个位置可以看到wss地址信息 通信猫wss地址信息

至此用通信猫实现服务端已经完成.

3 实现客户端

客户端实现方式网上是五花八门,真正可以直接使用的非常少,sip.js是实现客户端最多的一种,笔者已经用sip.js搭建好客户端,你只需要填写wss或ws地址、话机、话机密码即可使用 打开https://webrtctest.tongxinmao.net/ 网址如下图所示 webrtc界面

3.1 话机和话机密码获取方式

  1. 如果你是用FreeSwitch搭建的后端在/usr/local/freeswitch/conf/directory/default 可以看到用户信息,安装完FreeSwitch会初始化1000~1019这20个用户,密码是1234
  2. 如果你是用通信猫实现的后端,你用下面方式创建两个用户即可 网关管理->话机管理 点击新增 话机注册 选择客户 输入电话号码1001 输入密码 然后点击确定, 然后再用同样的方式创建坐席1002

3.2 协议和端口选择

有证书或用通信猫搭建的后端, 协议选择wss, 端口用7443 没有证书 协议选择ws,端口用5066,并且需要对浏览器进行配置(火狐在地址栏输入 about:config,将network.websocket.allowInsecureFromHTTPS改为false,谷歌好像没有类似选项)

至此就可以webrtc前后端均已实现

4 相关源码

前端源码地址在https://gitee.com/ydy123/webrtc-webphone

5 帮助或交流

如果需要帮助或交流欢迎扫码联系我

企业微信

Last Updated:
Contributors: YuDongying