当您使用语音服务的API接口发送外呼后,可以通过轻量消息队列(原MNS)消费模式或HTTP批量推送模式来接收语音服务的回执消息。
如果出现网络异常、响应超时等情况,可能导致回执消息推送重复。
HTTP批量推送模式的响应超时时间为700 ms。
使用SDK拉取MNS消息,详情请参见轻量消息队列(原MNS)消费模式。
回执消息不保证幂等性,如果开发者后续处理逻辑需要考虑幂等性,需要根据业务场景做合适的幂等处理。
回执消息模式
接收回执消息的模式有轻量消息队列(原MNS)消费模式和HTTP批量推送模式两种,您可根据实际情况选择合适的模式接收回执消息。
轻量消息队列(原MNS)消费模式
轻量消息队列(原MNS)消费模式表示通过轻量消息队列(原 MNS)的队列(Queue)模型来接收回执消息。云通信的所有业务消息都支持轻量消息队列(原 MNS)向外发送。用户在语音服务控制台启用轻量消息队列(原 MNS)订阅指定的消息类型(MessageType)时,系统会自动生成该类型的独立消息队列及名称(QueueName)。用户可使用此消息队列名称(QueueName)和消息类型(MessageType),通过阿里云AccessKey信息换取临时Token来获取队列中的详细内容。
HTTP批量推送模式
HTTP批量推送模式表示通过HTTP POST方式发送消息到指定的Web URL。在语音服务控制台设置HTTP回调URL(callback_url)后,当业务消息产生时,系统会使用HTTP请求以POST方式将业务消息发送到指定的回调URL上,用户可直接接收此消息。
回执消息类型
语音服务提供的回执消息类型(MessageType)如下,您可根据业务需要进行选择。
名称 | 描述 |
VoiceReport(呼叫记录消息) | 呼叫结束后获取呼叫的记录信息,包括通话类型、通话的开始及结束时间、通话时长、结束原因等。 |
VoiceCallReport(呼叫中间状态消息) | 获取呼叫过程中的通话状态的信息,通常包括开始、振铃、接听、挂断以及状态产生的时间等。 |
VoiceRecordReport(录音记录消息) | 通话结束后获取通话的录音记录。 |
各功能的回执消息数据结构存在字段差异,您可点击以下链接跳转至语音服务各功能的回执消息数据结构描述文档:
配置回执消息接收模式
如果需要接收回执消息,必须先在控制台上开启消息接收。以下示例为呼叫记录消息的配置流程。
登录语音服务控制台。
在左侧导航栏,选择
。找到需要订阅的消息类型,开启指定模式。
轻量消息队列(原 MNS)消费模式
开启轻量消息队列(原 MNS消息队列)消费模式左侧的功能开关。有关接收回执消息时的注意事项及示例代码,请参见轻量消息队列(原MNS)消费模式。
HTTP批量推送模式
在配置HTTP批量推送模式前,请您了解HTTP请求处理方式响应说明及推送机制,详情请参见HTTP批量推送模式。
开启HTTP批量推送模式左侧的功能开关。
填写接收地址,并单击保存。
地址示例:http://push.example.com/contextpath/receive.do
单击确定。
设置完后,您可以单击测试,测试已填写的URL是否可以收到测试用的回执信息。