在线客服 视频呼叫业务逻辑详解

视频呼叫业务逻辑主要实现两个终端(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、视频呼叫业务流程可以脱离业务服务器,由核心服务器独立支撑,可以不需要在服务器端进行二次开发。

时间: 2024-09-30 14:28:25

在线客服 视频呼叫业务逻辑详解的相关文章

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

  视频呼叫业务逻辑主要实现两个终端PC.手机.Pad等之间的通话请求流程控制包括请求Request.回复Reply.开始Start以及结束Finish等过程可以形象理解为打电话的流程拨号.等待.通话.挂断. 以下以AnyChat视频呼叫业务逻辑为例说明 1.业务逻辑流程图 请参考http://bbs.anychat.cn/forum.php?mod=viewthread&tid=150&extra=page%3D1 2.API接口及常量定义 客户端相关API接口及事件回调 //视频通话消

即时通讯技术 好友列表业务逻辑详解

在IM通讯中,通常需要管理自己的小伙伴,经常联系的,重要的用户需要标识在同一用户列表里,方便自己快速联系以及查看好友动态.那么如何可以做到类似QQ的好友列表功能呢,如 大厅好友解决方案包括: 1.业务服务器可以设置用户的好友列表,客户端可以获得好友列表,不需要进入房间: 2.客户端可以获得好友上线.下线的状态通知: 3.业务服务器可以自定义设置用户的任意属性(如名称.签名.性别.备注等)并能同步到客户端,客户端可以获取业务服务器自定义的用户属性: 下面以一款在市面上功能强大的SDK为例做功能实现

即时通讯 好友列表业务逻辑详解

在IM通讯中,通常需要管理自己的小伙伴,经常联系的,重要的用户需要标识在同一用户列表里,方便自己快速联系以及查看好友动态.那么如何可以做到类似QQ的好友列表功能呢,如 大厅好友解决方案包括: 1.业务服务器可以设置用户的好友列表,客户端可以获得好友列表,不需要进入房间: 2.客户端可以获得好友上线.下线的状态通知: 3.业务服务器可以自定义设置用户的任意属性(如名称.签名.性别.备注等)并能同步到客户端,客户端可以获取业务服务器自定义的用户属性: 下面以一款在市面(佰锐上科技)功能强大的SDK为

业务逻辑详解

不同的项目有不同的功能,不同的功能需要不同的实现,实现这些核心功能的代码就叫业务逻辑 比如让你实现一个功能,给你两个数,让你获取它的和,你所写的如何才能获得任意给定的两个数的和,这个程序实现过程即可成为业务逻辑处理. "一个人了解的业务逻辑越多越细,他就是越好的需求分析师." 难题:什么是业务逻辑? 业务是指一个实体单元向另一个实体单元提供的服务.逻辑是指根据已有的信息推出合理的结论的规律. 业务逻辑是指一个实体单元为了向另一个实体单元提供服务,应该具备的规则与流程. 就像你家的规矩–

企业需要在线客服系统的三大理由

对于企业网络营销而言,在线客服软件相较于其他即时通讯工具有着得天独厚的优势,在线客服软件作为网页版的即时通讯软件,实现了与企业网站的无缝连接,为客户提供便捷快速的沟通渠道,让企业网络营销更得心应手. 在线客服软件无需浏览网站的访客安装任何软件就能让访客与客户人员直接交流,而且作为企业,只需向在线客服软件的开发者申请账户,然后就能获取一段代码,将代码嵌入到企业网站的网页中,然后通过申请的账号登陆在线客服软件就能通过在线客服软件接待客户.在线客服对于企业的营销作用主要体现在以下几个方面. 1 拓宽销

使用 WPF+ ASP.NET MVC 开发 在线客服系统 (一)

近段时间利用业余时间开发了一套在线客服系统,期间遇到过大大小小不少问题,好在都一一解决,最终效果也还可以,打算写一个系列的文章把开发过程详细的记录下来. 希望能够和更多的开发人员互相交流学习,也希望有有兴趣的小伙伴一起加入开发当中来,毕竟一个人的力量是有限的 :) 有兴趣的小伙伴请加Q:279060597 系列文章将分为几个部分 零.概述(本篇) 一.需求分析及技术方案初步选型 二.技术方案选型,验证 三.底层框架设计,开发 四.服务器设计开发 五.客户端设计开发 六.Web端设计开发 在这个系

在线客服系统 开发实战系列(一:需求分析及技术方案初步选型)

在这个系列的文章里,我将尝试一步一步开发一套功能完备的在线客服系统,并最终将其开源在 Git 上,欢迎关注. 鉴于水平限制,难免有所疏漏,欢迎批评指正. 文章将分为几个部分 一.需求分析及技术方案初步选型 二.技术方案选型,验证 三.底层框架设计,开发 四.服务器设计开发 五.客户端设计开发 六.Web端设计开发 在这个系列的文章中,您将了解并学习到以下技术知识: MSMQ.YUI.WebSocket.WinForms 如果这些技术对您有用,还请您 推荐 一下本文章,谢谢! 首先我们大概看看什么

开源在线客服系统开发实战(一:初步需求分析与技术选型)

(已移除参考产品链接) 在这个系列的文章里,我将尝试一步一步开发一套功能完备的在线客服系统,并将其开源在 Git 上,欢迎关注. 目前进度:开发框架初步搭建,技术验证DEMO,Git 地址随后附上,敬请关注. 鉴于水平限制,难免有所疏漏,欢迎批评指正. 文章将分为几个部分 一.需求分析及技术方案初步选型 二.技术方案选型,验证 三.底层框架设计,开发 四.服务器设计开发 五.客户端设计开发 六.Web端设计开发 在这个系列的文章中,您将了解并学习到以下技术知识: MSMQ.YUI.WebSock

即插即用、开源在线客服系统——PPMessage

PPMessage 是一个开源的在线客服平台.PPMessage能够帮助你在第一时间与你的客户建立联系,开发人员可以非常容易的将 PPMessage 集成到你的网站或者 iOS.Android 的应用中.PPMessage 的前端后端都是开源的,后端全部基于 Python,简洁高效.前端根据不同平台提供原生的SDK. 基于 PPMessage 还能实现私有的"微信"功能,在企业内部或者私有云上建立自主的"微信"服务器:也可以将 PPMessage 与企业业务系统整合