Как обнаружить тоны DTMF в андроид SDK Twilio - PullRequest
0 голосов
/ 19 мая 2019

Я использую Twilio Voice SDK на Android для вызова обычного номера телефона.

Мне нужно, чтобы из приложения, которое инициировало вызов, я смог обнаружить, что человек на телефоне нажал одну из клавиш клавиатуры.

Я не могу найти аналог в Voice SDK для call.sendDigits () для обнаружения тонов DTMF.

Я попробовал пару подходов и думаю о третьем:

  1. Самым очевидным подходом было найти вызов API для регистрации слушателя DTMF или слушателя цифр, но я не могу его найти.
    ПРИМЕЧАНИЕ: в своих тестах я заметил, что когда я посылаю тоны DTMF с телефона на устройство Android, я могу слышать сокращенные тоны в устройстве Android, так что Twilio, кажется, обрабатывает тоны и пропускает модифицированная версия из них.

  2. Второй подход состоял в том, чтобы найти библиотеку, которая могла бы обнаружить тоны из аудиопотока, и я нашел несколько постов, которые указывают на алгоритм Гертцеля. Я нашел библиотеку (TarsosDSP), которая реализует алгоритм и кажется простой в использовании. Однако я не могу понять, как получить аудиопоток от вызова twilio.

  3. Третий подход (я еще не пробовал, потому что он кажется слишком хакерским ... но я мог бы впасть в отчаяние) - это использовать twiml для обнаружения тонов на сервере twilio (используя глагол Gather) .. Мне нужно выяснить, как заставить twilio прослушивать активный разговор, а затем выяснить, как заставить twiml отправлять сигнал на мое устройство Android, когда оно обнаруживает DTMF.

Кажется вероятным, что в Twilio есть механизм для регистрации слушателя тонов DTMF в SDK, и что я просто не ищу нужные места ... это было бы лучшим решением.

...