视频通过的流程API调用操作控制

视频呼叫事务逻辑首要完成两个终端(PC、手机、Pad等)之间的通话恳求流程操控,包含恳求(Request)、回复(Reply)、开端(Start)以及完毕(Finish)等进程,能够形象理解为打电话的流程:拨号、等候、通话、挂断。

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

1、事务逻辑流程图

请参阅http://bbs.anychat.cn/forum.php?mod=viewthread&tid=150&extra=page=1

2、API接口及常量界说

客户端有关API接口及事情回调:

// 视频通话音讯告诉回调函数界说

typedef void (CALLBACK *BRAC_VideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwUserId, DWORDdwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTR lpUserStr, LPVOIDlpUserValue);

// 设置视频通话音讯告诉回调函数

BRAC_API DWORDBRAC_SetVideoCallEventCallBack(BRAC_VideoCallEvent_CallBack lpFunction, LPVOIDlpUserValue);

// 视频呼叫事情操控(恳求、回复、挂断等)

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

服务器有关API接口及事情回调:

// 视频通话音讯告诉回调函数界说

typedef DWORD (CALLBACK *BRAS_OnVideoCallEvent_CallBack)(DWORD dwEventType, DWORD dwSrcUserId, DWORDdwTarUserId, DWORD dwErrorCode, DWORD dwFlags, DWORD dwParam, LPCTSTRlpUserStr, LPVOID lpUserValue);

// 设置视频通话音讯告诉回调函数

BRAS_API DWORDBRAS_SetOnVideoCallEventCallBack(BRAS_OnVideoCallEvent_CallBack lpFunction,LPVOID lpUserValue=NULL);

// 视频呼叫事情操控(恳求、回复、挂断等)

BRAS_API DWORDBRAS_VideoCallControl(DWORD dwEventType, DWORD dwUserId, DWORD dwErrorCode,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、视频呼叫事务流程能够脱离事务服务器,由中心服务器独立支持,能够不需要在服务器端进行二次开发。

时间: 2024-08-15 05:36:53

视频通过的流程API调用操作控制的相关文章

novaclient的api调用流程与开发

novaclient的api调用流程与开发 2015年07月05日 19:27:17 qiushanjushi 阅读数:3915 http://blog.csdn.net/tpiperatgod/article/details/18375387?utm_source=tuicool 另一个地址:http://neuromancer.sinaapp.com/?p=64 从nova client的入口查看 cat /usr/bin/nova [python] view plaincopy #!/us

Facebook Oauth2.0 API调用方法

这些天搞了下Facebook API的东东,在官方网站下弄了一些接口,下面简单的把facebook的调用流程以及常用接口书序一下 :-)  当然在使用facebook api之前要有facebook账号以及在facebook上注册一个自己的应用  1.登录鉴权 https://graph.facebook.com/oauth/authorize?client_id=8888888888888&redirect_uri=http://www.mywebsite.com&scope=user_

PHP实现人人OAuth登录和API调用

人人开放平台给出的PHP SDK,个人感觉写的不怎么样,而且在我的电脑上运行不出来,总是113错误,查文档竟然还没有这个错误码,于是只好自己按照官方给出的文档,用PHP自己实现了一下.代码如下文,没有作封装,只是走了一下流程.如果是仅仅用于人人连接这样的登录验证和简单的API调用,也不是很有必要封装.作为使用人人API的一个PHP示范吧.自己写代码的过程中也参考了官网的SDK代码和DEMO代码. 说明: 1.使用了HttpClient类发起Get和Post请求,文件下载地址http://scri

IOS视频软件开发流程以及源码

因为工作需要制作一个带即时音视频通话功能的 iOS项目APP,借此机会和大家分享心得. 早前忙于工作都没时间去研究音视频通话这方面的技术,对音视频通话技术一无所知,不知道从何入手.然后我就上网搜索了一番,网上的信息真是"海量"啊,我要花很大的力气去查看和要去试用它,看它的功能和实用性是否适合我这类菜鸟型用户. 经过网上搜索筛选了有几种音视频通话品牌,例如ArrowIM 的,奇普嘉的,AnyChat 的,JST 即时通讯的等等. 我查看很多他们相关的信息,觉得选用 AnyChat品牌的比

【Qt系列】基于Qt的词典开发系列&lt;八&gt;--用户登录及API调用的实现

在上一篇文章<调用网络API>中,我只讲述了如何直观的使用API接口以及调用API后返回的结果,本文则从程序实现的角度来实现API的调用,当然本程序的实现也是借助于扇贝网的API接口文档http://www.shanbay.com/help/developer/api/. 由API文档可知,要想调用其API,必须先注册.因此,我就注册了,账户名为nineheadedbird, 密码为123456.显然,我们要查词,首先必须得登录该账户.如果用浏览器,那就很简单,只需单纯的输入用户名和密码就可以

ios/安卓:api调用证件识别

安卓ios.api调用证件识别支持的证件类型:身份证.行驶证.驾驶证.护照.回乡证.港澳通行证等常见证件类以及银行卡.车牌.营业执照等非证件类. 安卓ios.api调用证件识别组成:Android.ios.服务器端 一.安卓ios.api调用证件识别 安卓ios.api调用证件识别提供体验 安卓ios.api调用证件识别,识别率高,识别速度快,身份证识别率高达 98%,识别速度小于1s--扫一扫,识别信息,采用视频识别,像扫二维码一样 证件的读取,以往广泛应用方式为pc端的读卡/读证件的设备,随

翻译api调用

<?php function language($value,$from="auto",$to="auto") { $value_code=urlencode($value); #首先对要翻译的文字进行 urlencode 处理 $appid="YourApiKey"; #您注册的API Key $languageurl = "http://openapi.baidu.com/public/2.0/bmt/translate?cl

(转)Sphinx中文分词安装配置及API调用

这几天项目中需要重新做一个关于商品的全文搜索功能,于是想到了用Sphinx,因为需要中文分词,所以选择了Sphinx for chinese,当然你也可以选择coreseek,建议这两个中选择一个,暂时不要选择原版Sphinx(对中文的支持不是很好).又因为服务器所用 MySQL在当时编译时并没有编译Sphinx扩展,而重新编译MySQL并加入Sphinx暂时又无法实现(项目用到了多台服务器,在不影响现有业务的 情况下不可能去重新编译MySQL的),所以采用的是程序通过API来外部调用Sphin

Hbase java API 调用详解

Hbase java API 调用 一. hbase的安装 参考:http://blog.csdn.net/mapengbo521521/article/details/41777721 二.hbase访问方式 Native java api:最常规最高效的访问方式. Hbase shell:hbase的命令行工具,最简单的接口,适合管理员使用 Thrift gateway:利用thrift序列化结束支持各种语言,适合异构系统在线访问 Rest gateway:支持rest风格的http api