Docs
Resources
Tools
News
to top

会话管理

多方通话

本章小节:

创建多方通话

start confer creat

图 1. 创建多方通话过程

1

UI 调用 Mtc_ConfIvtUserLst 接口,发起邀请多个参与者建立多方通话的操作。

  • dwConfId 多方通话的 ID。
  • dwCookie 用户设置的 Cookie 值。
  • dwPartpLstId 用户调用 Mtc_PartpLstCreate 创建成员列表并调用 Mtc_PartpLstAddPartp 可以添加成员。

注意: 在调用 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. 创建多方通话过程说明

同意加入多方通话

start to confer accept

图 2. 同意加入多方通话过程

1

SDK 收到服务器发来的 INVITE 请求。

2

SDK通过 Mtc_ConfCbSetIncoming 回调通知界面收到多方通话邀请,界面可以通过Mtc_ConfGetInitiatorUri 接口获取是谁邀请你加入多方通话。

3

UI 更新界面,显示收到多方通话邀请。

4

SDK 向服务器发送 100 Trying。

5

SDK 向服务器发送 180 Ringing。

6

UI 调用 Mtc_ConfAcpt 接口,接受多方通话邀请。

  • dwConfId 会议的 ID
  • zCookie 用户设置的 Cookie 值也可以为NULL
7

SDK 向服务器发送 200 OK。

8

服务器向 SDK 发送 ACK。

9

SDK 和服务器开始发送、接收 RTP/SRTP 流。

10

SDK 通过 Mtc_ConfCbSetConned 回调接口上报多方通话建立成功事件。

11

UI 更新界面,显示多方通话建立成功。

表 2. 同意加入多方通话过程说明

拒绝加入多方通话

start confer decline

图 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 接口,拒绝加入多方通话。

  • dwConfId 会议的 ID。
  • dwReason 为 EN_MTC_CALL_TERM_REASON_DECLINE。
7

SDK 向服务器发送 603 Decline 请求。

8

服务器响应 200 OK,结束多方通话。

表 3. 拒绝加入多方通话过程说明

终止多方通话

start to confer term

图 4. 终止多方通话过程

1

界面调用 Mtc_ConfTerm 接口,主动发起终止多方通话。

  • dwConfId 多方通话的ID。
  • dwReason EN_MTC_CALL_TERM_REASON_NORMAL。
2

SDK 向服务器发送 BYE 请求。

3

服务器响应 200 OK,会议结束。

表 4. 终止多方通话过程说明

被动终止多方通话

start to confer termed

图 5. 被动终止多方通话过程

1

U服务器向 SDK 发送 BYE 请求。

2

SDK 通过 Mtc_ConfCbSetDisced 回调上报被踢出多方通话事件。

3

UI 更新界面,显示多方通话被终止。

4

SDK响应 200 OK,多方通话结束。

表 5. 被动终止多方通话过程说明

多方通话中加人

start to confer add

图 6. 多方通话中加人过程

1

UI 调用 Mtc_ConfIvtUser 接口,在多方通话过程中发起邀请参与者的操作。

  • dwConfId 会议的ID。
  • pcUri 邀请成员的URI地址。
2

SDK 向服务器发送 REFER 消息。

3

服务器响应 202 Accepted。

4

SDK 通过 Mtc_ConfCbSetIvtAcpt 回调上报邀请参与者处理已被服务器接受,服务器会去邀请参与者。

5

UI 更新界面,显示邀请参与者已被接受。

6

服务器向 SDK 发送 NOTIFY 通知。

7

SDK 响应 200 OK。

8

SDK 通过 Mtc_ConfCbSetPtptUpdt 回调上报参与者状态更新,下列就是回调的参数说明。

  • dwConfId 对应的会议ID。
  • pcUri 对应的参与者的URI地址。
  • dwState 对应的参与者的状态, 参与者状态包括下列值:
  • MTC_CONF_PARTP_STATE_PENDING 处于悬挂状态未加入会议。

    MTC_CONF_PARTP_STATE_CONNED 已经加入会议。

    MTC_CONF_PARTP_STATE_DISCED 已经退出会议。

9

UI 更新界面,显示参与者状态。

表 6. 多方通话中加人过程说明

多方通话中踢人

start to confer expel

图 7. 多方通话中踢人过程

1

UI 调用 Mtc_ConfKickUser 接口,发起踢掉参与者的操作。

  • dwConfId 会议的ID。
  • pcUri 被踢成员的URI地址。
2

SDK 向服务器发送 REFER。

3

服务器响应 202 Accepted。

4

SDK 通过 Mtc_ConfCbSetKickAcpt 回调上报界面踢掉参与者处理已被服务器接受,服务器会去处理。

5

UI 更新界面,显示踢掉参与者已被服务器接受。

6

服务器向 SDK 发送 NOTIFY 通知。

7

SDK 响应 200 OK。

8

SDK 通过 Mtc_ConfCbSetPtptUpdt 回调上报参与者状态更新,下列就是回调的参数说明。

  • dwConfId 对应的会议ID。
  • pcUri 对应的参与者的URI地址。
  • dwState 对应的参与者的状态, 参与者状态包括下列值:
  • MTC_CONF_PARTP_STATE_PENDING 处于悬挂状态未加入会议

    MTC_CONF_PARTP_STATE_CONNED 已经加入会议

    MTC_CONF_PARTP_STATE_DISCED 已经退出会议

9

UI 更新界面,显示参与者状态。

表 7. 多方通话中踢人过程说明

多方通话取消

start to confer cancel

图 8. 多方通话取消过程

1

UI 调用 Mtc_ConfIvtUserLst 接口,发起邀请多个参与者建立多方通话的操作。

  • dwConfId 多方通话的ID。
  • dwCookie 用户设置的Cookie值
  • dwPartpLstId 用户调用 Mtc_PartpLstCreate 创建成员列表并 调用 Mtc_PartpLstAddPartp 可以添加成员。

注意: 在调用 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 接口,取消多方通话邀请。

  • dwConfId 会议的ID。
  • dwReason EN_MTC_CALL_TERM_REASON_NORMAL。
8

SDK 向服务器发送 BYE 请求。

9

服务器响应 200 OK。

10

服务器向 SDK 发送 487 Request Terminated。

11

SDK 响应 ACK, 结束多方通话。

表 8. 多方通话取消过程说明

多方通话中出现异常出错处理

start to confer error

图 9. 多方通话中出现异常出错处理过程

1

当多方通话处理中异常出错时,SDK通过 Mtc_ConfCbSetError 设置的回调通知界面

2

SDK 上报通话被终止事件。

3

当出现异常错误时,界面应该结束多方通话,并调用 Mtc_ConfTerm 接口。

表 9. 多方通话中出现异常出错处理过程说明

多方通话订阅与通知

start to confer subs

图 10. 多方通话订阅与通知过程

1
SDK 向服务器发送 SIP SUBSCRIBE 订阅会议。
2
服务器响应 SIP 200 OK。
3
服务器向 SDK 发送 SIP NOTIFY 通知会议中人员状态信息。
4

SDK 通过 Mtc_ConfCbSetPtptUpdt 回调上报参与者状态更新,下列就是回调的参数说明。

  • dwConfId 对应的会议ID。
  • pcUri 对应的参与者的URI地址。
  • dwState 对应的参与者的状态, 参与者状态包括下列值:
  • MTC_CONF_PARTP_STATE_PENDING 处于悬挂状态未加入会议。

    MTC_CONF_PARTP_STATE_CONNED 已经加入会议。

    MTC_CONF_PARTP_STATE_DISCED 已经退出会议。

5
SDK 响应 SIP 200 OK。
6
界面更新会议成员信息。

表 10. 多方通话订阅与通知过程说明

Juphoon © 2015 中文(简体)
关于我们 JusTalk 开发人员 招聘 隐私政策