Con el lanzamiento de Asterisk 1.8, en octubre del presente año, se incorporaron varias características nuevas, las cuales iremos comentando a medida que las vallamos testeando. Hoy nos centraremos en una utilidad desarrollada por Eliel Sardañons, un desarrollador Argentino que participó del pasado Google Summer of Code 2010. Esta nueva herramienta permite obtener información detallada sobre Asterisk y cada uno de sus módulos, aplicaciones, channels, etc. los cuales son denominados "Providers".
Sin más preámbulos, vamos a la acción y veamos en funcionamiento esta API. Para acceder a la información que necesitemos, lo primero que debemos saber es cuales son los Providers que disponemos y que nivel de de información nos interesa saber. Para ello debemos ejecutar, el siguiente comando:
*CLI> data show providers
/asterisk/channel/iax2/peers (get) [chan_iax2.c]
/asterisk/channel/iax2/users (get) [chan_iax2.c]
/asterisk/channel/dahdi/version (get) [chan_dahdi.c]
/asterisk/channel/dahdi/status (get) [chan_dahdi.c]
/asterisk/channel/dahdi/channels (get) [chan_dahdi.c]
/asterisk/channel/agent/list (get) [chan_agent.c]
/asterisk/channel/sip/peers (get) [chan_sip.c]
/asterisk/core/hints (get) [pbx.c]
/asterisk/core/channels (get) [channel.c]
/asterisk/core/channeltypes (get) [channel.c]
/asterisk/application/voicemail/list (get) [app_voicemail.c]
/asterisk/application/queue/list (get) [app_queue.c]
/asterisk/application/meetme/list (get) [app_meetme.c]
El resultado del comando anterior nos muestra la lista de Providers con su respectivo nivel de información, separado por barras (/). Por ejemplo, si únicamente nos interesa ver los datos relacionados con los Peers de IAX2, podríamos ejecutar lo siguiente:
*CLI> data get /asterisk/channel/iax2/peers
peers
peer
smoothing: False
pokefreqok: 60000
inkeys: ""
host: "XXX.XXX.XXX.XXX"
encryption: "no"
mailbox: ""
mohinterpret: ""
cid_num: ""
parkinglot: ""
expiry: 60
dbsecret: ""
maxcallno: 0
maxms: 2000
status: "OK (1 ms)"
trunk: True
port: 4569
regexten: ""
outkey: ""
historicms: 1
mask: "255.255.255.255"
dynamic: False
zonetag: ""
username: "USUARIO"
pokefreqnotok: 10000
secret: "CLAVE"
peercontext: ""
callno: 0
mohsuggest: ""
lastms: 1
name: "NOMBRE PEER"
cid_name: ""
context: ""
codecs
codec
frame_length: 80
samplespersecond: 8000
name: "alaw"
description: "G.711 A-law"
A medida que vamos Quitando niveles, nos dará más información. Por ejemplo si nos interesa saber todo lo que pasa en Asterisk en general, solamente debemos ejecutar CLI*> data get /asterisk
Como se podrá apreciar, la información que este devuelve es muy completa y puede ser de gran utilidad para el desarrollo de aplicaciones de monitoreo de Asterisk.
Para cerrar este artículo, voy a mostrar como es posible llamar remotamente a esta API a través del AMI.
Action: Command
ActionID: test
Command: data get Asterisk/channel/iax2/peers \r\n\n
No hay comentarios:
Publicar un comentario