Позвоните по URL-адресу, чтобы получить номер телефона для переадресации вызова Twilio с помощью TwiML

Пытаюсь автоматизировать переадресацию звонков с помощью Twilio. когда пользователь набирает номер Twilio, он проигрывает приветственное сообщение, затем он должен вызвать внешний API. API вернет номер телефона, по которому Twilio должен позвонить по этому номеру. Пробую делать с этим TwiML. вот мой документ корзины TwiML

<?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-адрес, который вернет число. Как я могу добиться этого с помощью TwiML? и можно ли определить переменную внутри TwiML? потому что, если я могу сохранить число в эту переменную с помощью тега <Redirect>, я легко смогу добиться этого. Является ли это возможным?


person Darkknight    schedule 15.03.2021    source источник


Ответы (1)


Это будет сложно сделать только с 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

Этот передает пользовательские значения в 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)

Вышеупомянутое в основном создает TwiML, который у вас есть в вашем TwiML Bin, но с Python. Вам нужно будет обернуть это в конечную точку, чтобы ее можно было вызывать и возвращать. И, конечно же, вам нужно будет добавить свою логику для получения числа через API.

person yvesonline    schedule 15.03.2021
comment
Рад, что это помогло, не стесняйтесь соглашаться, если ответит на ваш вопрос. - person yvesonline; 16.03.2021