Group_count asterisk 1.4

Otra entrada que es un apunte.

Recientemente, me ha tocado controlar en un cliente, que los usuarios que usan softphones en sus pc’s, no puedan recibir más de una llamada a la vez.

Mirando por encima en voipinfo, veo que existe la función call-limit, pero mi decepción al comprobar que si lo seteaba a 1, los usuarios podían hacer / recibir llamadas, pero no podían hacer transferencias atendidas, pues se necesitan 2 canales para ello.

Buscando un poco, veo que existe la función GROUP() y GROUP_COUNT(), así que vamos a ello en el fichero extensions.conf:


exten => _[23]XX,n,NoOP(.... llamadas entre extensiones ......)
exten => _[23]XX,n,set(GROUP()=${EXTEN})
exten => _[23]XX,n,NoOP(Group Count = ${GROUP_COUNT(${EXTEN})} para grupo = ${EXTEN})
exten => _[23]XX,n,GotoIf($[ ${GROUP_COUNT(3${EXTEN})} > 1 ]?maxtrucades)
exten => _[23]XX,n,Dial(SIP/${EXTEN},60,tTwWm)
exten => _[23]XX,n,Hangup
exten => _[23]XX,n(maxtrucades),Congestion
exten => _[23]XX,n(maxtrucades),Hangup()

Explicamos un poco el dialplan:

Como lo queremos controlar por extensión, haremos un grupo por extensión:

exten => _[23]XX,n,set(GROUP()=${EXTEN})

Si tiene más de una llamada, lo enviamos a la etiqueta “maxtrucades”

exten => _[23]XX,n,GotoIf($[ ${GROUP_COUNT(3${EXTEN})} > 1 ]?maxtrucades)

Y el resto, es leer el dialplan 😉

2 Replies to “Group_count asterisk 1.4”

  1. Muy bien, que buena info!

    De esta forma tambien se podría configurar que las llamadas salgan en primera instancia por la E1 que a su ves pertenecen a un carrier y que en caso de saturacion o falla se desborde a otro carrier alterno??

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.