博舍

如何从零搭建智能外呼场景 智能外呼机器人

如何从零搭建智能外呼场景

本文梳理了搭建智能外呼场景时,具体的5个操作阶段以及4个注意点。

一、前言

智能AI的快速发展,传统呼叫中心也在进行智能化改造,智能外呼本身可以理解为是传统呼叫中心外接了智能AI系统,多了3个模块,智能语音、智能机器人、智能外呼控制台,相较于传统外呼有以下3点优势:

降低人力成本,提升营销效率自动记录交互信息,各环节数据统计话术标准统一,避免营销不规范二、搭建流程

现在市面上也有不少语音机器人,各有特点,那么我们在搭建智能外呼场景时,具体要怎么去操作呢?我将其分为5个阶段:

注:默认系统全部搭建完毕并且已经对接完成,软硬件性能本文中暂不考虑,如延迟、并发等。

1.业务梳理

(1)业务流程:业务专家、机器人训练师、一线客服一起梳理业务流程,根据历史交互信息、客服的工作记录等内容梳理最合适的业务流程。

(2)业务系统交互场景:我们是否需要对接用户系统、付费系统、营销系统等,因为在用户的交互过程中可能需要去查询信息或者直接下单更改业务系统数据,这些都是在进行业务梳理时需要考虑的。

(3)呼叫中心指令:这里主要指的是字段对接,每个字段涉及到一些特殊指令,呼叫中心收到这个指令时就会进行相应的动作,例如放音、挂断、打断、进IVR、转人工等,这个需要双方进行对接测试。

(4)文档输出:目的就是为了方便机器人训练师和开发人员进行机器人配置:流程文档,接口文档,业务知识文档(一问一答、常用业务词、兜底话术等)。

2.构建对话机器人(对话流)

(1)主流程

就是指业务流程,根据梳理的业务流程图进行设计。做的比较不错的外呼厂家可以做到大部分场景界面化配置,无需开发能力,部分特殊场景可能需要代码来控制。

(2)全局流程

可以理解为用户在主流程中可以随时跳到全局流程中,全局流程交互完毕后还能回到主流程中进行之前没有完成的交互。跳回时需要给每个流程配置衔接词,做的比较好的话还可以设置次数和每次跳回回复不同的内容,用不同的话术去引导用户进行回答,而不是同样的内容在重复。

a.知识库设计:最简单的一问一答的形式,无特殊处理,支持跳回主流程。b.特殊流程:根据用户所在的环节,和提问的内容进行特殊处理的流程,主要涉及到放音、挂断、打断、进IVR、转人工。

例如用户说:我要转人工,这个时候就可以播放语音“正在为您转接人工,请稍后”,然后将线路切到人工坐席进行服务。

办理业务需要输入密码时,机器人就可以将这个特殊指令传给呼叫中心,呼叫中心收到这个指令就会转IVR,放音让用户进行按键,完成密码校验后重新回到机器人服务。

(3)话术

包括触发意图和回复内容设置。

a.触发意图设置:没啥好说的,正常的厂家就是穷举或者按照LGF规则去设置,有自己的算法去计算匹配度,达到对应的匹配度就会命中意图走流程。b.回复内容设置:用户听到的标准回复内容,不同的话术可能会带来不同的转化率,这个需要在上线后进行阶段性的规模测试调优,找出最佳话术,或者根据人群进行不同的话术设置。c.特殊指令设置,这个根据实际需要确定,包括和呼叫中心或者业务系统的对接构建的特殊指令。

(4)代码

这块根据实际业务和各个厂家的机器人确定,通过代码控制一些复杂流程。

3.测试

(1)内部测试

构建测试脚本,根据脚本邀请工作人员参与测试。

测试标准:识别率达到***,意图准确率达到***。

a.意图测试:每个意图节点都用意图测试脚本去测试意图是否正常命中b.流程测试:意图命中后,是否正常走流程c.ASR测试:测试识别情况是否达到预期d.TTS测试:测试放音情况是否有错误或者不自然之处

(2)预上线测试

参考内部测试内容,只不过这个测试面向的是批量的用户群,例如每天拨打小几百个,测试1周看效果是否可以达到上线条件。

4.问题分析及优化(循环)

(1)智能部分

1)语音识别

a.发音无问题,音对字不对。那么可以认为其是正确的,只不过要对同音字进行强化处理,简单的来说可以这么去理解,初始的识别模型“衣”和“医”都是相同的权重1,如果是在医学领域,更多情况下翻译成“医”,那么就可以去修改其权重,在出现同样的音时,优先翻译成“医生”。b.发音无问题,对了一部分或者完全不对:可以通过修改需要识别的词汇的权重或者语言模型优化实现,具体操作方式各家的ASR产品有所不同。正常简单的可以界面化训练,复杂的需要开发人员介入。c.发音问题:方言和口语,这种情况可以有2种处理办法,一种是将识别的内容强行配置在意图中(少量内容可以这么处理),如果是大范围的问题,就需要去进行声学模型的定制优化。

2)意图识别

标准问法:

a.看是否串了意图,其他对话流是否出现了这个意图,导致无法走到对应的流程,需要对重合的意图进行修改,尽量不要有重叠。b.出了bug,请联系厂家。

非标准问法:串意图,并且匹配度低,可以通过修改意图的形式去匹配。

3)回复内容

a.有答案,意图未命中:修改意图以匹配话术。b.无答案:新增意图和对应的答案

4)语音播放

TTS产品都会有很多音库的,如果觉得不合适可以选择真人录音,发音比较自然,就是没那么灵活,录音工作量较大。看发音效果关注下面4点:

a.合成准确率:正常不会出错b.音调、声音、感情等因素:感知问题c.变量衔接:真人+合成音搭配的情况下,需要注意,这块可能引起衔接不顺畅。d.真人和合成音的筛选

(2)业务部分

1)流程转化率

参考漏斗模型,分析全流程转化率异常节点,看是流程设置问题还是其他原因。

2)用户交互内容

根据用户交互的内容分析用户感兴趣或者有问题的地方,通过这些内容数据来优化话术

5.上线

这里就不仅仅是关注智能和业务指标了,还要注意软硬件的性能,看是否能顶住上线的大规模并发,之后就是不断训练优化的过程了。

三、注意点1.智能外呼机器人定位

中上等电销业务员,能够按照固定标准去和用户交互,不会有优秀的业务员那样灵活变通,智能按照设置的内容去回复用户,无法实现自主的思考学习。

2.业务场景

适合简单语音交互,不适合复杂的业务流程,例如多种意图判断,复杂的语言理解,现在的技术水平还达不到或者付出的代价较高,往往用户没有这么多的预算。

3.训练优化

智能的背后一定有N倍的人工,现在还没达不到无监督学习的地步,好的智能外呼机器人是不断训练优化出来的。

4.只能用于外呼吗?

适合语音交互的流程,包括呼入(智能语音导航)和呼出(智能外呼)。

四、总结

智能外呼只是一个辅助工具,并不能直接带来业务效果提升,我们要根据交互的业务数据去不断训练机器人,优化场景,这样才能达到提升业务的目的。

 

作者:赵洲,南京打杂运营。

本文由@赵洲原创发布于人人都是产品经理。未经许可,禁止转载。

题图来自PEXELS,基于CC0协议

外呼系统《智能录音外呼IVR和智能外呼机器人》

外呼系统科普前言介绍普通人工外呼智能录音外呼IVR+人工智能外呼机器人AI总结前言介绍

外呼系统是什么?外呼系统是指通过电脑自动往外拨打用户电话的一整套标准作业。他是基于CTI技术的现代客户服务中心系统不可或缺的一个组成部分。

普通人工外呼

外呼分为两个阶段,外呼数据的获取以及外呼动作的发起并将整个过程自动化,计算机按预设名单拨给客户,所有无效的呼叫,如忙音无应答,机器接听都将被跳过不接通话务员,如果客户正常接听后才开始迅速转给一个话务员(可以通过话务员池子按一定规则分配给某个话务员),如果因为某种原因忙无人接,呼叫无法送到,话务员就将号码放入一个新的联系名单,等待合适的时间再拨一次,如可用的电话线路数,可用接线员队列全忙无法接通等,这种模式的优点相当明显,电话中心先呼叫客户待客户接通后再让话务员处理可以极大的减少话务员查号拨号等待震铃的时间,从而大大提高效率,但缺点是客户接通后再通知接话员接听这中间可能会有一定的延迟(主要视话务员接听是否迅速),会一定程度影响客户的通话体验,目前两种模式都有公司在使用,如果外呼对象是更重视的维护客户那一定要用模式一,如果是电话营销本来就是广撒网的低意向客户那可以考虑用模式二提高话务员通话效率。

智能录音外呼IVR+人工

IVR是InteractiveVoiceResponse的缩写,即互动式语音应答,我这里更倾向于叫它话术流程图。IVR这里已经进入智能外呼层面,举个例子,我们的报修客服热线IVR流程如下,先找好甜美声音话务员录制好各种情况的音频录音文件,输入到IVR流程中并在各节点上增加逻辑判断(如是否在黑名单、是否在上班时间),播放给客户对应的录音文件,然后用户可以根据指示按键盘进行下一步操作,直到用户处理完成,挂断电话或到人工客服接通,这时系统会拨给话务员队列按最佳规则分配给话务员接听,典型场景如银行和运营商的热线电话,有效的减少了话务员人数和提高客户服务体验性(简单的查费用等不需要人工就可以解决)。注意这里的关键点:智能IVR流程,很大程度上提高了话务员效率。普通外呼系统中如果一天处理500到800通电话需要10个以上的话务员,加上智能IVR之后只有小部分需要人工服务才被分流到话务员,话务员可以缩减到3人就能处理完,而且电话的分流更加合理,客户会直接接通到对应业务部门。但IVR的交互体验生硬、按键交互及延迟等现象非常影响用户体验,往往还是不够让多数人满意,因此更加智能化的话术机器人肯定越来越成为新外呼业务的首选。

智能外呼机器人AI

这个可以看做是智能IVR的升级版,但其中所涉及的技术能力要比智能IVR复杂的多。智能语音机器人的交互体验和技术开发团队密切相关,主要涉及到ASR语音识别技术,TTS语音合成技术,意图识别算法模型,音频流实时处理技术等,任何一环处理不合理就会导致用户体验不好、交互难用的问题。先举个例子,也是我们团队之前做的一个应用在北京某律所内的一个客户案件回访场景,我们的智能语音机器人交互流程如下这个外呼机器人的作用主要的话就是代替人工去做一个回访,也起到一个筛选的作用,提高咱们这个工作效率,然后机器人自动批量外呼,有进一步意向或需求的客户信息会生成报表推送到我们工作人员手机微信和邮件上,再有针对性的去针对这些意向客户去进行二次回访就可以啦。当然这里也是抛砖引玉,这个其实可以以较低成本复制到各行各业,我们可以根据行业去定制一个话术,然后安排录音师把这个话术录制下来(TTS技术成熟后可以不用人工录制)传到系统里面。外呼机器人的交互的体验和你与真人交互差别较小,而且用户不用拨号盘按键都是通过说话输入就和对面是真人电话沟通一样,机器人可以通过意图识别听懂你的话(这块确确实实受益于大数据发展的今天才得以实现)。当然机器人的体验还会越来越好,不久就会超过真人话务员啦(因为查资料查信息什么的肯定比真人填信息再查询快多啦)。

总结

技术成熟度较高的智能外呼机器人肯定是外呼系统应用首选但成本较高是未来的趋势,大部分情况下智能IVR也可以满足场景需求且费用低很多市面上在用较多,普通人工外呼就是纯人工使用只有一个基础外呼系统的成本。技术难度相差较大也是为什么现在市面上的智能语音系统它的价格差距为什么会这么大,没有足够的行业背景行业大数据支撑,没有丰富经验的外呼系统开发团队确实会做出一个让人不能忍受的傻瓜机器人,平台自主研发维以及后台维护都得跟上才能保证系统长期稳定可靠对吧。作为企业,我们肯定也不会选最贵的最好的智能外呼机器人,肯定是在实际落地业务上选择最适合企业发展的一个系统。我即将还会在外呼系统、线路基建等知识上做详细剖析的文章,喜欢的可以关注一下~有问题可以留言或私信我

智能外呼机器人有哪些注意事项和常见问题

特别注意和提醒事项1、开通智能外呼限制条件:

(1)阿里云账号需要完成企业认证。

(2)开展商业性营销,应事先征得用户同意,保留相关凭证并积极配合骚扰电话核查工作。除即时回访类业务外,主动外呼行为须避开用户的日常休息时段,不得按号段盲呼。

常见问题解答1、智能外呼机器人如何收费?智能外呼机器人的收费规则包含两种模式,分别是并发包月及按量付费,具体收费参照产品定价;并且除机器人费用以外,还需要进行采购号码线路,号码费用单独由号码供应商收取。

注:按量付费模式为,按小时预扣,按月出账单,需要提前确保阿里云账号有充足的金额。

2、智能外呼机器人的并发是什么意思?两种收费模式又该如何选择?1)并发的含义:外呼机器人可以同时处理的外呼任务数量;可以理解为智能外呼机器人相当于话机,并发相当于多少人同时进行拨打电话。

2)两种不同收费模式如何选择:并发包月模式比较适合于整体外呼量上稳定的用户,外呼量级波动性较小;并发包月模式可以自由调节自身的并发路数,可支持随时升配、降配的操作。

按量付费模式趋向于整体外呼量上相对不稳定的用户,但是按量付费模式默认只有20路并发,无法自主进行自由调节并发路数,但可以提交工单进行短期扩容。

3、并发路数该如何计算并发路数计算公式

单日总外呼量6W通,呼2次,呼损率50%,单通通话时长2分钟,每天外呼8小时,两天全部外呼完成。

60000(总外呼量)*1.5(1+50%)*2(单通通话时长)/480(每日外呼8小时换算分钟)/2(两天打完)=187.5路,取整换算得出,所需并发路数188路。

4、号码在哪申请?号码申请,参考线路申请流程。

5、申请号码审核一般需要几天?号码价格怎么收取?控制台内号码申请——第三方线路申请,提交申请后,审核一般为1-2个工作日内完成。三方号码价格参考第三方号码线路价格及可接业务介绍,并且建议所提交联系方式为钉钉号。审核完成后,外呼运营支持人员会进行添加钉钉好友。

6、自有号码想要对接到智能外呼上,该如何操作?首先确认自己的号码是否支持SIP中继协议,如果支持需要自建trunk并提供SIP的IP(必须是公网IP)、端口、主叫号码信息,举例:192.168.100.123:5060:123456。

SIP对接有两种方式,一个是互联网SIP中继对接,做出网的端口映射;还有一种是实际拉一条中继线到一个机房里面,插到一台语音网关设备上,设备的IP地址和外呼联通,如果不在一个网络环境里面,还需要拉专线,再做SIP对接。智能外呼的SIP接入是前者(即互联网SIP中继对接)。

7、话术审核需要多久?话术审核1个工作日内即会完成,如果紧急情况,可以找寻外呼运营支持人员,或进入钉群35956094,联系管理员加急。

8、开通了按量模式,但是临时有大批量外呼,按量自带并发路数不够怎么办?如果存在大批量外呼的情况下,需要至少提前1-2天告知对接的智能外呼运营支持人员,并把相关数据:具体外呼量,单通通话时长,多长时间内打完总外呼量以及什么时间开始拨打什么时间结束的这些信息汇总告知。再由外呼运营支持人员进行协助扩容。

9、按量付费模式可以永久并发扩容么?扩容后是否会收取费用?不能。只能按时间段进行短时间内的扩容使用,扩容不另外多收取费用。

10、外呼机器人支持试用么?不支持。外呼机器人目前属于线上正式生产环境。如果想要试用可以先开通按量付费模式,目前外呼控制台内已上线软电话测试功能,可以先设计好话术后,流程调试中进行测试外呼。

11、外呼机器人是否支持集成。支持。具体文档参考快速集成。

12、智能外呼机器人是否支持发送短信及转人工?【转人工的几种方式】

1)开通云呼叫中心并设定对应的技能组,外呼可与对应的云呼技能组进行关联转接人工。

2)如果用户有自己的呼叫中心的情况下,需要将自己本身呼叫中心的号码与阿里云线上的智能外呼机器人进行SIP中继线路对接。

【发送短信】

需要用户自己开通阿里云线上短信服务,可以通过外呼对话流(话术配置)进行API服务关联。

如何利用接口实现智能外呼机器人的快速集成

引入SDK依赖com.aliyunaliyun-java-sdk-outboundbotRELEASEcom.aliyunaliyun-java-sdk-core4.5.17获取实例ID和话术ID参照用户指南创建外呼实例和外呼话术后,进行获取对应的实例ID及场景ID。获取位置参见下图:

业务管理:找到创建好的业务,点击编辑,会展示实例ID。

场景ID:进入业务,找到场景管理,在所创建的话术场景侧,点击场景ID,即可获取。

配置访问凭证配置环境变量OUTBOUNDBOT_AK_ENV和OUTBOUNDBOT_SK_ENV。

Linux和macOS系统配置方法

执行以下命令,替换为已准备好的AccessKeyID,替换为AccessKeySecret。

exportOUTBOUNDBOT_AK_ENV=exportOUTBOUNDBOT_SK_ENV=重要阿里云账号AccessKey拥有所有API的访问权限,建议您使用RAM用户进行API访问或日常运维。

Windows系统配置方法

新建环境变量,添加变量OUTBOUNDBOT_AK_ENV和OUTBOUNDBOT_SK_ENV,写入已准备好的AccessKeyID和AccessKeySecret,并重启Windows系统。

创建任务/***任务组(JobGroup)是任务的逻辑分组,可以根据业务实际情况,按照时间或者人群等维度划分。*/publicclassCreateJobGroup{publicstaticvoidmain(String[]args)throwsClientException{//强烈建议不要把AccessKeyID和AccessKeySecret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。//本示例以将AccessKeyID和AccessKeySecret保存在环境变量为例说明。运行本示例代码前,请先配置环境变量。DefaultProfileprofile=DefaultProfile.getProfile("cn-shanghai",System.getenv("OUTBOUNDBOT_AK_ENV"),System.getenv("OUTBOUNDBOT_SK_ENV"));IAcsClientclient=newDefaultAcsClient(profile);CreateJobGroupRequestrequest=newCreateJobGroupRequest();request.setJobGroupName("第一个作业组");request.setInstanceId("");request.setScriptId("");request.setStrategyJson(JSON.toJSONString(createStrategy()));try{CreateJobGroupResponseresponse=client.getAcsResponse(request);System.out.println(JSON.toJSONString(response));}catch(ServerExceptione){e.printStackTrace();}catch(ClientExceptione){System.out.println("ErrCode:"+e.getErrCode());System.out.println("ErrMsg:"+e.getErrMsg());System.out.println("RequestId:"+e.getRequestId());}}/***AssignJobs接口也可以传入Strategy参数*Strategy优先级为AssignJobs>CreateJobGroup*@return*/privatestaticJSONObjectcreateStrategy(){JSONObjectstrategy=newJSONObject();strategy.put("maxAttemptsPerDay",3);//号码每天最大呼叫次数strategy.put("minAttemptInterval",10);//未接通情况下的重试时间间隔,单位为分钟strategy.put("name",UUID.randomUUID().toString());//策略名称strategy.put("startTime",System.currentTimeMillis());//开始时间戳strategy.put("endTime",System.currentTimeMillis()+60*60*1000L);//结束时间戳ListworkingTimes=newArrayList();//可呼出的时间窗口,24小时制JSONObjectworkingTime0=newJSONObject();workingTime0.put("beginTime","09:00:00");workingTime0.put("endTime","12:00:00");JSONObjectworkingTime1=newJSONObject();workingTime1.put("beginTime","14:00:00");workingTime1.put("endTime","16:00:00");workingTimes.add(workingTime0);workingTimes.add(workingTime1);strategy.put("workingTime",workingTimes);returnstrategy;}}批量下发任务/***可使用AssignJobs循环多次向同一任务组下发任务,每次下发任务数建议25个job。*/publicclassAssignJobs{publicstaticvoidmain(String[]args){//强烈建议不要把AccessKeyID和AccessKeySecret保存到工程代码里,否则可能导致AccessKey泄露,威胁您账号下所有资源的安全。//本示例以将AccessKeyID和AccessKeySecret保存在环境变量为例说明。运行本示例代码前,请先配置环境变量。DefaultProfileprofile=DefaultProfile.getProfile("cn-shanghai",System.getenv("OUTBOUNDBOT_AK_ENV"),System.getenv("OUTBOUNDBOT_SK_ENV"));IAcsClientclient=newDefaultAcsClient(profile);AssignJobsRequestrequest=newAssignJobsRequest();request.setInstanceId("");request.setJobGroupId("");request.setJobsJsons(createJobsJson());try{AssignJobsResponseresponse=client.getAcsResponse(request);System.out.println(JSON.toJSONString(response));}catch(ServerExceptione){e.printStackTrace();}catch(ClientExceptione){System.out.println("ErrCode:"+e.getErrCode());System.out.println("ErrMsg:"+e.getErrMsg());System.out.println("RequestId:"+e.getRequestId());}}/***JobsJson.N是个List,每个JobJson对应一个联系人(contact)*@return*/privatestaticListcreateJobsJson(){JSONObjectcontact=newJSONObject();contact.put("phoneNumber","135*********");contact.put("honorific","张先生");contact.put("name","张三");contact.put("referenceId",UUID.randomUUID().toString());Listextras=newArrayList();extras.add(newJSONObject().fluentPut("key","自定义参数1").fluentPut("value","1"));extras.add(newJSONObject().fluentPut("key","自定义参数2").fluentPut("value","2"));JSONObjectjob=newJSONObject();job.put("contacts",Collections.singletonList(contact));job.put("extras",extras);Listjobs=newArrayList();jobs.add(JSON.toJSONString(job));returnjobs;}}任务完成消息对于每个外呼任务的呼叫完成状态,智能外呼服务会通过消息队列(RocketMQ)的方式通知给调用方。消息中会返回任务Id,外呼任务的状态(接通/无人接听/呼叫失败)等。

消息队列提供两种方式:

外呼公共消息队列。接入方订阅消息。外呼系统推送消息到外呼功能消息队列。此时需要提供外呼业务id,外呼技术支持后台进行配置。一个工作日之内返回消息队列配置信息,用于订阅消息。

接入方在阿里云购买的RocketMQ服务。接入方订阅消息。接入方提供授权推送消息的权限子账号信息、消息队列的Topic和GroupId。外呼技术支持后台进行配置,配置成功后外呼系统将推送消息到指定的Topic。

数据安全考虑,建议采用第二种。

RocketMQ的购买参见其产品详情页:产品详情页。

订阅RocketMQ消息参见RocketMQ的帮助文档:消息队列RocketMQ版帮助文档。

开通消息队列后该如何获取任务完成信息?

参考文档:

订阅消息

调用TCP协议的SDK收发普通消息

消息类型:

消息级别

消息类型

EventType

任务

任务完成

JobComplete

通话

开始呼叫

Dialing

通话

接通通话

CallAnswered

通话

通话结束:挂机或者未接通超时

CallFinished

录音

录音生成成功

RecordingReady

任务级别/通话级别消息体:

{"eventType":"JobComplete","eventTime":1588850490334,"instanceId":"08a4c460-****-737e069a154f","groupId":"8869f35d-****-9b46437bc0fa","id":"08a4c460-****-737e069a154f","status":"Failed","failureReason":"NoAnswer","extras":[{"key":"custom","value":"aaa"}],"contacts":[{"id":"762c2e16-****-00a0f13372b1","honorific":"test","name":"test","phoneNumber":"11111111","referenceId":"762c2e16-****-00a0f13372b1"}],"tasks":[{"id":"60b48efe-****-5d6b70479641","callId":"60b48efe-****-5d6b70479641","planedTime":1588850490334,"actualTime":1588850490334,"endTime":1588850490334,"callingNumber":"123456","calledNumber":"11111111","status":"NoAnswer"},{"id":"60b48efe-****-5d6b70479642","callId":"60b48efe-****-5d6b70479642","planedTime":1588850590334,"actualTime":1588850590334,"endTime":1588850590334,"callingNumber":"123456","calledNumber":"11111111","status":"NoAnswer"}]}录音级别消息体:

{"eventType":"RecordingReady","eventTime":1588850490334,"instanceId":"08a4c460-***-737e069a154f","groupId":"8869f35d-***-9b46437bc0fa","id":"08a4c460-***-737e069a154f","extras":[{"key":"custom","value":"aaa"}],"contacts":[{"id":"762c2e16-***-00a0f13372b1","honorific":"test","name":"test","phoneNumber":"11111111","referenceId":"762c2e16-***-00a0f13372b1"}],"recording":{"taskId":"60b48efe-***-5d6b70479641","callId":"60b48efe-***-5d6b70479641","duration":5,"fileName":"a.wav","mkvUrl":"https://a.wav","url":"https://a.wav"}}枚举值:

#EventType#任务级别-JobComplete任务完成通话级别-Dialing开始呼叫-CallAnswered通话接通-CallFinished通话结束,挂机或者未接通超时录音级别-RecordingReady录音生成成功#JobStatus#-Scheduling(0)调度中-Executing(1)执行中-Succeeded(2)成功-Paused(3)挂起-Failed(4)失败-Cancelled(5)已取消#FailureReason#-Unknown(0)未知错误-NoAnswer(1)无人接听-InvalidStrategy(2)无效的策略,策略配置不正确-TimeUp(3)调度时发现超时-NoStrategy(4)策略为空或没有找到-CallFailed(5)呼叫失败-PerDayCallCountLimit(6)全局级别的号码每日呼叫次数限制-ContactBlockList(7)禁止外呼名单-EmptyNumber(8)空号不再外呼-JobPerDayCallCountLimit(9)任务级别的号码每日呼叫次数限制-VerificationCancelled(10)呼叫前验证不通过取消-ContactSuspended(11)止呼#TaskStatus#-Executing(0)正在拨打-Succeeded(1)成功-NoAnswer(2)无人接听-NotExist(3)联系人号码不存在-Busy(4)占线-Cancelled(5)已经取消-Failed(6)呼叫失败-NotConnected(7)无法接通-PoweredOff(8)关机-OutOfService(9)停机-InArrears(10)欠费-EmptyNumber(11)空号-PerDayCallCountLimit(12)超出每日呼叫限制-ContactBlockList(13)禁止外呼名单-CallerNotRegistered(14)主叫号码未在中继注册-Terminated(15)被终止-VerificationCancelled(16)呼叫前校验不通过取消

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇