Group_count asterisk 1.4

asterisk linux Varios

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 comentarios en «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 una respuesta

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