Freeswitch IVR 外呼与客户按键意图接口详解
1星 需积分: 42 2 浏览量
更新于2024-09-02
1
收藏 60KB DOCX 举报
"Freeswitch IVR外呼接口涉及到使用mod_xml_rpc模块进行电话拨打,并提供了DTMF取值功能。接口通过HTTP请求调用,返回呼叫结果和客户按键意向信息。"
在Freeswitch IVR系统中,外呼接口是通过HTTP API来实现的,它允许系统自动拨打预设的电话号码。这个接口的关键在于调用`/webapi/originate`,并附带一系列参数来控制呼叫行为。例如,`hangup_after_bridge=true`表示在桥接后挂断,`ignore_early_media=true`防止早期媒体播放,`originate_timeout=30`设置呼叫超时时间为30秒,而`origination_caller_id_number`则用来设定呼出电话的显示号码。呼叫目标通过`sofia/gateway/bjgw/135020*****`指定,这里的`bjgw`可能是网关名,`135020*****`是被叫方的电话号码。接口调用后,如果成功,会返回一个UUID,如`f2968ed4-9614-47c7-a0de-73da22f3be3b`,这对于跟踪和处理后续的业务流程至关重要。
当呼叫发生异常时,接口会返回相应的错误代码,例如`CALL_REJECTED`表示用户拒接,`USER_BUSY`表示用户正忙,`NO_ANSWER`表示无人接听,`NO_USER_RESPONSE`表示用户无响应,`NORMAL_TEMPORARY_FAILURE`表示正常临时失败,`TIMEOUT`表示超时,`NO_ROUTE_DESTINATION`表示找不到路由,`ORIGINATOR_CANCEL`表示呼叫被取消,`NORMAL_CLEARING`表示正常挂断,`INCOMPATIBLE_DESTINATION`表示目的地不兼容,以及`UNALLOCATED_NUMBER`表示未知号码。
此外,还有一个用于获取客户按键意向的接口,路径为`/outbound`,通过GET方法访问。该接口能够获取到呼叫的UUID、被叫号码以及客户的按键意图(例如,可能用于IVR菜单选择)。请求特定UUID的数据,如`http://ip:8092/outbound/get/a239ac01-5ce5-4214-a3cf-ea420e4cbe96`,将返回JSON格式的响应,包括呼叫UUID、被叫号码和目的(例如,客户按键选择的业务类型)以及时间戳。
`webapi`中的`orignate`接口用于发起呼叫,它同样使用`sofia/gateway/vos`这样的格式指定网关和被叫号码,同时可以设置呼叫超时等参数。例如,`lua(welcome.lua/tmp/1009.wav)`可能是指定在呼叫建立后播放的欢迎语音文件。
这些接口的实现依赖于Freeswitch的mod_xml_rpc模块,这是一个强大的工具,允许通过XML-RPC协议远程调用Freeswitch的API,实现对呼叫的控制和管理。通过这种方式,开发者可以构建复杂的IVR系统,实现自动外呼、DTMF输入处理、业务逻辑判断等功能,极大地提高了通信系统的自动化程度和交互性。
2020-09-28 上传
2020-09-18 上传
2023-08-10 上传
2022-08-19 上传
Lv_1996921
- 粉丝: 1
- 资源: 14
最新资源
- 探索数据转换实验平台在设备装置中的应用
- 使用git-log-to-tikz.py将Git日志转换为TIKZ图形
- 小栗子源码2.9.3版本发布
- 使用Tinder-Hack-Client实现Tinder API交互
- Android Studio新模板:个性化Material Design导航抽屉
- React API分页模块:数据获取与页面管理
- C语言实现顺序表的动态分配方法
- 光催化分解水产氢固溶体催化剂制备技术揭秘
- VS2013环境下tinyxml库的32位与64位编译指南
- 网易云歌词情感分析系统实现与架构
- React应用展示GitHub用户详细信息及项目分析
- LayUI2.1.6帮助文档API功能详解
- 全栈开发实现的chatgpt应用可打包小程序/H5/App
- C++实现顺序表的动态内存分配技术
- Java制作水果格斗游戏:策略与随机性的结合
- 基于若依框架的后台管理系统开发实例解析