Para obtener el estado de una extensión, utilizaremos la clase ManagerConnection y el método sendAction, la accion que utilizamos es ExtensionStateAction(), todo de las librerías asterisk-java.
/**
     * Devuelve el estado de la extension en el contexto "from-internal"
     * Los valores son :
     * -1 Extensión no encontrada
     *  0 Extensión disponible
     *  1 Extensión en uso
     *  2 Extensión ocupada
     *  4 Extensión no disponible
     *  8 Extensión sonando
     * 16 Extensión en espera
     *
     * @param extensión
     * @return int
     */
    public int EstadoExtension(String extension) {
        ExtensionStateAction accion;
        ExtensionStateResponse respuesta;
        ManagerConnection conect;
        conect = servidorasterisk.getManagerConnection();
        accion = new ExtensionStateAction();
        accion.setContext("from-internal");
        accion.setExten(extension);
        try {
            respuesta = (ExtensionStateResponse) conect.sendAction(accion, 1000);
            return respuesta.getStatus();
        } catch (IOException ex) {
            Logger.getLogger(GCConexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (TimeoutException ex) {
            Logger.getLogger(GCConexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalArgumentException ex) {
            Logger.getLogger(GCConexion.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IllegalStateException ex) {
            Logger.getLogger(GCConexion.class.getName()).log(Level.SEVERE, null, ex);
        }
        return -1;
    }
Suscribirse a:
Enviar comentarios (Atom)
 
 

Hola, felicitaciones por su trabajo. ¿Como puedo obtener datos de una llamada de cierta extencion? : Duracion, Numero Entrante
ResponderEliminar