调用 URL 获取 phone 号码以使用 TwiML 转发 Twilio 呼叫

Call an URL for get phone number to forward the Twilio call using TwiML

我正在尝试使用 Twilio 自动进行呼叫转移。当用户呼叫 Twilio 号码时,它将播放一些欢迎消息,然后它应该呼叫外部 API,API 将 return 一个 phone 号码,Twilio 应该呼叫该号码.我正在尝试使用此 TwiML。这是我的 TwiML bin 文档

<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Pause length="1"/>
    <Say voice="Polly.Joanna"> Welcome
    </Say>
  <Dial> HERE THE NUMBER SHOULD COME THAT API WILL RETURN
  </Dial>

</Response>

例如 https://getmynumber/samplenumber 是 URL 将 return 一个数字。我如何使用 TwiML 实现这一目标? 是否可以在 TwiML 中定义变量?因为如果我可以使用 <Redirect> 标签将数字保存到该变量,我可以轻松实现这一点。 可能吗?

仅使用 TwiML Bin 会很困难,但您可以尝试类似的方法:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Pause length="1"/>
    <Say voice="Polly.Joanna">Welcome</Say>
    <Dial>{{Number}}</Dial>
</Response>

然后通过以下方式调用它:https://<your TwiML Bin URL>/...?Number=+123456789

这里passes custom values into a TwiML Bin,这里Number

如果您确实需要调用 API 来获取要拨打的号码,您将需要某种端点来形成 TwiML,例如Twilio 函数或任何其他端点。

Python 中的版本可能如下所示:

from twilio.twiml.voice_response import VoiceResponse

response = VoiceResponse()
response.pause(length=1)
response.say('Welcome')
number = '+123456789' # Here you would do an API call
response.dial(number)

print(response)

以上基本上 creates the TwiML 你在你的 TwiML Bin 中有但 Python。您需要将其包装在端点中才能被调用和返回。当然,您需要添加逻辑以通过 API.

检索号码