最近公司跟腾讯合作,要搞一个视频呼叫服务,业务场景是这样的:客户通过小程序或者H5发起视频呼叫,坐席端接入进行视频通话。原本最初接到该需求的时候,有想法自己搞一个视频呼叫服务,后来经过调研发现,想搞视频,我还是很嫩啊!视频技术不是小公司说搞就能搞的,涉及的技术较广,较深,其中包括视频的处理,压缩,网络传输等技术问题, 要搞视频呼叫,需要从技术到网络资源的一整套方案,所以果断放弃自己开发,开始寻找第三方平台的支持!后来由于考虑到产品主要以小程序为载体,所以找了腾讯来合作(后面跟腾讯签了战略合作协议),顺便说一句,有能力的公司可以自己开发,也可以借助第三方云平台,比如:腾讯云的实时音视频解决方案。
腾讯提供了核心的能力和接口(视频呼叫,即时通讯:文字,图片),以及MQ代理服务。接下来,我们来看一下腾讯提供的接口调用流程图:
流程图解析:
首先该流程图其实包含三部分:微信小程序,腾讯云平台(HTTPS接口,wss接口,MQ接口),接入系统
其中接入系统就是指的我们自己的后台系统。
然后详解流程步骤:
1、小程序端发起视频呼叫,此时腾讯云的消息队列服务就生产了一个消息,等待接入系统来消费;
2、接入系统通过MQ代理服务(就是个get请求)通过消息队列的拉模式来获取待消费的消息(第一次就是为了获取会话id, 后面就是为了获取即时通讯的数据);
3、接入系统受理理赔,此时就是接入系统生产消息(就是个post请求),由腾讯云平台来消费。
4、接入系统生产消息,腾讯云平台成功消费后,会同时给微信小程序和接入系统推送消息,也就是图中4.1.2和3.2.3,此时会话建立起来。后续的文字,图片都是通过此会话来完成
5、会话结束:3.2.7理赔结单,由图可以看出来是接入系统发起结单请求,小程序端间接收到结单消息,此时一个会话结束。
以上就是视频呼叫服务的整个流程,我们可以看到,除了腾讯提供的核心服务外,其实还需要一个坐席端的调度排队系统,这个就要由我们自己的后台系统来实现了。目前我的初步思路是这样的:
1、接入系统(后台)收到呼叫请求后,先把会话id保存起来,可以放入redis
2、利用缓存来判断坐席是否空闲,按照一定的策略来制定调度规则
3、把会话分配给指定的(经过调度的)坐席,其实就是把会话id跟坐席id关联起来,这个建议持久化保存起来
4、会话结束,释放坐席资源,解除会话跟坐席的关联
以上是我在做项目过程中的一个初步总结,可能理解跟实际有所偏差,我会在项目的过程中,逐渐完善对视频呼叫系统的理解,并且及时跟大家分享经验。最终版就等项目完工之日确定。
如果读者您也有过视频呼叫,即时通讯,坐席调度方面的经验,或者正在做相关的项目,欢迎一起交流学习~~~~~~
原文地址:https://www.cnblogs.com/huangjiabo/p/9357705.html