Sipgate ha creado una emocionante API en la nube con sipgate.io , con la que se tiene una multitud de posibilidades en torno a la telefonía por Internet. Una cuenta es gratuita y también existe la opción de configurar cualquier número de remitente gratuito en la Tienda de funciones de forma gratuita. La documentación de sipgate.io aún se puede expandir, pero con un poco de lectura en la API oficial de Sipgate , puede darse cuenta rápidamente de cosas interesantes.
En el siguiente código, nos damos cuenta del siguiente comportamiento: Para propósitos de prueba, llamamos a una docena de números de teléfono uno tras otro para reproducir un archivo de audio y luego lo volvemos a poner.
2e92bf96cdada9545cb8525ec68a7d6b
Debe estar instalada la extensión PHP XML-RPC . Las llamadas ahora están realizadas: para reproducir el archivo de audio, ingresamos una URL de activación en el backend de Sipgate para las llamadas salientes (si nos llamamos a nosotros mismos) y para las llamadas entrantes (si alguien vuelve a llamar) y activamos el registro de depuración.:

Ahora estamos preparando un archivo de audio (que según la documentación debe estar disponible como un archivo WAV PCM mono de 16 bits). Para ello, lanzamos ffmpeg para convertir un archivo MP3 al formato deseado:
2e92bf96cdada9545cb8525ec68a7d6b
Ahora cargamos este archivo WAV junto con el siguiente script XML en https://www.tld.com/sipgate:/
2e92bf96cdada9545cb8525ec68a7d6b
Si desea variar los archivos de audio, es aconsejable utilizar siempre un nuevo nombre de archivo (sound-v * .wav) por motivos de caché.
También son posibles las llamadas paralelas (según la declaración oficial de Sipgate, hay un límite de 5 conexiones simultáneas, pero he podido establecer más), en cuyo caso deberá ajustar el valor de espera.
Actualización 03/2022 : Sipgate finalmente ha dejado de utilizar la interfaz XML-RPC utilizada. Por lo tanto, la solución anterior ya no se puede utilizar. Una alternativa estable son, por ejemplo, herramientas de línea de comandos como baresip para Linux (con la ayuda del módulo alsa y el comando /ausrc aufile,audio.wav ) o tSIP para Windows. Aquí hay una pequeña implementación en PHP que usa tSIP para marcar cualquier número y reproducir un archivo de audio.:
7d1db430a89467d76748de53cfb438bf