За допомогою 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