# Fluxo de chamada SIP: de INVITE a BYE

> Uma chamada SIP básica é um handshake de três vias INVITE/200/ACK seguido de média e de um BYE. O chamador envia INVITE (com uma oferta SDP); o chamado responde 100 Trying, 180 Ringing e depois 200 OK (com a resposta SDP); o chamador envia ACK; a média RTP flui; e qualquer das partes termina a chamada com BYE, respondido por 200 OK.

- URL canônico: https://www.broadnet.me/pt/reference/sip-call-flow
- Idioma: pt
- Última atualização: 2026-07-18
- Editor: BroadNet (https://www.broadnet.me)

Uma chamada SIP completa percorrida passo a passo: INVITE com oferta SDP, 100 Trying, 180 Ringing, 200 OK com resposta SDP, o ACK de três vias, média RTP e o encerramento BYE/200 OK — mais como o CANCEL aborta uma chamada a tocar.

## Estabelecer a chamada

A chamada começa com o UAC do chamador a enviar um INVITE em direção ao chamado, transportando uma oferta SDP que descreve a média que quer. À medida que o pedido atravessa proxies, cada um pode devolver 100 Trying para parar as retransmissões. Quando o telefone do chamado começa a tocar, um 180 Ringing regressa — é isto que produz o ringback. Se for necessária early media (anúncios de rede, ringback da rede remota), um 183 Session Progress com SDP pode abrir o caminho de média antes do atendimento.

## Atendimento e o handshake de três vias

Quando o chamado atende, o seu UAS devolve um 200 OK transportando a resposta SDP que finaliza a negociação de média. O chamador confirma com um ACK — a terceira etapa do handshake do INVITE — e o diálogo fica agora totalmente estabelecido, identificado pelo Call-ID mais ambos os tags. A troca de três vias INVITE/200/ACK, em vez de um simples pedido/resposta, é o que torna o estabelecimento de chamadas SIP fiável mesmo sobre UDP com perdas.

*Uma chamada SIP completa*

```text
Alice (UAC)                         Bob (UAS)
   │  INVITE (SDP offer)   ─────────▶ │
   │ ◀───────── 100 Trying           │
   │ ◀───────── 180 Ringing          │   (Bob's phone rings)
   │ ◀───────── 200 OK (SDP answer)  │   (Bob answers)
   │  ACK                  ─────────▶ │
   │ ◀═══════ RTP media (both ways) ═▶ │   (the conversation)
   │  BYE                  ─────────▶ │   (Alice hangs up)
   │ ◀───────── 200 OK               │
```

## Média e mudanças a meio da chamada

Assim que o ACK completa o estabelecimento, a média RTP flui diretamente entre os pontos terminais (ou via um relé de média) nas portas que o SDP negociou, independentemente do caminho de sinalização. As mudanças a meio da chamada fazem-se com um re-INVITE ou UPDATE transportando um novo SDP — é assim que se fazem a espera (a=sendonly), a retoma (a=sendrecv), a renegociação de codec e a adição de vídeo, tudo dentro do diálogo existente sem largar a chamada.

## Terminar a chamada — BYE

Qualquer das partes termina uma chamada estabelecida enviando BYE, que a outra confirma com 200 OK; o diálogo é então fechado e a média para. O BYE é um pedido dentro do diálogo, pelo que transporta o Call-ID estabelecido, o tag do From, o tag do To e o próximo CSeq. Por ser uma transação normal, um BYE perdido é retransmitido até ser confirmado, para que ambos os lados convirjam no fim da chamada.

## Abortar uma chamada em curso — CANCEL

Se o chamador desiste antes de o chamado atender — a chamada ainda está a tocar — o UAC envia CANCEL, não BYE, porque ainda não chegou uma resposta final. O chamado para de tocar e devolve 487 Request Terminated para o INVITE original, que o chamador confirma com ACK. O CANCEL só é válido nesta janela pré-atendimento; assim que um 200 OK foi recebido, a chamada está estabelecida e o BYE é a forma de a terminar.

*Terminar vs abortar uma chamada*

| Situação | Método | Resultado |
|---|---|---|
| Chamada atendida, agora desligue | BYE | 200 OK; diálogo fechado |
| O telefone continua a tocar, mas a pessoa que ligou desiste | CANCEL | 487 Request Terminated no INVITE |
| O destinatário rejeita enquanto toca | (resposta) 486/603 | Busy Here / Decline; o chamador envia ACK |

## Perguntas frequentes

### Qual é o fluxo de chamada SIP básico?

INVITE (com oferta SDP) → 100 Trying → 180 Ringing → 200 OK (com resposta SDP) → ACK, depois a média RTP flui, e a chamada termina com BYE → 200 OK. O handshake de três vias INVITE/200/ACK estabelece o diálogo; o BYE desfá-lo.

### Porque é que o SIP usa um handshake de três vias para o INVITE?

O ACK confirma que o chamador recebeu o 200 OK final, tornando o estabelecimento de chamadas fiável mesmo sobre UDP com perdas. Como um 200 OK a um INVITE é retransmitido até ser confirmado com ACK, a troca de três vias garante que ambos os lados concordam que a chamada está de pé antes de a média ser confiada.

### Como coloco uma chamada SIP em espera?

Envie um re-INVITE (ou UPDATE) dentro do diálogo estabelecido transportando um novo SDP que define a direção de média para a=sendonly (e a=sendrecv para retomar). O diálogo e a chamada mantêm-se de pé; só a direção da média muda, o que é também como se entrega a música em espera.

### Quando envio CANCEL em vez de BYE?

Envie CANCEL quando a chamada ainda está a tocar e ainda não chegou uma resposta final — aborta o INVITE pendente e produz um 487. Envie BYE só depois de a chamada estar estabelecida (foi recebido um 200 OK). Usar o errado deixa os dois lados fora de sincronia.

### A média segue o mesmo caminho que as mensagens SIP?

Normalmente não. A sinalização SIP pode atravessar vários proxies, mas a média RTP flui em portas negociadas separadamente, tipicamente diretamente entre os pontos terminais ou através de um relé de média ou SBC dedicado — e é por isso que a sinalização pode ter sucesso enquanto a média (áudio) falha independentemente.

## Fontes

- [IETF RFC 3261 — SIP (call flows)](https://datatracker.ietf.org/doc/html/rfc3261)
- [IETF RFC 3665 — SIP Basic Call Flow Examples](https://datatracker.ietf.org/doc/html/rfc3665)

## Relacionados

- [Métodos e solicitações SIP](https://www.broadnet.me/pt/reference/sip-methods-and-requests)
- [Códigos de resposta SIP](https://www.broadnet.me/pt/reference/sip-response-codes)
- [SDP: Session Description Protocol](https://www.broadnet.me/pt/reference/sdp-session-description-protocol)
- [Multimédia RTP e SRTP](https://www.broadnet.me/pt/reference/rtp-and-srtp-media)
- [Voz programável (produto)](https://www.broadnet.me/pt/products/voice)
