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

Menu

Expand
Classifique esta página:

TwiML™ Voice: <Dial>

Durante uma chamada ativa, você pode usar o verbo <Dial> do TwiML para conectar o autor da chamada atual a outra pessoa.

O exemplo a seguir mostra o uso mais básico do <Dial>:

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

Se a pessoa em 415-123-4567 atender a chamada, as duas partes poderão se comunicar até que uma desligue.

O verbo <Dial> encerrará a nova chamada se:

  • A pessoa chamada não atende.
  • A Twilio recebe um sinal de ocupado.
  • O número não existe.

O <Dial> não consegue iniciar uma chamada diretamente da Twilio; ele só discará para uma nova pessoa a partir de uma chamada ativa em andamento. Para iniciar uma nova chamada outbound na Twilio, você deve fazer uma solicitação na API para o endpoint da chamada.

Para obter um guia passo a passo sobre como fazer sua primeira chamada outbound com a Twilio, experimente um de nossos inícios rápidos que mostram como fazer uma chamada usando as bibliotecas auxiliares da Twilio.

A Twilio fará uma solicitação GET ou POST para o URL action (se fornecido) quando a chamada <Dial> terminar. O fluxo de chamadas continuará, usando o TwiML que você enviar em resposta a essa solicitação.

Se um URL action não for fornecido no <Dial> e o autor da chamada original ainda estiver na linha, a Twilio continuará a renderizar o documento TwiML original.

Loading Code Sample...
        
        
        

        Simple dial

        Com este código, a Twilio conecta a chamada original a uma nova pessoa discando 415-123-4567. Várias coisas podem acontecer:

        • Se alguém atender, a Twilio conecta o autor da chamada com a pessoa chamada.
        • Se o autor da chamada original desligar, a sessão da Twilio é encerrada e o <Say> não é executado.
        • Se a linha estiver ocupada, se não houver resposta ou se a pessoa chamada desligar, o <Dial> é encerrado e o autor da chamada inicial ouve o texto <Say> (“Goodbye”) antes de o fluxo da chamada ser encerrado.

        Atributos do <Dial>

        O <Dial> é compatível com os seguintes atributos que alteram seu comportamento:

        Atributo Valores permitidos Valor padrão
        action URL relativo ou absoluto Nenhum
        answerOnBridge true, false false
        callerId Um número de telefone válido ou um identificador de cliente se estiver chamando um <Client>. Caller's callerId
        callReason String (máximo de 50 caracteres) Nenhum
        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.

        Para a compatibilidade com versões anteriores, true é um alias para record-from-answer e false é um alias para do-not-record.

        do-not-record
        recordingStatusCallback URL relativo ou absoluto URL Nenhum
        recordingStatusCallbackMethod GET, POST POST. Este atributo indica qual método HTTP a Twilio deve usar ao solicitar 'recordingStatusCallback'.
        recordingStatusCallbackEvent in-progress, completed, absent completed
        recordingTrack inbound, outbound, both both
        referUrl URL relativo ou absoluto Nenhum
        referMethod GET, POST POST
        ringTone ISO 3166-1 alpha-2 country code O padrão é o toque da operadora
        timeLimit Número inteiro positivo (segundos) 14.400 segundos (4 horas)
        timeout Número inteiro positivo (segundos) 30 segundos
        trim trim-silence, do-not-trim do-not-trim

        Use um ou mais desses atributos em um verbo <Dial>, desta forma:

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

        action (ação)

        O atributo action aceita um URL como seu argumento. Este URL informa a Twilio onde fazer uma solicitação POST ou GET após o término da chamada discada.

        A solicitação da Twilio para este URL incluirá os seguintes parâmetros:

        Parâmetro Descrição
        DialCallStatus O resultado da tentativa do <Dial>. Para obter detalhes, consulte a seção DialCallStatus abaixo.
        DialCallSid O SID de chamada do trecho de chamada. Este parâmetro não é enviado após discar para uma conferência.
        DialCallDuration A duração, em segundos, da chamada discada. Este parâmetro não é enviado após discar para uma conferência ou se uma chamada secundária for redirecionada para um novo URL do TwiML antes de ser desconectada.
        DialBriged Indicador booleano que indica se a chamada de discagem foi ou não conectada ao destino discado.
        RecordingUrl O URL do áudio gravado. Este parâmetro só é incluído se a gravação estiver definida em <Dial> e não incluir gravações iniciadas de outras maneiras. O arquivo de gravação pode ainda não estar acessível quando o callback da ação é enviado. Use recordingStatusCallback para receber uma notificação confiável de quando a gravação estiver disponível para acesso.

        Se você usar o <Dial> em <Queue>, a Twilio passará parâmetros adicionais para seu URL action. Leia a documentação <Queue> detalhada para saber mais.

        Se um URL action for especificado para <Dial>, a Twilio continuará a chamada inicial depois que a pessoa discada desligar.

        Quaisquer verbos TwiML incluídos após este <Dial> não poderão ser alcançados, pois sua resposta à Twilio assume o controle total da chamada inicial. Se deseja tomar mais ações nessa chamada inicial, você deve responder à solicitação da Twilio com as instruções TwiML sobre como lidar com a chamada.

        Se nenhum URL action for fornecido, o <Dial> será concluído e a Twilio passará para o próximo verbo TwiML do documento. Se não houver mais verbos, a Twilio encerrará a chamada telefônica. Observe que isso é diferente do comportamento de <Record> e <Gather>.

        Voltar para a lista de atributos

        DialCallStatus

        Se você especificar um URL action, a Twilio sempre passará o status da tentativa de <Dial>.

        Os valores possíveis para DialCallStatus são:

        Valor Descrição
        completed A pessoa chamada atendeu a chamada e foi conectada ao autor da chamada.
        answered Ao chamar uma conferência, a pessoa chamada atendeu e foi conectada ao autor da chamada.
        busy A Twilio recebeu um sinal de ocupado ao tentar se conectar à parte chamada.
        no-answer A parte chamada não atendeu antes do tempo limite decorrido.
        failed A Twilio não conseguiu rotear para o número de telefone fornecido. Isso frequentemente é causado ao discar um número de telefone correto, mas não existente.
        canceled A chamada foi cancelada por meio da API REST antes de ser atendida.

        Voltar para a lista de atributos

        answerOnBridge

        Se <Dial> for o primeiro verbo TwiML no seu documento TwiML, answerOnBridge="true" fará com que a chamada inbound toque até que o número dicado atenda.

        Se a chamada inbound for uma chamada SIP, a Twilio enviará 180 ou 183 ao servidor SIP assim que ele se conetar à Twilio. Ela aguardará até que a chamada <Dial> se conecte para um retorno de 200.

        Voltar para a lista de atributos

        callerId

        Ao usar <Dial> em resposta à solicitação de chamada inbound da Twilio, a parte discada vê o número do autor da chamada inbound como o ID do autor da chamada.

        Por exemplo:

        1. Alguém com ID do autor da chamada 1-415-123-4567 liga para o seu número da Twilio.
        2. Você diz para a Twilio executar o verbo <Dial> para 1-858-987-6543 para lidar com a chamada inbound.
        3. A pessoa chamada (1-858-987-6543) verá 1-415-123-4567 como o ID do autor da chamada na chamada recebida.

        Ao usar o substantivo <Number> e especificar um callerId no <Dial>, é possível definir um ID do autor da chamada diferente do padrão. Você pode alterar o número de telefone que a pessoa chamada vê para um dos seguintes:

        No caso de uma chamada SIP inbound, o callerId o não pode ser o número To ou From, pois existe o risco de falsificação de ID do autor da chamada. Ele pode ser apenas um número da Twilio ou um número de telefone verificado com a Twilio.

        Se você estiver discando um <Client>, também pode definir um identificador de cliente válido como o atributo callerId. Por exemplo, se você configurou um cliente para as chamadas recebidas e estiver discando para esse cliente, poderá definir o atributo callerId como client:joey.

        Se você estiver discando um endpoint <Sip>, insira qualquer string alfanumérica como o callerId. Opcionalmente, inclua os seguintes caracteres: +, -, _, e ., mas sem espaço em branco.

        No exemplo a seguir, usamos <Dial> para ligar para um número de telefone a partir de um dispositivo Twilio Client:

        Loading Code Sample...
              
              
              
              Como esta chamada <Dial> é feita a partir de uma conexão do Twilio Client, precisamos definir explicitamente um número de telefone válido como o callerId.

              Discar o número de telefone de um Twilio Client

              Como esta chamada <Dial> é feita a partir de uma conexão do Twilio Client, precisamos definir explicitamente um número de telefone válido como o callerId.

              Voltar para a lista de atributos

              hangupOnStar

              O atributo hangupOnStar permite que o autor da chamada inicial desligue a chamada da pessoa chamada pressionando a tecla '*' no telefone.

              Quando as duas pessoas são conectadas usando o <Dial>, a Twilio bloqueia a execução de outros verbos até que o autor da chamada ou a pessoa chamada desligue. O recurso hangupOnStar permite que o autor da chamada inicial desligue na pessoa que recebeu a chamada sem ter que desligar o telefone (o que encerra a sessão de processamento do TwiML).

              Quando o autor da chamada pressiona '*', a Twilio desliga a chamada para a pessoa chamada. Se um URL action foi fornecido, a Twilio envia um DialCallStatus para esse URL e processa a resposta. Ao ligar para uma conferência, o DialCallStatus será answered. Todos os outros tipos de chamada terão um DialCallStatus completed.

              Se nenhum action foi fornecido, a Twilio continua para o próximo verbo no documento TwiML atual.

              Voltar para a lista de atributos

              método

              O atributo method aceita GET ou POST. Isso informa a Twilio se deve solicitar o URL action por meio do HTTP GET ou POST, sendo POST o valor padrão.

              No exemplo a seguir, fornecemos um URL action e especificamos GET como o method:

              Loading Code Sample...
                    
                    
                    

                    Especificar um URL de ação e um método

                    Esse código fará com que <Dial> conecte o autor da chamada iniciar ao número de telefone 415-123-4567.

                    Quando a chamada <Dial> termina, a Twilio envia uma solicitação GET ao URL action. Essa solicitação incluirá o parâmetro DialCallStatus que nos informa sobre o status da chamada <Dial>.

                    Nosso aplicativo da Web hospedado neste URL action agora pode analisar o DialCallStatus e enviar uma resposta à Twilio informando o que fazer em seguida.

                    Neste exemplo, o verbo <Say> nunca será executado, pois o código em /handleDialCallStatus assume o controle total da chamada.

                    Voltar para a lista de atributos

                    record

                    O atributo record permite que você grave os dois trechos de uma chamada dentro do verbo <Dial> associado. As gravações estão disponíveis em duas opções: monocanal ou canal duplo.

                    Nas gravações monocanal, ambos os trechos da chamada são combinados em um único canal dentro de um arquivo de gravação.

                    Entre as opções de record monocanal temos:

                    • record-from-answer, que inicia a gravação assim que a chamada é atendida.
                    • record-from-ringing, que inicia a gravação assim que o toque começa (antes que o destinatário atenda a chamada).

                    Com as gravações de canal duplo, ambos trechos usam canais separados em um único arquivo de gravação.

                    Entre as opções de record de canal duplo temos:

                    • record-from-answer-dual, que inicia a gravação assim que a chamada é atendida.
                    • record-from-ringing-dual, que inicia a gravação assim que o toque começa (antes que o destinatário atenda a chamada).

                    A chamada principal estará sempre no primeiro canal e a chamada secundária estará sempre no segundo canal de uma gravação de canal duplo.

                    Se a opção de gravação de canal duplo for usada para um <Dial> com um <Conference> aninhado, o arquivo de gravação resultante terá dois canais. O trecho principal (chamada inbound) é representado no primeiro canal. O segundo canal inclui o áudio que vem da conferência.

                    Voltar para a lista de atributos

                    recordingStatusCallback

                    O atributo recordingStatusCallback usa um URL relativo ou absoluto como argumento. Se você solicitou a gravação do <Dial>, o URL informa a Twilio onde fazer sua solicitação GET ou POST quando a gravação estiver disponível para acesso.

                    A Twilio passará os seguintes parâmetros com sua solicitação para o URL recordingStatusCallback:

                    Parâmetro Descrição
                    AccountSid O identificador exclusivo da conta responsável pela gravação.
                    CallSid Um identificador exclusivo para a chamada associada à gravação. Isso sempre se refere ao trecho principal de uma chamada de dois trechos.
                    RecordingSid O identificador exclusivo da gravação.
                    RecordingUrl O URL do áudio gravado.
                    RecordingStatus O status da gravação. Os valores possíveis são: in-progress, completed, absent.
                    RecordingDuration A duração da gravação, em segundos.
                    RecordingChannels O número de canais no arquivo de gravação final como um número inteiro. Os valores possíveis são 1 e 2.
                    RecordingStartTime O carimbo de data/hora de quando a gravação foi iniciada.
                    RecordingSource O método de início usado para criar a gravação. Em gravações iniciadas quando a gravação é definida para <Dial>, o DialVerb é retornado.

                    Voltar para a lista de atributos

                    recordingStatusCallbackEvent

                    O recordingStatusCallbackEvent permite especificar quais alterações de status de gravação devem gerar um webhook para o URL especificado no atributo recordingStatusCallback. Os valores disponíveis são:

                    • in-progress: a gravação foi iniciada.
                    • completed: a gravação foi concluída e está disponível.
                    • absent: a gravação está ausente e inacessível.

                    Para especificar mais de um valor, separe cada um com um espaço. O valor padrão é: completed.

                    Para pausar, retomar ou pararas gravações, consulte os documentos da API de gravação.

                    O exemplo a seguir especifica que queremos que cada participante na chamada <Dial> seja representado em seu próprio canal da gravação final e que a gravação comece quando a chamada começar a tocar.

                    Loading Code Sample...
                          
                          
                          

                          Set Dual-Channel Recording on <Dial>

                          Voltar para a lista de atributos

                          recordingTrack

                          O atributo recordingTrack permite selecionar se as faixas de áudio inbound, outbound ou both da chamada devem ser gravadas. A faixa inbound representa o áudio recebido pela Twilio e a faixa outbound representa o áudio que a Twilio gera na chamada. O valor padrão é both e grava o áudio recebido e gerado pela Twilio.

                          Quando a faixa da áudio inbound ou outbound for gravada, o arquivo de gravação resultante será sempre monocanal. Quando o áudio é gravado usando both, o arquivo resultante pode estar em canais separados (duplo) ou mistos (mono).

                          Voltar para a lista de atributos

                          referUrl

                          Para usar o recurso SIP REFER de entrada da Twilio, você deve ativar os "recursos SIP programáveis aprimorados" em suas configurações do Voice no console.

                          Se a pessoa chamada enviar uma solicitação SIP REFER, uma solicitação da Twilio será enviada para o referUrl. Seu aplicativo deve responder sobre como lidar com a transferência. Saiba mais sobre o SIP REFER de entrada para Twilio.

                          Os seguintes parâmetros são adicionados ao padrão Twilio Voice Webhook Request (solicitação de webhook do Twilio Voice):

                          Parâmetro Descrição
                          ReferTransferTarget O número de telefone ou endpoint SIP para o qual transferir.
                          Loading Code Sample...
                                
                                
                                

                                SIP REFER Inbound to Twilio using referUrl

                                Voltar para a lista de atributos

                                referMethod

                                O atributo referMethod aceita GET ou POST. Isso informa a Twilio se deve solicitar o URL action por meio do HTTP GET ou POST, sendo POST o valor padrão.

                                Voltar para a lista de atributos

                                ringTone

                                O toque permite substituir o toque de retorno de chamada que a Twilio reproduz para o autor da chamada durante a execução de um <Dial>.

                                Se não for especificado, a Twilio reproduzirá o toque de retorno de chamada ou passará o toque de retorno de chamada da operadora (se fornecido). Isso funciona automaticamente, mas pode haver casos em que uma substituição é desejada.

                                Os valores aceitos são: 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.

                                Observação: se você estiver discando um endpoint <Sip>, o ringTone só funcionará como esperado se você tiver habilitado os recursos SIP programáveis aprimorados na Twilio.

                                Voltar para a lista de atributos

                                timeLimit

                                O atributo timeLimit define a duração máxima do <Dial> em segundos.

                                Por exemplo, ao definir um limite de tempo de 120 segundos, o <Dial> desligará automaticamente a parte chamada após dois minutos da chamada telefônica.

                                O limite de tempo padrão em chamadas é de 4 horas, que também é a duração máxima de uma chamada. Para aumentar a duração máxima para 24 horas, ative o recurso "24-Hour Maximum Call Duration" (duração máxima da chamada de 24 horas) em General settings (Configurações gerais) do Programmable Voice.

                                Voltar para a lista de atributos

                                timeout (tempo limite)

                                Especificar um timeout define o limite em segundos que o <Dial> aguardará até que a pessoa discada atenda a chamada. Isso informa a Twilio quanto tempo deve deixar a chamada tocar antes de desistir e configurar no-answer como o DialCallStatus.

                                O valor padrão do timeout é 30 segundos. O valor mínimo permitido é 5 segundos e o valor máximo é 600 segundos.

                                A Twilio sempre adiciona um buffer de tempo limite de 5 segundos ao <Dial>; portanto, se você inserir um valor de tempo limite de 10 segundos, verá um tempo limite real mais próximo de 15 segundos.

                                Voltar para a lista de atributos

                                trim

                                Definir o atributo trim para trim-silence cortará o silêncio inicial e final de seus arquivos de áudio.

                                Cortar um arquivo pode fazer com que a duração da gravação seja ligeiramente inferior à duração da chamada. O atributo trim tem do-not-trim como padrão.

                                Voltar para a lista de atributos

                                callReason

                                O motivo da chamada realizada. Use‐o para especificar a finalidade da chamada que é apresentada no telefone da pessoa chamada. (Branded Calls Beta, Chamadas sinalizadas versão Beta)

                                Para obter mais informações, visite a página Branded Calls (chamadas sinalizadas).

                                Voltar para a lista de atributos

                                substantivos <Dial>

                                Você sempre pode optar por aninhar um texto sem formatação (uma string representando um número de telefone válido) em <Dial> para informar um número de telefone para a Twilio chamar:

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

                                Você também pode optar por aninhar substantivos no <Dial> para criar conexões com outros tipos de dispositivos, chamadas em conferência e filas de chamadas.

                                O substantivo de um verbo TwiML descreve os números de telefone, endpoints e recursos de API sobre os quais você deseja agir. Os substantivos TwiML substantivos são qualquer coisa sobre a qual o verbo (<Dial>, neste caso) age sobre.

                                Você pode usar os substantivos a seguir com o <Dial>. Cada um é um elemento XML aninhado:

                                Substantivo Descrição
                                <Client>

                                Descreve uma conexão do Twilio Client.

                                A discagem simultânea também é possível usando vários substantivos do <Client>.

                                Leia a documentação detalhada do <Client> para obter informações detalhadas e uso.

                                <Conference>

                                Descreve uma conferência que permite que duas ou mais pessoas falem. Conecta a parte ativa a uma chamada em conferência.

                                Consulte a documentação detalhada de <Conference> para obter o passo a passo sobre como usar a funcionalidade de conferência da Twilio.

                                <Number>

                                Descreve um número de telefone com atributos mais complexos.

                                Esse substantivo permite que você use <Dial> em outro número ao especificar um comportamento adicional. A discagem simultânea também é possível usando vários substantivos do <Number>.

                                Leia a documentação detalhada do <Number> para obter mais informações e uso.

                                <Sim>

                                Descreve uma conexão do chip/SIM do Programmable Wireless.

                                Consulte a documentação detalhada do <Sim> para obter mais informações.

                                <Sip>

                                Descreve uma conexão SIP.

                                Consulte a documentação detalhada do <Sip> para obter mais informações.

                                <Queue>

                                Identifica uma fila à qual esta chamada deve se conectar. Permite conectar a chamada atual à chamada em espera na frente de uma fila específica.

                                Leia a documentação sobre <Queue> para obter o passo a passo detalhado sobre como usar a funcionalidade de enfileiramento da Twilio.

                                Aninhe um desses substantivos dentro de um verbo <Dial> desta maneira:

                                Loading Code Sample...
                                      
                                      
                                      

                                      Use um <Number> aninhado com Dial

                                      Funcionalmente, o exemplo acima se comporta exatamente como o exemplo básico, no qual aninhamos um número de telefone de texto sem formatação no <Dial>. Vamos levar esse aninhamento de substantivos TwiML mais adiante.

                                      No exemplo a seguir, especificaremos que queremos uma gravação de canal duplo para um <Dial> com um <Conference> aninhado.

                                      Este código encaminhará o autor da chamada ativo para uma conferência chamada myteamroom. Uma gravação de canal duplo da chamada iniciará quando o toque começar. Depois que a chamada terminar e a gravação estiver pronta, a Twilio enviará as informações de gravação de volta para example.com:

                                      Loading Code Sample...
                                            
                                            
                                            

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

                                            Como usar Twimlets

                                            Twimlets são URLs hospedados pela Twilio que fornecem pequenos pedaços de funcionalidade comumente usadas.

                                            • O twimlet Foward (encaminhar) encaminha todas as chamadas de um número da Twilio para outro número de sua escolha.
                                            • O twimlet Simulring (toque simultâneo) disca vários números ao mesmo tempo e conecta o autor da chamada à primeira pessoa que atender.
                                            • Para discar números por vez até que um deles pegue, use o twimlet Find me (encontrar).
                                            Classifique esta página:

                                            Precisa de ajuda?

                                            Às vezes, todos nós precisamos; a programação é difícil. Receba ajuda agora da nossa equipe de suporte, ou confie na sabedoria da multidão navegando pelo Stack Overflow Collective da Twilio ou buscando a tag Twilio no Stack Overflow.

                                            Loading Code Sample...
                                                  
                                                  
                                                  

                                                  Obrigado pelo seu feedback!

                                                  Selecione o(s) motivo(s) para seu feedback. As informações adicionais que você fornece nos ajudam a melhorar nossa documentação:

                                                  Enviando seu feedback...
                                                  🎉 Obrigado pelo seu feedback!
                                                  Algo deu errado. Tente novamente.

                                                  Obrigado pelo seu feedback!

                                                  thanks-feedback-gif