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 😉
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??
Eso se puede hacer jugando con otras cosas….
mira:
http://diablo.craem.net/wordpress/?p=25