[Asterisk-ES] PickUo de llamadas con PICKUPMARK

152 views
Skip to first unread message

Saúl Ibarra

unread,
Dec 20, 2007, 11:13:00 AM12/20/07
to asterisk-es
Hoola!

Estoy intentado que este asunto me funcione, pero algo se me escapa o
mi cerebro pierde paquetes esta tarde o algo...

Comento el caso: según la documentación, si queremos coger una llamada
podemos hacer

exten => _*8XXX,1,PickUp(${EXTEN:2})

y esto cogerá el canal que esta sonando. El tema es el siguiente, si tenemos:

exten => 200,1,Dial(SIP/100)

para coger la llamada tendríamos que hacer

exten => prueba,1,Pickup(200)


Este problema me surge al intentar coger las llamadas entrantes desde
una RDSI. entonces he encontrado lo de usar PICKUPMARK. Para ello he
puesto así:

exten => _*8XXX,1,Pickup(${EXTEN:2}@PICKUPMARK)

y en la macro de llamadas entrantes:

...
exten => s,n,Set(PICKUPMARK=100)
...

pero sigo sin poder coger la llamada...


Lo que intento es hacer un pickup dirigido, sea cual sea el origen de
la llamada... Se me escapa algo?


Thnx!


:wq

--
Saúl -- "Nunca subestimes el ancho de banda de un camión lleno de disketes."
----------------------------------------------------------------
http://www.saghul.net/

Saúl Ibarra

unread,
Dec 20, 2007, 12:06:55 PM12/20/07
to asterisk-es
SOLUCIONADOOOOOOOOOOOOOOO!

Temas a tener en cuenta:

1) tienen que estar configurados los hints y el notifyringing a yes,
para que el estado de las extensiones pase a Ringing (se puede
comprobar con core show hints)

2) Para coger las llamadas usamos lo siguiente:

exten => _*8XXX,1,PickUp(${EXTEN:2}@PICKUPMARK)

esto hará que se busque entre los canales que hay en ese momento el
que tenga esa 'marca'. Ahora tenemos que ponerle esa marca.

3) Supongamos que la llamada nos entra por entrantes-rdsi, y luego
llamamos a una macro para llamar a los usuarios:

[entrantes-rdsi]
exten => 912345678,1,Macro(llamar,SIP,200)

[macro-llamar]
exten => s,1,Noop(A llamar!)
exten => s,n,Set(__PICKUPMARK=${ARG2}) <--------------- Aquí
esta la magia
exten => s,n,Dial(${ARG1}/${ARG2},45)


El tema esta en que la variable PICKUPMARK pase del canal de mISDN al
canal SIP, el que esta sonando. Poniendo 2 guiones bajos por delante
lo conseguimos.
http://www.voip-info.org/wiki-Asterisk+variables#InheritanceofChannelVariables


Ala, a jugar a pala! :)

davidp

unread,
Dec 20, 2007, 12:21:22 PM12/20/07
to asterisk-es

>
> Este problema me surge al intentar coger las llamadas entrantes desde
> una RDSI. entonces he encontrado lo de usar PICKUPMARK. Para ello he
> puesto así:
>
> exten => _*8XXX,1,Pickup(${EXTEN:2}@PICKUPMARK)

y qué marcarías para capturar una llamada que entra de la RDSI?

Es decir: si tu dialplan es:

[de-rdsi]
exten => s,1,NoOp(entra una llamada por la RDSI)
exten => s,n,Dial(SIP/100)

No puedes hacer un pickup de 100 para capturar ese teléfono que está
sonando. Tendrías que hacer un pickup de (s), ya que la extensión que
está sonando es "s".

Vamos, no lo he probado, pero es lo que deduzco por el manual...

> Lo que intento es hacer un pickup dirigido, sea cual sea el origen de
> la llamada... Se me escapa algo?

El problema con lo que yo proponía antes es que si tú que eres la
extensión 101 ves que el 100 está sonando y lo quieres capturar, no
sabes si esa llamada viene de la RDSI o si viene del 210 que está en
otro edificio, ¿no? Tú quieres marcar *8100, y capturar siempre el
100, entre de donde entre la llamada...

Pues se me ocurre acudir a tu amigo chan_local :-)

[de-rdsi]
exten => s,1,NoOp(llamada entrante de rdsi)
exten => s,n,Dial(Local/100@extensiones) # Esto lo estoy escribiendo
de memoria... no recuerdo si la sintaxis es así
o bien:
exten => s,n,Goto(extensiones,100,1)

[extensiones]
exten => 100,n,Dial(SIP/100)

y el *8XXX, que haga un Pickup de ({EXTEN}:2@extensiones)


¿funcionaría?

Saúl Ibarra

unread,
Dec 20, 2007, 12:26:58 PM12/20/07
to aster...@googlegroups.com

Pues no se... pero como he detallado en el otro mensaje con PICKUPMARK
funciona, y es transparente :)

apolo

unread,
Dec 27, 2007, 2:38:03 PM12/27/07
to asterisk-es
Estoy actualizando un servidor de 1.2 a 1.4.15, en la versión 1.2
utilizaba _*8XXX,1,Pickup(${EXTEN:2} para capturar una llamada,
pero ahora en 1.4 no me funciona según entiendo debo usar _*8XXX,
1,Pickup(${EXTEN:2}@PICKUPMARK) y colocar los hints y el notifyringing
a yes pero no se donde se ponen los hints y el notifyringing a yes no
se que mas me faltan pero sin poder utilizar esta aplicación no me es
posible remplazar por completo mi viejo servidor.

Elio Rojano

unread,
Dec 27, 2007, 4:19:49 PM12/27/07
to aster...@googlegroups.com
En la web de saul (http://www.saghul.net) hace unos dias explicaba como.

Elio Rojano
http://www.sinologic.net

Enviado desde mi ipod touch.

Reply all
Reply to author
Forward
0 new messages