Freeswitch IVR 外呼与客户按键意图接口详解

1星 需积分: 42 12 下载量 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输入处理、业务逻辑判断等功能,极大地提高了通信系统的自动化程度和交互性。