如何在Flutter中使用Twilio API实现主叫与被叫的实时通话连接
Flutter + Twilio 实现应用内直接双向通话方案
你当前的实现逻辑本质是用Twilio REST API触发PSTN呼叫中转,Flutter端本身没有接入通话音视频通道,才会需要主叫先接听个人手机号来电才能转接被叫。按以下步骤调整即可去掉该限制:
- 放弃仅靠REST API发起呼叫的方案,Flutter端集成Twilio Programmable Voice SDK,让应用本身成为通话的一方,而非依赖手机号中转
- 移除Flutter端硬编码的
ACCOUNT_SID、AUTH_TOKEN,这类敏感信息必须放在后端存储,由后端生成Twilio访问令牌返回给前端使用,避免账号泄露风险 - 调整呼叫流程:
- Flutter端从后端获取访问令牌后,通过Voice SDK注册当前客户端的唯一标识
- 发起呼叫时,由Flutter端调用SDK的呼叫接口,或后端调用Twilio REST API,将被叫号码设为接收方手机号
- 调整你的TwiML逻辑,被叫接听后,使用
<Dial>指令的<Client>子节点,将通话桥接到你Flutter端注册的客户端标识,而非你的个人手机号
- 调整完成后,被叫接听来电时Twilio会直接把通话链路和你的Flutter应用连通,不需要主叫先接个人手机号的来电
你原有的REST API调用代码可以做两处修改:
body中的To字段直接填被叫号码,无需填自己的手机号- 关联的TwiML Bin内容替换为桥接Flutter客户端的逻辑即可复用
<!-- 示例TwiML逻辑 --> <Response> <Dial answerOnBridge="true"> <Client>你Flutter端注册的客户端ID</Client> </Dial> </Response>
内容的提问来源于stack exchange,提问作者Gabby10
相关产品推荐
相关产品推荐

