1.概述
WebRTC包支持语音和视频通话
2.下行通知(Update)
IncomingCall
CallId attempIndex
提示有呼入(每10秒发送一次)
CallHandled
CallId attempIndex
提示呼入已接听
3.上行请求(RPC)
名称 参数 说明
GetCallInfo
请求:callId
响应:
Peer
Groups
Users
Is[Audio|Video]Only
IsVideoPreferred
获取呼叫信息
DoCall
请求:
Peer
TimeOut
Is[Audio|Video]Only
IsVideoPreferred
响应:
callId
EventBusId
起呼叫.这之后客户端需要发送CallInProgress
UpgradeCall
callId
Peer
升级呼叫,从单聊到群聊
DoCallAgain
callId
User
再次呼叫同一用户
JoinCall
callId
加入已有的呼叫
RejectCall
callId
挂断
OptimizeSDP
请求:
type:Type of SDP (offer or answer)
sdp
ownSetting
theirSetting
响应:
optimizedSDP
优化SDP(会话描述协议)
4.相关结构
4.1.Struct
名称 结构 说明
ICEServer
Url
UserName
credential ICE服务器设置:地址、用户名、密码
AdvertiseSelf PeerSetting 宣告自己成为主控方(Master Mode)
AdvertiseMaster
Server
WebRTCSignling Master发送宣告
Candidate
sessionId
Index
Id
sdp
WebRTCSignling 选举信令
Offer
SessionId
Sdp
OwnSetting
WebRTCSignling 提供信令
Answer
sessionId
Sdp 应答信令
MediaStreamsUpdated
Is[Audio|Video]Enabled
WebRTCSignling 媒体流更新(通知),可以在Offer/Answer之前发送。
NeedOffer
Device (dest id)
sessionId
peerSetting
WebRTCSignling 来自Master的提示:需要Offer
NegotinationSuccessful
Device (dest id)
sessionId
WebRTCSignling 提示协商成功
EnableConnection
Device (dest id)
sessionId
WebRTCSignling 提示激活到peer的连接
OnRenegotiationNeeded
Device (dest id)
sessionId
WebRTCSignling 提示需要重新协商,比如流变更了。
CloseSession
Device (dest id)
sessionId
WebRTCSignling 关闭本次会话
NeedDisconnect
Device (dest id)
sessionId
WebRTCSignling 提示需要断开到对方的连接
ActiveCall
CallId
Peer
Members 活跃中的通话,用于广播当前通话的状态
CallMemberStateHolder
State
fallbackIsRinging
fallbackIsConnected
fallbackIsConnecting
fallbackIsRingingReached
fallbackIsEnded 呼叫成员状态保持者
CallMember
UserId
State 呼叫成员
PeerSettings
is3DESSupported
IsMobile
canBeAudioRelay
canPreConnect 用户设定
4.2.Trait
WebRTCSignaling
4.3.Enum
名称 类型 说明
CallMemberState
RINGING
RINGING_REACHED
CONNECTING
CONNECTED
ENDED
提示有呼入(每10秒发送一次)