视频交互、视频会议、语音对讲、IM、开户等软件的基本流程和开发指南

来源:互联网 发布:爱淘宝一元购物券 编辑:程序博客网 时间:2024/04/30 05:51

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

     以下以AnyChat视频呼叫业务逻辑为例说明:

 

1、业务逻辑流程图

    请参考http://bbs.anychat.cn/forum.php?mod=viewthread&tid=150&extra=page%3D1

 

2、API接口及常量定义

客户端相关API接口及事件回调:

//视频通话消息通知回调函数定义

typedefvoid (CALLBACK * BRAC_VideoCallEvent_CallBack)(DWORD dwEventType, DWORDdwUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr,LPVOID lpUserValue);

 

//设置视频通话消息通知回调函数

BRAC_APIDWORD BRAC_SetVideoCallEventCallBack(BRAC_VideoCallEvent_CallBack lpFunction,LPVOID lpUserValue);

 

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

BRAC_APIDWORD BRAC_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORDdwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);

 

服务器相关API接口及事件回调:

//视频通话消息通知回调函数定义

typedefDWORD (CALLBACK * BRAS_OnVideoCallEvent_CallBack)(DWORD dwEventType, DWORDdwSrcUserId, DWORD dwTarUserId, DWORD dwErrorCode, DWORD dwFlags, DWORDdwParam, LPCTSTR lpUserStr, LPVOID lpUserValue);

 

//设置视频通话消息通知回调函数

BRAS_APIDWORD BRAS_SetOnVideoCallEventCallBack(BRAS_OnVideoCallEvent_CallBacklpFunction, LPVOID lpUserValue=NULL);

 

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

BRAS_APIDWORD BRAS_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORDdwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr);

 

常量定义

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

#defineBRAS_VIDEOCALL_EVENT_REQUEST 1 ///< 呼叫请求

#defineBRAS_VIDEOCALL_EVENT_REPLY 2 ///< 呼叫请求回复

#defineBRAS_VIDEOCALL_EVENT_START 3 ///< 视频呼叫会话开始事件

#defineBRAS_VIDEOCALL_EVENT_FINISH 4 ///< 挂断(结束)呼叫会话

 

3、相关说明

3.1、客户端API(BRAC_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)指令,强制挂断指定用户的通话;

 

3.6、API接口中的dwParam(整型)、lpUserStr(字符串)均为用户自定义用途;

 

3.7、一个用户同时只能发起一路呼叫请求,也同时只能被一个用户呼叫;

 

3.8、视频呼叫业务流程可以脱离业务服务器,由核心服务器独立支撑,可以不需要在服务器端进行二次开发。

��������&�4�&即将改变传统的个人之间,企业之间行业即时通讯交流!AnyChatSDK的高品质性为多数行业和企业更加高效通讯,跨平台性为各种终端之间的交流提供了可能性!
0 0
原创粉丝点击