С помощью sipgate.io компания Sipgate создала захватывающий облачный API, с помощью которого можно получить множество опций для интернет-телефонии. Учетная запись является бесплатной, и есть также возможность бесплатно установить любой бесплатный номер отправителя в магазине функций. Документация sipgate.io по-прежнему может быть расширена, но, немного прочитав официальный Sipgate API, можно быстро реализовать интересные вещи.
В следующем коде мы реализуем следующее поведение: в целях тестирования мы звоним по дюжине телефонных номеров один за другим, чтобы воспроизвести аудиофайл, а затем снова вешаем трубку.
2e92bf96cdada9545cb8525ec68a7d6b
Должно быть установлено расширение PHP XML-RPC . Теперь звонки выполняются — чтобы воспроизвести аудиофайл, мы вводим URL-адрес триггера в бэкэнд Sipgate для исходящих вызовов (если мы звоним сами себе) и для входящих вызовов (если кто-то перезванивает) и активируем журнал отладки.:

Сейчас мы готовим аудиофайл (который, согласно документации, должен быть доступен как моно 16-битный файл PCM WAV). Для этого кидаем ffmpeg, чтобы конвертировать MP3 файл в нужный формат:
2e92bf96cdada9545cb8525ec68a7d6b
Теперь мы загружаем этот WAV-файл вместе со следующим XML-скриптом в https://www.tld.com/sipgate:/
2e92bf96cdada9545cb8525ec68a7d6b
Если вы хотите изменить аудиофайлы, рекомендуется всегда использовать новое имя файла (sound-v * .wav) из соображений кеширования.
Также возможны параллельные звонки (согласно официальному заявлению Sipgate, существует ограничение в 5 одновременных подключений, но мне удалось установить и больше), в этом случае следует отрегулировать значение параметра sleep.
Обновление от 03/2022 : Sipgate окончательно объявил устаревшим используемый интерфейс XML-RPC . Поэтому приведенное выше решение больше нельзя использовать. Стабильная альтернатива — это, например, инструменты командной строки, такие как baresip для Linux (с помощью модуля alsa и команды /ausrc aufile,audio.wav ) или tSIP для Windows. Вот небольшая реализация на PHP, которая использует tSIP для набора любого номера и воспроизведения аудиофайла.:
7d1db430a89467d76748de53cfb438bf