IVR语音交互接口
自动外呼放音
使用场景
用于向指定的客户电话号码发起呼叫,播放指定的语音和数字验证码。能够识别出空号,关机,过期,忙等号码(支持,E1数字线路,网络电话,手机卡的外呼通道能甄别,普通电话线需开启反极性)。语音播放完毕后既可以转坐席分机通话,也可以直接挂机。
实现流程
呼叫流程如图1-1所示,

接口描述
外呼接口完整URL:
http://x.x.x.x:12121/bridge/callctrl?id=1&precallcount=1&playtimes=1&extnum=801&callee=1322784XXXX&toneid=19&code=112233&pwd=13deae128093437a57dd2caeb0328d40&opt=CLICK_TO_IP_CAPTCHA
| 字段名 | 字段含义 | 描述 |
|---|---|---|
| id | 全局唯一字符串 | 调用方需要初始化一个值,作为播放结果查询接口的查询条件,以便获取播放结果 |
| precallcount | 预呼叫个数 | 当所有坐席都忙碌时,可以继续预呼叫指定数量的电话号码。如果将数量设置为0,则不会进行预呼叫。 |
| playtimes | 语音播放次数 | 指定的语音循环播放次数 |
| extnum | 放音完毕转分机或分组号码 | 可选,如果不填写则放音完毕挂机。 |
| callee | 被叫号码 | |
| toneid | 播放的语音编号 | 可先通过呼叫中心后台“语音文件管理”上传语音文件,然后获取对应的“编号” 支持的语音文件格式为,音质:u-Law, 8000Hz, 64kbps, mono。随发的光盘中有语音格式转换工具 |
| voicefile | 播放的服务器语音文件绝对路径 | 文件格式要求,wav 音质:u-Law, 8000Hz, 64kbps, mono Mp3 也支持 |
| code | 注册验证码,需纯数字 | 可选参数,可不填写不影响正常放音。 |
| pwd | 验证密码 | 用pwd+callee+code+当前日期(格式如:2015-03-16),然后进行MD5 如果不用密码请填写no |
| opt | CLICK_TO_IP_CAPTCHA CLICK_TO_FIXEDLINE_CAPTCHA | CLICK_TO_IP_CAPTCHA:用网络电话外呼放音 CLICK_TO_FIXEDLINE_CAPTCHA:用固定电话外呼放音,固定电话放音时如果线路没有反极性,系统会自动添加一个循环播放的较短的引导语音(可配置),例如:这一条语音通知,请按任意键接听,对方按键后才会播放正式语音。如果开通了反极性侧不存在上述引导语音。 |
| x.x.x.x:12121 | 服务器IP通讯地址 | 12121默认端口,如果手动修改过端口号请使用修改后的端口 |
Http请求响应码解释:
- 200: 成功
- 401: 密码错误
- 421: 需付费开通
- 503: 系统错误
- 420: 参数错误
- 486: 后台忙,稍后再试
呼叫结果查询URL:请在调用呼叫接口后,每隔5秒查询一次,获取对应的结果
http://x.x.x.x/bridge/callctrl?id=xxx&opt=GET_CAPTCHA_RESULT
- 0: 正在排队等待呼叫
- 1: 呼叫成功
- 2:呼叫失败
- 3: 空号
- 4: 正在呼叫中
- 5: 对方忙
- 6: 关机,不在服务区
- 404: id不存在
注意:如果需要指定外呼的使用的网络电话账号,则可以进入呼叫中心配置管理后台。把账号填写到“网络电话设置”的“批量外呼通道”中,多账号可用逗号隔开。
来电后由第三方系统指定接听分机或分组
使用场景
当客户来电后,先向第三方对接服务器发送一个请求,第三方服务器给出一个纯数字的响应,系统根据响应呼叫响应分机。
配置方式

接口描述
由呼叫中心发起的请求URL:
http://x.x.x.x/servlet?caller=132XXXXXXXX
第三方系统响应: 分机号码,或者分组号码
| 字段名 | 字段含义 | 描述 |
|---|---|---|
| caller | 主叫号码 | 该参数需要结合来电弹屏接口获取 |
| http://x.x.x.x/servlet | 对接服务器接收请求的URL地址 | 可根据实际情况配置 |
来电通话中转IVR语音菜单接口
使用场景
客户来电接通后,坐席可把来电重新转到总机菜单,转给自助查询语音菜单,转给其他预定义的语音菜单逻辑等。客户收听后可重新转回话务员,也可一个在按键交互后转给其他话务员。
实现流程
略
接口描述
外呼接口完整URL:
http://x.x.x.x:12121/bridge/callctrl?caller=1351568xxxx&callee=802&ivrid=3&biz_data=abcd&opt=TALKING_CALLER_TO_IVR
| 字段名 | 字段含义 | 描述 |
|---|---|---|
| caller | 主叫号码 | 该参数需要结合来电弹屏接口获取 |
| callee | 分机号码 | |
| ivrid | 需播放的IVR菜单编号 | 需提前用图形化工具在呼叫中心配置好 |
| queue_priority | 排队优先级 | 整数型N, 排到等待了N*30秒人的前面 |
| biz_data | 业务数据 | 可选,是一段经过URL编码的json格式数,该数据会通过websocket弹屏推送端口推送给话务员关联的网页。不超过1500个字符.该变量CTi不会解码不会解析仅用于弹屏转发 |
| opt | TALKING_CALLER_TO_IVR | 默认不要修改 |
| x.x.x.x:12121 | 服务器IP通讯地址 | 12121默认端口,如果手动修改过端口号请使用修改后的端口 |
Http请求响应码解释:
- 200: 转话成功
- 404: 主被相关的通话不存在或者语音菜单编号不存在
- 483: 两个号码,找到多个通话,系统无法准确定位具体是哪个通话,拒绝执行。
IVR语音自助查询交互接口
使用场景
电话IVR交互开放接口用于支持呼叫中心与用第三方系统的对接。让没有IVR语音交互能力的第三方系统也能通过电话与客户交互。典型应用场景为:电话下单,电话防伪验证,优惠卡消费,电话自助查询等 注:由国信先行根据您的需求写出电话语音交互流程配置文件,文件格式是XML的,协助对接调试成功,后续客户可自行开发和维护。
使用助手快速对接配置
参考上图,名称为“输入账号确认”节点,调用对接URL携带客户按键信息,接口返回一段文本即可实现播放。实时文本转语音会耗费几秒时间。
参考上图,对接查询节点,若不接受输入直接提交查询,请不要上传语音,并且把按键长度调整为0即可。否则运行到当前节点会报:操作超时。
URL携带的参数说明:
http://127.0.0.1:12121/Oms/StateHttpTestServlet?in1=9&opt=kuaidi&caller=808&callee=1000&id=63c972e1-72d2-4049-851f-621351540ecc@127.0.0.1:508
| 参数名称 | 说明 | |
|---|---|---|
| http://x.x.x.x/cti | 接收查询的服务器URL | |
| in1=9 | 按键透传 | 参考上面截图说明 |
| opt=kuaidi | URL静态配置参数 | 对呼叫中心自身无意义,此处仅仅进行透传给对接系统。 |
| caller | 客户来电号码 | |
| callee | 路由的号码 | 一般为1000,总机号码 |
| id | 来电唯一标识 |
注意1:URL的响应消息需要使用UTF-8格式返回纯文本信息(不要携带HTML标签)。 注意2:响应的Content-type必须携带charset=UTF-8参数。 例如:response.setHeader("Content-type", "text/html;charset=UTF-8");
播放多层语音,收集按键,转坐席,支持文本转语音
使用场景
对接的系统需要向客户发起一个呼叫,播放语音,与客户进行IVR交互。例如:自动满意度调查,自动外呼放音后,按键转坐席等,都可以调用此接口实现。 该接口还支持TTS文本转语音后融入IVR播放给客户,需要在服务器安装TTS文本转语音引擎(单次收费服务)。 外呼线路需具有反极性,能够在客户接听时有消息通知系统。如果使用的是普通的无反极性的PSTN线路,那么系统会反复播放一段短提示音(可配置),客户按键后,才会播放正式的IVR语音。
实现流程
使用助手创建一个IVR语音菜单,TTS参数,对应下面URL中的ttsabc参数
上图收集客户输入的地方填写变量名称,客户的全程按键都可以被保存起来
例如:state=1;satisfact=8
接口描述
完整URL:
http://x.x.x.x:12121/bridge/callctrl?token=0123456789&extnum=801&callee=0159XXXXXXXX&toneid=20&**ttsabc**=你好世界!&opt=IVR_TTS_CALL
| 字段名 | 字段含义 | 描述 |
|---|---|---|
| token | 字符串 | 用于标记当前的任务,可在后续调用查询接口查询当前任务的状态和结果。建议设置为全局唯一的值。 |
| extnum | 分机号码(可选) | 如果分机管理中指定了外呼线路,接口外呼会选择这个通道外呼,否则会立刻失败。分机必须绑定分组如:3000,不能直接绑定FXO号码,如:2001 |
| callee | 字符串 | 系统将要呼叫的电话号码 |
| toneid | IVR编号 | 在助手或者呼叫中心后台配置的IVR编号 |
| ttsXXX | tts开头的变量(可选) | 用于匹配IVR中的TTS变量,用于把文本转语音后,在IVR菜单中播放。 |
| retryDelayTime | 整数(可选) | 默认:3000秒 |
| maxTryTimes | 整数(可选) | 0: 表示不需要失败重呼叫, 2: 表示失败后再尝试呼叫2次后放弃 |
| opt | IVR_TTS_CALL | 默认不要修改 |
| x.x.x.x:12121 | 呼叫中心服务器IP通讯地址 | 12121默认端口,如果手动修改过端口号请使用修改后的端口 |
Http请求响应码解释:
- 200: 操作成功,系统已经开始呼叫
- 400:参数错误
- 483:重复提交
- 401: 需要密码
- 480: 系统暂时不可用,稍后再试。
- 503: 没有可用的外呼通道
呼叫结果查询URL:请在调用呼叫接口后,每隔5秒查询一次,获取对应的结果
http://x.x.x.x:12121/bridge/callctrl?token=xxx&opt=IVR_TTS_CALL_RESULT
返回结果如: state=1;satisfact=8 state:
- 0: 初始状态
- 1: 呼叫成功
- 2:呼叫失败
- 3: 空号
- 4: 正在呼叫中
- 5: 对方忙
- 6: 关机,不在服务区
- 7: 振铃中
- 8:正在放音中
- 404: id不存在
- satisfact:是在使用助手定义语音菜单时,录入的“收集客户输入”的值,用于记录运行期给客户放音过程中的客户按键信息。 返回结果如: state=2;waiting-recall;calltime=0 waiting-recall: 指的是失败后,等待指定间隔重新呼叫 calltime: 已经尝试呼叫的次数
放音个数,排队个数查询URL:
http://x.x.x.x:12121/bridge/callctrl?opt=IVR_TTS_CALL_MONITOR
- 返回结果:queue=0;playcount=0
- queue: 转坐席时排队个数,如果排队个数多,说明呼叫过快,请减少呼叫频率。
- playcount: 并发通话,放音个数。
通话记录查询
http://x.x.x.x:12121/bridge/callctrl?opt=CALL_LOG_GET_WITH_CALLID&callid=token1234
- callid: 填写之前调用IVR_TTS_CALL接口时传入的token
- 返回结果:返回结果定义请参考呼叫记录查询接口
{"id":1,"caller":"1000","callee":"15875566080","beginTime":1518073081032,"duration":13,"state":"STATE_RECEIVED","callType":"LOCAL_CALL","estimate":"","callid":"1b304a1f-1196-482d-964e-212420a401c9%40192.168.1.82","question":"","record":"","recordVoice":"","dtmfkey":"","cname":"","servicetype":"默认","manustate":"","clickcallid":"0123456789","fxonum":"","ivrpoint":"","callerworknum":"","calleeworknum":"","business":"","prerecord":""}
