После просмотра этого документа я могу успешно добавить Абоненты PSTN в видеозал (тип Small Room). Чего я не смог сделать, так это обнаружить сигналы DTMF от звонящего.
Я пробовал два разных подхода, оба потерпели неудачу
1) Тот, который я использовал раньше с другим провайдером и работал, но не с Twilio, заключался в том, чтобы один из других пользователей в комнате (не абонент PSTN, а клиент javascript) обнаруживал клиентскую сторону DTMF. Это не работает с twilio, потому что мне кажется, что twilio манипулирует аудиопотоком, чтобы удалить DTMF, прежде чем они достигнут других пользователей в комнате (когда абонент PSTN нажимает номер, вы слышите только короткий щелчок по Обратная сторона)
2) Вдохновленный этим ответом, я попытался ответить с помощью TWIML
<Response>
<Connect>
<Room>my-room</Room>
</Connect>
<Gather input="dtmf">
</Gather>
</Response>
Это не было бы идеальным вариантом, поскольку он не обнаруживал бы DTMF в комнате; вам придется покинуть комнату, но я все равно попробовал, чтобы увидеть, смогу ли я придумать способ завершить вызов, чтобы перейти к глаголу gather
, как в связанном ответе. Похоже, что звонок не перемещается в часть сбора после того, как комната заканчивается (я попытался завершить комнату, и звонок PSTN немедленно завершился)
Есть ли другие подходы, которые кто-то использовал для этого? Самым простым для меня был бы способ сказать twilio не удалять DTMF из аудиопотока, чтобы мое решение №1 работало, но я открыт для других идей, возможно, используя gather
twilio.