基于声网的音视频SDK和FreeSWITCH开发WebRTC2SIP Gateway 报文设计 (二)

简介: 基于声网的音视频SDK和FreeSWITCH开发WebRTC2SIP Gateway 报文设计

上一篇我们提到,常用的SIP 信令有:1注册、2振铃、3呼叫、4接听、5挂断、6取消
有了这几个报文,电话的呼入和呼出就可以基本实现,其他拒接、DTMF等类似。
如图所示:
基于2_code.png

约定:

1、 客户端和服务器端JSON格式交互;

  • 必传参数:

    • msgtag 是消息唯一标志,
    • userid是谁触发的,
    • appid 作为一个应用的标记。
    • sign 签名加密 (看情况)

2、 服务器返回的报文必须包括msgtag appiderrcode

  • errcode=1 说明有错误 errmsg就会有值 ;
  • 如果errcode=0 说明返回结果正确;
  • 一般是返回的msgtag 是请求的msgtag+”_res”做为区分

3、 roomID 是房间号对应声网的渠道号,每个通话报文必须包括roomID 用途是什么自己想。
4、 callType 是video audio 前者代表视频呼叫,后者代表语音呼叫
5、 direction 呼叫方向

  • in 呼入 (SIP Server 把呼叫送到声网的SDK)
  • out 呼出(SDK把呼叫送到SIP Server)

6、 isSIP yes no 代表这通呼叫是内部呼叫(声网客户端实现) 还是SIP呼叫(走落地)

这篇文章我只是简单列出核心的报文DEMO格式。

信令1:注册报文:

基于2_信令1_q.png

响应报文:

基于2_信令1_p.png

信令2:呼叫报文:

基于2_信令2_q.png

响应报文:
基于2_信令2_p.png

信令3:振铃报文:

基于2_信令3_q.png

响应报文:

基于2_信令3_p.png

信令4:接听报文:

基于2_信令4_q.png

响应报文:
基于2_信令4_p.png

信令5:挂断报文:

基于2_信令5_q.png

响应报文:
基于2_信令5_p.png

信令6:取消报文:

基于2_信令6_q.png

响应报文:
基于2_信令6_p.png

如图上面设计的报文非常简单,相信大家都看得明白。不需要过多言语说明,供大家参考吧。
不论客户端还是WebRTC2SIP connector 本质上都是声网的音视频SDK客户端,然后集成了自定义的报文,所以他们初始化的时候,需要调用一个专门的的接口暂时叫做initSIP,调用这个接口的时候传递type 类型参数;如果是手机端或者电脑端、网页端调用,返回TCP Server地址和端口,供他们建立连接; 如果是connector转接服务器请求的话,除了返回TCP Server 地址和端口外,还要返回SIP Server地址及端口,以及呼叫送号前缀。不然SDK发起电话呼叫的时候,connector 不知道电话要转送到哪里。这个开发一个http接口就可以实现。

APP初始化,调用initSIP接口,建立TCP连接,或者呼叫的时候在建立TCP连接;

TCP Server维持所有终端的状态及网络位置做Session Manager 角色

主叫输入的号码编辑封装calling报文,通过tcp socket 发给服务器,同时UI呈现拨号等待页面;

被叫收到calling报文,就封装ringing报文,通过tcp socket 发给服务器,服务器查询Session Manager 查询主被叫的IP和端口,实现消息的路由转发,主叫收到就显示振铃页面,同时 WebRTC2SIP connector 启动media coder线程去解析和resample 读取到的音频流。就这样一个个的报文交互串起来,就可以实现整个SIP呼叫逻辑。

有兴趣的同学,快去试试吧。

相关文章
|
编解码 视频直播 开发工具
|
3月前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
509 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
3月前
|
人工智能 负载均衡 API
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
大家好,我是Immerse,独立开发者、AGI实践者。分享编程、AI干货、开源项目与个人思考。关注公众号“沉浸式趣谈”,获取独家内容。Vercel新推出的AI Gateway,统一多模型API,支持自动切换、负载均衡与零加价调用,让AI开发更高效稳定。一行代码切换模型,告别接口烦恼!
329 1
Vercel 发布 AI Gateway 神器!可一键访问数百个模型,助力零门槛开发 AI 应用
|
10月前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
613 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
7月前
|
人工智能 自然语言处理 开发工具
HarmonyOS NEXT~鸿蒙开发能力:HarmonyOS SDK AI 全解析
本文深入解析HarmonyOS SDK中的AI功能集,涵盖分布式AI引擎、核心组件(NLP、计算机视觉等)及智能决策能力。通过代码示例与开发实践指南,帮助开发者掌握环境配置、性能调优及多场景应用(智能家居、移动办公等)。同时探讨性能优化策略与未来演进方向,助力构建高效分布式智能应用。
710 9
|
9月前
|
存储 开发工具 开发者
揭秘 Microsoft.Docker.SDK:让容器开发更轻松的强大工具揭秘
随着云计算和容器技术的快速发展,`Docker` 已经成为容器化技术的事实标准。`Microsoft` 作为 `Docker` 的主要支持者和参与者,推出了 `Microsoft.Docker.SDK`,旨在帮助开发者更轻松地进行容器开发。本文将深入揭秘 Microsoft.Docker.SDK 的功能、使用方法以及它在容器开发中的应用。
244 13
|
10月前
|
前端开发 JavaScript 开发工具
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
601 5
【04】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-正确安装鸿蒙SDK-结构目录介绍-路由介绍-帧动画(ohos.animator)书写介绍-能够正常使用依赖库等-ArkUI基础组件介绍-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
|
10月前
|
前端开发 Java Shell
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
634 20
【08】flutter完成屏幕适配-重建Android,增加GetX路由,屏幕适配,基础导航栏-多版本SDK以及gradle造成的关于fvm的使用(flutter version manage)-卓伊凡换人优雅草Alex-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
11月前
|
API 开发工具 Android开发
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
399 23
【01】完整开发即构美颜sdk的uni官方uts插件—让所有开发者可以直接使用即构美颜sdk的能力-优雅草卓伊凡
|
10月前
|
JavaScript 编译器 开发工具
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡
510 2
【02】鸿蒙实战应用开发-华为鸿蒙纯血操作系统Harmony OS NEXT-项目开发实战-准备工具安装-编译器DevEco Studio安装-arkts编程语言认识-编译器devco-鸿蒙SDK安装-模拟器环境调试-hyper虚拟化开启-全过程实战项目分享-从零开发到上线-优雅草卓伊凡