You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Hook触发的AWS Connect机器人外呼实现方案技术求助

AWS Connect 机器人外呼实现指南

1. 发起外呼的核心方法:StartOutboundVoiceContact API

不管是单个非美国地区号码还是批量号码列表,都必须通过AWS Connect的StartOutboundVoiceContact API触发外呼,Lambda是最适合的执行载体(Hook通知可直接触发Lambda,比如通过API Gateway接收Hook请求,或Hook推送至SNS再触发Lambda)。

单个非美号码外呼(Python Lambda示例)

import boto3

def lambda_handler(event, context):
    # 初始化Connect客户端,指定实例所在区域
    connect_client = boto3.client('connect', region_name='ap-southeast-1')
    
    # 非美号码必须带国际区号前缀,例如+86(中国)、+44(英国)
    response = connect_client.start_outbound_voice_contact(
        DestinationPhoneNumber='+8613xxxxxxxxx',
        ContactFlowId='arn:aws:connect:ap-southeast-1:123456789012:instance/xxxxxx/contact-flow/xxxxxx',
        InstanceId='你的Connect实例ID',
        SourcePhoneNumber='你的已验证外呼号码(需与实例同区域)'
    )
    return {'statusCode': 200, 'callId': response['ContactId']}
  • 关键注意事项:
    • 目标号码必须携带国际区号前缀(+国家码),不能使用本地格式
    • 外呼源号码SourcePhoneNumber必须是AWS Connect实例所在区域已验证的号码(可在Connect控制台的「号码管理」中配置)
    • Lambda的IAM角色需添加connect:StartOutboundVoiceContact权限,同时确保角色能访问你的Connect实例

批量号码外呼处理

如果需要外呼号码列表,可通过以下方式实现:

  • 直接在Lambda中遍历号码列表,逐个调用StartOutboundVoiceContact API
  • 若号码数量较多,建议先将号码存入SQS队列,再用Lambda触发SQS消息异步处理,避免Lambda执行超时

2. 全组件整合流程

完整的触发链路如下:

  1. 客户服务的Hook通知触发Lambda(可通过API Gateway接收Hook HTTP请求,或Hook推送至SNS主题关联Lambda)
  2. Lambda调用StartOutboundVoiceContact API,传入目标号码、联系流ID、实例ID等参数
  3. AWS Connect启动外呼,执行你已配置的联系流:调用Lambda从S3读取Polly生成的音频,播放给客户

3. 常见问题排查

  • 非美号码外呼失败:检查号码格式是否正确(带国际区号)、外呼源号码是否在实例区域可用、Connect实例是否支持该国家/地区的外呼
  • 音频无法播放:确保联系流中的Lambda有S3桶读取权限,音频格式为Connect支持的类型(如MP3)
  • API调用权限错误:确认Lambda的IAM角色已配置connect:StartOutboundVoiceContact权限,且角色信任策略允许Lambda调用Connect API

内容的提问来源于stack exchange,提问作者Evan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 11:52:38