define('DISALLOW_FILE_EDIT', true);
define('DISALLOW_FILE_MODS', true);{"id":160,"date":"2012-09-24T23:04:16","date_gmt":"2012-09-24T22:04:16","guid":{"rendered":"http:\/\/www.monovarlinux.org\/?p=160"},"modified":"2012-09-24T23:06:08","modified_gmt":"2012-09-24T22:06:08","slug":"retry-dial-en-asterisk","status":"publish","type":"post","link":"http:\/\/www.monovarlinux.org\/?p=160","title":{"rendered":"Retry Dial en Asterisk"},"content":{"rendered":"<p>Hola.<\/p>\n<p>Aqui estoy de nuevo con otra peque\u00f1a aportaci\u00f3n para la comunidad, esta vez les voy a mostrar como hacer un plan de marcado de Asterisk a prueba de bombas ( o casi jeje).<\/p>\n<p>En este caso lo que vamos a hacer es trabajar con 2 troncales de 2 operadores SIP. Intentaremos sacar la llamada 3 veces por el primero, y si no lo conseguimos, reintentamos otras 3 veces m\u00e1s con el segundo, es muy sencillo.<\/p>\n<p>&nbsp;<\/p>\n<p>; Definimos variables. Numero de intentos y proveedores<br \/>\nexten =&gt; s,1,Set(INTENTOS=3)<br \/>\nexten =&gt; s,n,Set(PROVEEDOR1=SIP\/proveedor1)<br \/>\nexten =&gt; s,n,Set(PROVEEDOR2=SIP\/proveedor2)<\/p>\n<p>Con este parrafo definimos todas las variables que vamos a utilizar. En la primera linea, declaramos una variable llamada INTENTOS que valdr\u00e1 3, ser\u00e1n los intentos a realizar para cada proveedor. PROVEEDOR1 y PROVEEDOR2 estan definidos en mi archivo sip.conf.<\/p>\n<p>&nbsp;<\/p>\n<p>; Intentamos sacar llamada por TRUNK 1<br \/>\nexten =&gt; s,n(llamar),Set(REALIZADOS=0)<br \/>\nexten =&gt; s,n(dial),Dial(${PROVEEDOR1}\/${MACRO_EXTEN},30)<br \/>\nexten =&gt; s,n,Set(REALIZADOS=$[${REALIZADOS}+1])<br \/>\nexten =&gt; s,n,GotoIf($[${REALIZADOS} &lt; ${INTENTOS}]?dial:proveedor2)<\/p>\n<p>&nbsp;<\/p>\n<p>Con esto, intentamos sacar la llamada. La primera linea \u00absetea\u00bb la variable REALIZADOS en 0 y a continuaci\u00f3n se ejecuta el Dial, si ocurre alg\u00fan problema sigue a la siguiente linea, en la que, incrementamos el valor de REALIZADOS en 1. Abajo comparamos si REALIZADOS es MENOR que INTENTOS, como si que lo es, ejecutar\u00e1 dial (volver a ejecutar de nuevo el Dial()). Esto ocurria 3 veces, a la 3\u00ba el plan de marcado seguir\u00e1 hasta la etiqueta proveedor2.<\/p>\n<p>&nbsp;<\/p>\n<p>; Reintentamos sacar llamada por TRUNK 2<br \/>\nexten =&gt; s,n(proveedor2),Set(REALIZADOS=0)<br \/>\nexten =&gt; s,n(redial),Dial(${PROVEEDOR2}\/${MACRO_EXTEN},30)<br \/>\nexten =&gt; s,n,Set(REALIZADOS=$[${REALIZADOS}+1])<br \/>\nexten =&gt; s,n,GotoIf($[${REALIZADOS} &lt; ${INTENTOS}]?redial)<br \/>\nexten =&gt; s,n,Goto(ERROR,1)<\/p>\n<p>&nbsp;<\/p>\n<p>exten =&gt; ERROR,1,Playback(beep)<\/p>\n<p>exten =&gt; ERROR,n,Hangup<\/p>\n<p>&nbsp;<\/p>\n<p>En la primera linea volvemos a setear REALIZADOS en 0 y a continuaci\u00f3n intentamos marcar de nuevo pero esta vez con $PROVEEDOR2.<\/p>\n<p>Si falla, sigue su camino y incrementa la variable REALIZADOS. El gotoIf har\u00e1 la misma comparaci\u00f3n y mientras REALIZADOS sea menor que INTENTOS (3) seguir\u00e1 intentandolo.<\/p>\n<p>Si en esta ocasi\u00f3n falla al intentar sacar la llamada 3 veces, ir\u00e1 a parar a ERROR, el cual, har\u00e1 que en el telefono suene un pitido y colgar\u00e1.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Esto es todo, espero que les sirva.<\/p>\n<p>Un saludo \ud83d\ude00<\/p>\n<p>&nbsp;<\/p>\n<div class=\"be-social\" data-url=\"http:\/\/www.monovarlinux.org\/?p=160\" data-base=\"\" data-title=\"Retry Dial en Asterisk\" data-track=\"true\" data-via=\"\" data-show=\"{&quot;facebook&quot;:true,&quot;twitter&quot;:true,&quot;google&quot;:true,&quot;reddit&quot;:true,&quot;linkedin&quot;:true,&quot;meneame&quot;:true}\" ><h2 class=\"be-social-title\">Share<\/h2><\/div>","protected":false},"excerpt":{"rendered":"<p>Hola. Aqui estoy de nuevo con otra peque\u00f1a aportaci\u00f3n para la comunidad, esta vez les voy a mostrar como hacer un plan de marcado de Asterisk a prueba de bombas ( o casi jeje). En este caso lo que vamos &hellip; <a href=\"http:\/\/www.monovarlinux.org\/?p=160\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[9],"tags":[],"_links":{"self":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts\/160"}],"collection":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=160"}],"version-history":[{"count":3,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts\/160\/revisions"}],"predecessor-version":[{"id":162,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=\/wp\/v2\/posts\/160\/revisions\/162"}],"wp:attachment":[{"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=160"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=160"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.monovarlinux.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=160"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}