美文网首页
iOS 音视频通话及会议1

iOS 音视频通话及会议1

作者: 属于我的 | 来源:发表于2021-08-12 15:24 被阅读0次

iOS webRTC + SIP 协议实现点对点音视频通话。

    1、配置,大家需要下载webRTC以及SIP的frameWork,其中webRTC可以使用cocopods pod 'GoogleWebRTC'导入更方便,SIP的frameWork如下图。

1

    2、做SIP信令的话需要大家对C有一定的熟悉程度,需要用C去接收信令,然后处理信息进行下一步操作。

    3、SIP信令中含有webRTC所需要的SDP信息,以及ICE候选者,通过webRTC的RTCPeerConnection通过ICE建立连接,SDP内是一些编码以及需要遵守的内容。

    4、接下来给大家说一下webRTC使用

        首先给大家说一下音视频通话的流程,

        A主叫->B被叫

       1. A获取SDP offer信息,并发送SIP信息 INVITE信息

        2.A发送SIP信息并携带SDP信息

        3.B接收到INVITE邀请通话信息,并回复彩铃或嘟声。

        4.A收到B发送的彩铃或嘟声并开始播放

        5.B接受通话并携带自己的SDP answer信息发送

        6.A接收到B的SDP answer信息,建立连接后双方开始通话

        初始化,通过一下几个方法,初始化并获得一个peerConnection对象

2

        peerConnection对象创建之后,我们需要获取音视频流通过图片3中的方法,我们可以获取到音频流。图片4中的方法,获取到视频流。

3 4

        开始通话时获取SDP offer信息,并调用didCreateSessionDescription方法

5

         在didCreateSessionDescription方法中,我们需要调用peerConnectiong的setLocalDescription方法,设置本地流,然后调用didSetSessionDescriptionWithError方法

6

        通过didSetSessionDescriptionWithError方法我们可以判断获取的SDP信息是否有误,同时如果我们是应答方,就需要在此方法中创建SDP answer.

7

以上是peerConnectiong的初始化以及SDP的创建

然后是添加候选者以及接收到对方SDP信息后的设置,接收到对方的SDP信息之后,我们可以通过peerConnection的setRemoteDescription设置对方的SDP信息,同时设置完成之后仍需调用didSetSessionDescriptionWithError,来检查SDP信息,并且跟山一步相呼应如果我们是应答方,就需要创建SDP answer

8

接下来是ICE候选者的设置,通过SIP消息收到的SDP信息内有携带ICE候选者信息,我们通过筛选后拿到ICE候选者,并通过peerConnectiong的addIceCandidate方法添加候选者。

9

   ICE候选者设置后peerConnectiong就会自动进行检查并连接,通过代理方法didChangeIceConnectionState我们可以查看ICE连接的状态。还有其他的一些代理方法在此就不给大家一一举例,有兴趣的大家可以下来webRTC.frameWork进行查看。

以上就是webRTC+SIP的大致流程,其中SIP不是很熟悉,所以给大家描述的不是太清楚,有什么疑问欢迎私信。

    以下是一些关键代码的提取地址,如有需要请自取:

1、SipManager  OC 语言,用于接收SIP信息。(还有待完善,会及时更新链接)

链接: https://pan.baidu.com/s/1NpdjE56S_XaqIgS31kBjzA 密码: v0hq

2、Cliinterface C 语言,用于直接接收并处理SIP信息。

链接: https://pan.baidu.com/s/1ICUw09XmCMna77ZwjIQgiQ 密码: 9hi6

3、sofiasip.framework 

链接: https://pan.baidu.com/s/1eeT67REjo1NaHsNmYalUTg 密码: j92d

4、WebRTC.framework

链接: https://pan.baidu.com/s/1kE8azhEPpK61l1Vkbfgvnw 密码: 7afg

相关文章

  • iOS 音视频通话及会议1

    iOS webRTC + SIP 协议实现点对点音视频通话。 1、配置,大家需要下载webRTC以及SIP的f...

  • iOS 音视频通话及会议2

    iOS webRTC + webSocket 实现音视频会议 webRTC在上一篇,已经给大家对webRTC做...

  • 国内音视频功能调研

    前言 公司准备开发一个音视频功能的产品,需要实现“1对1音频通话”、“邀请多人进行群会议通话”、用到了IM和音视频...

  • iOS下WebRTC音视频通话(二)-局域网内音视频通话

    这里是iOS 下WebRTC音视频通话开发的第二篇,在这一篇会利用一个局域网内音视频通话的例子介绍WebRTC中常...

  • 由WebRTC谈起

    本篇主要介绍笔者在iOS开发中使用WebRTC实现音视频通话功能涉及的相关技术,主要包括:1)Socket2)...

  • 音视频内容

    音视频 目的 数据来源及去向 具体执行过程 参考其他简书内容 iOS音视频开发闲谈(理论步骤)iOS音频播放(一)...

  • 音视频主流SDK

    音视频SDK包括很多内容,包括直播、点播、视频会议、多人视频、IM通话等功能,下面分析下主流音视频SDK在直播模块...

  • WebRTC实现简单音视频通话功能

    1 WebRTC音视频通话功能简介 本文介绍如何基于WebRTC快速实现一个简单的实时音视频通话。 在开始之前,您...

  • WebRTC-ios 跨平台音视频通话

    WebRTC-ios 跨平台音视频通话 https://www.jianshu.com/p/d5489a8fe2a9

  • 我走丢了

    昨天想在微读书群中开个会,点开语音通话栏,底部出现一行提示:“使用企业微信发起通话,支持300人音视频会议,可共享...

网友评论

      本文标题:iOS 音视频通话及会议1

      本文链接:https://www.haomeiwen.com/subject/mbdlbltx.html