音视频即时通讯—视频呼叫业务逻辑流程

时间:2023-01-02 19:11:38 阅读: 最新文章 文档下载
说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。
音视频即时通讯—视频呼叫业务逻辑流程

视频呼叫业务逻辑主要实现两个终端(PC、手机、Pad等)之间的通话请求流程控制,包括请求(Request)、回复(Reply)、开始(Start)以及结束Finish)等过程,可以形象理解为打电话的流程:拨号、等待、通话、挂断。

以下以AnyChat视频呼叫业务逻辑为例说明: 1、业务逻辑流程图 请参考

http://bbs.anychat.cn/forum.php?mod=viewthread&tid=150&extra=page%3D1 2API接口及常量定义

客户端相关API接口及事件回调: // 视频通话消息通知回调函数定义

typedef void (CALLBACK * BRAC_VideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOID lpUserValue); // 设置视频通话消息通知回调函数 BRAC_API DWORD

BRAC_SetVideoCallEventCallBack(BRAC_VideoCallEvent_CallBack lpFunction, LPVOID lpUserValue);

// 视频呼叫事件控制(请求、回复、挂断等)

BRAC_API DWORD BRAC_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);

服务器相关API接口及事件回调: // 视频通话消息通知回调函数定义

typedef DWORD (CALLBACK * BRAS_OnVideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwSrcUserId, DWORD dwTarUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOID lpUserValue); // 设置视频通话消息通知回调函数


BRAS_API DWORD

BRAS_SetOnVideoCallEventCallBack(BRAS_OnVideoCallEvent_CallBack lpFunction, LPVOID lpUserValue=NULL);

// 视频呼叫事件控制(请求、回复、挂断等)

BRAS_API DWORD BRAS_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr); 常量定义

/ 视频呼叫事件类型定义(APIBRAS_VideoCallControl 传入参数、OnVideoCallEvent回调参数)

#define BRAS_VIDEOCALL_EVENT_REQUEST 1 ///< 呼叫请求 #define BRAS_VIDEOCALL_EVENT_REPLY 2 ///< 呼叫请求回复 #define BRAS_VIDEOCALL_EVENT_START 3 ///< 视频呼叫会话开始事件 #define BRAS_VIDEOCALL_EVENT_FINISH 4 ///< 挂断(结束)呼叫会话 3、相关说明

3.1、客户端APIBRAC_VideoCallControl)和回调函数

BRAC_VideoCallEvent_CallBack)中的dwUserId均为对方(被呼叫方)的用ID

3.2、被呼叫方拒绝通话时,发送回复(Reply)指令,dwErrorCode=100104

3.3、被呼叫方同意通话时,发送回复(Reply)指令,dwErrorCode=0,然后服务器会向双方发送通话开始(Start)指令,dwParam=RoomId,房间号由核心服务器自动分配;

3.4、结束通话时,任何一方(包括业务服务器)均可以发送结束Finish)指令,然后服务器会向双方发送通话结束(Finish)指令; 3.5、业务服务器可干预呼叫流程:在BRAS_OnVideoCallEvent_CallBack到呼叫请求指令后,返回0表示允许呼叫,否则为出错代码,不允许呼叫;在会话过程中可以发送结束(Finish)指令,强制挂断指定用户的通话;


本文来源:https://www.wddqw.com/doc/7426e3d7971ea76e58fafab069dc5022abea465f.html