开源, 轻松实现 RTC 与 SIP 互通

用户头像
anyRTC开发者
关注
发布于: 2020 年 08 月 20 日
开源,轻松实现RTC与SIP互通

RTC与SIP互通所涉及的问题

要想让RTC与SIP互通,要解决两个层面的问题:信令层和媒体层。

两个网络使用的信令机制不同,所以要进行信令的转换,才能完成媒体的协商,建立会话。媒体层要完成编码的转换,以及rtp/srtp转换等功能。



优质通信三要素

  • 信令层的协商:稳定的信令是实现RTC与SIP互通的基础,保达、异常处理、断线重连等机制。

  • SIP协议与RTC协议互转的处理:上述已经探讨了,RTC与SIP互通需要媒体层协议的转换。

  • 加速线路:媒体在服务间的中转,丢包以及延迟的处理。就近接入、节点选择等。

ARCall-RTC与SIP互通解决方案

为何制定RTC与SIP互通的开源方案

RTC与SIP互通是基于市场的呼叫中心解决方案的需求,随着RTC技术的广泛应用,各个环节的应用需求层出不穷,传统的SIP呼叫中心也需要升级技术方案,我们在给贝壳找房,浙江省公安厅等大型企业提供技术方案后进行项目分析发现:我们在提供服务时客户更关注的是自己的业务流程,如何让客户快速的集成,以及集成后灵活的改造方案来应对多变的需求,是项目能够顺利快速推进的重要因素。



anyRTC全球超过200数据中心,覆盖200+国家和地区,国内线路涵盖华东、华南、华北、西南、东北、西北、香港、台湾。客户就近接入、根据智能算法,给出最优路径。



开源说明

开源代码地址



开源的RTC和SIP互通的网关代码,其中使用了三大模块:RTC,RTM,SIP,相关的模块以库的形式提供,支持Linux和Windows平台。



开源的网关代码支持与ArCall开源项目互通,支持呼叫流程制定和修改。



开源的网关支持三种模式:



  • IVR呼叫中心模块



适用于呼叫中心,手机/网页/小程序客户端呼入IVR,通过语音导航实现相应的业务流程。



  • SIP主动呼RTC模块



适用于客户坐席主动呼叫消费者,支持SIP呼叫客户端,支持SIP直呼手机号等。



  • RTC直呼SIP座机



适用于企业内外网互通,通过APP客户端直接呼叫员工或指定坐席的工位座机。



呼叫流程

这里用到了anyRTC的实时消息SDK,请查看详细API说明

项目地址



1,状态流转图

呼叫邀请中,主叫可以通过 LocalInvitation 对象提供的 getState 方法查询当前呼叫邀请的有关状态;被叫可以通过 SDK 返回的 RemoteInvitation对象的 getState方法查询当前呼叫邀请的相关状态。



LocalInvitationState



下图描述了与主叫相关的呼叫邀请状态流转图:



RemoteInvitationState



下图描述了与被叫相关的呼叫邀请状态流转图:



2,API 时序图

取消已发送呼叫邀请



接受/拒绝呼叫邀请



注意事项及限制条件



  • 主叫设置的呼叫邀请 content 的字符串长度:8 KB,格式为 UTF-8。

  • 被叫设置的呼叫邀请响应 response 的字符串长度:8 KB,格式为 UTF-8。

  • 呼叫邀请的 channel ID 仅用于与老信令互通时设置。设置的 channel ID 必须与老信令 SDK 设置相同才能实现互通。字符串长度:64 字节,格式为 UTF-8。

结语

SIP与RTC互通,我们完成了一整套的呼叫,通信流程,以及异常处理。更多场景玩法等待您去挖掘~



联系我们

联系电话:021-65650071



QQ咨询群:580477436



ArCall技术交流群:597181019



咨询邮箱:hi@dync.cc



技术问题:开发者论坛



获取更多帮助前往:www.anyrtc.io



用户头像

anyRTC开发者

关注

实时交互,万物互联! 2020.08.10 加入

实时交互,万物互联,全球实时互动云服务商领跑者!

评论

发布
暂无评论
开源,轻松实现RTC与SIP互通