{"id":269,"date":"2012-08-20T20:17:41","date_gmt":"2012-08-20T20:17:41","guid":{"rendered":"http:\/\/barth.com.br\/blog\/?p=269"},"modified":"2012-12-19T16:06:21","modified_gmt":"2012-12-19T16:06:21","slug":"retornar-o-tipo-do-dispositivo-protocolo-dispositivo-contexto","status":"publish","type":"post","link":"https:\/\/barth.com.br\/blog\/?p=269","title":{"rendered":"Retornar o tipo do dispositivo (Protocolo, Dispositivo, Contexto)"},"content":{"rendered":"<p>Esta \u00e9 mais uma quest\u00e3o muito comum nos treinamentos de Asterisk, &#8220;Como fazer para retornar se \u00e9 SIP ou IAX2?&#8221;.<\/p>\n<p>Bem utilizando a fun\u00e7\u00e3o <strong>CUT<\/strong> fica muito f\u00e1cil, vamos ver como:<\/p>\n<p>A fun\u00e7\u00e3o CUT retorna para uma vari\u00e1vel o valor encontrado, seguindo a seguinte regra:<\/p>\n<p>CUT(&lt;vari\u00e1vel&gt;,&lt;terminador&gt;,&lt;posi\u00e7\u00e3o&gt;)<\/p>\n<p>Onde:<\/p>\n<p><strong>variavel<\/strong> = Qualquer v\u00e1ri\u00e1vel como por exemplo a ${CHANNEL} que retorna o dispositivo solicitado;<\/p>\n<p><strong>terminador<\/strong> = Aqui utilizamos o delimitador utilizado no retorno da vari\u00e1vel, por padr\u00e3o \u00e9 utilizado &#8216;-&#8216;, mas iremos utilizar o &#8216;\/&#8217;, pois este \u00e9 o delimitador entre o Protocolo e o Dispositivo;<\/p>\n<p><strong>posi\u00e7\u00e3o<\/strong> = A posi\u00e7\u00e3o exata da busca, como no caso de um retorno de um dispositivo SIP a vari\u00e1vel CHANNEL retorna por exemplo SIP\/2000-0000000b, se utilizarmos a posi\u00e7\u00e3o em 1 ser\u00e1 retornado o valor SIP, e se utilizarmos o valor 2 ser\u00e1 retornado 2000-0000000b.<\/p>\n<pre>[device]\r\n; Retornar dados do canal (PROTOCOL\/DEVICE@CONTEXT)\r\n;\r\nexten=&gt;97,1,Set(PROTOCOL=${CUT(CHANNEL,\/,1)})\r\n        same=&gt;n,Set(DEVICE=${CUT(CHANNEL,\/,2)})\r\n        same=&gt;n,Set(CONTEXT=${CONTEXT})\r\n        same=&gt;n,NoOP(${PROTOCOL}\/${DEVICE:0:4}@${CONTEXT})<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esta \u00e9 mais uma quest\u00e3o muito comum nos treinamentos de Asterisk, &#8220;Como fazer para retornar se \u00e9 SIP ou IAX2?&#8221;. Bem utilizando a fun\u00e7\u00e3o CUT fica muito f\u00e1cil, vamos ver como: A fun\u00e7\u00e3o CUT retorna para uma vari\u00e1vel o valor encontrado, seguindo a seguinte regra: CUT(&lt;vari\u00e1vel&gt;,&lt;terminador&gt;,&lt;posi\u00e7\u00e3o&gt;) Onde: variavel = Qualquer v\u00e1ri\u00e1vel como por exemplo a [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[3],"tags":[],"_links":{"self":[{"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/269"}],"collection":[{"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=269"}],"version-history":[{"count":4,"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/269\/revisions"}],"predecessor-version":[{"id":272,"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=\/wp\/v2\/posts\/269\/revisions\/272"}],"wp:attachment":[{"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=269"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=269"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/barth.com.br\/blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=269"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}