1. 程式人生 > >視訊互動、視訊會議、語音對講、IM、開戶等軟體的基本流程和開發指南

視訊互動、視訊會議、語音對講、IM、開戶等軟體的基本流程和開發指南

視訊呼叫業務邏輯主要實現兩個終端(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的高品質性為多數行業和企業更加高效通訊,跨平臺性為各種終端之間的交流提供了可能性!