如何使用Twilio同时向多个号码发起呼叫 一方接通后其余自动挂断
你之前的写法不生效是因为 Twilio Calls API 的 to 参数仅支持传入单个E.164格式的号码字符串,不支持直接传入号码数组批量发起呼叫。
实现方案
你不需要先手动发起一个外部呼叫再调用Dial功能,直接在调用calls.create时传入包含多个<Number>标签的TWIML即可实现同时外呼多个号码、任意号码接通后其余呼叫自动挂断的需求,具体逻辑是让Twilio触发内部呼叫执行你定义的拨号逻辑。
完整可运行代码示例
from twilio.rest import Client from twilio.twiml.voice_response import VoiceResponse, Dial, Number # 替换为你自己的Twilio账户信息 account_sid = '你的账户SID' auth_token = '你的账户Token' twilio_number = '+10000000' # 你的Twilio外呼号码 client = Client(account_sid, auth_token) # 构造同时拨号的TWIML resp = VoiceResponse() # 可通过callerId参数指定外呼显示的号码,填你的Twilio号码即可 dial = Dial(callerId=twilio_number) # 在这里添加所有需要同时呼叫的目标号码 dial.append(Number("+10000001")) dial.append(Number("+10000002")) dial.append(Number("+10000003")) resp.append(dial) # 发起触发呼叫 call = client.calls.create( twiml=str(resp), to=twilio_number, from_=twilio_number ) print(call.sid)
逻辑说明
- 你在
<Dial>标签下添加的所有<Number>号码会被同时呼叫 - 只要有任意一个目标号码接通,剩余未接通的呼叫会自动被Twilio挂断,不需要额外开发控制逻辑
- 如需设置最长等待时间、呼叫顺序等规则,可以给
<Dial>标签添加对应参数调整。
内容的提问来源于stack exchange,提问作者Ez0r
相关产品推荐
相关产品推荐

