FUNCION "CUT" PARA SELECCION de CALLERID.

643 views
Skip to first unread message

Richard C

unread,
Oct 25, 2012, 11:50:26 AM10/25/12
to aster...@googlegroups.com
Hola muchachos, aqui dejo un paste de lo que deseo hacer, para seleccionar el callerid dependiendo de los 3 primeros digitos a donde se está dirigiendo la llamada, si la misma va con los primeros tres sea 787 o 939 que use un callerid de PuertoRico, caso contrario use el de USA.


exten => _XXXXXXXXXX,1,Set(extension=${EXTEN})
exten => _XXXXXXXXXX,2,Set(Var1=${CUT(extension,,1-3)}) ;(Aqui quise cortar los 3 primeros digitos, para luego con gotoif)
exten => _XXXXXXXXXX,3,GotoIf($[$["${Var1}" = "787"] | $["${Var1}" = "939"] ]?puertorico) ;(decidir si va a un lado u a otro seleccionado el CallerID)
exten => _XXXXXXXXXX,n,Set(CALLERID(num)=786BLABLA)
exten => _XXXXXXXXXX,n,Set(${CALLERID(num):0:40})
exten => _XXXXXXXXXX,n,Dial(SIP/${EXTEN:1}@TRUNK1,)
exten => _XXXXXXXXXX,n,Hangup()
exten => _XXXXXXXXXX,n(puertorico),Set(CALLERID(num)=787BLABLA)
exten => _XXXXXXXXXX,n,Set(${CALLERID(num):0:40})
exten => _XXXXXXXXXX,n,Dial(SIP/${EXTEN:1}@TRUNK2,)
exten => _XXXXXXXXXX,n,Hangup()


El detalle es que no me está tomando la función CUT y he estado haciendo varias pruebas con al misma, ya que no usa separadores y renegando un poco jeje.
Algun aporte al caso?

La version de ASTERISK es "Asterisk 1.8.16.0"

Saludos guys,



Martin Vieyra

unread,
Oct 25, 2012, 12:36:06 PM10/25/12
to aster...@googlegroups.com
Parece que te falta definir que la variable "extension" como tal:

exten => _XXXXXXXXXX,2,Set(Var1=${CUT(${extension},,1-3)})

Prueba y nos dices como te fue

Saludos,

2012/10/25 Richard C <pkeca...@gmail.com>:
> --
> --
> Este email pertenece a la lista de Asterisk-ES (http://www.asterisk-es.org)
>
> ~~~ Normas de la lista Asterisk-ES: ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> http://comunidad.asterisk-es.org/index.php?title=Lista:normas-asterisk-es
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> - Para anular la suscripción: asterisk-es...@googlegroups.com
>
>
>

Richard C

unread,
Oct 25, 2012, 2:15:25 PM10/25/12
to aster...@googlegroups.com
Hola Martin, justamente ese caso ya lo tenia descartado. El motivo del descarte es en la misma wiki dice que o se debe aplicar ese formato:

http://www.voip-info.org/wiki/view/Asterisk+func+cut
-------------------------------------------------------
The varname parameter must be a variable name, not a string value. This is unusual syntax. So:
exten => s,1,Set(foo=${CUT(bar,,2)}) ; This is correct syntax
exten => s,1,Set(foo=${CUT(${bar},,2)}) ; This is invalid syntax (unless bar contains the name of another variable)
-------------------------------------------------------

De igual forma lo he intentado sin resultado alguno.
Creo que me toca irme a AGI, para acortar el camino, pero en realidad deseaba saber hacerlo via Dialplan plaintext.

Cualquier detalle ayuda.

Gracias & Abrazo,

Richard C

unread,
Oct 25, 2012, 2:57:12 PM10/25/12
to aster...@googlegroups.com
Solucionado.

Esta es la linea que sustituí por la función CUT:

exten => _XXXXXXXXXX,1,Set(Var1=${EXTEN:1:3})


Espero que les sirva.

Saludos,

Elio Rojano

unread,
Oct 26, 2012, 3:34:36 AM10/26/12
to aster...@googlegroups.com
No debes usar CUT si no las propiedades del ${EXTEN}

   ${EXTEN:n}
   ${EXTEN:n:m}
   ${EXTEN:-x}
   ${EXTEN:-x:y}

...  
Te dejo que lo investigues por tu cuenta, que si no, te spoileo la solución y la historia es muy interesante. :P

--
Página web: http://www.sinologic.net/
Reply all
Reply to author
Forward
0 new messages