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秒发送一次)


wanghl
0 声望0 粉丝

actor im 相关技术研究


引用和评论

0 条评论