Twilio / TwiML на iOS - использование Enqueue и Dial
По сути, я создаю приложение для iOS, которое будет набирать номер телефона в моем офисе при нажатии определенной кнопки. Это работает нормально, но теперь я хочу, чтобы музыкальный файл воспроизводился в ожидании поднятия телефона.
Зная, что Dial не может использовать музыкальный файл для замены тонального сигнала ожидания по умолчанию, я был вынужден использовать waitURL от Enqueue. Тем не менее, я заблудился о том, как вывести из очереди, чтобы начать набор. Вот как выглядит весь TwiML прямо сейчас, и он воспроизводит всю песню без набора номера:
<Response>
<Enqueue waitUrl="waitMusic.xml">office</Enqueue>
<Dial callerId="+12345678910">
<Number >999-999-9999</Number>
</Dial>
</Response>
waitMusic.xml - это просто:
<Response>
<play>slowrock.mp3</play>
</Response>
Разве нельзя использовать этот TwiML?
1 ответ
Twilio разработчик евангелист здесь.
Вы не можете использовать <Dial>
а также <Enqueue>
как это вместе. Вот что тебе нужно сделать.
Когда пользователь нажимает кнопку, он должен сделать звонок и вернуть только <Enqueue>
в ответе TwiML.
<Response>
<Enqueue waitUrl="waitMusic.xml">office</Enqueue>
</Response>
И в этом ответе также начните вызов на номер, который вы хотите набрать, используя REST API. Когда на этот вызов ответят, Twilio запросит немного TwiML, вы должны вернуть <Dial>
с вложенным <Queue>
который вытащит главного абонента из очереди и подключит его к человеку по телефону.
<Response>
<Dial>
<Queue>office</Queue>
</Dial>
</Response>
Возможно, вам придется проделать немного больше работы, чтобы никто не застрял в очереди, но это должно помочь вам начать работу.