多方通话
本章小节:
创建多方通话

图 1. 创建多方通话过程
1 |
UI 调用 Mtc_ConfIvtUserLst 接口,发起邀请多个参与者建立多方通话的操作。
注意: 在调用 Mtc_ConfIvtUserLst 先要创建多方通话。UI 先调用 Mtc_ConfCreate 申请多方通话资源, 在创建会议前先要通过 Mtc_ConfDbSetFactUri 接口设置好正确的会议的地址。 |
2 |
SDK 向服务器发送 INVITE 请求。 |
3 |
服务器响应 180 Ringing。 |
4 |
SDK 通过 Mtc_ConfCbSetAlerted 回调上报多方通话振铃事件。 |
5 |
UI 更新界面,显示多方通话已经振铃。 |
6 |
服务器响应 200 OK。 |
7 |
SDK 和服务器开始发送、接收 RTP/SRTP 流。 |
8 |
SDK 通过 Mtc_ConfCbSetConned 回调接口上报多方通话建立成功事件。 |
9 |
UI 更新界面,显示多方通话建立成功。 |
表 1. 创建多方通话过程说明
同意加入多方通话

图 2. 同意加入多方通话过程
1 |
SDK 收到服务器发来的 INVITE 请求。 |
2 |
SDK通过 Mtc_ConfCbSetIncoming 回调通知界面收到多方通话邀请,界面可以通过Mtc_ConfGetInitiatorUri 接口获取是谁邀请你加入多方通话。 |
3 |
UI 更新界面,显示收到多方通话邀请。 |
4 |
SDK 向服务器发送 100 Trying。 |
5 |
SDK 向服务器发送 180 Ringing。 |
6 |
UI 调用 Mtc_ConfAcpt 接口,接受多方通话邀请。
|
7 |
SDK 向服务器发送 200 OK。 |
8 |
服务器向 SDK 发送 ACK。 |
9 |
SDK 和服务器开始发送、接收 RTP/SRTP 流。 |
10 |
SDK 通过 Mtc_ConfCbSetConned 回调接口上报多方通话建立成功事件。 |
11 |
UI 更新界面,显示多方通话建立成功。 |
表 2. 同意加入多方通话过程说明
拒绝加入多方通话

图 3. 拒绝加入多方通话过程
1 |
SDK 收到服务器发来的 INVITE 请求。 |
2 |
SDK 通过 Mtc_ConfCbSetIncoming 回调上报收到多方通话邀请,界面可以通过 Mtc_ConfGetInitiatorUri 接口获取到邀请你加入多方通话的URI地址。 |
3 |
UI 更新界面,显示收到多方通话邀请。 |
4 |
SDK 向服务器发送 100 Trying。 |
5 |
SDK 向服务器发送 180 Ringing。 |
6 |
UI 调用 Mtc_ConfTerm 接口,拒绝加入多方通话。
|
7 |
SDK 向服务器发送 603 Decline 请求。 |
8 |
服务器响应 200 OK,结束多方通话。 |
表 3. 拒绝加入多方通话过程说明
终止多方通话

图 4. 终止多方通话过程
1 |
界面调用 Mtc_ConfTerm 接口,主动发起终止多方通话。
|
2 |
SDK 向服务器发送 BYE 请求。 |
3 |
服务器响应 200 OK,会议结束。 |
表 4. 终止多方通话过程说明
被动终止多方通话

图 5. 被动终止多方通话过程
1 |
U服务器向 SDK 发送 BYE 请求。 |
2 |
SDK 通过 Mtc_ConfCbSetDisced 回调上报被踢出多方通话事件。 |
3 |
UI 更新界面,显示多方通话被终止。 |
4 |
SDK响应 200 OK,多方通话结束。 |
表 5. 被动终止多方通话过程说明
多方通话中加人

图 6. 多方通话中加人过程
1 |
UI 调用 Mtc_ConfIvtUser 接口,在多方通话过程中发起邀请参与者的操作。
|
2 |
SDK 向服务器发送 REFER 消息。 |
3 |
服务器响应 202 Accepted。 |
4 |
SDK 通过 Mtc_ConfCbSetIvtAcpt 回调上报邀请参与者处理已被服务器接受,服务器会去邀请参与者。 |
5 |
UI 更新界面,显示邀请参与者已被接受。 |
6 |
服务器向 SDK 发送 NOTIFY 通知。 |
7 |
SDK 响应 200 OK。 |
8 |
SDK 通过 Mtc_ConfCbSetPtptUpdt 回调上报参与者状态更新,下列就是回调的参数说明。
MTC_CONF_PARTP_STATE_PENDING 处于悬挂状态未加入会议。 MTC_CONF_PARTP_STATE_CONNED 已经加入会议。 MTC_CONF_PARTP_STATE_DISCED 已经退出会议。 |
9 |
UI 更新界面,显示参与者状态。 |
表 6. 多方通话中加人过程说明
多方通话中踢人

图 7. 多方通话中踢人过程
1 |
UI 调用 Mtc_ConfKickUser 接口,发起踢掉参与者的操作。
|
2 |
SDK 向服务器发送 REFER。 |
3 |
服务器响应 202 Accepted。 |
4 |
SDK 通过 Mtc_ConfCbSetKickAcpt 回调上报界面踢掉参与者处理已被服务器接受,服务器会去处理。 |
5 |
UI 更新界面,显示踢掉参与者已被服务器接受。 |
6 |
服务器向 SDK 发送 NOTIFY 通知。 |
7 |
SDK 响应 200 OK。 |
8 |
SDK 通过 Mtc_ConfCbSetPtptUpdt 回调上报参与者状态更新,下列就是回调的参数说明。
MTC_CONF_PARTP_STATE_PENDING 处于悬挂状态未加入会议 MTC_CONF_PARTP_STATE_CONNED 已经加入会议 MTC_CONF_PARTP_STATE_DISCED 已经退出会议 |
9 |
UI 更新界面,显示参与者状态。 |
表 7. 多方通话中踢人过程说明
多方通话取消

图 8. 多方通话取消过程
1 |
UI 调用 Mtc_ConfIvtUserLst 接口,发起邀请多个参与者建立多方通话的操作。
注意: 在调用 Mtc_ConfIvtUserLst 先要创建多方通话。GUI 先调用 Mtc_ConfCreate 申请多方通话资源, 在创建会议前先要通过 Mtc_ConfDbSetFactUri 接口设置好正确的会议的地址。 |
2 |
SDK 向服务器发送 INVITE 请求。 |
3 |
服务器响应 100 Trying。 |
4 |
服务器响应 180 Ringing。 |
5 |
SDK 通过 Mtc_ConfCbSetAlerted 回调上报多方通话振铃事件。 |
6 |
UI 更新界面,显示多方通话已经振铃。 |
7 |
UI 调用 Mtc_ConfTerm 接口,取消多方通话邀请。
|
8 |
SDK 向服务器发送 BYE 请求。 |
9 |
服务器响应 200 OK。 |
10 |
服务器向 SDK 发送 487 Request Terminated。 |
11 |
SDK 响应 ACK, 结束多方通话。 |
表 8. 多方通话取消过程说明
多方通话中出现异常出错处理

图 9. 多方通话中出现异常出错处理过程
1 |
当多方通话处理中异常出错时,SDK通过 Mtc_ConfCbSetError 设置的回调通知界面 |
2 |
SDK 上报通话被终止事件。 |
3 |
当出现异常错误时,界面应该结束多方通话,并调用 Mtc_ConfTerm 接口。 |
表 9. 多方通话中出现异常出错处理过程说明
多方通话订阅与通知

图 10. 多方通话订阅与通知过程
1 |
SDK 向服务器发送 SIP SUBSCRIBE 订阅会议。 |
2 |
服务器响应 SIP 200 OK。 |
3 |
服务器向 SDK 发送 SIP NOTIFY 通知会议中人员状态信息。 |
4 |
SDK 通过 Mtc_ConfCbSetPtptUpdt 回调上报参与者状态更新,下列就是回调的参数说明。
MTC_CONF_PARTP_STATE_PENDING 处于悬挂状态未加入会议。 MTC_CONF_PARTP_STATE_CONNED 已经加入会议。 MTC_CONF_PARTP_STATE_DISCED 已经退出会议。 |
5 |
SDK 响应 SIP 200 OK。 |
6 |
界面更新会议成员信息。 |
表 10. 多方通话订阅与通知过程说明