如何在Twilio Voice Intelligence的Webhook响应中携带会议码?
问题背景与需求
我正在使用Twilio Studio结合Voice Intelligence功能,流程为用户拨打指定号码,输入会议码(用于追踪)后开始录制会议。Twilio会在录制完成后自动完成转录与总结,完成后向Webhook发送响应。目前的问题是,希望Webhook响应中包含用户输入的会议码。
当前收到的POST请求内容:
{ "account_sid": "AC803xxxxxxxx", "service_sid": "GAexxxxxxxxxx", "transcript_sid": "GTbxxxxxxxxxxxxx", "customer_key": "", "event_type": "voice_intelligence_transcript_available" }
期望的响应格式:
{ "account_sid": "AC803xxxxxxxx", "service_sid": "GAexxxxxxxxxx", "transcript_sid": "GTbxxxxxxxxxxxxx", "customer_key": "", "event_type": "voice_intelligence_transcript_available", "meeting_code": "123456" }
或者将meeting_code作为查询参数传递也可。
问题解答
1. Twilio Studio能否直接实现?
不能。Twilio Studio没有提供直接将自定义数据(比如用户输入的会议码)附加到Voice Intelligence系统级回调响应中的配置项,必须通过自定义逻辑实现。
2. 你尝试的Function代码是否可行?
可行,但需要注意几个细节:
- 确保
event.meeting_code能正确获取值:在Studio流程中,必须通过「Gather」小部件收集用户输入的会议码,然后将该值作为参数传递给Function小部件,这样Function才能从event对象中读取到meeting_code。 - 处理URL编码问题:如果会议码包含特殊字符,需要用
encodeURIComponent()对其进行编码,避免URL解析错误,修改后的transcribeCallback代码如下:transcribeCallback: `https://api.mywebsite/dev/notification/callback?meeting_code=${encodeURIComponent(event.meeting_code)}` - 确认回调触发逻辑:如果你的流程是通过
<Record>指令开启录制并关联Voice Intelligence,那么这个transcribeCallback会被触发,你的Webhook会收到带meeting_code查询参数的请求。
3. 针对Voice Intelligence原生事件回调的替代方案
如果依赖Voice Intelligence的voice_intelligence_transcript_available原生事件回调,可采用以下步骤:
- 在Studio收集到会议码后,调用Twilio Function将会议码与当前通话的
CallSid关联存储(可使用Twilio Sync,或直接将会议码存入Call资源的CustomParameters字段)。 - 当收到Voice Intelligence的Webhook时,通过
transcript_sid查询关联的Call资源,取出存储的会议码,再在你的Webhook服务中补充该字段。
内容的提问来源于stack exchange,提问作者CleverlyDone
相关产品推荐
相关产品推荐

