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
Se debe instalar la extensión PHP XML-RPC . Las llamadas ya están hechas: 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 devuelve la llamada) y activamos la depuración. -Iniciar sesió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 ha dejado de dar soporte a la interfaz XML-RPC . Por lo tanto, la solución descrita anteriormente ya no es viable. Entre las alternativas estables se incluyen herramientas de línea de comandos como baresip para Linux (que utiliza el módulo alsa y el comando `/ausrc aufile,audio.wav` ) o tSIP para Windows. A continuación, se muestra una pequeña implementación en PHP que utiliza tSIP para marcar cualquier número de teléfono y reproducir un archivo de audio.:
7d1db430a89467d76748de53cfb438bf