En el archivo/etc/asterisk/extensions.conf agregamos las siguientes líneas:
[phones] include => internal [internal] ;;;;;desvio de llamada, exten => _2XXX,1,Answer() ; contestamos la llamada exten => _2XXX,n,Set(NUM=${DB(${EXTEN}/FORW)}) exten => _2XXX,n,GotoIf($["${NUM}" = ""]?normal:forw) exten => _2XXX,n(normal),Goto(${EXTEN},8) ; enviamos a la línea 8 exten => _2XXX,n,Hangup() ; terminamos la llamada exten => _2XXX,n(forw),DIAL(SIP/${NUM},60) ; exten => _2XXX,n,Hangup() ; terminamos la llamada ;;;;; do not disturb exten => _2XXX,n,GotoIf(${DB_EXISTS(DND/${EXTEN})}?DND-ON) exten => _2XXX,n,Dial(SIP/${EXTEN},20,t) ; DND is OFF, start dialing exten => _2XXX,n,GotoIf($["${DIALSTATUS}" = "BUSY"]?busy:unavail) exten => _2XXX,n(busy),Voicemail(${EXTEN}@default,b) exten => _2XXX,n,hangup exten => _2XXX,n(unavail),Voicemail(${EXTEN}@default,u) exten => _2XXX,n,hangup exten => _2XXX,n(DND-ON),Goto(${EXTEN},13) exten => h,1,Hangup ;;;; con 99 activo y desactivo el DND exten => 99,1,Macro(DND) exten => 99,n,Hangup [macro-DND] exten => s,1,GotoIf(${DB_EXISTS(DND/${CALLERID(num)})}?disable-dnd,1) exten => s,n,Set(DB(DND/${CALLERID(num)})=1) exten => s,n,playback(do-not-disturb) exten => s,n,playback(activated) exten => s,n,hangup exten => disable-dnd,1,Set(DEL=${DB_DELETE(DND/${CALLERID(num)})}) exten => disable-dnd,n,playback(do-not-disturb) exten => disable-dnd,n,playback(de-activated) exten => disable-dnd,n,hangup |
Explicación del contexto [internal] la parte de “do not disturb”
Si el registro existe en la base de datos de asterisk (línea 1) la llamada será enviada a la extensión con etiqueta DND-ON, y de ahí a la extensión _2XXX prioridad 13. Esto significa que la llamada será transferida al contestador y al llamante será anunciado que la persona en la extensión XXXX no se encuentra disponible y le dará la opción de dejar un mensaje.
Si el registro no existe se procesará la línea dos y se llamará la extensión marcada. Luego según esté ocupada o en otra condición, la llamada se enviará a la correspondiente parte del plan de llamadas
Explicación del contexto [macro-DND]
En la primera línea controlamos si en la base de datos de Asterisk existe un valor asociado a la familia DND y nuestro número de extensión (CALLERID). Si no existe lo creamos con la línea 2 y le asignamos el valor 1. Luego usamos las voces de asterisk para anunciar que “No disturbar” ha sido activado.
En el caso que el registro ya existe en la base de datos, el Gotoif nos llevará a la extensión disable-dnd, prioridad 1 donde borraremos el registro y anunciaremos que el “No disturbar” ha sido desactivado.
Diagrama de funcionamiento del do not disturb
Cómo funciona el DND (do not disturb).
1- En este ejemplo mostramos como una llamada desde un interno cualquiera (2XXX) llama a la extensión 2002 donde el usuario activó el DND (do no disturb) presionando las teclas 99. Como el interno 2002 tiene activada esta opción el llamante solo podrá dejar un mensaje en el buzón de mensajes del interno 2002.
2- Si se desea desactivar esta opción se hace nuevamente oprimiendo las teclas 99.
No hay comentarios:
Publicar un comentario