Archive for Asterisk

Analise de ECO com cancelador de eco ativo e antes de ativa-lo

Criar um diretório e realizar a gravação do áudio quando a chamada estiver no canal:
mkdir /usr/srv/gravacao
dahdi_monitor 65 -m -r streamrx65.raw -t streamtx65.raw -R streampreechorx65.raw -T streampreechotx65.raw

Onde – 65 eh a porta dahdi fxo

Após converter o áudio para .wav
sox -r 8000 –encoding signed-integer –endian little -b 16 -c 1 streamrx66.raw streamrx66.wav

Baixar o software audiocity e importar os quatro áudios e compara-los.

Veja uma comparação de áudio:
linha 69

linha porta 65

Reparar um banco em sqlite3 asterisk astdb

Ao tentar conectar no asterisk tenho a mensagem:
[root@ ~]# asterisk -r
Unable to connect to remote asterisk (does /var/run/asterisk/asterisk.ctl exist?)

Quando tendo acessar com asterisk -vvvvvvvvvvgc tenho a mensagem abaixo.

Erro deparado após um pique de energia:
[Mar 7 11:21:09] WARNING[2320]: db.c:135 init_stmt: Couldn’t prepare statement ‘CREATE TABLE IF NOT EXISTS astdb(key VARCHAR(256), value VARCHAR(256), PRIMARY KEY(key))': disk I/O error
[Mar 7 11:21:09] WARNING[2320]: db.c:210 db_create_astdb: Couldn’t create astdb table: disk I/O error

Solução:
Foi necessário reparar o bando de dados do asterisk utilizando

echo .dump | sqlite3 /var/lib/asterisk/astdb.sqlite3 > /var/lib/asterisk/astdb.sqlite3_DUMP

sqlite3 -init /var/lib/asterisk/astdb.sqlite3_DUMP /var/lib/asterisk/astdb.sqlite3_FIXED;

mv /var/lib/asterisk/astdb.sqlite3 /var/lib/asterisk/astdb.sqlite3_error

mv /var/lib/asterisk/astdb.sqlite3_FIXED /var/lib/asterisk/astdb.sqlite3

Exemplo de uma consulta na base antes do recebimento de uma chamada.

Exemplo de uma consulta na base antes do recebimento de uma chamada.
Aqui eu consulto se vem dos ddds 21,51,31 ou 11. Caso venha eu consulto na base se eh para eu aceitar ou não a chamada no 0800 dependendo da região.

[consulta]
exten => 667,1,NoOp(DDD do numero que estamos recebendo –> ${CALLERID(ANI):0:2})
same => n,noop(Numero que estamos recebendo –> ${CALLERID(ANI)})

same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “11”]?verificabanco) ; SP
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “21”]?verificabanco) ; RJ
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “51”]?verificabanco) ; POA
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “31”]?verificabanco) ; BH
same => n,Noop( DDD ${CALLERID(ANI):0:2} aceito no 0800, nao consta na lista de excecoes)
same => n,Goto(call0800)

same => n(verificabanco),Noop(DDD possivelmente nao pode entrar no 0800, a verificar no banco de dados)
same => n,Noop(Consulta no banco de dados do prefixo –> ${CALLERID(ANI):0:6})
same => n,MYSQL(Connect connid localhost prefixo profit asterisk)
same => n,NoOp(connid = ${connid})
same => n,MYSQL(Query resultid ${connid} SELECT status FROM prefixos WHERE prefixo=”${CALLERID(ANI):0:6}”)
same => n,NoOp(resultid = ${resultid})
same => n,MYSQL(Fetch fetchid ${resultid} realizada)
same => n,NoOp(Variabili = ${fetchid},${realizada})
same => n,MYSQL(Clear ${resultid})
same => n,MYSQL(Disconnect ${connid})
same => n,noop(${realizada})
same => n,GotoIf($[“${realizada}” = “1”]?nocall:call0800)

same => n(nocall),Noop( Telefone ${CALLERID(ANI)} nao eh autorizado ligar no 0800 pois consta em uma das cidades atendidas pelo numero local da ihunter. Vamos verificar agora de qual localidade para tocar o audio em especifico.)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “11”]?nocallSP)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “21”]?nocallRJ)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “51”]?nocallPOA)
same => n,GotoIf($[“${CALLERID(ANI):0:2}” = “31”]?nocallBH)
same => n,Goto(call0800)

same => n(nocallSP),Noop(playback dizendo o numero de Sao Paulo)
same => n,playback(numero_sao_paulo)
same => n,HangUP()
same => n(nocallRJ),Noop(playback dizendo o numero do Rio de Janeiro)
same => n,Playback(numero_rio_de_janeiro)
same => n,HangUP()
same => n(nocallPOA),Noop(playback dizendo o numero de Porto Alegre)
same => n,Playback(numero_porto_alegre)
same => n,HangUP()
same => n(nocallBH),Noop(playback dizendo o numero de Belo Horizonte)
same => n,playback(numero_belo_horizonte)
same => n,HangUP()

same => n(call0800),Noop(Verificando se o horario eh permitido)
same => n,GotoifTime(8:00-18:50|mon-fri|*|*?recebehelpdesk,s,1)
same => n,noop(Fora de horario de atendimento da ihunter!)
same => n,Playback(fora-horario)
same => n,Hangup()

Problemas ao checar mensagens antigas voicemail asterisk odbc

Asterisk 1.11

Problema: No meu de voz ao acessar a caixa postal e verificar mensagens antigas não eram ouvidas. Recebia na cli as mensagens abaixo:

No banco nota que o campo msg_id em voicemail_messages em 90% não continha dados (NULL).

Para solução, aplicação do patch abaixo:

https://reviewboard.asterisk.org/r/2220/diff/4/raw/

Fonte: https://reviewboard.asterisk.org/r/2220/diff/4/

Para aplicar o patch:

1 – Ir até o diretório da instalação do asterisk
[root@ipbx apps]# cd /asterisk/asterisk-11.2.1/apps/

2 – Executar o comando:
[root@ipbx apps]# patch -p0 < rb2220.patch can't find file to patch at input line 5 Perhaps you used the wrong -p or --strip option? The text leading up to this was: -------------------------- |Index: /branches/11/apps/app_voicemail.c |=================================================================== |--- /branches/11/apps/app_voicemail.c (revision 378414) |+++ /branches/11/apps/app_voicemail.c (working copy) -------------------------- File to patch: /asterisk/asterisk-11.2.1/apps/app_voicemail.c patching file /asterisk/asterisk-11.2.1/apps/app_voicemail.c 3 – Se solicitado o caminho coloque completo:
/asterisk/asterisk-11.2.1/apps/app_voicemail.c

4 – Compilar novamente asterisk:
[root@ipbx apps]# cd /asterisk/asterisk-11.2.1/
make
make install

5 – Restart asterisk

Tons Brasil para Gateway grandstream GXW-4104 GXW-4108 Country Tone Set Values

Brazil

DialTone ch1-4:f1=425@-10,f2=0@-10,c=0/0
Ringback Tone ch1-4:f1=425@-10,f2=0@-10,c=100/400
Busy Tone ch1-4:f1=425@-10,f2=0@-10,c=25/25
Reorder Tone ch1-4:f1=425@-10,f2=0@-10,c=25/25

Brazil

Dial Tone ch1-8:f1=425@-10,f2=0@-10,c=0/0;
Ringback Tone ch1-8:f1=425@-10,f2=0@-10,c=100/400;
Busy Tone ch1-8:f1=425@-10,f2=0@-10,c=25/25;
Reorder Tone ch1-8:f1=425@-10,f2=0@-10,c=25/25;

http://www.3cx.com/downloads/misc/GXPblog/CountryToneSetValues.pdf