martes, 24 de enero de 2017

Asterisk y CLI: I

He estado jugando un poco con mi Asterisk. Y me puse a buscar cómo hacer algunas cosas como, por ejemplo, marcar un número desde la consola (lo que en ocasiones se le llama CLI). Para acceder a la consola, en mi caso, tengo que ser root y ejecutar:

# asterisk -r

Aunque el prompt es

nombreSistema*CLI>

no lo voy a poner en el post.

Uno de los comandos que me encontré era

console list devices.

Y me llamó la atención que me mostró unos datos que no había visto nunca:

 === Configured Devices ======================================
 =============================================================
 ===
 === ---------------------------------------------------------
 === Device Name: default
 === ---> Active:           Yes
 === ---> Input Device:     default
 === ---> Output Device:    default
 === ---> Context:          default
 === ---> Extension:        s
 === ---> CallerID Num:     extensiónRara
 === ---> CallerID Name:    nombreRaro
 === ---> MOH Interpret:    default
 === ---> Language:         en
 === ---> Parkinglot:
 === ---> Muted:            No
 === ---> Auto-Answer:      No
 === ---> Override Context: No
 === ---------------------------------------------------------
 ===
 ===========================================================

Además, si intentaba hacer una llamada a una de mis extensiones con el comando:

console dial extensionCreadaPorMi

se recibe una llamada procedente del numeroRaro. Eso sí, no me ha dejado llamar a mi móvil.

Vamos a buscar qué significa esa configuración y si puedo cambiarla a mi gusto.

En efecto: esta configuración se encuentra en console.conf.  Incluso en mi caso tiene exactamente esta misma configuración, por lo que podría cambiarla evitando tener valores por defecto no deseados. Que será lo que haga:

;
; Any configuration context defined beyond the [general] section configures
; specific devices for use.
;

[default]
input_device = default       ; When configuring an input device and output device,
output_device = default      ; use the name that you see when you run the "console
                             ; list available" CLI command.  If you say "default", the
                             ; system default input and output devices will be used.
autoanswer = yes/no
context = default
extension = s
callerid = nombreRaro <(extensionLargaLarga>
language = en/es/fr...
overridecontext = yes/no
mohinterpret = default
active = yes/no                 ; This option should only be set for one console.
                             ; It means that it is the active console to be
                             ; used from the Asterisk CLI.

Además, me puse a cambiar algunos de los filtros del trunk, restringiendo ciertas llamadas, En algún momento lo mejoraré aún más, para las que he forzado que no se hagan, vayan por otro camino.

 Una prueba que hice que no me funcionó fue

console send text "hello world"

pero como era una pequeña chorrada tampoco es cuestión de dedicarle mucho tiempo.

Otra de las pruebas  que hice era para, en teoría, forzar a una extensión ejecutar una de las aplicaciones de asterisk. Por ejemplo:

channel originate SIP/{channel} extension wait(5)

con un resultado inesperado. Si no tengo ningún canal activo en esa extensión (y aun teniéndolo también me lo hace) se inicia una comunicación con una locución indicando que se ha producido un error. Me da dos opciones para pulsar: una de ellas darme un mensaje que no está definido, y la otra llamar a una centralita Digium. El SIP/ {channel} se puede obtener a partir de

core show channels

y tiene que haber al menos una llamada en curso en la centralita.

Así, poco a poco pude jugar un poco con la consola y las llamadas en curso. Hacía tiempo que no me ponía a toquetear con estas cosas. Espero que pueda volver a darle mucho más partido a este sistema.


No hay comentarios:

Publicar un comentario