SCRIPT PARA MONITOREAR ASTERISK - BASADO EN PERL

733 views
Skip to first unread message

fast...@gmail.com

unread,
Jul 23, 2008, 8:51:42 PM7/23/08
to asterisk-es
Anexo una pequeña contribucion para aquellos q necesitan monitorear
asterisk usando perl:

He usado las siguientes referencias para los q quieran ahondar mas en
la materia:
http://fr.pastebin.ca/80465
http://fr.pastebin.ca/262759?srch=asterisk
http://www.scotoma.org/headjob/index.cgi?TelephonyDevelopment
http://kobesearch.cpan.org/htdocs/asterisk-perl/Asterisk/Manager.pm.html



---------------------------------------------------------------------------------------------------------------------------------------------
#!/usr/bin/perl

use POSIX qw(setsid);
use strict;
use warnings;
use Asterisk::Manager;

$|++;

my $astmon = new Asterisk::Manager;
my $connect = 1;

$astmon->user('auser');
$astmon->secret('aclave');
$astmon->host('aip');

# INICIALIZAR DEMONIO
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
#open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";

# EJECUCION DEL DEMONIO
while(1) {
sleep(5);
$astmon->connect || restart_asterisk ("Could not connect to " .
$astmon->host . "!\n");
if ($connect){
print "\nNow waiting for * events...\n";
$astmon->disconnect;
}
}


####################################################################################
sub restart_asterisk {
my $vars = shift;
print "\nreiniciando asterisk\n";
print "enviando notificacion\n";
$connect = 0;
return (1);
}

---------------------------------------------------------------------------------------------------------------------------------------------

Luis Morales

unread,
Jul 24, 2008, 1:06:09 PM7/24/08
to asterisk-es
Ya tengo el script definitivo y probado. Espero le sirva de algo a
algun colega q vi q tiene problemas cuando asterisk se le tranca sin
previo aviso.

Importante correrlo con propietarios del usuario root.


amonitor.pl
---------------------------------------------------------------------------------------------------------------------
#!/usr/bin/perl
#
# MONITOR DE ASTERISK
# Written by: Luis Morales <fast...@gmail.com>
# Date: 24/07/2008
# Version: 1.0

use POSIX qw(setsid);
use strict;
use warnings;
use Asterisk::Manager;

$|++;

my $astmon = new Asterisk::Manager;
my $connect = 1;

$astmon->user('admin');
$astmon->secret('Pr0ducc10n');
$astmon->host('127.0.0.1');

# INICIALIZAR DEMONIO
chdir '/' or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null' or die "Can't read /dev/null: $!";
#open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork) or die "Can't fork: $!";
exit if $pid;
setsid or die "Can't start a new session: $!";

# EJECUCION DEL DEMONIO
while(1) {
sleep(5);
$connect = 1;
$astmon->connect || restart_asterisk ("Could not connect to " .
$astmon->host . "!\n");
if ($connect){
print "\nNow waiting for * events...\n";
$astmon->disconnect;
}
}


####################################################################################
sub restart_asterisk {
my $vars = shift;
my $op = undef;
print "\nreiniciando asterisk\n";
$op = system("/etc/init.d/asterisk stop");
$op = system("kill -9 `cat /var/run/asterisk/asterisk.pid`");
$op = system("/etc/init.d/asterisk start");
print "enviando notificacion\n";
$connect = 0;
return (1);
}



---------------------------------------------------------------------------------------------------------------------



--
---------------------------------------------------------------------------------
Luis Morales
Consultor de Tecnologia
Cel: +(58)416-4242091
---------------------------------------------------------------------------------
"Empieza por hacer lo necesario, luego lo que es posible... y de
pronto estarás haciendo lo imposible"

Leonardo Da'Vinci
---------------------------------------------------------------------------------

Elio Rojano

unread,
Jul 24, 2008, 3:25:46 PM7/24/08
to aster...@googlegroups.com
Perdona Luis, si entiendo bien el Perl, lo que hace este script es que entra en el manager cada 5 segundos, y si no puede (porque no esté reventado), hace un "asterisk stop" y luego un "start" ¿verdad?

Me gustan este tipo de scripts, pero Asterisk ya cuenta con uno bastante conocido llamado safe_asterisk (/usr/sbin/safe_asterisk) que hace algo similar pero evitando entrar en el manager cada 5 segundos. :) Es un script en bash que puedes abrir con un editor de texto y configurarlo para que te envíe un email cuando caiga, genere un core, o algunas cosas más interesantes :)

No obstante, tu script es un ejemplo bastante chulo de lo fácil que puede llegar a ser conectarse a Asterisk y monitorizar eventos. La librería Asterisk::Manager es bastante potente y útil para aquellos que quieren hacer cosillas repetitivas con el manager con un mínimo esfuerzo.

Un saludo,

 
2008/7/24 Luis Morales <fast...@gmail.com>:

Ramses II

unread,
Jul 24, 2008, 4:28:10 PM7/24/08
to aster...@googlegroups.com, ja...@multico.es
¿Y se podría hacer algún script que compruebe si están bloqueadas las líneas de un primario y si lo están que mande un correito?
 
No sé, algo como intentar coger línea cada cierto tiempo y si da un "todos los canales están ocupados" que mande el correito... Claro, es que de esta forma el Asterisk no está "pillado", por lo que el otro script no valdría tal cual está, ¿no?.
 
¿Sería complicada la historia?
 
 
Saludos,
 
Ramses
 


De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En nombre de Elio Rojano
Enviado el: jueves, 24 de julio de 2008 21:26
Para: aster...@googlegroups.com
Asunto: [Asterisk-ES] Re: SCRIPT PARA MONITOREAR ASTERISK - BASADO EN PERL

Elio Rojano

unread,
Jul 24, 2008, 4:42:33 PM7/24/08
to aster...@googlegroups.com, ja...@multico.es
Tan sencillo como escribir en el dialplan algo como esto:

exten=>...,n,Dial(Zap/g1/${EXTEN})
exten=>...,n,GotoIF( $[ "${DIALSTATUS}" = "CONGESTION" ]?enviarEmail,s,1)

El CONGESTION en Zap aparece cuando no hay líneas disponibles para realizar una llamada.
Si el número cuelga (como en un móvil) el DIALSTATUS devolvería BUSY, si no lo coje, devolvería NOANSWER, y si llamas a un número que no existe, creo recordar que daría un CHANUNAVAIL. :)

Otra opción interesante podría ser chequear el valor de la variable: HANGUPCAUSE
cuando ocurre el caso que indicas y comprobarlo al final del dial para enviar el email.
http://www.voip-info.org/wiki/view/Asterisk+variable+hangupcause

Por último, supongo que lo que indicas, es algo que cada X segundos envíe una llamada por el primario a un DID propio de manera que la llamada salga por el primario y vuelva a entrar, de manera que puedas chequear que el Callerid pertenece a tu número, conteste y cuelgue. Si la llamada a tu primario devuelve en el DIALSTATUS algo diferente al ANSWER, entonces se consideraría que no se ha podido realizar por falta de canales (realmente estarías utilizando 2 canales del primario), por lo que no sería un resultado muy fiable si tienes un gran número de llamadas.

Ramses II

unread,
Jul 24, 2008, 5:09:47 PM7/24/08
to aster...@googlegroups.com, ja...@multico.es
Hombre, yo había pensado en algo como intentar coger línea a través del primario y si da el CONGESTION es que no hay líneas, ¿no?.
 
Porque llamar a mi propio número cada cierto tiempo y que me descuelgue, tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan de coste 0 entre  mis números...
 
¿Me explico?
 
¿Se podría..., sería viable...?, es que no veo otra forma de ver si tenemos algún problema con los canales, que estén bloqueados por el operador, que la tarjeta se quede pillada, que...
 
 
Saludos,
 
Ramses
 


De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En nombre de Elio Rojano
Enviado el: jueves, 24 de julio de 2008 22:43
Para: aster...@googlegroups.com
CC: ja...@multico.es

paco gil

unread,
Jul 24, 2008, 5:17:59 PM7/24/08
to aster...@googlegroups.com
has visto nagios??  has visto opennms??

tu solución se llama SNMP para Asterisk...

2008/7/24 Ramses II <ramses....@gmail.com>:

Germán Aracil Boned

unread,
Jul 24, 2008, 6:45:15 PM7/24/08
to aster...@googlegroups.com
No tienes porque hacer answer no ? y la duración de la llamada a ese
did, empleado para eso, podría ser de 10 seg. entrando en un wait 60 del
dial plan..

sirve ?¿

Ramses II escribió:
> Hombre, yo había pensado en algo como intentar coger línea a través del
> primario y si da el CONGESTION es que no hay líneas, ¿no?.
>
> Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
> tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan
> de coste 0 entre mis números...
>
> ¿Me explico?
>
> ¿Se podría..., sería viable...?, es que no veo otra forma de ver si
> tenemos algún problema con los canales, que estén bloqueados por el
> operador, que la tarjeta se quede pillada, que...
>
>
> Saludos,
>
> Ramses
>
>
> ------------------------------------------------------------------------
> *De:* aster...@googlegroups.com
> [mailto:aster...@googlegroups.com] *En nombre de *Elio Rojano
> *Enviado el:* jueves, 24 de julio de 2008 22:43
> *Para:* aster...@googlegroups.com
> *CC:* ja...@multico.es
> *Asunto:* [Asterisk-ES] Re: SCRIPT PARA MONITOREAR ASTERISK - BASADO
> <ramses....@gmail.com <mailto:ramses....@gmail.com>> escribió:
>
> ¿Y se podría hacer algún script que compruebe si están
> bloqueadas las líneas de un primario y si lo están que mande un
> correito?
>
> No sé, algo como intentar coger línea cada cierto tiempo y si da
> un "todos los canales están ocupados" que mande el correito...
> Claro, es que de esta forma el Asterisk no está "pillado", por
> lo que el otro script no valdría tal cual está, ¿no?.
>
> ¿Sería complicada la historia?
>
>
> Saludos,
>
> Ramses
>
>
> ------------------------------------------------------------------------
> *De:* aster...@googlegroups.com
> <mailto:aster...@googlegroups.com>
> [mailto:aster...@googlegroups.com
> <mailto:aster...@googlegroups.com>] *En nombre de *Elio
> Rojano
> *Enviado el:* jueves, 24 de julio de 2008 21:26
> *Para:* aster...@googlegroups.com
> <mailto:aster...@googlegroups.com>
> *Asunto:* [Asterisk-ES] Re: SCRIPT PARA MONITOREAR ASTERISK
> - BASADO EN PERL
>
> Perdona Luis, si entiendo bien el Perl, lo que hace este
> script es que entra en el manager cada 5 segundos, y si no
> puede (porque no esté reventado), hace un "asterisk stop" y
> luego un "start" ¿verdad?
>
> Me gustan este tipo de scripts, pero Asterisk ya cuenta con
> uno bastante conocido llamado safe_asterisk
> (/usr/sbin/safe_asterisk) que hace algo similar pero
> evitando entrar en el manager cada 5 segundos. :) Es un
> script en bash que puedes abrir con un editor de texto y
> configurarlo para que te envíe un email cuando caiga, genere
> un core, o algunas cosas más interesantes :)
>
> No obstante, tu script es un ejemplo bastante chulo de lo
> fácil que puede llegar a ser conectarse a Asterisk y
> monitorizar eventos. La librería Asterisk::Manager es
> bastante potente y útil para aquellos que quieren hacer
> cosillas repetitivas con el manager con un mínimo esfuerzo.
>
> Un saludo,
>
>
> 2008/7/24 Luis Morales <fast...@gmail.com
> <mailto:fast...@gmail.com>>:
>
>
> Ya tengo el script definitivo y probado. Espero le sirva
> de algo a
> algun colega q vi q tiene problemas cuando asterisk se
> le tranca sin
> previo aviso.
>
> Importante correrlo con propietarios del usuario root.
>
>
> amonitor.pl
> ---------------------------------------------------------------------------------------------------------------------
> #!/usr/bin/perl
> #
> # MONITOR DE ASTERISK
> # Written by: Luis Morales <fast...@gmail.com
> <mailto:fast...@gmail.com>>
> # Date: 24/07/2008
> # Version: 1.0
>
> use POSIX qw(setsid);
> use strict;
> use warnings;
> use Asterisk::Manager;
>
> $|++;
>
> my $astmon = new Asterisk::Manager;
> my $connect = 1;
>
> $astmon->user('admin');
> $astmon->secret('Pr0ducc10n');
> $astmon->host('127.0.0.1 <http://127.0.0.1>');
--


-
-------------------------------------
Germán Aracil Boned
Director de Sistemas
Zoon Suite S.L.

www.zoonsuite.com
963146030 - General
963146031 - Asistencia de incidencias
963146032 - FAX
-------------------------------------
-

Iñaki Baz Castillo

unread,
Jul 25, 2008, 3:31:17 AM7/25/08
to aster...@googlegroups.com
El Thursday 24 July 2008 21:25:46 Elio Rojano escribió:
> Me gustan este tipo de scripts, pero Asterisk ya cuenta con uno bastante
> conocido llamado safe_asterisk (/usr/sbin/safe_asterisk)

Elio, safe_asterisk es una mierda. Es una fuente de problemas y de hecho está
quitado del script de arranque en las fuentes de Asterisk (al menos en su
versión para Debian).
Yo garantizo que asfe_asterisk es un bodrio.


~~~~~~ uso de NGREP (captura traza SIP) ~~~~~~
En el servidor Asterisk:
~$ ngrep -d any -P ' ' -W byline -T port 5060
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

--
Iñaki Baz Castillo
i...@in.ilimit.es

Iñaki Baz Castillo

unread,
Jul 25, 2008, 3:31:59 AM7/25/08
to aster...@googlegroups.com
El Thursday 24 July 2008 23:09:47 Ramses II escribió:
> Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
> tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan de
> coste 0 entre  mis números...

¿Para qué vas a descolgar? Si suena 5 o 10 segundos y cancelas la llamada no
te va a devolver un CONGESTION.

Luis Morales

unread,
Jul 24, 2008, 8:33:49 PM7/24/08
to aster...@googlegroups.com
Gracias Elio,

La ventaja de usar esta rutina consiste que puedes centralizar una
operacion de monitoreo si dispones de varios servidores asterisk desde
una sola maquina. He revisado el safe_asterisk y me parece muy
practico. En efecto de alli tome la idea de hacer esta rutina. En mi
caso esta rutina la ejecuto desde un servidor de comunicaciones donde
la notificaciion la envio via email,sms y jabber ahora estoy
estudiando como sacar valores de asterisk para integrarlos con openms
y cacti.

Les dejos saber como me fue saludos cordiales,

Luis Morales

2008/7/25 Elio Rojano <hel...@gmail.com>:

Germán Aracil Boned

unread,
Jul 25, 2008, 4:09:31 AM7/25/08
to aster...@googlegroups.com

Iñaki Baz Castillo escribió:


> El Thursday 24 July 2008 23:09:47 Ramses II escribió:
>> Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
>> tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan de
>> coste 0 entre mis números...
>
> ¿Para qué vas a descolgar? Si suena 5 o 10 segundos y cancelas la llamada no
> te va a devolver un CONGESTION.

Pues eso le digo yo..

Pero porque esa mania al script safe_asterisk ? si lo único que hace es
relanzar el proceso notificando por mail que se ha caido asterisk ¿?

A mi nunca me ha fallado.....

Explicame la parte mala a ver si me va a aparecer un día :) XDDDDDD

Iñaki Baz Castillo

unread,
Jul 25, 2008, 4:41:41 AM7/25/08
to aster...@googlegroups.com
El Friday 25 July 2008 10:09:31 Germán Aracil Boned escribió:
> Iñaki Baz Castillo escribió:
> > El Thursday 24 July 2008 23:09:47 Ramses II escribió:
> >> Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
> >> tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan
> >> de coste 0 entre mis números...
> >
> > ¿Para qué vas a descolgar? Si suena 5 o 10 segundos y cancelas la llamada
> > no te va a devolver un CONGESTION.
>
> Pues eso le digo yo..
>
> Pero porque esa mania al script safe_asterisk ? si lo único que hace es
> relanzar el proceso notificando por mail que se ha caido asterisk ¿?
>
> A mi nunca me ha fallado.....

Si hacías un "CLI> stop now" pillaba el asfe_asterisk y lo reiniciaba, o algo
así. No lo recuerdo ahora bien, pero en su día lo hablé y lo confirmé con
gente. Insisto en que "safe_asterisk" ya no se usa en el script de arranque
de Asterisk para Debian (el de las fuentes de Asterisk me refiero).

davidp

unread,
Jul 25, 2008, 6:20:21 AM7/25/08
to asterisk-es


On 25 jul, 09:31, Iñaki Baz Castillo <i...@in.ilimit.es> wrote:
> El Thursday 24 July 2008 23:09:47 Ramses II escribió:
>
> > Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
> > tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan de
> > coste 0 entre  mis números...
>


Creo que no habéis entendido lo que proponía Elio (o no lo he
entendido yo).

No se trata de que hagas un script que intente llamar cada x tiempo y
compruebe el DIALSTATUS.

Se trata de que cuando un usuario intente hacer una llamada, si el
DIALSTATUS devuelve CONGESTION, asterisk mande el correo al
administrador.

De esta forma no tienes que monitorizar nada. Cuando un usuario
intente hacer una llamada y no pueda porque está el primario entero
ocupado... entonces te llegará el aviso.

mmmmm ahora que leo lo que he escrito, igual soy yo el que no lo ha
entendido... de esta forma sólo controlaría la imposibilidad de hacer
llamadas salientes, pero si mi primario está ocupado entero y no
pueden entrar llamadas, no recibiría ningún aviso. Bueno, puede valer
como solución para "avisar cuando no hay canales para sacar
llamadas" ;-)


> ¿Para qué vas a descolgar? Si suena 5 o 10 segundos y cancelas la llamada no
> te va a devolver un CONGESTION.
>

Ni hace falta que suene 5 o 10 segundos. Si detectas que el CALLERID
eres tú mismo, haces el hangup directamente.

davidp.

Elio Rojano

unread,
Jul 25, 2008, 9:00:32 AM7/25/08
to aster...@googlegroups.com
El día 25 de julio de 2008 12:20, davidp <david....@gmail.com> escribió:



On 25 jul, 09:31, Iñaki Baz Castillo <i...@in.ilimit.es> wrote:
> El Thursday 24 July 2008 23:09:47 Ramses II escribió:
>
> > Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
> > tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan de
> > coste 0 entre  mis números...
>


Creo que no habéis entendido lo que proponía Elio (o no lo he
entendido yo).

No se trata de que hagas un script que intente llamar cada x tiempo y
compruebe el DIALSTATUS.

Se trata de que cuando un usuario intente hacer una llamada, si el
DIALSTATUS devuelve CONGESTION, asterisk mande el correo al
administrador.
 
De esta forma no tienes que monitorizar nada. Cuando un usuario
intente hacer una llamada y no pueda porque está el primario entero
ocupado... entonces te llegará el aviso.


Exacto, creo que eres el único que lo ha entendido. :''(
 

mmmmm ahora que leo lo que he escrito, igual soy yo el que no lo ha
entendido... de esta forma sólo controlaría la imposibilidad de hacer
llamadas salientes, pero si mi primario está ocupado entero y no
pueden entrar llamadas, no recibiría ningún aviso. Bueno, puede valer
como solución para "avisar cuando no hay canales para sacar
llamadas" ;-)

Exacto, por eso decía, "siempre y cuando no tengas muchas llamadas"

> ¿Para qué vas a descolgar? Si suena 5 o 10 segundos y cancelas la llamada no
> te va a devolver un CONGESTION.
>

Ni hace falta que suene 5 o 10 segundos. Si detectas que el CALLERID
eres tú mismo, haces el hangup directamente.

Si, puse un ejemplo (un boceto, siempre mejorable)... :)
 

davidp.





--
http://www.sinologic.net/

Saúl Ibarra

unread,
Jul 25, 2008, 2:39:21 PM7/25/08
to aster...@googlegroups.com
Una alternativa al safe_asterisk es usar un script como el que se
comenta en este hilo junto con mon. Eso sí, tienes que andar al loro,
porque si haces un stop now porque tu quieres, te lo vuelve a
levantar...


--
Saúl -- "Nunca subestimes el ancho de banda de un camión lleno de disketes."
----------------------------------------------------------------
http://www.saghul.net/

Saúl Ibarra

unread,
Jul 25, 2008, 2:42:09 PM7/25/08
to aster...@googlegroups.com
Ah!! Y una cosa que se me olvidaba: que asterisk este levantado no
quiere decir que este funcionando: si le haces un INVITE flood a
Asterisk, no lo tumbas, pero no acepta peticiones SIP, por lo que
estas un poco fucked-up :-/ Una opción es mandar un paquete SIP
OPTIONS desde tu script de monitorización, para ver si Asterisk esta
levantado y escucha SIP. Para misdn se podría parsear un misdn show
stacks, y para zap alguna otra cosilla :)

Ramses II

unread,
Jul 27, 2008, 5:41:09 AM7/27/08
to aster...@googlegroups.com, ja...@multico.es
¿Y estos paquetes te dan la información incluso si el proveedor, por lo que sea, te tiene bloqueado los canales y no puedes recibir ni hacer llamadas?
 
 
Saludos,
 
Ramses


De: aster...@googlegroups.com [mailto:aster...@googlegroups.com] En nombre de paco gil
Enviado el: jueves, 24 de julio de 2008 23:18

Luis Morales

unread,
Jul 25, 2008, 3:36:33 PM7/25/08
to aster...@googlegroups.com
Estoy deacuerdo que debemos meterle mas inteligencia la idea de
detectar si esta guindado el asterisk es buena. Ya he visto como
generar llamadas desde el script. En la proxima revision espero
incluir esta funcion. Si tienen mas ideas no duden en avisarme!

Saludos,

Luis Morales

2008/7/26 Saúl Ibarra <sag...@gmail.com>:

Saúl Ibarra

unread,
Jul 27, 2008, 6:36:27 PM7/27/08
to aster...@googlegroups.com
En principio no, ya que un paquete OPTIONS, que sirve para preguntar
por las capacidades del servidor. De todas formas, para monitorizar y
tal no nos importa la respuesta, solo que responda, lo que sea :)

Luis Morales

unread,
Jul 27, 2008, 8:17:42 PM7/27/08
to aster...@googlegroups.com
Bueno encontre algo q podria reponder la pregunta de ramses. No lo he
probado. Anexo el link donde esta una libreria de zaptel en perl.

http://zaptel.tzafrir.org.il/a2x/chunked/README.chunked/ar01s05.html
http://www.asteriskguru.com/archives/svn-commits-tzafrir-branch-14-r2711-in-branches-14-vt107299.html

Estas funciones se podrian incluir perfectamente en la rutina base.

Saludos,

Luis Morales

Saúl Ibarra

unread,
Jul 28, 2008, 6:25:37 AM7/28/08
to aster...@googlegroups.com
On Mon, Jul 28, 2008 at 2:17 AM, Luis Morales <fast...@gmail.com> wrote:
>
> Bueno encontre algo q podria reponder la pregunta de ramses. No lo he
> probado. Anexo el link donde esta una libreria de zaptel en perl.
>
> http://zaptel.tzafrir.org.il/a2x/chunked/README.chunked/ar01s05.html

Sí, con lszaptel y zapte_hardware se podrían hacer kosas wapas...

Germán Aracil Boned

unread,
Aug 7, 2008, 9:28:15 PM8/7/08
to aster...@googlegroups.com

Iñaki Baz Castillo escribió:
> El Friday 25 July 2008 10:09:31 Germán Aracil Boned escribió:
>> Iñaki Baz Castillo escribió:
>>> El Thursday 24 July 2008 23:09:47 Ramses II escribió:
>>>> Porque llamar a mi propio número cada cierto tiempo y que me descuelgue,
>>>> tendría un coste cada cierto tiempo, ¿no?, a no ser que tenga algún plan
>>>> de coste 0 entre mis números...
>>> ¿Para qué vas a descolgar? Si suena 5 o 10 segundos y cancelas la llamada
>>> no te va a devolver un CONGESTION.
>> Pues eso le digo yo..
>>
>> Pero porque esa mania al script safe_asterisk ? si lo único que hace es
>> relanzar el proceso notificando por mail que se ha caido asterisk ¿?
>>
>> A mi nunca me ha fallado.....
>
> Si hacías un "CLI> stop now" pillaba el asfe_asterisk y lo reiniciaba, o algo
> así. No lo recuerdo ahora bien, pero en su día lo hablé y lo confirmé con
> gente. Insisto en que "safe_asterisk" ya no se usa en el script de arranque
> de Asterisk para Debian (el de las fuentes de Asterisk me refiero).

Iñaki, no sé exactamente si ahora sucede, pero con la versión que yo
utilizo del script, he probado stop now, y lo hace sin problemas. Se
detiene sin pedir ni agua.

josefu

unread,
Aug 8, 2008, 2:50:01 AM8/8/08
to asterisk-es
> Pues eso le digo yo..
>
> Pero porque esa mania al script safe_asterisk ? si lo único que hace es
> relanzar el proceso notificando por mail que se ha caido asterisk ¿?
>
> A mi nunca me ha fallado.....
>
> Explicame la parte mala a ver si me va a aparecer un día :) XDDDDDD

http://bugs.digium.com/view.php?id=9843

davidcsi

unread,
Aug 8, 2008, 3:51:54 AM8/8/08
to asterisk-es
Hombre, asgurarse que está corriendo ni siquiera tienes que entrar al
manager...

con un crontab te vale:

crontab -l
* * * * * /root/asterisk_watchdog.sh

cat asterisk_watchdog.sh

if [ `ps -ef | grep safe_asterisk | grep -v grep | wc -l` -lt 1 ]
then
echo "ASTERISK NOT RUNNING..."
echo "STARTING IT NOW...!"
/usr/sbin/safe_asterisk
fi


Claro, ésto no manda emails ni nada, tampoco se asegura que no esté
bloqueado... pero a mi nunca me ha pasado eso. A mi al menos me
funciona de perlas.

Para monitorizar la calidad del servicio tengo un ASR que me envía
emails si el ASR de un destino o un carrier o un servicio baja de
cierto "threshold"

Para monitorizar que el primario no esté bloqueado (aunque no entiendo
muy bien cómo puede bloquearse así sin más) con hacer por ejemplo:
asterisk -rx "zap show status"
y ver el output tienes de sobra.
Reply all
Reply to author
Forward
0 new messages