標籤:視頻 二次開發 視訊通話 音視頻解決方案 線上客服 系統 音視頻 sdk
視訊通話商務邏輯主要實現兩個終端(PC、手機、Pad等)之間的通話請求流程式控制制,包括請求(Request)、回複(Reply)、開始(Start)以及結束(Finish)等過程,可以形象理解為打電話的流程:撥號、等待、通話、掛斷。
以下以Chat視訊通話商務邏輯為例說明:
1、商務邏輯流程圖
請參考 http://bbs.anychat.cn/forum.php?mod=viewthread&tid=150&extra=page%3D1
2、API介面及常量定義
用戶端相關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);
常量定義
/ 視訊通話事件類型定義(API:BRAS_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、用戶端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、視訊通話商務程序可以脫離商務服務器,由核心伺服器獨立支撐,可以不需要在伺服器端進行二次開發。
線上客服 視訊通話商務邏輯詳解