https://d226lax1qjow5r.cloudfront.net/blog/blogposts/voice-proxy-node-javascript-express-dr/anonymous-voice-proxy-featured-image.png

Proxy de llamadas de voz anónimas con Express

Publicado el May 20, 2021

Tiempo de lectura: 5 minutos

A todos nos ha pasado: te bajas del taxi y unos minutos después te das cuenta de que te has dejado el paraguas. O te mueres de hambre, miras por la ventana cada vez que oyes pasar un coche y te preguntas dónde estará la comida que has pedido hace una hora.

Girl waiting on delivery

Tal vez sea al revés. A lo mejor vas a hacer una entrega y necesitas indicaciones para llegar a la dirección.

En todas estas situaciones necesitarás llamar a la otra persona, pero no querrás dar tu número de teléfono a desconocidos. Así que puedes utilizar un número virtual que conecte a las dos partes, pero que sólo pueda utilizarse mientras dure la transacción en curso.

Alquilar un número virtual

En este tutorial, vamos a utilizar la CLI de Vonage para alquilar nuestro número virtual, pero también puedes administrar tus números y aplicaciones de voz a través de el panel de Vonage si prefieres usar una GUI. Si aún no lo has hecho, puedes instalar la CLI de Vonage a través de npm/yarn. Las instrucciones completas se encuentran en el repositorio de Github.

En el momento de escribir estas líneas, se pueden alquilar números virtuales en 85 países diferentes. Voy a utilizar GB (Gran Bretaña) como ejemplo. lista completa de países y precios en nuestra página de precios.

vonage numbers:search GB vonage numbers:buy [NUMBER] [COUNTRYCODE]

Creación de nuestro servidor proxy Voice

De momento, si intentas llamar al número virtual que acabamos de alquilar, no pasa nada.

Man on the phone

Hay que asociar el número virtual a una aplicación. Puedes asociar varios números a la misma aplicación de voz, lo que te permite tener varios números -incluso en distintos países-, todos alimentados por un único backend.

En este ejemplo, vamos a crear nuestro backend con Node y Express y desplegarlo en Glitch. Puedes ver el código en Github o remezclarlo directamente en Glitch.

Remix on Glitch

Nuestro servidor Express tiene un único endpoint, que tiene el siguiente aspecto:

    app.get("/", (request, response) => {
        response.json([
            {
                "action": "connect",
                "eventUrl": [`${process.env.EVENTS_URL}`],
                "from": `${process.env.FROM_NUMBER}`,
                "endpoint": [
                    {
                        "type": "phone",
                        "number": `${process.env.TO_NUMBER}`
                    }
                ]
            }
        ])
    })

La ruta definida anteriormente devuelve un NCCO (objeto de control de llamadas)un archivo JSON que se utiliza para proporcionar instrucciones a la API de Vonage cuando alguien responde una llamada entrante o saliente. Un NCCO puede contener muchos tipos diferentes de acciones. Puedes ver las acciones disponibles en nuestros documentos para desarrolladores.

Nuestro servidor proxy requiere una única acción connect. Con esto, podemos proxy nuestra llamada entrante a una gama de diferentes puntos finales: otro número de teléfono, un WebSocket, o incluso un SIP URI. En el ejemplo anterior nos conectamos a otro número de teléfono.

Uno de los requisitos de la connect acción es que el process.env.FROM_NUMBER debe ser un número virtual de Vonage. Este número virtual es lo que ve el destinatario de tu llamada. Puedes usar el mismo número virtual que alquilaste anteriormente, de esa manera la persona que llama y la que recibe la llamada ven el mismo número virtual, manteniendo sus números privados.

Cuando remezcla la aplicacióndebe configurar los parámetros FROM_NUMBER y TO_NUMBER en tu archivo Glitch .env de Glitch. Estos Numbers tienen que estar en el formato formato E.164. En este ejemplo no utilizaremos el formato EVENTS_URL en este ejemplo, pero si le interesa saber cómo puede realizar un seguimiento analítico de sus llamadas de voz, debería ver nuestro seminario web "Seguimiento de campañas de llamadas de voz entrantes con números virtuales de Vonage y Mixpanel" o leer la publicación de blog que lo acompaña.

Vincular nuestro número virtual a nuestro servidor proxy

Para vincular nuestro número virtual a nuestro servidor proxy en Glitch, primero debemos crear una Aplicación de voz de Vonage. Puedes crear una aplicación de voz y vincularla a tu número a través del panel de control de Vonageo a través de la CLI de Vonage.

vonage apps:create "Application name" --voice_answer_url= --voice_event_url= vonage apps:link --number=

El sitio Resumen de aplicaciones y el LÉAME de la CLI de Vonage contienen más información sobre apps:create y los argumentos esperados.

¿Adónde vamos ahora?

Lea la "comunicación de voz privada"para ver un ejemplo más detallado. Para un ejemplo de servidor proxy en Kotlin, vea mi webinar. Alternativamente, para obtener más información sobre qué más puedes hacer con Voice API de Vonage mira nuestros casos de uso de ejemplo o lee la documentación para desarrolladores.

Compartir:

https://a.storyblok.com/f/270183/150x150/a3d03a85fd/placeholder.svg
Aaron BassettAntiguos alumnos de Vonage

Aaron era un defensor de los desarrolladores en Nexmo. Ingeniero de software experimentado y aspirante a artista digital, Aaron suele crear cosas con código o electrónica; a veces ambas cosas. Cuando está trabajando en algo nuevo, suele percibir el olor a componentes quemados en el aire.