{"id":938,"date":"2020-10-02T10:18:03","date_gmt":"2020-10-02T13:18:03","guid":{"rendered":"http:\/\/blog.saperx.com.br\/?p=938"},"modified":"2020-10-02T10:36:25","modified_gmt":"2020-10-02T13:36:25","slug":"sip-para-iniciantes-request-responses","status":"publish","type":"post","link":"https:\/\/blog.saperx.com.br\/index.php\/2020\/10\/02\/sip-para-iniciantes-request-responses\/","title":{"rendered":"SIP para iniciantes &#8211; Requests &#038; Responses"},"content":{"rendered":"\n<p>Como em uma conversa entre duas pessoas, um lado requisita\/questiona\/solicita algo, e o outro lado responde.<\/p>\n\n\n\n<p>Exemplo:<\/p>\n\n\n\n<p><strong>Request:<\/strong><br>&#8220;Quero registrar o ramal 123&#8221;<\/p>\n\n\n\n<p><strong>Response:<\/strong><br>&#8220;Voc&ecirc; n&atilde;o est&aacute; autorizado&#8221;<br><\/p>\n\n\n\n<h2>SIP Requests<\/h2>\n\n\n\n<p>Abaixo, seguem os principais (mais utilizados!) METHODS que um REQUEST pode possuir:<\/p>\n\n\n\n<p><strong>REGISTER<\/strong> <br>Utilizado para registrar um contato, informando IP, porta, usu&aacute;rio e senha.<\/p>\n\n\n\n<p><strong>INVITE<\/strong><br>Utilizado para iniciar uma chamada.<\/p>\n\n\n\n<p><strong>ACK<\/strong><br>Utilizado para handshake e\/ou identifica&ccedil;&atilde;o de in&iacute;cio de tr&aacute;fego de voz.<\/p>\n\n\n\n<p><strong>CANCEL<\/strong><br>Cancela uma determinada sess&atilde;o.<\/p>\n\n\n\n<p><strong>BYE<\/strong><br>Finaliza uma determinada sess&atilde;o.<\/p>\n\n\n\n<p><strong>OPTIONS<\/strong><br>Utilizado para troca de informa&ccedil;&otilde;es sobre o que a outra ponta suporta.<br>Tamb&eacute;m &eacute; muito utilizado para conhecer o tempo de resposta entre 2 pontos SIP.<\/p>\n\n\n\n<h2>SIP Responses<\/h2>\n\n\n\n<p>As respostas para cada REQUEST s&atilde;o dadas em n&uacute;meros de 3 d&iacute;gitos e separadas por classes. S&atilde;o elas:<\/p>\n\n\n\n<p><strong>1XX<\/strong><br>Informa&ccedil;&atilde;o <strong>tempor&aacute;ria<\/strong> da chamada. Ex: 180 ringing, 100 Trying.<\/p>\n\n\n\n<p><strong>2XX<\/strong><br>Informa&ccedil;&atilde;o de <strong>sucesso<\/strong>. Ex: 200 OK.<\/p>\n\n\n\n<p><strong>3XX<\/strong><br>Informa&ccedil;&atilde;o sobre <strong>redirecionamento<\/strong>. Ex: 302 Moved Temporarily.<\/p>\n\n\n\n<p><strong>4XX<\/strong><br>Informa&ccedil;&atilde;o de <strong>erro<\/strong> vinda do <strong>lado do cliente<\/strong>. Ex: 401 Unauthorized.<\/p>\n\n\n\n<p><strong>5XX<\/strong><br>Informa&ccedil;&atilde;o de <strong>erro<\/strong> vinda do <strong>lado do servidor<\/strong>. Ex: 503 Service Unavailable.<\/p>\n\n\n\n<p><strong>6XX<\/strong><br>Informa&ccedil;&atilde;o de <strong>erros<\/strong> <strong>globais<\/strong>, n&atilde;o sendo necessariamente do lado do cliente ou do servidor, por exemplo quando o usu&aacute;rio destino recusa a chamada. Ex: 603 Decline. <\/p>\n\n\n\n<p><\/p>\n\n\n\n<h2>Conclus&atilde;o<\/h2>\n\n\n\n<p>Agora ficou f&aacute;cil, n&atilde;o?<br>Sempre que voc&ecirc; visualizar uma resposta SIP com um n&uacute;mero, voc&ecirc; j&aacute; saber&aacute; em que classe ela pertence. Se o erro &eacute; do servidor, ou se &eacute; do cliente, se &eacute; uma informa&ccedil;&atilde;o de status, entre outros.<\/p>\n\n\n\n<p>E se voc&ecirc; quiser saber mais, segue a fonte: <a href=\"https:\/\/tools.ietf.org\/html\/rfc3261#page-9\">https:\/\/tools.ietf.org\/html\/rfc3261<\/a><\/p>\n\n\n\n<p>No pr&oacute;ximo POST abordaremos algumas defini&ccedil;&otilde;es important&iacute;ssimas do protocolo SIP.<\/p>\n\n\n\n<p>Bons estudos!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como em uma conversa entre duas pessoas, um lado solicita algo, e o outro lado responde.<br \/>\nEntenda como funciona a l\u00f3gica das trocas de mensagens em SIP<\/p>\n","protected":false},"author":2,"featured_media":939,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[43,5],"tags":[131],"_links":{"self":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/938"}],"collection":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=938"}],"version-history":[{"count":4,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/938\/revisions"}],"predecessor-version":[{"id":943,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/posts\/938\/revisions\/943"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media\/939"}],"wp:attachment":[{"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=938"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=938"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.saperx.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=938"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}