CN113114702A - 一种IOS端基于SIP协议交互的WebRTC通信方法和系统 - Google Patents
一种IOS端基于SIP协议交互的WebRTC通信方法和系统 Download PDFInfo
- Publication number
- CN113114702A CN113114702A CN202110523620.3A CN202110523620A CN113114702A CN 113114702 A CN113114702 A CN 113114702A CN 202110523620 A CN202110523620 A CN 202110523620A CN 113114702 A CN113114702 A CN 113114702A
- Authority
- CN
- China
- Prior art keywords
- information
- webrtc
- client
- request
- webrtc gateway
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种IOS端基于SIP协议交互的WebRTC通信方法和系统,在客户端设置软件开发工具包SDK,SDK具有基于SIP协议交互信息处理、与现有SIP联络中心交互功能,向Stun服务端发送请求,从Stun服务端获取公网IP地址;基于公网IP生成客户端会话描述协议,向WebRTC网关发送通信邀请请求,通信邀请请求信息中包括客户端会话描述协议;接收WebRTC网关返回的代理身份验证信息,生成鉴权码后发送给WebRTC网关,接收WebRTC网关的鉴权结果,在鉴权成功后,建立与WebRTC网关的实时媒体流交互,在交互结束时,发送结束请求给WebRTC网关,在接收到WebRTC网关的停止信息后,结束媒体流交互。本申请将客户端与WebRTC网关交互通过SIP协议交互连接起来,实现IOS端基于SIP协议交互的WebRTC通信,节约通讯成本。
Description
技术领域
本发明涉及网络通信技术领域,尤其是涉及一种IOS端基于SIP协议交互的WebRTC通信方法和系统。
背景技术
WebRTC (Web Real-Time Communication 基于Web的实时通讯)技术的发展使浏览器,移动端更方便集成语音、视频通讯能力。随着GIPS(Global IP Solutions)公司对语音视频的技术研究的开源,降低了语音视频通讯技术壁垒,同时随着网络质量的提升、带宽的增加以及流量的降价,使得基于WebRTC技术的通讯应用越来越广泛。
传统的语音通讯能力大部分通过手机、固话等PSTN( Public SwitchedTelephone Network 公共交换电话网络 ) 设备,通过运营商语音网络来和企业进行交互,此方法通讯费用较高,同时能承载的数据有限,无法携带随路数据。
IOS系统,是苹果公司为其移动设备所开发的专有移动操作系统,SIP(SessionInitiationProtocol,会话发起协议)是国际认可的标准,现在的IOS端的WebRTC应用的信令交互协议一般都是私有协议,而私有协议无法与现在主流的语音交换机交互,而企业联络中心一般都是通过SIP协议作为通信信令协议。
因此,如何将移动通讯系统IOS与SIP结合起来,兼容主流交换机,实现语音与视频通信,是目前亟待解决的问题。
发明内容
本发明的目的是提供一种IOS端基于SIP协议交互的WebRTC通信方法和系统,在客户端设置软件开发工具包SDK(Software Development Kit),SDK具有基于SIP协议交互信息处理、与现有SIP联络中心交互功能,一方面与客户端进行交互,另一方面与WebRTC网关交互,将客户端与WebRTC网关交互通过SIP协议交互连接起来,实现IOS端基于SIP协议交互的WebRTC通信,节约通讯成本。
第一方面,本发明的上述发明目的通过以下技术方案得以实现:
一种IOS端基于SIP协议交互的WebRTC通信方法,客户端向Stun服务端发送请求,从Stun服务端获取公网IP地址;基于公网IP生成客户端会话描述协议,向WebRTC网关发送通信邀请请求,通信邀请请求信息中包括客户端会话描述协议;接收WebRTC网关返回的代理身份验证信息,生成鉴权码后发送给WebRTC网关,接收WebRTC网关的鉴权结果,在鉴权成功后,建立与WebRTC网关的实时媒体流交互,在交互结束时,发送结束请求给WebRTC网关,在接收到WebRTC网关的确认结束请求后,结束媒体流交互。
本发明进一步设置为:客户端的工作包括以下步骤:
S1、调用谷歌native webrtc库中stun请求方法,发送绑定IP请求给stun服务端;
S2、接收stun服务端返回的对外公网IP列表;
S3、根据收到的公网IP列表、客户端本地内部IP、语音编码方式、视频编码方式生成客户端会话描述协议内容;
S4、将客户端会话描述协议内容添加到通信邀请请求中,形成第一通信邀请信息,发送给WebRTC网关;
S5、接收WebRTC网关返回的确认收到请求信息、代理身份验证信息;
S6、基于身体验证信息生成鉴权码,将鉴权码添加到通信邀请请求中,形成第二通信邀请信息,发送给WebRTC网关;
S7、接收WebRTC网关返回的鉴权结果信息,在鉴权成功时,接收WebRTC网关的前媒体响应信息,呼叫接通中;
S8、呼叫接通后,接收WebRTC网关返回的用户已经接通信息、WebRTC网关会话描述协议信息,包括WebRTC网关公网IP列表;
S9、调用谷歌native webrtc库,创建对等连接,调用添加流操作,将获取到的媒体流加载到对等连接上,进行媒体流传输;
S10、在客户端需要挂断时,向WebRTC网关发送结束请求;
S11、接收WebRTC网关发送的确认结束请求信息后,停止向WebRTC网关发送消息;
S12、移除添加的媒体流;
S13、结束。
本发明进一步设置为:获取对外公网IP,包括以下步骤:
A1、获取本地所有网卡的IP地址,将其加入到本地候选者IP列表中;
A2、是否配置stun服务端地址,若是,进入下一步,若否,转A7;
A3、发送获取公网IP地址列表请求给stun服务端;
A4、接收stun服务端返回的公网地址列表;
A5、判断公网地址列表是否为空,若否,进入下一步,若是,转A7;
A6、 将获取的公网IP地址和通讯端口添加到本地候选者IP列表中;
A7、以支持的协议类型与支持的地址类型,过滤本地候选者IP列表,得到符合条件的本地最终候选者IP列表。
本发明进一步设置为:身份验证时,需要输入密钥信息进行校验;媒体流采用RTP协议传输,在加密情况下,采用SRTP协议传输;结束请求中包括呼叫ID;在呼叫过程中,客户端定期向STUN服务器发送绑定请求,维护端口处于开启状态。
本发明进一步设置为:建立对等连接,包括以下步骤:
B1、客户端接收到WebRTC网关发送的已经接通信息后,解析已经接通信息,得到WebRTC网关语音编码信息、视频编码信息和WebRTC网关候选者IP信息;
B2、判断WebRTC网关编码信息是否与客户端的编码信息匹配,
若是,进入下一步,若否,发送编码协商失败响应给WebRTC网关;
B3、选取WebRTC网关候选者IP中网络开销最小的IP地地址和端口,作为选定IP和端口,发送建立媒体传输通道请求给WebRTC网关;
B4、接收到WebRTC网关返回的选定IP和端口可达信息后,将语音流和视频流转化为二进制流,通过RTP协议或SRTP协议,发送到选定IP和端口;
B5、监听客户端本地相应端口,将接收到的二进制流数据解析为语音流或视频流,展现给用户。
第二方面,本发明的上述发明目的通过以下技术方案得以实现:
一种IOS端基于SIP协议交互的WebRTC通信方法, Stun服务端,在接收到客户端的绑定IP请求信息后,查询服务端候选地址和端口列表,选择开销最小的IP网络,作为公网IP返回给客户端。
第三方面,本发明的上述发明目的通过以下技术方案得以实现:
一种IOS端基于SIP协议交互的WebRTC通信方法, WebRTC网关接收到客户端的第一通信邀请信息后,回复收到请求信息,解析第一通信邀请信息,返回鉴权参数和代理身份验证信息给客户端;接收客户端的第二通信邀请信息,进行鉴权,鉴权成功后,解析第二通信邀请信息,获取编码要求和候选者地址信息;呼叫接通后,发送用户已经接通信息给客户端;接收到客户端的结束请求信息后,发送确认结束请求给客户端,停止媒体流发送,关闭端口监听。
本发明进一步设置为:WebRTC网关的工作包括以下步骤:
C1、接收到客户端的第一通信邀请信息后,回复收到请求信息给客户端;
C2、解析第一通信邀请信息,获得鉴权参数,发送代理身份验证信息给客户端;
C3、接收客户端的第二通信邀请信息,进行鉴权操作;
C4、鉴权操作是否成功,若是,进入下一步,若否,发送呼叫失败信息给客户端;
C5、解析第二通信邀请信息,获取客户端编码要求和客户端候选者地址信息;
C6、呼叫接通后,发送已经接通信息给客户端,已经接通信息中包括WebRTC网关的会话描述协议信息;
C7、接收到客户端的结束通信请求后,发送确认结束请求给客户端;
C8、停止媒体流发送,关闭监听端口。
第四方面,本发明的上述发明目的通过以下技术方案得以实现:
一种IOS端基于SIP协议交互的WebRTC通信系统,包括客户端、WebRTC网关、STUN服务器;客户端包括终端和软件工具包,软件工具包用于基于SIP协议交互信令处理、与SIP联络中心交互,还用于选择音频视频编码、建立媒体通道与协商媒体传输、在不同网络之间进行切换、定义接口;协商媒体传输包括解析编码信息,进行匹配操作,协商语音和视频编码;建立媒体通道包括向WebRTC网关监听的IP和端口发送数据包、WebRTC网关收到数据包后向软件工具包监听的IP和端口返回数据包,定期给WebRTC网关的端口发送STUN消息绑定请求,维护网络的连通。
本发明进一步设置为:在不同网络之间进行切换,包括以下步骤:
D1、软件工具包监听IOS端的网络切换;
D2、是否有网络切换,若是,进入下一步,若否,转D1;
D3、当前是否处于呼叫状态,若是,进入下一步,若否,转D7
D4、重新生成会话描述协议信息;
D5、发送重新通信邀请请求给WebRTC网关;
D6、接收WebRTC网关的协商成功信息后,关闭在先端口,启用新端口进行媒体交互,转D9;
D7、解绑在先监听IP和端口,监听新IP和端口;
D8、发送绑定请求,更新联络地址,转D9;
D9、网络切换成功;
D10、在呼叫过程中,定期统计呼叫数据,包括网络延时、发送数据包数量、接收数据包数量、丢失数据包数量、丢包率、发送网络速率、接收网络速率。
第五方面,本发明的上述发明目的通过以下技术方案得以实现:
一种IOS端基于SIP协议交互的WebRTC通信终端,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本申请所述方法。
与现有技术相比,本申请的有益技术效果为:
1.本申请通过在客户端集成SDK,实现了客户端基于SIP协议的WebRTC通信;
2.进一步地,本申请通过客户端与STUN服务端的交互,获取到公网IP,以公网IP与WebRTC进行通信,实现了客户端与WebRTC通信的可能;
3.进一步地,本申请客户端与WebRTC通信时,进行身份验证和鉴权,保证了呼叫的安全性;
4.进一步地,本申请SDK能够选择语音、视频编码,并写WebRTC网关的语音、视频编码进行匹配,从而保证客户端与WebRTC的语音视频通信。
附图说明
图1是本申请的一个具体实施例的通信系统结构示意图;
图2是本申请的一个具体实施例的交互通信流程示意图;
图3是本申请的一个具体实施例的SDK获取公网IP流程示意图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
具体实施例一
本申请的一种IOS端基于SIP协议交互的WebRTC通信系统,如图1所示,客户端应用部署在外网,交换端应用部署在内网,客户端包括终端与软件工具包SDK(SoftwareDevelopment),在SDK内集成SIP协议交互功能、谷歌native webrtc库,以基于SIP协议作为信令交互协议,具体地,客户端与WebRTC网关基于SIP协议进行交互,企业基于SIP协议通过SIP的语音交换机与WebRTC网关进行交互,将IOS端与企业联络中心整合,用于实现IOS端与企业的通信。
SDK的功能,包括以下几个方面:
1、基于SIP协议交互信令处理,与SIP联络中心交互;
2、选择处理语音、视频编码;
3、建立和协商媒体通道;
4、网络切换处理;
5、对外接口封装及定义。
客户端基于SIP协议与WebRTC网关的交互,如图2所示。
具体地,客户端与WebRTC网关交互,客户端通过软件工具包SDK与WebRTC网关交互进行交互,通信方法包括以下过程:客户端先从STUN服务端获取到该设备当前使用的所有公网IP和端口列表,再根据获取的所有公网IP和端口列表,对地址进行过滤,得到使用SIP协议的IP和端口列表,根据网络开销,以开销由小到大对使用SIP协议的IP和端口列表进行排序,生成候选列表。再根据呼叫类型与支持的语音视频编码,生成客户端会话描述协议(SDP)内容数据包,将客户端会话描述协议内容放在SIP消息中的通信邀请请求中,同时定义通信邀请请求中的标准头字段,采用网络开销最小的公网IP地址,形成第一通信邀请信息,发送给WebRTC网关;接收WebRTC网关回应的代理身份验证信息,根据代理身份验证信息国的鉴权参数,重新生成鉴权码,加入到通信邀请请求信息中,生成第二通信邀请信息,发送给WebRTC网关;接收WebRTC网关回复的鉴权结果信息,如果鉴权成功,建立对等连接,添加流,与WebRTC网关进行RTP媒体流交互。
在呼叫接通后,接收WebRTC网关回复的WebRTC网关会话描述协议(SDP)内容数据包,进行解析,得到WebRTC网关的语音视频编码信息和候选者IP信息,如果WebRTC网关的语音视频编码是客户端支持的,则选择WebRTC网关候选者IP列表中网络开销最小的IP地址和端口,作为WebRTC网关候选地址和端口,请求建立媒体传输通道;如果WebRTC网关的语音视频编码不是客户端支持的,则发送编码匹配失败消息给WebRTC网关。
接收WebRTC网关返回的WebRTC网关候选地址和端口是否可达的结果信息,如果WebRTC网关候选地址和端口是可达的,则客户端将从麦克风和摄像头采集的语音和视频流转化为二进制流,通过RTP协议或SRTP协议,向WebRTC网关候选地址和端口发送,同时监听客户端自己的候选地址和端口,将从WebRTC网关收到的RTP或者SRTP二进制数据解析成语音或者视频数据,展现给用户。在呼叫过程中,为了维护消息的传输,SDK定期给WebRTC网关发送STUN绑定请求,维护端口的开启状态。
当呼叫或者视频者完成沟通需要挂断请求的时候,此时SDK发送结束请求给WebRTC网关,结束请求信息中包括当前呼叫的唯一标志CallId;接收WebRTC网关的回应的确认结束请求,停止向WebRTC网关发送媒体流,关闭相应端口监听。
具体地,呼叫通信过程包括以下步骤:
S1、调用谷歌native webrtc库中STUN请求方法,发送绑定IP请求给STUN服务端;
S2、接收STUN服务端返回的对外公网IP和端口列表;
S3、根据收到的公网IP和端口列表,选择网络开销最小的IP地址作为客户端候选IP地址和端口,将客户端候选IP地址和端口、客户端本地内部IP、语音编码方式、视频编码方式生成客户端会话描述协议SDP内容;
S4、将客户端会话描述协议内容添加到通信邀请(INVITE)请求中,形成第一通信邀请信息,发送给WebRTC网关;
S5、接收WebRTC网关返回的确认收到请求信息(100 Trying SIP)、代理身份验证信息(SIP 407 Proxy Authentication),代理身份验证信息中包含WebRTC网关生成的鉴权参数;
S6、输入密钥信息进行身份验证,基于身体验证信息中的鉴权参数,重新生成鉴权码,将鉴权码添加步骤到S4中的通信邀请(INVITE)请求中,形成第二通信邀请信息,发送给WebRTC网关;
S7、接收WebRTC网关返回的鉴权结果信息,如果鉴权失败,则鉴权结果信息为呼叫失败,如果鉴权成功时,接收WebRTC网关的前媒体响应信息,前媒体响应信息中包括WebRTC网关的会话描述协议SDP内容,呼叫接通中;
S8、呼叫接通后,接收WebRTC网关返回的用户已经接通信息、WebRTC网关会话描述协议信息,WebRTC网关会话描述协议信息包括WebRTC网关公网IP列表、WebRTC网关支持的语音视频编码;
S9、调用谷歌native webrtc库,创建对等连接,成功后调用添加流操作,将通过麦克风获取到的媒体流加载到对等连接上,进行媒体流传输;
媒体流的传输采用RTP协议,如果是加密的则是SRTP协议;
S10、在客户端需要挂断时,向WebRTC网关发送结束(bye)请求,请求中包括呼叫的唯一标志CallId;
S11、接收WebRTC网关发送的确认结束请求后,停止向WebRTC网关发送媒体流;
S12、移除添加的媒体流,关闭麦克风和摄像头的调用;
S13、清除对等连接,结束。
在呼叫过程中,客户端定期向STUN服务器发送绑定请求,维护端口处于开启状态。
客户端向STUN服务端请求公网IP地址,先将客户端本地的所有网卡IP列表,加入到本地候选者IP列表中,需要配置STUN服务端地址时,向STUN服务端发出获取公网IP地址列表的请求,接收到STUN服务端返回的公网地址列表后,进行过滤,把不支持的地址滤掉,剩下的公网地址增加到本地候选者IP列表中,得到符合条件的本地最终候选者IP列表。
客户端向STUN服务端获取公网IP地址,如图3所示,包括以下步骤:
A1、获取本地所有网卡的IP地址,将其加入到本地候选者IP列表中;
A2、是否配置STUN服务端地址,若是,进入下一步,若否,转A7;
A3、发送获取公网IP地址列表请求给STUN服务端;
A4、接收STUN服务端返回的公网地址列表;
A5、判断公网地址列表是否为空,若否,进入下一步,若是,转A7;
A6、 将获取的公网IP地址和通讯端口添加到本地候选者IP列表中;
A7、以支持的协议类型与支持的地址类型,过滤本地候选者IP列表,得到符合条件的本地最终候选者IP列表。
客户端建立对等连接,包括以下步骤:
B1、客户端接收到WebRTC网关发送的已经接通信息后,解析已经接通信息,得到WebRTC网关语音编码信息、视频编码信息和WebRTC网关候选者IP信息;
B2、判断WebRTC网关编码信息是否与客户端的编码信息匹配,若是,进入下一步,若否,发送编码协商失败响应给WebRTC网关;
B3、选取WebRTC网关候选者IP中网络开销最小的IP地地址和端口,作为选定IP和端口,发送建立媒体传输通道请求给WebRTC网关;
B4、接收到WebRTC网关返回的选定IP和端口可达信息后,将语音流和视频流转化为二进制流,通过RTP协议或SRTP协议,发送到选定IP和端口;
B5、监听客户端本地相应端口,将接收到的二进制流数据解析为语音流或视频流,展现给用户。
在信令呼叫建立成功后,客户端媒体通道建立,具体分外呼与呼入二种情况,在外呼情况下,客户端第二次发送通信邀请(INVITE)请求后,接收到WebRTC网关返回的200 OK信息,客户端媒体通道建立;在呼入情况下,在接收到通信邀请(INVITE)请求,返回WebRTC网关返回的200 OK信息,客户端媒体通道建立。200 OK信息表示用户已经接通。
媒体通道建立包括媒体协商和媒体传输两个部分:
媒体协商过程中,客户端在收到服务端的返回SDP信息后,解析SDP信息获得WebRTC网关的编码信息,然后与客户端自己的支持的语音编码信息进行匹配,如果没有匹配的,则媒体协商失败;如果有匹配的,就选择匹配的编码信息进行通信,完成媒体协商,媒体协商同时完成语音和视频的编码协商。
如WebRTC网关返回的编码信息是G729,而客户端自己支持OPUS、PCUA、PCMU、G722语音编码,二者没有相同的编码进行匹配,媒体协商失败。如果WebRTC网关返回的编码信息是G729、OPUS,二者有相同的编码信息OPUS进行匹配,协商成功。
媒体通道建立是双向的,客户端向WebRTC网关监听的IP和端口发送RTP或者SRTP数据包,WebRTC网关收到数据包后,向客户端监听的IP和端口返回数据包,此时媒体通道建立。
客户端网络切换:
对于IOS移动客户端,会出现在不同网络切换的场景,如WIFI与切换移动网络之间相互切换,网络切换后,为了保持呼叫连通与流畅,SDK后台监听IOS端的网络切换,在发现网络切换时,检查当前SDK呼叫状态,如果当前没有呼叫,则解绑之前监听的IP和端口,重新监听切换后的网络IP和端口,向WebRTC网关重新发一次注册(Register)请求,更新在STUN服务端保存的联络地址;如果当前正在进行语音或者视频呼叫,则生成新的客户端会话描述协议SDP信息,生成重新通信邀请(ReINVITE)请求,发送给WebRTC网关,WebRTC网关收到请求后重新协商,协商成功后返回协商成功(OK)消息,SDK收到消息后,关闭原来的端口使用新的端口来进行媒体交互;在网络切换成功会给SDK上层推送网络切换消息;在呼叫过程中,每N秒会统计一次语音呼叫之类数据,数据包括网络延时,发送的数据包数量,接收的数据包数量,丢失的数据包数量,丢包率,发送网络速率,接收网络速率等数据。
具体地,客户端网络切换过程,包括以下步骤:
D1、软件工具包监听IOS端的网络切换;
D2、是否有网络切换,若是,进入下一步,若否,转D1;
D3、当前是否处于呼叫状态,若是,进入下一步,若否,转D7
D4、重新生成会话描述协议信息;
D5、发送重新通信邀请请求给WebRTC网关;
D6、接收WebRTC网关的协商成功信息后,关闭在先端口,启用新端口进行媒体交互,转D9;
D7、解绑在先监听IP和端口,监听新IP和端口;
D8、发送绑定请求给STUN服务器,更新联络地址,转D9;
D9、网络切换成功;
D10、在呼叫过程中,定期统计呼叫数据,包括网络延时、发送数据包数量、接收数据包数量、丢失数据包数量、丢包率、发送网络速率、接收网络速率。
为了维护媒体通道,客户端定期给WebRTC网关媒体的端口发送STUN消息绑定请求,维护NAT网络的连通。
客户端SDK在获取到的语音和视频编码时,进行选择处理。
STUN服务端,在通信过程中的工作,包括:在接收到客户端的绑定IP请求信息后,查询STUN服务端的候选IP地址和端口列表,以开销由小到大排列,选择排列在前的一部分IP网络,作为公网IP地址和端口列表返回给客户端。
WebRTC网关,在通信过程中的工作,包括:在接收到客户端的第一通信邀请信息后,返回确认收到请求信息给客户端,再解析第一通信邀请信息,发送鉴权参数和代理身份验证信息给客户端;接收客户端的第二通信邀请信息,进行鉴权,鉴权成功后,解析第二通信邀请信息,获取编码要求和候选者地址信息;呼叫接通后,发送用户已经接通信息给客户端;接收到客户端的结束请求信息后,发送确认结束请求给客户端,停止媒体流发送,关闭端口监听。
具体地,WebRTC网关通信过程,包括以下步骤:
C1、接收到客户端的第一通信邀请信息后,回复确认收到请求信息给客户端;
C2、解析第一通信邀请信息,获得鉴权参数,发送鉴权参数和代理身份验证信息给客户端;
C3、接收客户端的第二通信邀请信息,进行鉴权操作;
C4、鉴权操作是否成功,若是,进入下一步,若否,发送呼叫失败信息给客户端;
C5、解析第二通信邀请信息,获取客户端编码要求和客户端候选者地址信息;
C6、呼叫接通后,发送已经接通信息给客户端,已经接通信息中包括WebRTC网关的会话描述协议信息;WebRTC网关的会话描述协议信息包括WebRTC网关的媒体IP和端口;
C7、接收到客户端的结束通信请求后,发送确认结束请求给客户端;
C8、停止媒体流发送,关闭监听端口。
当客户端发生网络切换时,接收客户端发送的注册(Register)请求信息,更新保存的联络地址;接收客户端发送的重新通信邀请(ReINVITE)信息,重新进行协商,协商成功后返回OK信息给客户端。
具体实施例二
本申请的一种IOS端基于SIP协议交互的WebRTC通信终端,该实施例的终端设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如网络通信计算机程序,所述处理器执行所述计算机程序时实现实施例一所述通信方法。
示例性的,所述计算机程序可以被分割成一个或多个模块/单元,所述一个或多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述IOS端基于SIP协议交互的WebRTC通信终端设备中的执行过程。例如,所述计算机程序可以被分割成多个模块,各模块具体功能如下:
1.特征提取模块,用于提取印章特征;
2.计算模块,用于计算特征值;
3.判别模块,用于进行真伪判别。
所述IOS端基于SIP协议交互的WebRTC通信终端设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述终端设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,所述上述示例仅仅是IOS端基于SIP协议交互的WebRTC通信终端设备的示例,并不构成对IOS端基于SIP协议交互的WebRTC通信终端设备的限定,可以包括更多或更少的部件,或组合某些部件,或不同的部件,例如所述IOS端基于SIP协议交互的WebRTC通信终端设备还可以包括输入输出设备、网络接入设备、总线等。
所述处理器可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数据信号处理器(Digital Signal Processor,DSP) 、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器是所述一种IOS端基于SIP协议交互的WebRTC通信端设备的控制中心,利用各种接口和线路连接整个一种IOS端基于SIP协议交互的WebRTC通信终端设备的各个部分。
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述一种IOS端基于SIP协议交互的WebRTC通信终端设备的各种功能。所述存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card ,SMC),安全数字(SecureDigital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
本申请的方法和系统,方便企业在IOS应用中整合企业VOIP(Voice overInternet Protocol,IP的语音传输协议)应用,赋予APP VOIP能力,可以通过互联网接入到企业的联络中心、无需支付400号码费用、同时在VOIP通话中很方便携带各种随路数据(如位置信息、用户账户信息、订单信息、商品信息等),方便坐席人员异地办公,统一使用企业号码,节约企业通讯成本、提高企业形象和更好地服务客户。
本具体实施方式的实施例均为本发明的较佳实施例,并非依此限制本发明的保护范围,故:凡依本发明的结构、形状、原理所做的等效变化,均应涵盖于本发明的保护范围之内。
Claims (11)
1.一种IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:客户端向Stun服务端发送请求,从Stun服务端获取公网IP地址;基于公网IP生成客户端会话描述协议,向WebRTC网关发送通信邀请请求,通信邀请请求信息中包括客户端会话描述协议;接收WebRTC网关返回的代理身份验证信息,生成鉴权码后发送给WebRTC网关,接收WebRTC网关的鉴权结果,在鉴权成功后,建立与WebRTC网关的实时媒体流交互,在交互结束时,发送结束请求给WebRTC网关,在接收到WebRTC网关的确认结束请求后,结束媒体流交互。
2.根据权利要求1所述IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:客户端的工作包括以下步骤:
S1、调用谷歌native webrtc库中stun请求方法,发送绑定IP请求给stun服务端;
S2、接收stun服务端返回的对外公网IP列表;
S3、根据收到的公网IP列表、客户端本地内部IP、语音编码方式、视频编码方式生成客户端会话描述协议内容;
S4、将客户端会话描述协议内容添加到通信邀请请求中,形成第一通信邀请信息,发送给WebRTC网关;
S5、接收WebRTC网关返回的确认收到请求信息、代理身份验证信息;
S6、基于身体验证信息生成鉴权码,将鉴权码添加到通信邀请请求中,形成第二通信邀请信息,发送给WebRTC网关;
S7、接收WebRTC网关返回的鉴权结果信息,在鉴权成功时,接收WebRTC网关的前媒体响应信息,呼叫接通中;
S8、呼叫接通后,接收WebRTC网关返回的用户已经接通信息、WebRTC网关会话描述协议信息,包括WebRTC网关公网IP列表;
S9、调用谷歌native webrtc库,创建对等连接,调用添加流操作,将获取到的媒体流加载到对等连接上,进行媒体流传输;
S10、在客户端需要挂断时,向WebRTC网关发送结束请求;
S11、接收WebRTC网关发送的确认结束请求信息后,停止向WebRTC网关发送消息;
S12、移除添加的媒体流;
S13、结束。
3.根据权利要求2所述IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:获取对外公网IP,包括以下步骤:
A1、获取本地所有网卡的IP地址,将其加入到本地候选者IP列表中;
A2、是否配置stun服务端地址,若是,进入下一步,若否,转A7;
A3、发送获取公网IP地址列表请求给stun服务端;
A4、接收stun服务端返回的公网地址列表;
A5、判断公网地址列表是否为空,若否,进入下一步,若是,转A7;
A6、 将获取的公网IP地址和通讯端口添加到本地候选者IP列表中;
A7、以支持的协议类型与支持的地址类型,过滤本地候选者IP列表,得到符合条件的本地最终候选者IP列表。
4.根据权利要求2所述IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:身份验证时,需要输入密钥信息进行校验;媒体流采用RTP协议传输,在加密情况下,采用SRTP协议传输;结束请求中包括呼叫ID;在呼叫过程中,客户端定期向STUN服务器发送绑定请求,维护端口处于开启状态。
5.根据权利要求2所述IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:建立对等连接,包括以下步骤:
B1、客户端接收到WebRTC网关发送的已经接通信息后,解析已经接通信息,得到WebRTC网关语音编码信息、视频编码信息和WebRTC网关候选者IP信息;
B2、判断WebRTC网关编码信息是否与客户端的编码信息匹配,
若是,进入下一步,若否,发送编码协商失败响应给WebRTC网关;
B3、选取WebRTC网关候选者IP中网络开销最小的IP地地址和端口,作为选定IP和端口,发送建立媒体传输通道请求给WebRTC网关;
B4、接收到WebRTC网关返回的选定IP和端口可达信息后,将语音流和视频流转化为二进制流,通过RTP协议或SRTP协议,发送到选定IP和端口;
B5、监听客户端本地相应端口,将接收到的二进制流数据解析为语音流或视频流,展现给用户。
6.一种IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:Stun服务端,在接收到客户端的绑定IP请求信息后,查询服务端候选地址和端口列表,选择开销最小的IP网络,作为公网IP返回给客户端。
7.一种IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:WebRTC网关接收到客户端的第一通信邀请信息后,回复收到请求信息,解析第一通信邀请信息,返回鉴权参数和代理身份验证信息给客户端;接收客户端的第二通信邀请信息,进行鉴权,鉴权成功后,解析第二通信邀请信息,获取编码要求和候选者地址信息;呼叫接通后,发送用户已经接通信息给客户端;接收到客户端的结束请求信息后,发送确认结束请求给客户端,停止媒体流发送,关闭端口监听。
8.根据权利要求7所述IOS端基于SIP协议交互的WebRTC通信方法,其特征在于:WebRTC网关的工作包括以下步骤:
C1、接收到客户端的第一通信邀请信息后,回复收到请求信息给客户端;
C2、解析第一通信邀请信息,获得鉴权参数,发送代理身份验证信息给客户端;
C3、接收客户端的第二通信邀请信息,进行鉴权操作;
C4、鉴权操作是否成功,若是,进入下一步,若否,发送呼叫失败信息给客户端;
C5、解析第二通信邀请信息,获取客户端编码要求和客户端候选者地址信息;
C6、呼叫接通后,发送已经接通信息给客户端,已经接通信息中包括WebRTC网关的会话描述协议信息;
C7、接收到客户端的结束通信请求后,发送确认结束请求给客户端;
C8、停止媒体流发送,关闭监听端口。
9.一种IOS端基于SIP协议交互的WebRTC通信系统,其特征在于:包括客户端、WebRTC网关、STUN服务器;客户端包括终端和软件工具包,软件工具包用于基于SIP协议交互信令处理、与SIP联络中心交互,还用于选择音频视频编码、建立媒体通道与协商媒体传输、在不同网络之间进行切换、定义接口;协商媒体传输包括解析编码信息,进行匹配操作,协商语音和视频编码;建立媒体通道包括向WebRTC网关监听的IP和端口发送数据包、WebRTC网关收到数据包后向软件工具包监听的IP和端口返回数据包,定期给WebRTC网关的端口发送STUN消息绑定请求,维护网络的连通。
10.根据权利要求9所述IOS端基于SIP协议交互的WebRTC通信系统,其特征在于:在不同网络之间进行切换,包括以下步骤:
D1、软件工具包监听IOS端的网络切换;
D2、是否有网络切换,若是,进入下一步,若否,转D1;
D3、当前是否处于呼叫状态,若是,进入下一步,若否,转D7
D4、重新生成会话描述协议信息;
D5、发送重新通信邀请请求给WebRTC网关;
D6、接收WebRTC网关的协商成功信息后,关闭在先端口,启用新端口进行媒体交互,转D9;
D7、解绑在先监听IP和端口,监听新IP和端口;
D8、发送绑定请求,更新联络地址,转D9;
D9、网络切换成功;
D10、在呼叫过程中,定期统计呼叫数据,包括网络延时、发送数据包数量、接收数据包数量、丢失数据包数量、丢包率、发送网络速率、接收网络速率。
11.一种IOS端基于SIP协议交互的WebRTC通信终端,包括存储器、处理器、以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现如权利要求1-10任一所述方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110523620.3A CN113114702B (zh) | 2021-05-13 | 2021-05-13 | 一种IOS端基于SIP协议交互的WebRTC通信方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110523620.3A CN113114702B (zh) | 2021-05-13 | 2021-05-13 | 一种IOS端基于SIP协议交互的WebRTC通信方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113114702A true CN113114702A (zh) | 2021-07-13 |
CN113114702B CN113114702B (zh) | 2023-05-09 |
Family
ID=76722367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110523620.3A Active CN113114702B (zh) | 2021-05-13 | 2021-05-13 | 一种IOS端基于SIP协议交互的WebRTC通信方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113114702B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113630424A (zh) * | 2021-09-15 | 2021-11-09 | 上海哔哩哔哩科技有限公司 | WebRTC通信方法及系统 |
CN113726895A (zh) * | 2021-08-31 | 2021-11-30 | 广州艾美网络科技有限公司 | 文件传输方法、装置及网络ktv系统 |
CN113905023A (zh) * | 2021-08-25 | 2022-01-07 | 北京房江湖科技有限公司 | 基于网页即时通信技术的外呼系统及方法 |
CN114024941A (zh) * | 2021-11-11 | 2022-02-08 | 南京国电南自轨道交通工程有限公司 | 一种基于WebRTC多终端多路实时视频监控方法 |
CN114172872A (zh) * | 2021-12-18 | 2022-03-11 | 杭州视洞科技有限公司 | 一种实现终端向多个安防摄像头喊话的方法 |
CN114679486A (zh) * | 2022-03-29 | 2022-06-28 | 网易(杭州)网络有限公司 | 通信交互方法及系统、应用端、客户端、中转服务端 |
CN114827097A (zh) * | 2022-04-21 | 2022-07-29 | 咪咕文化科技有限公司 | 通信网络构建方法、装置及计算机设备 |
CN115361364A (zh) * | 2022-10-08 | 2022-11-18 | 成都华栖云科技有限公司 | 一种基于WebRTC的通信协议的数据传输方法 |
CN115460190A (zh) * | 2022-09-28 | 2022-12-09 | 上海浦东发展银行股份有限公司 | 一种基于WebRTC移动端网络的通信方法 |
CN116055614A (zh) * | 2023-02-03 | 2023-05-02 | 浙江东上数字科技有限公司 | 一种通过手机实现sip中继的智能语音外呼系统和方法 |
CN116074469A (zh) * | 2023-03-14 | 2023-05-05 | 浙江华创视讯科技有限公司 | 加入会议的方法、装置、存储介质及电子装置 |
CN116896544A (zh) * | 2023-08-29 | 2023-10-17 | 好信云(北京)网络通信有限公司 | 用于建立实时通信连接的方法、装置、设备和介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104662859A (zh) * | 2013-06-29 | 2015-05-27 | 华为技术有限公司 | 一种连接恢复的方法、装置及系统 |
CN105407369A (zh) * | 2015-11-17 | 2016-03-16 | 青岛海信电器股份有限公司 | 一种基于Web应用的终端通信方法与装置 |
CN105516058A (zh) * | 2014-09-25 | 2016-04-20 | 中国电信股份有限公司 | 用于建立VoIP呼叫的方法和系统 |
CN106850399A (zh) * | 2016-12-30 | 2017-06-13 | 深圳市潮流网络技术有限公司 | 一种基于WebRTC技术即时消息的通信方法 |
CN109995734A (zh) * | 2017-12-30 | 2019-07-09 | 中国科学院沈阳计算技术研究所有限公司 | 一种基于SIP协议的WebRTC的通信方法 |
-
2021
- 2021-05-13 CN CN202110523620.3A patent/CN113114702B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104662859A (zh) * | 2013-06-29 | 2015-05-27 | 华为技术有限公司 | 一种连接恢复的方法、装置及系统 |
CN105516058A (zh) * | 2014-09-25 | 2016-04-20 | 中国电信股份有限公司 | 用于建立VoIP呼叫的方法和系统 |
CN105407369A (zh) * | 2015-11-17 | 2016-03-16 | 青岛海信电器股份有限公司 | 一种基于Web应用的终端通信方法与装置 |
CN106850399A (zh) * | 2016-12-30 | 2017-06-13 | 深圳市潮流网络技术有限公司 | 一种基于WebRTC技术即时消息的通信方法 |
CN109995734A (zh) * | 2017-12-30 | 2019-07-09 | 中国科学院沈阳计算技术研究所有限公司 | 一种基于SIP协议的WebRTC的通信方法 |
Non-Patent Citations (3)
Title |
---|
李超: "基于WebRTC技术的iOS融合通信终端的设计与实现", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
董振江等: "移动互联网WebRTC及相关技术", 《中兴通讯技术》 * |
邓小娇等: "基于ICE的SIP穿越Symmetric NAT技术的改进", 《计算机工程与设计》 * |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113905023A (zh) * | 2021-08-25 | 2022-01-07 | 北京房江湖科技有限公司 | 基于网页即时通信技术的外呼系统及方法 |
CN113905023B (zh) * | 2021-08-25 | 2024-02-27 | 贝壳找房(北京)科技有限公司 | 基于网页即时通信技术的外呼系统及方法 |
CN113726895B (zh) * | 2021-08-31 | 2023-08-25 | 广州艾美网络科技有限公司 | 文件传输方法、装置及网络ktv系统 |
CN113726895A (zh) * | 2021-08-31 | 2021-11-30 | 广州艾美网络科技有限公司 | 文件传输方法、装置及网络ktv系统 |
CN113630424A (zh) * | 2021-09-15 | 2021-11-09 | 上海哔哩哔哩科技有限公司 | WebRTC通信方法及系统 |
CN114024941A (zh) * | 2021-11-11 | 2022-02-08 | 南京国电南自轨道交通工程有限公司 | 一种基于WebRTC多终端多路实时视频监控方法 |
CN114172872A (zh) * | 2021-12-18 | 2022-03-11 | 杭州视洞科技有限公司 | 一种实现终端向多个安防摄像头喊话的方法 |
CN114679486A (zh) * | 2022-03-29 | 2022-06-28 | 网易(杭州)网络有限公司 | 通信交互方法及系统、应用端、客户端、中转服务端 |
CN114679486B (zh) * | 2022-03-29 | 2024-05-07 | 网易(杭州)网络有限公司 | 通信交互方法及系统、应用端、客户端、中转服务端 |
CN114827097A (zh) * | 2022-04-21 | 2022-07-29 | 咪咕文化科技有限公司 | 通信网络构建方法、装置及计算机设备 |
CN114827097B (zh) * | 2022-04-21 | 2023-10-17 | 咪咕文化科技有限公司 | 通信网络构建方法、装置及计算机设备 |
CN115460190A (zh) * | 2022-09-28 | 2022-12-09 | 上海浦东发展银行股份有限公司 | 一种基于WebRTC移动端网络的通信方法 |
CN115460190B (zh) * | 2022-09-28 | 2024-05-24 | 上海浦东发展银行股份有限公司 | 一种基于WebRTC移动端网络的通信方法 |
CN115361364A (zh) * | 2022-10-08 | 2022-11-18 | 成都华栖云科技有限公司 | 一种基于WebRTC的通信协议的数据传输方法 |
CN115361364B (zh) * | 2022-10-08 | 2022-12-20 | 成都华栖云科技有限公司 | 一种基于WebRTC的通信协议的数据传输方法 |
CN116055614A (zh) * | 2023-02-03 | 2023-05-02 | 浙江东上数字科技有限公司 | 一种通过手机实现sip中继的智能语音外呼系统和方法 |
CN116074469A (zh) * | 2023-03-14 | 2023-05-05 | 浙江华创视讯科技有限公司 | 加入会议的方法、装置、存储介质及电子装置 |
CN116896544A (zh) * | 2023-08-29 | 2023-10-17 | 好信云(北京)网络通信有限公司 | 用于建立实时通信连接的方法、装置、设备和介质 |
CN116896544B (zh) * | 2023-08-29 | 2024-04-30 | 好信云(北京)网络通信有限公司 | 用于建立实时通信连接的方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113114702B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113114702B (zh) | 一种IOS端基于SIP协议交互的WebRTC通信方法和系统 | |
US10298629B2 (en) | Intercepting and decrypting media paths in real time communications | |
US6987765B2 (en) | Changing media sessions | |
US20040205777A1 (en) | System and method for using multiple communication protocols in memory limited processors | |
US8743871B2 (en) | Media identification, classification, forwarding, and management for voice and video communications | |
EP2991318B1 (en) | Hybrid cloud architecture for media communications | |
CN103379096B (zh) | 因特网与运营商网络业务共享方法、服务方及网页网关 | |
CN108696523B (zh) | 一种通话服务的响应方法及设备 | |
US8082580B1 (en) | Session layer pinhole management within a network security device | |
US8934478B2 (en) | Managing telephony services using multiple users within a telephony control point in a home network | |
US8472600B2 (en) | System and method for providing signaling in a network environment | |
RU2608673C2 (ru) | Обработка сообщений протокола инициирования сеансов в телекоммуникационном устройстве беспроводной связи | |
CN104320403A (zh) | 通信方法及装置 | |
CN104509083A (zh) | 通信系统、方法和程序 | |
CN104255014A (zh) | 设置、处理交互式连接建立ice地址的方法、装置和服务器 | |
JP4547909B2 (ja) | 認識システムおよび情報端末装置の認識方法 | |
US7490155B1 (en) | Management and control for interactive media sessions | |
CN1780293B (zh) | 在有状态会话初始协议服务器上实现过负荷控制的方法 | |
CN108184033A (zh) | 一种远程共享VoIP的方法、终端及系统 | |
Femminella et al. | Enhancing java call control with media server control functions | |
CN109040007B (zh) | 用于应对替代网络地址类型(anat)不兼容性的方法和系统 | |
KR100957432B1 (ko) | 미디어 전송 방법 | |
Pourghasem et al. | A Survey of Voice Over Internet Protocol (VOIP) Technology | |
Jayasekara | Voice Over Internet Protocol (VOIP) Setup: Case Study Analysis | |
Femminella et al. | Introduction of Media Gateway Control functions in Java Call Control |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |