呼叫中心中间件实现IVR进入排队,判断排队超时播放提示音

### 文章目录

  • [@[TOC](文章目录)](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [前言](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [需求](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [排队结束原因](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [联系我们](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [实现步骤](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [1. 调用http接口返回动作](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)
  • [2. 启用拨号方案](#文章目录 @TOC 前言 需求 排队结束原因 联系我们 实现步骤 1. 调用http接口返回动作 2. 启用拨号方案)

前言

需求

呼叫中心需要实现调用IVR接口进入排队,如果是因为等待超时导致退出排队的,那就播放一段提示音再挂断通话;其他的情况就直接挂机。

排队结束原因

顶顶通呼叫中心中间件中有一字段记录了排队结束的原因:cti_acd_cause,只要获取到该字段的值,就知道了排队结束的原因:

结束原因
0 未知
1 排队名字不存在 (ERROR(acdname nonexistent))
2 排队模块未初始化 (ERROR(not init))
3 没空闲坐席不等待 (TIMEOUT(no wait))
4 播放进入提示音的时候挂机了 (ERROR(announce hangup))
5 授权无效 (ERROR(auth failed))
6 并发超过授权限制 (ERROR(limit))
7 提示是否继续等待,没选择继续等待(TIMEOUT())
8 等待时间超过了最大等待时间(TIMEOUT())
9 呼叫坐席的时候挂机了 (ERROR(caller hangup))
10 等待的时候挂机了 (ERROR(wait hangup))
11 转接坐席成功 (DONE(坐席线路))

联系我们

有意向了解呼叫中心中间件的用户,点击该链接可添加工作人员的VX:https://blog.csdn.net/H4_9Y/article/details/136148229


实现步骤

1. 调用http接口返回动作

例:拨号方案需要调用IVR的http接口,接口返回进入排队的动作,排队结束后再次调用IVR的http接口,把排队失败原因变量一并传递给接口。如果排队是因为超时而退出的,接口在返回播放提示音的动作。

首先需要在拨号方案设置页面中创建一个拨号方案,该拨号方案的用途:调用http接口,然后接口返回需要执行的动作。

bash 复制代码
<action application="cti_curl",data="http://ip/app?number=${destination_number}"/>

接口返回的数据类型是数组,可支持多个动作:

bash 复制代码
[
	{
		"application": "cti_acd",
		"data": "8001 300 1"
	},
	{
		"application": "cti_curl",
		"data": "http://ip/app?number=${destination_number}&call=${uuid}&cti_acd_cause=${cti_acd_cause}"
	}
]

动作解析:

  • cti_acd:进入排队的动作,
    • 8001:排队名称
    • 300:最大排队等待时间,单位:秒(s),如果超过了这个时间,没有接通坐席,就会强制离开排队。
    • 优先级:默认3个优先级,0:低优先级 1:中优先级 2:高优先级。
  • cti_curl:再次调用http,把排队结束原因变量传递给接口。如果${cti_acd_cause}变量值是8,就说明是超时退出的排队,此时接口返回播放提示音(playback)动作;如果该变量值不是8,接口那就返回挂断(hangup)动作。

创建调用http接口的拨号方案,如图所示:

2. 启用拨号方案

  • 手机呼入调用http接口:external呼叫路由启用拨号方案。
  • 分机呼叫调用http接口:internal呼叫路由启用拨号方案。
相关推荐
熙客3 天前
Kafka:专注高吞吐与实时流处理的分布式消息队列
分布式·中间件·kafka
9ilk3 天前
【基于one-loop-per-thread的高并发服务器】--- 前置技术
运维·服务器·c++·笔记·后端·中间件
小坏讲微服务4 天前
五分钟使用 Docker-compose搭建 Redis 8.0 中间件
运维·redis·docker·中间件·容器·kubernetes·k8s
熙客4 天前
RabbitMQ:灵活路由和高可靠的消息队列
java·中间件·rabbitmq·java-rabbitmq
9ilk5 天前
【仿RabbitMQ的发布订阅式消息队列】--- 前置技术
分布式·后端·中间件·rabbitmq
9ilk6 天前
【基于one-loop-per-thread的高并发服务器】--- 项目介绍&&模块划分
运维·服务器·c++·后端·中间件
fyakm6 天前
中间件的前世今生:起源与发展历程
中间件
qqxhb9 天前
系统架构设计师备考第61天——嵌入式系统架构模式&操作系统&数据库&中间件
数据库·中间件·系统架构·sqlite·dds·层次化(封闭/开放)·递归模式
9ilk10 天前
【仿RabbitMQ的发布订阅式消息队列】--- 模块设计与划分
c++·笔记·分布式·后端·中间件·rabbitmq
忧郁的蛋~11 天前
ASP.NET Core中创建中间件的几种方式
后端·中间件·asp.net