DEVSTATE

Descripción

Resumen

Función para conocer el estado de las extensiones.

Características

Se ha backporteado de la versión 1.6 de asterisk. En función de si usamos una versión u otra de asterisk debemos usar:

  asterisk 1.6:
  DEVICE_STATE(device)
  
  asterisk 1.4:
  DEVSTATE(device)

Configuración

Modificamos los archivos de configuración de asterisk para que muestren el estado de las extensiones:

    [root@asterisk-es-rsp ~]# vim /etc/asterisk/sip.conf
    notifyringing=yes
    notifyhold=yes
    limitonpeers=yes
    call-limit=100
 
    ; Si se usa realtime
    rtcachefriends=yes
    rtupdate=yes

Uso

Estado extensión

Conocer el estado de una extensión:

 NoOp(SIP/mypeer has state ${DEVSTATE(SIP/mypeer)})
 NoOp(Conference number 1234 has state ${DEVSTATE(MeetMe:1234)})

Personalización

La función DEVSTATE ser puede utilizar para aplicar un estado personalizable a un terminal
directamente desdel dialplan. Para ello se utiliza el prefijo “Custom:” . Por ejemplo:

 Set(DEVSTATE(Custom:lamp1)=BUSY)
 Set(DEVSTATE(Custom:lamp2)=NOT_INUSE)

Para ver el estado personalizado añadimos la extensión “hint” en nuestro dialplan:

    [root@asterisk-es-rsp ~]# vim /etc/asterisk/extensions.conf
 
    exten => 1234,hint,Custom:lamp1

Call-limit

La función DEVSTATE puede usarse para limitar el número de llamadas a un terminal,
así evitamos el uso del call-limit que será eliminado en versiones posteriores de asterisk.

Para evitar llamar a una extensión si esta está en uso:

    [root@asterisk-es-rsp ~]# vim /etc/asterisk/extensions.conf
 
    exten => 100,1,GotoIf($[${DEVSTATE(SIP/${EXTEN})} = "INUSE"]?Busy)
    exten => 100,n,Dial(SIP/${EXTEN})
    exten => 100,n(Busy),Hangup

Valores

Los valores posibles que devuleve la función son:

UNKNOWN | NOT_INUSE | INUSE | BUSY | INVALID | UNAVAILABLE | RINGING | RINGINUSE | ONHOLD

Troubleshooting

Make sure you know what will happen after an Asterisk restart! It might be necessary to use a .call file (or the Asterisk manager API) to call the DevState application right after Asterisk has started to ensure correct LED status. Note that, before doing so, you might also have to reboot or initialize the phones in question so that they can renew their SIP subscription of the extension that is used to monitor the devicestate; for example SIP NOTIFY could be used for that purpose (see sip_notify.conf).

 
funciones/devstate.txt · Última modificación: 2010/04/26 07:32 por manwe
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia:GNU Free Documentation License 1.2
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki