За допомогою sipgate.io Sipgate створив захоплюючий хмарний API, за допомогою якого існує безліч варіантів Інтернет-телефонії. Обліковий запис безкоштовний, а також є можливість встановити будь-який безкоштовний номер відправника в магазині функцій. Документацію sipgate.io все ще можна розширювати, але, трохи прочитавши офіційний API Sipgate, можна швидко зрозуміти захоплюючі речі.
У наступному коді ми реалізуємо таку поведінку: Для тестових цілей ми називаємо дюжину телефонних номерів один за одним, щоб відтворити аудіофайл, а потім знову повісити його.
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 одночасних з'єднань, але мені вдалося встановити більше), і в цьому випадку слід налаштувати значення сну.
Оновлення 03/2022 : Sipgate з того часу остаточно виключив інтерфейс XML-RPC, що використовувався. Тому описане вище рішення більше не використовується. Стабільні альтернативи включають інструменти командного рядка, такі як baresip для Linux (використовуючи модуль alsa та команду `/ausrc aufile,audio.wav` ) або tSIP для Windows. Нижче наведено невелику реалізацію PHP, яка використовує tSIP для набору будь-якого номера телефону та відтворення аудіофайлу.:
7d1db430a89467d76748de53cfb438bf