Desloguear a todos los agentes logueados desde el mismo tfno SIP

653 views
Skip to first unread message

Iñaki Baz Castillo

unread,
Apr 9, 2008, 5:27:48 AM4/9/08
to aster...@googlegroups.com
Hola, necesito una extensión/macro que desloguee a todos los agentes que se
hayan logueado desde el actual terminal SIP. Es decir:

- Tfno SIP con usuario SIP 3500.
- Desde dicho tfno se llama al *201 lo que loguea al agente 201.
- Desde dicho tfno se llama al *202 lo que loguea al agente 202.

Ahora si hago en el CLI:

----------------
asterix*CLI> agent show
200 not logged in (musiconhold is 'default')
201 available at '200@desde_agentes' (musiconhold is 'default')
202 available at '200@desde_agentes' (musiconhold is 'default')
3 agents configured [2 online , 1 offline]

asterix*CLI> database show
/Agents/201 : 200@desde_agentes;3500
/Agents/202 : 200@desde_agentes;3500
/SIP/Registry/3500 : 192.168.1.58:5062:3600:3500:sip:35...@192.168.1.58:5062
----------------

Ahora necesito una extensión/macro (ejemplo *101):

- Desde el tfno 3500 se llama al *101 y se desloguean automáticamente los
agentes 200 y 201 por haberse logueado desde este terminal.


Supongo que me tendré que pelear un rato con la función DB(Agents/${...}...) y
hacer un bucle guarro y tal... o ¿igual alguien ha pasado por esto y tiene
una solución ya hecha? XD


Gracias.


--
Iñaki Baz Castillo
i...@in.ilimit.es

Elio Rojano

unread,
Apr 9, 2008, 5:38:25 AM4/9/08
to aster...@googlegroups.com
Me suena haber hecho algo así, aunque hace tanto que ni idea de donde
puede estar, no obstante es bastante sencillo mientras tengas la
extensión desde la cual se logueó cada agente, incluso te puedes hacer
un script en tu python querido, aunque lo ideal sería que se
deslogueara automáticamente e inmediatamente cuando esa extension se
loguea como otro agente, así te evitarías utilizar bucles.

El 9/04/08, Iñaki Baz Castillo <i...@in.ilimit.es> escribió:


--
http://www.sinologic.net/

Iñaki Baz Castillo

unread,
Apr 9, 2008, 5:43:50 AM4/9/08
to aster...@googlegroups.com
El Wednesday 09 April 2008 09:38:25 Elio Rojano escribió:
> Me suena haber hecho algo así, aunque hace tanto que ni idea de donde
> puede estar, no obstante es bastante sencillo mientras tengas la
> extensión desde la cual se logueó cada agente, incluso te puedes hacer
> un script en tu python querido, aunque lo ideal sería que se
> deslogueara automáticamente e inmediatamente cuando esa extension se
> loguea como otro agente, así te evitarías utilizar bucles.

Era Ruby, no Python XDDD
Y ya estoy haciendo un AGI :)

Si funciona lo pego por aquí. Gracias.

Iñaki Baz Castillo

unread,
Apr 9, 2008, 5:51:01 AM4/9/08
to aster...@googlegroups.com
El Wednesday 09 April 2008 09:27:48 Iñaki Baz Castillo escribió:

Una cosilla, si hago "CLI> agent show" me sale algo así:

> asterix*CLI> agent show
> 200          not logged in (musiconhold is 'default')
> 201          available at '200@desde_agentes' (musiconhold is 'default')
> 202          available at '200@desde_agentes' (musiconhold is 'default')
> 3 agents configured [2 online , 1 offline]

¿Puede haber más estados a parte de "not logged" y "available"?

Elio Rojano

unread,
Apr 9, 2008, 6:41:35 AM4/9/08
to aster...@googlegroups.com
Busy?

El 9/04/08, Iñaki Baz Castillo <i...@in.ilimit.es> escribió:
>


--
http://www.sinologic.net/

Elio Rojano

unread,
Apr 9, 2008, 6:49:08 AM4/9/08
to aster...@googlegroups.com
Creo que habían varios estados más... como el tiempo de "descanso"
entre una llamada y otra...

El 9/04/08, Elio Rojano <hel...@gmail.com> escribió:


--
http://www.sinologic.net/

Iñaki Baz Castillo

unread,
Apr 9, 2008, 6:57:02 AM4/9/08
to aster...@googlegroups.com
El Wednesday 09 April 2008 10:41:35 Elio Rojano escribió:
> Busy?

Buff, es mucho peor:

Si haces un "agent show" cuando alguien está llamando sale esto:
200 logged in on Local/200@context,1 is idle (musiconhold is 'default')

Si no está llamando nadie sale esto:
200 available at '200@context' (musiconhold is 'default')
(al loro con los ' ' )

Y si el agente responde sale esto:
200 logged in on SIP/200-081fce50 talking to SIP/provider-730b818
(musiconhold is 'default')


¡Díos! no tiene sentido, es imparseable! qué chapuza.


PD: Por cierto, acabo de terminar el AGI, ahora lo pego por aquí XD

Elio Rojano

unread,
Apr 9, 2008, 7:07:35 AM4/9/08
to aster...@googlegroups.com
Para eso se inventó el Manager. :D

El 9/04/08, Iñaki Baz Castillo <i...@in.ilimit.es> escribió:
>


--
http://www.sinologic.net/

Iñaki Baz Castillo

unread,
Apr 9, 2008, 7:35:25 AM4/9/08
to aster...@googlegroups.com
El Wednesday 09 April 2008 09:27:48 Iñaki Baz Castillo escribió:
> Hola, necesito una extensión/macro que desloguee a todos los agentes que se
> hayan logueado desde el actual terminal SIP. Es decir:

Hola, finalmente he creado un AGI en Ruby (15 líneas de nada gracias a Ruby)
que hace lo que quería y lo adjunto por si a alguien le fuere de utilidad.

Indico instrucciones de instalación en el propio script.

NOTA: Recordar guardar el AGI en /var/lib/asterisk/agi-bin y darle permisos de
ejecución (chmod +x).


Ale.

logout-agents.rb

Iñaki Baz Castillo

unread,
Apr 9, 2008, 7:38:22 AM4/9/08
to aster...@googlegroups.com
El Wednesday 09 April 2008 11:07:35 Elio Rojano escribió:
> Para eso se inventó el Manager. :D

Sí, muy cierto.

Reply all
Reply to author
Forward
0 new messages