Interação SIP e TwiML
As chamadas SIP interagem com o TwiML praticamente da mesma maneira que inbound phone calls and Client (chamadas telefônicas recebidas e cliente). Quando a Twilio recebe um INVITE de entrada para seu domínio SIP da Twilio e o autentica, ela transmite um código de resposta SIP 180 Ringing para seu endpoint SIP. A Twilio então procura os URLs associados ao seu domínio SIP e faz uma solicitação HTTP para o VoiceUrl.
Ao solicitar seu TwiML, a Twilio passará vários parâmetros para seu aplicativo a partir da chamada SIP original:
Nome do parâmetro | Descrição |
---|---|
To | O URI de INVITE |
From | Cabeçalho “From” passado no INVITE |
SipDomain | O domínio SIP da Twilio para o qual INVITE foi enviado |
SipDomainSid | O SID do domínio SIP de origem da Twilio |
SipUsername | O nome de usuário fornecido ao autenticar a solicitação, se a Lista de credenciais for o método de autenticação. |
SipCallId | O ID da chamada de INVITE recebido |
SipSourceIp | O endereço IP do qual o INVITE de entrada veio de. |
SipHeader_<name> | Os cabeçalhos X no INVITE de entrada são passados como parâmetros SipHeader_<name>, onde <name> é a chave do cabeçalho. Você pode receber vários deles. |
Ao receber uma resposta com TwiML válido, a Twilio começa a executar as instruções contidas no TwiML. Se as instruções forem <Say>, <Play>, <Record>, <Dial>, ou <Gather>, a Twilio envia um código de resposta SIP 200 OK para seu endpoint e estabelece a chamada.
Se seu aplicativo retornar um verbo <Redirect>
, o documento de redirecionamento será solicitado e a Twilio continuará no estado 180 Ringing.
Se seu aplicativo enviar de volta um <Reject reason=”busy”>
, a Twilio retornará um código de resposta SIP 486 Busy e a configuração da chamada será negada. Se seu aplicativo enviar de volta um <Reject reason=”rejected”>
, a Twilio retornará um código de resposta 404 Not Found e a configuração da chamada será negada.
SIP Refer da Twilio
Se as instruções do TwiML usarem <Refer>
, a Twilio gerará um SIP REFER para o PBX do cliente e lidará com quaisquer mensagens de NOTIFY (NOTIFICAÇÃO). A transferência é totalmente manipulada pelo PBX do cliente.
Observação: Se <Refer>
for o último verbo e não tiver URL de ação, o trecho da chamada será encerrado, caso contrário, a execução do TwiML continuará normalmente.
Interessado em saber mais sobre o SIP REFER, veja aqui.
Passar cabeçalhos SIP para seu aplicativo TwiML
Para melhor integração com aplicativos SIP remotos, as conexões SIP da Twilio podem ler cabeçalhos no INVITE inicial e passá‐los para seu aplicativo. A Twilio lerá todos os cabeçalhos começando com o prefixo X e os transmitirá no retorno de chamada HTTP do TwiML no formato SipHeader_X-headername=headervalue. Isso permite que seu aplicativo tome decisões programáticas sobre o que fazer com uma chamada.
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.