Session Initiation Protocol Carlos Gustavo A. da Rocha
Session Initiation Protocol Desenvolvido pelo IETF RFC 2543 (Fev 1999) RFC 3261 (Jun 2002) É um protocolo de sinalização para sessões multimídia Negociação; Estabelecimento; Alterações de parâmetros; Término de sessões
Características Usa TCP ou UDP como protocolo de transporte Porta 5060 Não transporta apenas áudio Vídeo, jogos em rede, realidade virtual, etc Utiliza URIs (Universal Resource Identifier) Por exemplo para a identificação Bem como outros protocolos padrões da Internet DNS (Domain Name System) SDP (Session Description Protocol)
Pilha de protocolos SDP SIP TCP IP codecs RTP UDP DNS Ethernet
Características (cont) Protocolo cliente / servidor Projeto similar ao do HTTP Cada requisição de cliente invoca um método do servidor Solicita a execução de uma tarefa e o envio de seu resultado como resposta Um conjunto completo de requisições é chamado de Transação SIP
Endereços SIP São URIs, facilitando bastante a descoberta de usuários carlos.rocha@voip.ifrn.edu.br 20131234@voip.ifrn.edu.br Elementos SIP Agentes (clientes) Servidores Autenticação, registro, localização, proxy, etc
Principais mensagens (métodos) SIP INVITE Inicia uma sessão, convidando um participante Informa a origem, destino e tipo de mídia BYE Finaliza a participação de um cliente em uma sessão ACK Para prover confiabilidade, confirma o recebimento de outra(s) mensagens
Principais mensagens (métodos) SIP (cont.) CANCEL Cancela uma outra mensagem que ainda não tenha sido respondida com ACK REGISTER Forma do cliente se autenticar (registrar) em um servidor SIP, informando sua localização Feito na inicialização do cliente
Estabelecimento de chamada Origem envia uma mensagem SIP INVITE Destino responde, opcionalmente, com RINGING Quando o destino atende envia um OK Origem envia um ACK, informando que a conversação vai começar Com o respectivo fluxo multimídia (RTP) Um dos participantes encerra a conversa enviando uma mensagem BYE Obtém como resposta um OK
Origem Destino
Formato de mensagens São textos ASCII, como no HTTP Ou seja, são legíveis A primeira linha indica se é uma requisição ou resposta Seguida de outros cabeçalhos e do corpo da mensagem Para o corpo é adotado o formato definido no SDP
Formato de mensagens (cont.) Nas respostas a primeira linha informa o status 100-199 (1XX) : Informação Provisória 200-299 (2XX) : Sucesso 300-399 (3XX) : Redirecionamento 400-499 (4XX) : Erro no Cliente 500-599 (5XX) : Erro no Servidor 600-699 (6XX) : Falha Global As diferentes de 1XX devem ser respondidas por um ACK
INVITE sip:fulano@voip.ifrn.edu.br SIP/2.0 From : Bill Gates <sip:gates@microsoft.com> Subject : VOIP Development Meeting To : Fulano <sip:fulano@voip.ifrn.edu.br> Via : SIP/2.0/UDP proxysip.microsoft.com Call-ID : 36217641832.423.234@200.201.202.203 Content-type : application/sdp CSeq : 8324 INVITE Content-Length : 187 SIP/2.0 200 OK From : Fulano <sip:fulano@voip.ifrn.edu.br> To : Bill Gates <gates@microsoft.com> Via : SIP/2.0/UDP server-voip.ifrn.edu.br Call-ID : 36217641832.423.234@200.201.202.203 CSeq : 8324 INVITE
100 Trying 180 Ringing 181 Call Is Being Forwarded 182 Queued 183 Session Progress 200 OK 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 305 Use Proxy 380 Alternative Service 400 Bad Request 401 Unauthorized (usado pelos registrars) 403 Forbidden 404 Not Found 405 Method Not Allowed 407 Proxy Authentication Required 408 Request Timeout SIP 413 Request Entity Too Large 414 Request-URI Too Long 415 Unsupported Media Type 416 Unsupported URI Scheme 423 Interval Too Brief 480 Temporarily Unavailable 481 Call/Transaction Does Not Exist 482 Loop Detected 483 Too Many Hops 484 Address Incomplete 486 Busy Here 491 Request Pending 500 Server Internal Error 501 Not Implemented 503 Service Unavailable 504 Server Time-out 505 Version Not Supported 600 Busy Everywhere 603 Decline 604 Does Not Exist Anywhere 606 Not Acceptable
Exemplos de Implementações Servidores Kamailio - http://www.kamailio.org Asterisk - www.asterisk.org Clientes (software) X-lite - www.counterpath.com Zoipper www.zoiper.com Clientes (hardware dedicado) GrandSteam, Polycom, Linksys,
H.232 X SIP Comparação Padronização SIP: IETF (Internet) H.323: ITU-T (telecomunicações) Complexidade SIP: Baixa H.323: Alta
H.232 X SIP Comparação (cont.) Ênfases SIP: Flexibilidade, Integração com a internet H.323: Controle, contabilização, interoperabilidade Adoção atual SIP: VoIP (ligação do cliente com provedor de serviço) H.323: Videoconferência; ligação entre provedores de serviço VoIP com administração distinta (perdendo bastante espaço para o IAX)