You are viewing the Spanish (Mexico) site, but your language preference is set to English. Switch to English site →

Menu

Expand
Calificar esta página:

TwiML™ Voice: <Dial>

Durante una llamada activa, puedes utilizar el verbo <Dial> de TwiML para conectar al agente de llamada actual con otra persona.

En el siguiente ejemplo, se muestra el uso más básico de <Dial>:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Dial>415-123-4567</Dial>
</Response>

Si la parte en 415-123-4567 contesta la llamada, ambas partes pueden comunicarse hasta que uno cuelgue.

El verbo <Dial> terminará la nueva llamada si sucede esto:

  • La persona a la que se llama no responde.
  • Twilio recibe una señal de ocupado.
  • El número no existe.

<Dial> no puede iniciar una llamada directo desde Twilio, solo marcará el número de un nuevo interlocutor desde una llamada activa en curso. Para iniciar una nueva llamada saliente desde Twilio, debes realizar una solicitud API al punto final de llamada.

Para obtener una guía paso a paso sobre cómo hacer tu primera llamada saliente con Twilio, prueba uno de nuestros inicios rápidos que muestran cómo hacer una llamada usando las bibliotecas auxiliares de Twilio.

Twilio hará solicitud de GET o POST a la action URL (URL de acción) (si se proporciona) cuando finalice la llamada de <Dial>. El flujo de llamadas continuará y utilizará el TwiML que envíes en respuesta a esa solicitud.

Si no proporcionas una action URL en tu <Dial> y el agente de llamada original aún está en línea, Twilio continuará procesando el documento TwiML original.

        
        
        

        Simple dial

        Con este código, Twilio conectará la llamada original con una nueva persona marcando 415-123-4567. A continuación, pueden ocurrir varias cosas:

        • Si alguien contesta, Twilio conecta al agente de llamada con la persona llamada.
        • Si el agente de llamada inicial cuelga, la sesión Twilio finaliza y <Say> no se ejecuta.
        • Si la línea está ocupada, si no hay respuesta o si la persona a la que se llama cuelga, <Dial> se cierra y el agente de llamada inicial oye el texto de <Say> (“Goodbye” [Adiós]) antes de que finalice el flujo de llamada.

        Atributos de <Dial>

        <Dial> admite los siguientes atributos que cambian su comportamiento:

        Atributo Valores permitidos Valor predeterminado
        action URL relativa o absoluta Ninguno
        answerOnBridge true, false false
        callerId Un número de teléfono válido o identificador de cliente si estás marcando un <Client>. CallerID del agente de llamada
        callReason Cadena (máximo 50 caracteres) Ninguno
        hangupOnStar true, false false
        method GET, POST POST
        record do-not-record, record-from-answer, record-from-ringing, record-from-answer-dual, record-from-ringing-dual.

        En términos de compatibilidad con versiones anteriores, true es un alias de record-from-answer y false es un alias de do-not-record.

        do-not-record
        recordingStatusCallback URL relativa o absoluta Ninguno
        recordingStatusCallbackMethod GET, POST POST. Este atributo indica qué método HTTP Twilio debe utilizar cuando se solicite 'recordingStatusCallback'.
        recordingStatusCallbackEvent in-progress, completed, absent completed
        recordingTrack inbound, outbound, both both
        referUrl URL relativa o absoluta Ninguno
        referMethod GET, POST POST
        ringTone ISO 3166-1 alpha-2 country code Vuelve de forma predeterminada al tono del operador móvil
        timeLimit Número entero positivo (segundos) 14 400 segundos (4 horas)
        timeout Número entero positivo (segundos) 30 segundos
        trim trim-silence, do-not-trim do-not-trim

        Usa uno o más de estos atributos en un verbo <Dial> de esta manera:

        <?xml version="1.0" encoding="UTF-8"?>
        <Response>
            <Dial timeout="10" record="true">415-123-4567</Dial>
        </Response>
        

        action

        El atributo action acepta una dirección URL como argumento. Esta URL le indica a Twilio dónde realizar una solicitud de POST o GET después de que finalice la llamada marcada.

        La solicitud de Twilio a esta URL incluirá los siguientes parámetros:

        Parámetro Descripción
        DialCallStatus El resultado del intento de <Dial>. Consulta la sección de DialCallStatus a continuación para obtener más información.
        DialCallSid El SID de llamada del nuevo tramo de llamada. Este parámetro no se envía después de marcar una conferencia.
        DialCallDuration Duración en segundos de la llamada marcada. Este parámetro no se envía después de marcar una conferencia o si una llamada secundaria se redirige a una nueva URL de TwiML antes de desconectarse.
        DialBridged Indicador booleano que indica si la llamada marcada se ha conectado o no al destino marcado.
        RecordingUrl La URL del audio grabado. Este parámetro se incluye solo si la grabación está ajustada en <Dial> y no incluye grabaciones iniciadas de otras maneras. Es posible que el archivo de grabación aún no esté accesible cuando se envíe la devolución de llamada de acción. Utiliza recordingStatusCallback a fin de obtener una notificación confiable cuando la grabación esté disponible para el acceso.

        Si utilizas <Dial> en un <Queue>, Twilio pasará los parámetros adicionales a tu action URL (URL de acción). Lee la documentación de <Queue> detallada para obtener más información.

        Si especificas una action URL para utilizar<Dial>, Twilio continuará la llamada inicial después de que la persona a la que se ha llamado cuelgue.

        No se podrá alcanzar ningún verbo TwiML que se incluya después de<Dial>, ya que tu respuesta a Twilio toma el control total de la llamada inicial. Si deseas realizar más acciones en esa llamada inicial, debes responder a la solicitud de Twilio con instrucciones TwiML sobre cómo manejar la llamada.

        Si no proporcionas una action URL, <Dial> terminará y Twilio pasará al siguiente verbo TwiML en el documento. Si no hay más verbos, Twilio terminará la llamada telefónica. Ten en cuenta que esto es diferente del comportamiento de <Record> y <Gather>.

        Volver a la lista de atributos

        DialCallStatus

        Si especificas una action URL, Twilio siempre pasará el estado del intento de <Dial>.

        Estos son los valores posibles de DialCallStatus:

        Valor Descripción
        completed La parte que se llamó contestó la llamada y se conectó con el agente de llamada.
        answered Cuando se llama a una conferencia, la persona que se llamó contestó la llamada y se conectó con el agente de llamada.
        busy Twilio ha recibido una señal de ocupado cuando se intenta conectarse a la persona a la que se llama.
        no-answer La persona a la que se llama no ha contestado la llamada antes de que transcurra el tiempo de espera.
        failed Twilio no ha podido dirigir al número de teléfono dado. Esto se debe a menudo cuando se marca un número de teléfono con el formato correcto, pero inexistente.
        canceled La llamada se canceló mediante la API REST antes de ser contestada.

        Volver a la lista de atributos

        answerOnBridge

        Si <Dial> es el primer verbo TwiML en tu documento TwiML, answerOnBridge="true"hará que la llamada entrante suene hasta que el número marcado responda.

        Si tu llamada entrante es una llamada SIP, Twilio enviará un 180 o un 183 a tu servidor SIP una vez que se conecte a Twilio. Esperará hasta que la llamada <Dial> se conecte para devolver un 200.

        Volver a la lista de atributos

        callerId

        Cuando utilizas <Dial> en tu respuesta a la solicitud de llamada entrante de Twilio, el interlocutor marcado ve el número del agente de llamada entrante como ID de agente de llamada.

        Por ejemplo:

        1. Alguien con un ID de agente de llamada de 1-415-123-4567 llama a tu número de Twilio.
        2. Le dices a Twilio que ejecute un verbo <Dial> para 1-858-987-6543 que maneje la llamada entrante.
        3. La persona a la que se llama (1-858-987-6543) verá 1-415-123-4567 como el ID del agente de llamada en la llamada entrante.

        Cuando se utiliza el sustantivo <Number> y se especifica un callerId en tu <Dial>, puedes establecer un ID de llamada diferente al predeterminado. Puedes cambiar el número de teléfono que ve la persona a la que se llama por uno de estos:

        En el caso de una llamada SIP entrante, callerId no puede ser el número To o From, ya que existe el riesgo de falsificación del ID del agente de llamada. Solo puede ser un número de Twilio o un número de teléfono verificado con Twilio.

        Si estás marcando a un <Client>, también puedes establecer un identificador de cliente válido como atributo callerId. Por ejemplo, si has configurado un cliente para las llamadas entrantes y estás marcando ese cliente, puedes establecer el atributo callerId en client:joey.

        Si vas a marcar un punto final de <Sip>, introduce cualquier cadena alfanumérica como callerId. De forma opcional, incluye los siguientes caracteres: +, -, _ y ., pero sin espacios en blanco.

        En el siguiente ejemplo, utilizamos <Dial> para llamar a un número de teléfono desde un dispositivo Twilio Client:

              
              
              
              Debido a que esta llamada se realiza con <Dial> desde una conexión de Twilio Client, tenemos que establecer de forma explícita un número de teléfono válido como nuestro callerId.

              Marcar un número de teléfono desde un Twilio Client

              Debido a que esta llamada se realiza con <Dial> desde una conexión de Twilio Client, tenemos que establecer de forma explícita un número de teléfono válido como nuestro callerId.

              Volver a la lista de atributos

              hangupOnStar

              El atributo hangupOnStar permite al agente de llamada inicial colgar a la persona a la que se llama pulsando la tecla ‘*’ del teléfono.

              Cuando dos partes están conectadas mediante <Dial>, Twilio bloquea la ejecución de otros verbos hasta que el agente de llamada o la persona llamada cuelga. La función hangupOnStar permite que el agente de llamada inicial cuelgue a la persona a la que llamó sin tener que colgar el teléfono (lo que terminaría la sesión de procesamiento de TwiML).

              Cuando el agente de llamada pulsa ‘*’, Twilio colgará a la persona a la que se llama. Si se proporcionó una action URL (URL de acción), Twilio envía un DialCallStatus a esa URL y procesa la respuesta. Cuando se llama a una conferencia, el estado de DialCallStatus será answered. Todos los demás tipos de llamada tendrán un estado de completed en DialCallStatus.

              Si no se ha proporcionado un action, Twilio continúa con el siguiente verbo en el documento TwiML actual.

              Volver a la lista de atributos

              method

              El atributo method acepta GET o POST. Esto le dice a Twilio si debe solicitar la action URL mediante HTTP GET o POST, con POST como valor predeterminado.

              En el siguiente ejemplo, hemos proporcionado una action URL y hemos especificado GET como method:

                    
                    
                    

                    Especifica una URL de acción y un método

                    Este código usará <Dial> para conectar al agente de llamada inicial al número de teléfono415-123-4567.

                    Cuando finalice la llamada <Dial>, Twilio enviará una solicitud GET a nuestra action URL. Esta solicitud incluirá el parámetro DialCallStatus que indica el estado de esa llamada <Dial>.

                    Nuestra aplicación web alojada en esta action URL ahora puede mirar el DialCallStatus y enviar una respuesta a Twilio diciéndole lo que debe hacer a continuación.

                    En este ejemplo, el verbo <Say> nunca se ejecutará, ya que el código en /handleDialCallStatus toma el control total de la llamada.

                    Volver a la lista de atributos

                    record

                    El atributo record te permite registrar ambos tramos de una llamada dentro del verbo <Dial> asociado. Las grabaciones están disponibles en dos opciones: monocanal o doble canal.

                    En las grabaciones monocanal, ambos tramos de la llamada se mezclan en un único canal dentro de un archivo de grabación.

                    Estas son las opciones de record en monocanal:

                    • record-from-answer, que iniciará la grabación en cuanto se responda a la llamada.
                    • record-from-ringing, que iniciará la grabación cuando comience el timbre (antes de que el destinatario conteste la llamada).

                    Con las grabaciones de doble canal, ambos tramos utilizan canales independientes dentro de un único archivo de grabación.

                    Estas son las opciones de record en doble canal:

                    • record-from-answer-dual, que iniciará la grabación en cuanto se responda a la llamada.
                    • record-from-ringing-dual, que iniciará la grabación cuando comience el timbre (antes de que el destinatario conteste la llamada).

                    La llamada principal siempre estará en el primer canal y la llamada secundaria siempre estará en el segundo canal de una grabación de doble canal.

                    Si se utiliza una opción de grabación de doble canal para un <Dial> con un <Conference> anidado, el archivo de grabación resultante tendrá dos canales. El tramo principal (agente de llamada entrante) se representa en el primer canal. El segundo canal incluye el audio que proviene de la conferencia.

                    Volver a la lista de atributos

                    recordingStatusCallback

                    El atributo recordingStatusCallback toma una dirección URL relativa o absoluta como argumento. Si has solicitado una grabación en este <Dial>, esta URL le dice a Twilio dónde realizar la solicitud GET o POST cuando se pueda acceder a la grabación.

                    Twilio pasará los siguientes parámetros con su solicitud a tu URL de recordingStatusCallback:

                    Parámetro Descripción
                    AccountSid El identificador único de la cuenta responsable de esta grabación.
                    CallSid Identificador exclusivo de la llamada asociada a la grabación. Esto siempre se referirá al tramo principal de una llamada de dos tramos.
                    RecordingSid Identificador exclusivo de la grabación.
                    RecordingUrl La URL del audio grabado.
                    RecordingStatus Estado de la grabación. Estos son los valores posibles: in-progress, completed, absent.
                    RecordingDuration Duración de la grabación, en segundos.
                    RecordingChannels La cantidad de canales en el archivo de grabación final como un número entero. Los valores posibles son 1, 2.
                    RecordingStartTime La marca de tiempo del inicio de la grabación.
                    RecordingSource El método de inicio utilizado para crear esta grabación. Para grabaciones iniciadas cuando la grabación está ajustada en <Dial>, se devuelve DialVerb.

                    Volver a la lista de atributos

                    recordingStatusCallbackEvent

                    recordingStatusCallbackEvent te permite especificar qué cambios de estado de grabación deben generar un webhook para la URL especificada en el atributo recordingStatusCallback. Estos son los valores disponibles:

                    • in-progress: la grabación ha comenzado.
                    • completed: la grabación está completa y disponible.
                    • absent:: la grabación está ausente y no se puede acceder a ella.

                    Para especificar más de un valor, sepáralos con un espacio. El valor predeterminado es: completed.

                    Para pausar, reanudar o detener grabaciones, consulta los documentos de la API de grabación.

                    En el ejemplo siguiente, se especifica que queremos que cada participante de la llamada <Dial> se represente en su propio canal de la grabación final y que la grabación comience cuando la llamada comience a sonar.

                          
                          
                          

                          Set Dual-Channel Recording on <Dial>

                          Volver a la lista de atributos

                          recordingTrack

                          El atributo recordingTrack te permite seleccionar si las pistas de audio inbound, outbound o both de la llamada deben grabarse. La pista entrante representa el audio recibido por Twilio, y la pista saliente representa el audio que Twilio genera en la llamada. El valor predeterminado es both y grabará el audio que se recibe y genera por Twilio.

                          Cuando se graba la pista de audio inbound o outbound, el archivo de grabación resultante siempre será monocanal. Cuando el audio se graba con both, el archivo resultante puede estar en canales separados (doble) o mezclado (mono).

                          Volver a la lista de atributos

                          referUrl

                          Para utilizar la función de Twilio REFER de SIP entrante, debes activar las "Enhanced Programmable SIP Features" (Funciones SIP programables mejoradas) en los ajustes de Voice de la consola.

                          Si la persona a la que se llama envía una solicitud REFER de SIP, se enviará una solicitud de Twilio a tu referUrl. Tu aplicación debe responder cómo manejar la transferencia. Más información sobre REFER de SIP entrante a Twilio.

                          Los siguientes parámetros se añaden a la solicitud de webhook de Twilio Voice estándar:

                          Parámetro Descripción
                          ReferTransferTarget El número de teléfono o punto final de SIP en el que se va a transferir.
                                
                                
                                

                                SIP REFER Inbound to Twilio using referUrl

                                Volver a la lista de atributos

                                referMethod

                                El atributo referMethod acepta GET o POST. Esto le dice a Twilio si debe solicitar la action URL mediante HTTP GET o POST, con POST como valor predeterminado.

                                Volver a la lista de atributos

                                ringTone

                                Ringtone (Tono de llamada) te permite anular el tono de llamada que Twilio reproducirá al agente de llamada mientras ejecuta un <Dial>.

                                Si no se especifica, Twilio reproducirá el tono o pasará el tono desde el operador móvil (si está provisto). Esto funciona de forma automática, pero puede haber casos en los que se desee una anulación.

                                Estos son los valores aceptados: at, au, bg, br, be, ch, cl, cn, cz, de, dk, ee, es, fi, fr, gr, hu, il, in, it, lt, jp, mx, my, nl, no, nz, ph, pl, pt, ru, se, sg, th, uk, us, us-old, tw, ve, za.

                                Nota: Si estás marcando un punto final de <Sip>, ringTone solo funcionará como se espera si has activado las funciones SIP programables mejorados en Twilio.

                                Volver a la lista de atributos

                                timeLimit

                                El atributo timeLimit establece la duración máxima de <Dial> en segundos.

                                Por ejemplo, cuando se establece un límite de tiempo de 120 segundos, <Dial> colgará de forma automática la llamada de la persona a la que se llama pasados dos minutos.

                                El límite de tiempo predeterminado para las llamadas es de 4 horas, que también es la duración máxima de una llamada, a menos que actives la función "24-Hour Maximum Call Duration" (Duración máxima de llamada de 24 horas) en General Settings (Configuración general) de Programmable Voice, en cuyo caso la duración máxima será de 24 horas.

                                Volver a la lista de atributos

                                timeout

                                Si se especifica un timeout, se establecerá el límite en segundos que <Dial> esperará a que la persona a la que se ha llamado responda a la llamada. Esto le dice a Twilio cuánto tiempo debe dejar sonar la llamada antes de rendirse y establecer el DialCallStatus como no-answer.

                                El valor predeterminado de timeout es de 30 segundos, el valor mínimo permitido es de cinco segundos y el valor máximo es de 600 segundos.

                                Twilio siempre añade un búfer de tiempo de espera de 5 segundos a tu <Dial>, por lo que si introduces un valor de tiempo de espera de 10 segundos, verás un tiempo de espera real más cercano a los 15 segundos.

                                Volver a la lista de atributos

                                trim

                                Si se establece el atributo trim atributo en trim-silence, se recortará el silencio inicial y final de los archivos de audio.

                                Recortar un archivo puede causar que la duración de la grabación sea ligeramente inferior a la duración de la llamada. El valor predeterminado del atributo trim es do-not-trim.

                                Volver a la lista de atributos

                                callReason

                                Motivo de la llamada saliente. Utilízalo para especificar el propósito de la llamada que se presenta en el teléfono de la persona a la que se llama. (Versión beta de Branded Calls [llamadas con marca])

                                Para obtener más información, visita la página Llamadas con marca.

                                Volver a la lista de atributos

                                Sustantivos <Dial>

                                Siempre puedes optar por anidar texto sin formato (una cadena que representa un número de teléfono válido) en <Dial> para indicar a Twilio un número de teléfono al que llamar:

                                <?xml version="1.0" encoding="UTF-8"?>
                                <Response>
                                    <Dial>415-123-4567</Dial>
                                </Response>

                                También puedes optar por anidar lossustantivos dentro de tu<Dial> para crear conexiones a otros tipos de dispositivos, llamadas de conferencia y colas de llamadas.

                                El sustantivo de un verbo de TwiML describe los números de teléfono, los puntos finales y los recursos API en los que deseas realizar una acción. Los sustantivos de TwiML son cualquier cosa sobre la que actúe el verbo (<Dial>, en este caso).

                                A continuación, se muestran los sustantivos que puedes utilizar con <Dial>. Cada uno es un elemento XML anidado:

                                Sustantivo Descripción
                                <Client>

                                Describe una conexión de Twilio Client.

                                La marcación simultánea también es posible con varios sustantivos <Client>.

                                Lee la documentación detallada de <Client> para obtener información detallada y el uso.

                                <Conference>

                                Describe una conferencia que permite que dos o más participantes hablen. Conecta al interlocutor activo a una llamada de conferencia.

                                Consulta la documentación detallada de <Conference> para ver un tutorial que muestra cómo utilizar la funcionalidad de conferencia de Twilio.

                                <Number>

                                Describe un número de teléfono con atributos más complejos.

                                Este sustantivo te permite utilizar <Dial> en otro número al tiempo que se especifica un comportamiento adicional. La marcación simultánea también es posible con varios sustantivos <Number>.

                                Lee la documentación detallada de <Number> para obtener más información y el uso.

                                <Sim>

                                Describe una conexión SIM de red inalámbrica programable.

                                Consulta la documentación detallada de <Sim> para obtener más información.

                                <Sip>

                                Describe una conexión SIP.

                                Consulta la documentación detallada de <Sip> para obtener más información.

                                <Queue>

                                Identifica una cola a la que debe conectarse esta llamada. Te permite conectar la llamada actual a la llamada en espera al frente de una cola determinada.

                                Lee la documentación de <Queue> para obtener un tutorial detallado sobre cómo utilizar la funcionalidad de colas de Twilio.

                                Anida uno de estos sustantivos dentro de un verbo <Dial> de esta forma:

                                      
                                      
                                      

                                      Utilizar un <Number> anidado con Dial

                                      De forma funcional, el ejemplo anterior se comporta igual como nuestro ejemplo básico en el que anidamos un número de teléfono de texto sin formato en nuestro <Dial>. Vamos a llevar este anidado del sustantivo TwiML un paso más allá.

                                      En el ejemplo siguiente, especificaremos que queremos una grabación de doble canal para un <Dial> con un <Conference> anidado.

                                      Este código reenviará al agente de llamada activo a una conferencia llamada myteamroom. Una grabación de doble canal de la llamada comenzará cuando comience el timbre. Después de que la llamada termine y la grabación esté lista, Twilio enviará la información de la grabación a example.com:

                                            
                                            
                                            

                                            Set Dual-Channel Recording on <Dial> with nested <Conference>

                                            Usar Twimlets

                                            Twimlets son URL alojadas por Twilio que proporcionan pequeños bits de funcionalidad usados de forma común.

                                            • El twimlet Forward reenviará todas las llamadas de un número de Twilio a otro número de tu elección.
                                            • El twimlet Simulring hará sonar varios números al mismo tiempo y conectará al agente de llamada a la primera persona que conteste.
                                            • Para marcar números uno por uno hasta que uno sea contestado, usa el twimlet Find me.
                                            Calificar esta página:

                                            ¿Necesitas ayuda?

                                            Todos la necesitamos a veces; la programación es difícil. Obtén ayuda ahora de nuestro equipo de soporte, o recurre a la sabiduría de la multitud visitando Stack Overflow Collective de Twilio o navegando por la etiqueta de Twilio en Stack Overflow.

                                                  
                                                  
                                                  

                                                  Gracias por tus comentarios.

                                                  Selecciona los motivos de tus comentarios. La información adicional que nos brindas nos ayuda a mejorar nuestra documentación:

                                                  Enviando tus comentarios…
                                                  🎉 Gracias por tus comentarios.
                                                  Se produjo un error. Inténtalo de nuevo.

                                                  Gracias por tus comentarios.

                                                  thanks-feedback-gif