Menu Principal
Inicio
Aprendendo Asterisk
Calculadora VoIP
Contato
Downloads
Empregos Asterisk
Forum do Asterisk
Links
Livros Asterisk
Para Iniciantes
Tutoriais
Arquivo de Notícias
Lojas VOffice
ShopVoIP.com.br
IP Wave
Telefone IP para SIP e IAX
R$ 275,00
LojaCisco.com.br
WRT54GL
Roteador wireless c/ criptografia segura
R$ 388,50
ShopLicense.com.br
McAfee VirusScan
51 à 100 licenças
R$ 56,37
RSS Feeds
Login
Nome de Usuário

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma
Usuários Online
Nós temos 32 visitantes online
Estatísticas
Membros: 3778
Notí­cias: 269
Links: 1
BackTraces
21 de julho de 2008
BackTraces, você já usou? não?, então vamos lá...

Backtrace é um modo de obter informações sobre o que esta acontecendo de errado quando um programa fecha inesperadamente, no nosso caso vamos usar o asterisk como exemplo. Existem dois tipos de backtraces que também é conhecido como bt, que são: bt e bt full... antes de começar, quando for iniciar o asterisk deve-se iniciar com a opção "-g", essa opção é para informar ao asterisk para criar o arquivo "core" que é o arquivo de falhas.

Caso você esteja preocupado em não usa essa opção e usa o scritp safe_asterisk, não se preocupe pois ele inicia o asterisk com essa opção "-g" por padrão, na duvida...

asteriskexperts:/tmp$ ps aux | grep asterisk
expert     17832  0.0  1.2   2348   788 pts/1    S    Jul12   0:00 /bin/sh /usr/sbin/safe_asterisk
expert     26686  0.0  2.8  15544  1744 pts/1    S    Jul13   0:02 asterisk -vvvg -c


"Aug13   0:02 asterisk -vvvg -c"

um outro detalhe, se você compilou o asterisk sem selecionar a opção "DONT_OPTIMIZE" não terá efeito, essa opção
pode ser encontrada no "make menuselect" em Compiler Flags - > "DONT_OPTIMIZE", agora supondo que tenhamos feito isso, mão na massa...

quando tiver uma falha no asterisk, será gerado um arquivo core "dumped" em /tmp. Para ter certeza de que ele realmente existe, você pode procurar ele no diretorio /tmp...

caso você encontre vários arquivos core devemos ver o ultimo escrito vendo a data e hora de criação exemplo:

asteriskexperts:/tmp$ ls -l /tmp/core.*
-rw-------  1 expert expert 10592256 Jul 18 12:40 /tmp/core.26252
-rw-------  1 expert expert  9924608 Jul 18 13:12 /tmp/core.26340
-rw-------  1 expert expert 10862592 Jul 18 13:14 /tmp/core.26374
asteriskexperts:/tmp$


Agora que temos o arquivo core escrito no disco, e a nossa parte final é extrair o "bt" a partir do core. os arquivos core criado são extremamente grande(Nem tanto) pois ali esta todo nosso debug e isso é normal, não se assuste.

*** Note: Nunca anexar arquivos core em um bug tracker, somente é necessario os bt e bt full ***

Para a extrair o bt vamos usar o gdb uma otima ferramenta. Para verificar se o gdb esta instalado digite o comando "gdb -v" exemplo:

asteriskexperts:/tmp$ gdb -v
GNU gdb 6.8-debian
Copyright (C) 2008 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
asteriskexperts:/tmp$


Caso não tenha instaldo, pode ser encontrado em: http://sourceware.org/gdb/download/
[...]

Agora carregando o arquivo core:

asteriskexperts:/tmp$ gdb asterisk /tmp/core.26374
....
nesse meio terá varias saida do arquivo..
....
Reading symbols from /usr/lib/asterisk/modules/app_externalivr.so...done.
Loaded symbols for /usr/lib/asterisk/modules/app_externalivr.so
#0  0x29b45d7e in ?? ()
(gdb)


Na linha de comando do gdb, digite: bt
você vera algo semelhante:

(gdb) bt
#0  0x29b45d7e in ?? ()
#1  0x08180bf8 in ?? ()
#2  0xbcdffa58 in ?? ()
#3  0x08180bf8 in ?? ()
#4  0xbcdffa60 in ?? ()
#5  0x08180bf8 in ?? ()
#6  0x180bf894 in ?? ()
#7  0x0bf80008 in ?? ()
#8  0x180b0818 in ?? ()
#9  0x08068008 in ast_stopstream (tmp=0x40758d38) at file.c:180
#10 0x000000a0 in ?? ()
#11 0x000000a0 in ?? ()
#12 0x00000000 in ?? ()
#13 0x407513c3 in confcall_careful_stream (conf=0x8180bf8, filename=0x8181de8 "Zap/pseudo-1324221520") at app_meetme.c:262
#14 0x40751332 in streamconfthread (args=0x8180bf8) at app_meetme.c:1965
#15 0xbcdffbe0 in ?? ()
#16 0x40028e51 in pthread_start_thread () from /lib/libpthread.so.0
#17 0x401ec92a in clone () from /lib/libc.so.6
(gdb)


A saída do bt é a informação que temos sobre o bug tracker.

agora o "bt full" no seguinte modo:

(gdb) bt full
#0  0x29b45d7e in ?? ()
No symbol table info available.
#1  0x08180bf8 in ?? ()
No symbol table info available.
#2  0xbcdffa58 in ?? ()
No symbol table info available.
#3  0x08180bf8 in ?? ()
No symbol table info available.
#4  0xbcdffa60 in ?? ()
No symbol table info available.
#5  0x08180bf8 in ?? ()
No symbol table info available.
#6  0x180bf894 in ?? ()
No symbol table info available.
#7  0x0bf80008 in ?? ()
No symbol table info available.
#8  0x180b0818 in ?? ()
No symbol table info available.
#9  0x08068008 in ast_stopstream (tmp=0x40758d38) at file.c:180
No locals.
#10 0x000000a0 in ?? ()
No symbol table info available.
#11 0x000000a0 in ?? ()
No symbol table info available.
#12 0x00000000 in ?? ()
No symbol table info available.
#13 0x407513c3 in confcall_careful_stream (conf=0x8180bf8, filename=0x8181de8 "Zap/pseudo-1324221520") at app_meetme.c:262
        f = (struct ast_frame *) 0x8180bf8
        trans = (struct ast_trans_pvt *) 0x0
#14 0x40751332 in streamconfthread (args=0x8180bf8) at app_meetme.c:1965
No locals.
#15 0xbcdffbe0 in ?? ()
No symbol table info available.
#16 0x40028e51 in pthread_start_thread () from /lib/libpthread.so.0
No symbol table info available.
#17 0x401ec92a in clone () from /lib/libc.so.6
No symbol table info available.
(gdb)


Precisamos também da saída do gdb. Isso nos dá mais detalhes, em comparação com a simples "bt". Então, nós recomendamos que você use o "bt full" ao invés do "bt".

A ultima "extração" seria para saber todos os vestígios das threads. Mesmo se o asterisk corre na mesma thread para cada chamada, ele poderia ter criado novas threads.

Para ter certeza de que nós temos as informações corretas, basta fazer:

(gdb) thread apply all bt

Thread 1 (process 26252):
#0  0x29b45d7e in ?? ()
#1  0x08180bf8 in ?? ()
#2  0xbcdffa58 in ?? ()
#3  0x08180bf8 in ?? ()
#4  0xbcdffa60 in ?? ()
#5  0x08180bf8 in ?? ()
#6  0x180bf894 in ?? ()
#7  0x0bf80008 in ?? ()
#8  0x180b0818 in ?? ()
#9  0x08068008 in ast_stopstream (tmp=0x40758d38) at file.c:180
#10 0x000000a0 in ?? ()
#11 0x000000a0 in ?? ()
#12 0x00000000 in ?? ()
#13 0x407513c3 in confcall_careful_stream (conf=0x8180bf8, filename=0x8181de8 "Zap/pseudo-1324221520") at app_meetme.c:262
#14 0x40751332 in streamconfthread (args=0x8180bf8) at app_meetme.c:1965
#15 0xbcdffbe0 in ?? ()
#16 0x40028e51 in pthread_start_thread () from /lib/libpthread.so.0
#17 0x401ec92a in clone () from /lib/libc.so.6
(gdb)


Essa saída nos da informações cruciais sobre cada thread.

Agora, basta criar um arquivo output.txt e jogar a saida do "bt full" (e / ou "bt"), junto com a "thread apply all bt".

depois disso você podera fazer uploads para o bug tracker.

OBS: lembre-se anexe sua saida e não cole.

Tutoriais sobre Asterisk e VoIP
Instalando o OpenR2 no Asterisk
A snalização MFC/R2 é uma sinalização utilizada em telefonia digital, entregue ao consumidor em um link de dados E1, encontrada com muita freqüencia em cidades do interior e em alguns pontos nas capitais brasileiras onde não existe a possibilidade de entrega de um link ISDN ou RDSI como é conhecido no Brasil. Como nos EUA a sinhalização MFC/R2 não existe, pouca ou melhor dizendo nenhuma importância foi dada ao desenvolvimento de bibliotecas que suportassem este tipo de sinalização no Asterisk.
BackTraces
BackTraces, você já usou? não?, então vamos lá...

Backtrace é um modo de obter informações sobre o que esta acontecendo de errado quando um programa fecha inesperadamente, no nosso caso vamos usar o asterisk como exemplo. Existem dois tipos de backtraces que também é conhecido como bt, que são: bt e bt full...
Ergonomia de um projeto
Um ponto algumas vezes esquecido, por nós técnicos, é a interface com o usuário. Nos preocupamos em dimensionar corretamente o servidor, ter uma boa infra-estrutura de rede, aplicar uma politica de QoS na rede entre outras e nos esquecemos de um fator determinante para o sucesso e aceitação dos nossos projetos: a interface com o usuário.
Comparando Asterisk e OpenSER
Se você trabalha com telefonia IP, talvez ainda não tenha ouvido falar do OpenSER, mas certamente você ouviu falar sobre o Asterisk. Bom eu adoro uma chamada polêmica e eu já vi esta questão formulada muitas vezes em fóruns e listas de discussão. Então eu vou me atrever a comparar estes dois softwares muito populares dedicados ao mercado de VoIP. A idéia aqui não é mostrar qual é o melhor, mas principalmente mostrar como eles são diferentes um do outro. Abaixo está uma comparação tópico por tópico.

Instalando o codec Speex no ASTERISK 1.4.x
Neste tutorial vou explicar como compilar e instalar o codec speex no ASTERISK, que é juntamente com o ilbc uma ótima alternativa para quem não quer gastar com licensas de codecs proprietários como o G729.

Simplificando (e baixando custos com) PoE
O Power over Ethernet é uma tecnologia relativamente nova que evoluiu sobre a, amplamente  divulgada Ethernet, que disponibiliza energia em corrente contínua confiavelmente através dos mesmos cabos que disponibilizam dados Ethernet.
Instalando qloganalyzer no ASTERISK p/ gerar relatórios de filas e cdr
O Queue LOG analyzer é uma opção GPL para geração de relatórios e gráficos sobre as filas e CDR Call Detailed Record do Asterisk . O autor é o Earl C. Terwillinger.

Configuração do Astribank XORCOM
Esse tutorial tem como objetivo demonstrar o processo de configuração do Astribank XORCOM.
Publicidade
www.shopvoip.com.br
www.khomp.com.br
www.shopvoip.com.br/index.php?cPath=4_70
www.orecx.com
www.asteriskexperts.com.br/content/view/252/1/
Enquete

Se você deseja publicar uma matéria ou anúncio neste site envie um e-mail para info@asteriskguide.com
Visite:  
Sua loja on-line de produtos e serviços VoIP. Digium, Xorcom, Linksys, DLink, Cisco, Grandstream, Alo-IP e muitos outros.
Treinamentos, Projetos, Telecom, Sistemas Operacionais, Suporte, Monitoramento...
Produtos e Suporte Cisco e Linksys
Seu novo ponto de licenciamento on-line. Microsoft, McAfee, Novell.

 
Todas as Marcas referidas neste website são ou podem ser marcas comerciais registradas e protegidas por leis internacionais
de copyright e propriedade industrial e pertencem aos seus respectivos fabricantes e proprietários.
 
All Brands referred in the website are or may be registered commercial brands and protected by copyright and industrial property
international laws and belong to their respective manufacturers and owners.