通话状态及通话功能 (Session)
Session 对象为通话实例,用于实现通话状态管理及通话中的相关操作。本文介绍与通话状态及通话功能 (Session 对象) 相关的属性、方法及事件。
属性
属性 | 类型 | 说明 |
---|---|---|
RTCSession | RTCSession | 通话实例。 |
callReport | Report | 通话质量报告。 |
status | CallStatus | 通话状态,包含名字、号码、头像、是否静音等属性。 |
incomingList | Session[] | 来电数组。 |
timer | TimerType | 通话计时器。 |
localStream | MediaStream | 本地媒体流,仅含视频轨,不含音频。 |
remoteStream | MediaStream | 远端媒体流,包含音视频轨。 |
方法
- 方法概览
-
- 停止通话计时
-
方法 stopTimer()
方法参数 空。 返回值 this
- 监听事件
-
方法 on(eventName:string,listener: (...args: any[]) => void)
方法参数 eventName
:事件名称。listener
:回调函数。
返回值 空。 注: 关于可监听的事件,参见 事件。
- 拒接来电
- 该方法等价于 PhoneOperator 对象的拒接来电方法。
- 接听来电
- 该方法等价于 PhoneOperator 对象的接听来电方法。
- 挂断通话
- 该方法等价于 PhoneOperator 对象的挂断通话方法。
- 盲转接通话
- 该方法等价于 PhoneOperator 对象的盲转接通话方法。
- 咨询转接通话
- 该方法等价于 PhoneOperator 对象的咨询转接通话方法。
- 保持通话
- 该方法等价于 PhoneOperator 对象的保持通话方法。
- 恢复通话
- 该方法等价于 PhoneOperator 对象的恢复通话方法。
- 发送 DTMF
- 该方法等价于 PhoneOperator 对象的发送 DTMF 方法。
- 静音通话
- 该方法等价于 PhoneOperator 对象的静音通话方法。
- 取消静音通话
- 该方法等价于 PhoneOperator 对象的取消静音通话方法。
- 开始录音
- 该方法等价于 PhoneOperator 对象的开始录音方法。
- 暂停录音
- 该方法等价于 PhoneOperator 对象的暂停录音方法。
- 结束通话
- 该方法等价于 PhoneOperator 对象的结束通话方法。
- 更新通话状态
-
方法 setStatus(status: Partial<CallStatus>)
方法参数 status
:通话状态对象。返回值 this
- 更新 Session 的静态属性
-
方法 setStaticStatus(staticStatus: Partial<StaticCallStatus>, startManualModel?: boolean)
方法参数 staticStatus
:Session 的静态属性包括name
、avatar
、company
。startManualModel
:可选。是否启用手动模式,启用后将不再自动更新静态属性。
返回值 this
- 销毁 Session 实例
- 此方法将解除所有订阅事件,停止 RTCSession。
事件
事件名称 | 事件说明 | 报告参数 |
---|---|---|
callReport | 通话质量报告更新事件,每3秒更新一次 |
|
streamAdded | 添加媒体流 |
|
ended | 通话结束 |
|
failed | 通话失败 |
|
clientError | 客户端错误,导致无法发起通话 |
|
reinvite | 重新邀请事件,该事件在对端执行咨询转接时触发 |
|
accepted | 收到成功状态响应代码 200 OK |
|
confirmed | 通话正式建立 ( 收到 ack 包 ) |
|
statusChange | 通话状态变更 |
|
staticStatusChange | 通话的静态属性变更 |
|