webrtc通信流程图

本文详细介绍了WebRTC的通话过程,包括语音或视频通话时的步骤。从判断是否开启WebRTC功能,到获取对方平台信息,通过sip发送呼叫请求,接收方接听并设置SDP,再到双方交换ICE信息,最终建立连接。整个过程涉及到消息类型如webrtc_call, webrtc_answer, iceCandidate等,以及关键的SDP和ICE数据的交换。" 1711167,230861,VC++代码实现屏幕分辨率切换,"['Windows编程', '图形界面', 'VC++库']

 

webrtc通话过程:

  1. 如果是语音通话,首先通过配置信息,判断是否开启webrtc功能。
  2. 如果开启了或者是视频通话,拨号方会通过本地数据库获取接听方应用平台类型、版本号信息。现在只有在应用是Android 以及Android版本号是大于等于241才能够使用webrtc功能。如果本地没有保存对方版本信息等,通过接口获取并以json格式包存到本地。
  3. 拨号方首先以cmd命令的形式通过sip 发送call_request 命令去获取对方是否空闲 。
  4. 服务器会返回消息成功,失败回执,如果失败:被叫方是ios就继续等待,如果被叫方是Android 就挂断电话,告知用户”对方不在线”。如果成功不做处理
  5. 拨号方收到对方空闲的命令后发送webrtc通话请求,以cmd命令的形式通过sip发送message_type_call,如果这个时候拨打方已经收集到了SDP数据就将sdp数据一并带过去,如果这个时候本地还没收集到sdp就继续等待,等sdp收集了在发送message_type_call。
  6. 接收方收到message_type_call命令的通话请求后弹出接听电话界面,并且将收到的sdp设置到本地,做接听或者挂断操作,如果点击接听:跳转到通话界面,显示’正在连接中’,并且以cmd的形式通过sip发送message_type_answer,如果这个时候接听方收集到了sdp、 将sdp带上发送给拨打方,如果这个时候接听方还没收集到sdp就等待,等收集到了在跟message_type_answer命令一起发送给拨打方,并且把收集到的ice单独以sip 信令发送message_type_iceCandidat给拨打方。
  7. 拨打方收到对方接听电话的命令,发送收集到的ice信息以sip 信令发送message_type_iceCandidat命令给接听方。界面跳转到通话界面,并显示”正在连接中...”
  8. 接听方收到对方发送来的ice命令后将相关信息设置进webrtc的相关方法。并将自己接收到的ice信息发送给拨打方
  9. 相互设置了sdp跟ice后,webrtc会建立两端的连接,并将连接状态通个ice的状态返回,如果收到ice的状态IceConnectionState.CONNECTED说明这时两端才真正建立了通话,如果拨打的是视频通话,这个时候拨打方需要发送一个开启视频通话的cmd命令switchvideo_request

注意事项:在发送

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值