"userVariables" : { } , "passwd" : "1234" , "sessid" : "53FB0781-B586-4CDA-98C6-558680663B46"

登录信令响应

"jsonrpc" : "2.0" , "id" : 1 , "result" : { "message" : "logged in" , "sessid" : "53FB0781-B586-4CDA-98C6-558680663B46"

发起呼叫信令

"jsonrpc" : "2.0" , "method" : "verto.invite" , "id" : 2 , "params" : { "dialogParams" : { "remote_caller_id_number" : "1008" , "useVideo" : false , "useMic" : "any" , "useStereo" : false , "tag" : "webcam" , "login" : "1000@159.203.164.7" , "useCamera" : "any" , "videoParams" : { "minFrameRate" : 30 , "minWidth" : "1280" , "minHeight" : "720" "destination_number" : "1008" , "screenShare" : false , "caller_id_name" : "FreeSWITCH User" , "caller_id_number" : "1000" , "callID" : "0CD433FC-A909-4DF2-BC46-0A4A94E9B800" , "remote_caller_id_name" : "Outbound Call" , "useSpeak" : "any" "sessid" : "53FB0781-B586-4CDA-98C6-558680663B46" , "sdp" : "v = 0 \r\n o = - 8564086442942257834 2 IN IP4 127.0 .0 .1 \r\n s = - \r\n t = 0 0 \r\n a = group : BUNDLE audio video\r\n a = msid - semantic : WMS \r\n m = audio 58157 UDP \ / TLS \ / RTP \ / SAVPF 111 103 104 9 102 0 8 106 105 13 127 126 \r\n c = IN IP4 82.166 .93 .197 \r\n a = rtcp : 52576 IN IP4 82.166 .93 .197 \r\n a = candidate : 3168280865 1 udp 2122260223 11.0 .0 .244 58157 typ host generation 0 \r\n a = candidate : 1260196625 1 udp 2122194687 10.134 .172 .254 58951 typ host generation 0 \r\n a = candidate : 3168280865 2 udp 2122260222 11.0 .0 .244 52576 typ host generation 0 \r\n a = candidate : 1260196625 2 udp 2122194686 10.134 .172 .254 58945 typ host generation 0 \r\n a = candidate : 4066106833 1 tcp 1518280447 11.0 .0 .244 60562 typ host tcptype passive generation 0 \r\n a = candidate : 94302177 1 tcp 1518214911 10.134 .172 .254 60563 typ host tcptype passive generation 0 \r\n a = candidate : 4066106833 2 tcp 1518280446 11.0 .0 .244 60564 typ host tcptype passive generation 0 \r\n a = candidate : 94302177 2 tcp 1518214910 10.134 .172 .254 60565 typ host tcptype passive generation 0 \r\n a = candidate : 1610196941 1 udp 1686052607 82.166 .93 .197 58157 typ srflx raddr 11.0 .0 .244 rport 58157 generation 0 \r\n a = candidate : 1610196941 2 udp 1686052606 82.166 .93 .197 52576 typ srflx raddr 11.0 .0 .244 rport 52576 generation 0 \r\n a = candidate : 2274372738 2 udp 1685987070 176.13 .15 .205 5834 typ srflx raddr 10.134 .172 .254 rport 58945 generation 0 \r\n a = candidate : 2274372738 1 udp 1685987071 176.13 .15 .205 5840 typ srflx raddr 10.134 .172 .254 rport 58951 generation 0 \r\n a = ice - ufrag : g8lHDtPwH7m5xRex\r\n a = ice - pwd : Q6jcBJNTWAyu0JTuIaQAeNI3\r\n a = fingerprint : sha - 256 0 F : A1 : 68 : 51 : 87 : 3 E : B4 : C1 : 0 D : 33 : 97 : 40 : 78 : 22 : 2 A : 8 C : D2 : B6 : 46 : 23 : F5 : 99 : C9 : 88 : 5 D : 34 : DB : E2 : C5 : 94 : B3 : DD \r\n a = setup : actpass\r\n a = mid : audio\r\n a = extmap : 1 urn : ietf : params : rtp - hdrext : ssrc - audio - level\r\n a = extmap : 3 http : \ / \ / www . webrtc . org\ / experiments\ / rtp - hdrext\ / abs - send - time\r\n a = recvonly\r\n a = rtcp - mux\r\n a = rtpmap : 111 opus\ / 48000 \ / 2 \r\n a = fmtp : 111 minptime = 10 ; useinbandfec = 1 \r\n a = rtpmap : 103 ISAC \ / 16000 \r\n a = rtpmap : 104 ISAC \ / 32000 \r\n a = rtpmap : 9 G722 \ / 8000 \r\n a = rtpmap : 102 ILBC \ / 8000 \r\n a = rtpmap : 0 PCMU \ / 8000 \r\n a = rtpmap : 8 PCMA \ / 8000 \r\n a = rtpmap : 106 CN \ / 32000 \r\n a = rtpmap : 105 CN \ / 16000 \r\n a = rtpmap : 13 CN \ / 8000 \r\n a = rtpmap : 127 red\ / 8000 \r\n a = rtpmap : 126 telephone - event\ / 8000 \r\n a = maxptime : 60 \r\n m = video 61966 UDP \ / TLS \ / RTP \ / SAVPF 100 101 116 117 96 \r\n c = IN IP4 82.166 .93 .197 \r\n a = rtcp : 63816 IN IP4 82.166 .93 .197 \r\n a = candidate : 3168280865 1 udp 2122260223 11.0 .0 .244 61966 typ host generation 0 \r\n a = candidate : 1260196625 1 udp 2122194687 10.134 .172 .254 50435 typ host generation 0 \r\n a = candidate : 3168280865 2 udp 2122260222 11.0 .0 .244 63816 typ host generation 0 \r\n a = candidate : 1260196625 2 udp 2122194686 10.134 .172 .254 63396 typ host generation 0 \r\n a = candidate : 4066106833 1 tcp 1518280447 11.0 .0 .244 60566 typ host tcptype passive generation 0 \r\n a = candidate : 94302177 1 tcp 1518214911 10.134 .172 .254 60567 typ host tcptype passive generation 0 \r\n a = candidate : 4066106833 2 tcp 1518280446 11.0 .0 .244 60568 typ host tcptype passive generation 0 \r\n a = candidate : 94302177 2 tcp 1518214910 10.134 .172 .254 60569 typ host tcptype passive generation 0 \r\n a = candidate : 1610196941 1 udp 1686052607 82.166 .93 .197 61966 typ srflx raddr 11.0 .0 .244 rport 61966 generation 0 \r\n a = candidate : 1610196941 2 udp 1686052606 82.166 .93 .197 63816 typ srflx raddr 11.0 .0 .244 rport 63816 generation 0 \r\n a = candidate : 2274372738 1 udp 1685987071 176.13 .15 .205 5879 typ srflx raddr 10.134 .172 .254 rport 50435 generation 0 \r\n a = candidate : 2274372738 2 udp 1685987070 176.13 .15 .205 5860 typ srflx raddr 10.134 .172 .254 rport 63396 generation 0 \r\n a = ice - ufrag : g8lHDtPwH7m5xRex\r\n a = ice - pwd : Q6jcBJNTWAyu0JTuIaQAeNI3\r\n a = fingerprint : sha - 256 0 F : A1 : 68 : 51 : 87 : 3 E : B4 : C1 : 0 D : 33 : 97 : 40 : 78 : 22 : 2 A : 8 C : D2 : B6 : 46 : 23 : F5 : 99 : C9 : 88 : 5 D : 34 : DB : E2 : C5 : 94 : B3 : DD \r\n a = setup : actpass\r\n a = mid : video\r\n a = extmap : 2 urn : ietf : params : rtp - hdrext : toffset\r\n a = extmap : 3 http : \ / \ / www . webrtc . org\ / experiments\ / rtp - hdrext\ / abs - send - time\r\n a = extmap : 4 urn : 3 gpp : video - orientation\r\n a = recvonly\r\n a = rtcp - mux\r\n a = rtpmap : 100 VP8 \ / 90000 \r\n a = rtcp - fb : 100 ccm fir\r\n a = rtcp - fb : 100 nack\r\n a = rtcp - fb : 100 nack pli\r\n a = rtcp - fb : 100 goog - remb\r\n a = rtcp - fb : 100 transport - cc\r\n a = rtpmap : 101 VP9 \ / 90000 \r\n a = rtcp - fb : 101 ccm fir\r\n a = rtcp - fb : 101 nack\r\n a = rtcp - fb : 101 nack pli\r\n a = rtcp - fb : 101 goog - remb\r\n a = rtcp - fb : 101 transport - cc\r\n a = rtpmap : 116 red\ / 90000 \r\n a = rtpmap : 117 ulpfec\ / 90000 \r\n a = rtpmap : 96 rtx\ / 90000 \r\n a = fmtp : 96 apt = 100 \r\n

发起呼叫信令响应

"jsonrpc" : "2.0" , "id" : 2 , "result" : { "message" : "CALL CREATED" , "callID" : "0CD433FC-A909-4DF2-BC46-0A4A94E9B800" , "sessid" : "53FB0781-B586-4CDA-98C6-558680663B46"

会议被邀请信令

"jsonrpc" : "2.0" , "method" : "verto.media" , "id" : 637 , "params" : { "sdp" : "v = 0 \n o = FreeSWITCH 1457232832 1457232833 IN IP4 159.203 .164 .7 \n s = FreeSWITCH\n c = IN IP4 159.203 .164 .7 \n t = 0 0 \n a = msid - semantic : WMS TcxpBqoS0j04fOIzkIArKYrlV7LCs9Ub\n m = audio 30784 UDP / TLS / RTP / SAVPF 111 126 \n a = rtpmap : 111 opus / 48000 / 2 \n a = fmtp : 111 useinbandfec = 1 ; minptime = 10 \n a = rtpmap : 126 telephone - event / 8000 \n a = silenceSupp : off - - - - \n a = ptime : 20 \n a = sendonly\n a = fingerprint : sha - 256 FE : CD : 54 : 3 E : 2 A : D7 : DB : 00 : 57 : B7 : D4 : 55 : A8 : EB : 79 : 08 : 16 : BB : B0 : EA : 43 : 44 : 42 : 9 A : 90 : 01 : 49 : 37 : 7 B : 31 : 48 : F8 \n a = setup : active\n a = rtcp - mux\n a = rtcp : 30784 IN IP4 159.203 .164 .7 \n a = ice - ufrag : qLh1zzclxONPNyQO\n a = ice - pwd : G7g4Drkist37beYsP5jfvlqS\n a = candidate : 9922185636 1 udp 659136 159.203 .164 .7 30784 typ host generation 0 \n a = ssrc : 1323504502 cname : bhqCyFkpPbjUPSk0\n a = ssrc : 1323504502 msid : TcxpBqoS0j04fOIzkIArKYrlV7LCs9Ub a0\n a = ssrc : 1323504502 mslabel : TcxpBqoS0j04fOIzkIArKYrlV7LCs9Ub\n a = ssrc : 1323504502 label : TcxpBqoS0j04fOIzkIArKYrlV7LCs9Uba0\n m = video 31380 UDP / TLS / RTP / SAVPF 100 \n a = rtpmap : 100 VP8 / 90000 \n a = sendonly\n a = fingerprint : sha - 256 FE : CD : 54 : 3 E : 2 A : D7 : DB : 00 : 57 : B7 : D4 : 55 : A8 : EB : 79 : 08 : 16 : BB : B0 : EA : 43 : 44 : 42 : 9 A : 90 : 01 : 49 : 37 : 7 B : 31 : 48 : F8 \n a = setup : active\n a = rtcp - mux\n a = rtcp : 31380 IN IP4 159.203 .164 .7 \n b = AS : 1024 \n a = rtcp - fb : 100 ccm fir\n a = rtcp - fb : 100 nack\n a = rtcp - fb : 100 nack pli\n a = ssrc : 594893571 cname : bhqCyFkpPbjUPSk0\n a = ssrc : 594893571 msid : TcxpBqoS0j04fOIzkIArKYrlV7LCs9Ub v0\n a = ssrc : 594893571 mslabel : TcxpBqoS0j04fOIzkIArKYrlV7LCs9Ub\n a = ssrc : 594893571 label : TcxpBqoS0j04fOIzkIArKYrlV7LCs9Ubv0\n a = ice - ufrag : 2 KDK4wDMYuAuVdAZ\n a = ice - pwd : YTpxObqpLuBEfig7TKHN6bqU\n a = candidate : 7508673635 1 udp 659136 159.203 .164 .7 31380 typ host generation 0 \n "callID" : "0CD433FC-A909-4DF2-BC46-0A4A94E9B800"

会议被邀请信令响应

"jsonrpc" : "2.0" , "method" : "verto.answer" , "id" : 638 , "params" : { "callID" : "0CD433FC-A909-4DF2-BC46-0A4A94E9B800" Cordova + PhoneRTC插件+ FreeSwitch WebRTC Verto 概念验证 $ cordova插件添加org.apache.cordova.console $ cordova插件添加 $ cordova插件添加 (可选) $ cordova平台添加andro id $ cordova平台添加浏览器 $科尔多瓦建立Andro id 配置CLICK2CALL示例 编辑index.html并更改值输入 <input id ="click2call_user" value="user"> <input id ="click2call_domain" value="mydomian.com"> <input id ="click2call_password" value="password"> <input id ="click2call mod _ verto -br id ge扩展 这是 ( ) 端点的扩展。 这用作在Web应用程序中使用 mod _ verto 的API。 SIP.js的替代品。 此扩展名是 Verto 演示代码的修改版本,该代码将在用于与 FreeSWITCH 进行通信。 入口点是callIntoConference()。 接收语音桥接号码,语音会议的用户名,会议中的用户 ID 和可选的回叫。 应该放在的 verto v id eo_demo目录中。 使用./deploy.sh安装。 ###扩展( verto _extension.js) 需要将该文件添加到index.html JavaScript导入中。 该文件提供了自己的函数,函数和数据,这些函数和数据替代了 verto .js中的代码,从而使该文件一旦添加即可独立运行,而无需处理多个文件。 覆盖 verto .js中定义的“回调”对象。 覆盖 verto 挂断处理程序。 verto js Verto (VER-to)RTC是一个 FreeSWITCH 端点,该端点实现了 JSON-RPC 连接的子集,该子集旨在用于安全Web套接字。 最初的目标是WebRTC,以简化编码和实现从Web浏览器和设备到 FreeSWITCH 的调用。 这允许Web浏览器或其他WebRTC客户端使用 Verto 发起到 FreeSWITCH 安装的呼叫,然后使用SIP,SS7或其他受支持的协议拨出到PSTN。 这是一个零依赖的实现,不需要像原来的那样包含jquery。 它内部不包含任何html内容,也不包含媒体处理程序。 您应该注意自己获取媒体轨道(我认为最好不要隐藏您的有用功能,浏览器提供了一个很好的API来处理媒体) 这是一个进行中的代码。 但是,它足够稳定,可以使用基本功能(调用)。 我相信并且希望源代码比我的英文更好:-) 包目录内容 / dist-包含将 Verto 符号导出到全 FreeSWITCH 提供了一个xml_ rpc 组件,支持用Web的方式管理 FreeSWITCH 。但是功能相当有限。因此我在这里做了一点小的扩展,允许执行CLI命令行,并且获得结果。 需要把文件解压缩、覆盖htdocs下的portal目录。 需要 FreeSWITCH 已经加载 mod _xml_ rpc 然后就可以通过http://:8080/portal打开管理页面。 建议通过官方文档了解 mod _xml_ rpc 的配置方法。 mod _ verto freeswitch 中有 mod _sofia模块支持sip协议。sip协议用于媒体链接建立前的 信令 交互。像 mod _sofia这种模块在 freeswitch 中成为endpoint,除了 mod _sofia, freeswitch 还有一个 mod _ verto 模块。 mod _ verto 使用 freeswitch 自定义的一个协议,通过websocket进行 信令 交互。 verto 协议基于 json R 我们在web客户端使用sip协议时用的比较多的是sipml5库和jssip库。 但是sip协议比较重,又复杂,所以 freeswitch 内部就自定义了一个 verto 协议,方便在web页面上使用音视频服务。 verto 协议通过websocket传输 信令 ,协议内部数据 格式 json ,这样比较符合互联网开发人员的习惯,同时比sip协议更加轻量化。 freeswitch 有一个endpoint模块叫做 mod _ verto ,是用来作为服务端的协议适配器。 freeswitch 的源码中有几个支持ve... 在Ubuntu(虚拟机)上多次使用源码方式安装 freeSwitch 软件,由于 freeSwitch 在编译中依赖很多软件和工具,再加上系统版本和软件源的原因,每一次安装都遇到很多问题,花费大量时间排查,因此,本文记录一下安装过程和一些问题的解决方法。下载编译安装: https://github.com/signalwire/signalwire-c.git。方法一:下载安装 https://github.com/signalwire/libks.git。步骤1: sudo ./bootstrap.sh。 freeswitch mod _ verto 提供了一个基于webrtc的js模块,该模块可以通过网页拨打电话、开视频会议等 环境: 基于阿里云debian8 安装 该模块需要https 最好是基于外网服务器安装 体验地址在http://blog.csdn.net/java_lilin/article/details/78391819有提到 2.由于要视频所以要编译源码的 mod ... 外呼业务流程:软电话 → callcenter → gateway → 迅时语音网关 → 联通运营商→ 用户手机呼入业务流程:用户手机→ 联通运营商 → 迅时语音网关 → gateway → callcenter → IVR|分机号|技能组 → 软电话gateway网关 外呼对接 迅时语音网关配置。 我们利用三台机器进行了fs-mrcp-opensips 的HP方案部署,其中opensips负责任务分发在一台机器, 两台的fs-mrcp机器,每台安装fs +mrcp,本安装两个fs并没有公用数据库,大家也可以参考相关的文档进行相关的配置. 具体的安装流程如下: 1,前期的安装准备,主要是需要安装mysql 1) dependency yum -y install gcc make fl... 有时候,我们需要在呼叫的过程中,或过程后调用web api接口。 freeswitch mod _curl模块可以很方便的实现web api的接口调用。 mod _curl模块默认不安装,需要进入模块目录自行编译安装,并配置 mod ules.conf.xml文件在fs启动时加载模块。centos:CentOS 7 freeswitch :v1.10.7GCC:4.8.5api接口 格式 。curl url [headers| json |content-type