У вас есть 2 ноги, пользовательская и агентская.
Когда пользователь звонит на номер Twilio, Twilio отправит на ваш сервер запрос, который должен вернуть (тот же TwiML, который вы используете, но с именем очереди):
<Response>
<Enqueue waitUrl="waitMusic.xml">support</Enqueue>
</Response>
Thisпереводит пользователя в режим воспроизведения музыки из файла waitMusic.xml, если нет доступных агентов.
Но вам также нужна логика для агента.Агент позвонит на телефон Twilio, и в этом случае вы вернете другой TwiML:
<Response>
<Dial>
<Queue url="agentWaitMusic.xml">support</Queue>
</Dial>
</Response>
Это «очередь набора» ( docs ), которая автоматически удаляет любыеПользователь, который в очереди «поддерживает» и соединяет их вместе.Если в очереди нет пользователей, агент будет переведен в режим ожидания, воспроизводя музыку из файла «agentWaitMusic.xml».
Важно использовать одно и то же имя очереди (в данном случае «поддержка») для действий «постановка в очередь» и «очередь набора».