Archive for Asterisk

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

Configuração grandstream gateway FXO – GXW4104 GXW4108 GXW4

EQUIPAMENTO: GXW4104
IP: 192.168.254.250
FIRMWARE: Program–1.3.4.13 Loader–1.1.3.4 Boot–1.1.3.2

Configure como a imagem para não ocorrerem problemas junto a telefonia Brasileira.
Importante esta com o firmware mais atualizado. Em 25/09/2013 este acima é o mais atual.

grandstream 001

grandstream 002

grandstream 003

grandstream 007

grandstream 006

grandstream 005

EXEMPLO SIP.CONF

[general]
limitonpeer = yes
musiconhold = default
bindport = 5060
bindaddr = 0.0.0.0
host=192.168.254.250
localnet = 192.168.254.75/255.255.255.0
nat=force_rport,comedia
qualify = yes
canreinvite = no

language = pt_BR
subscribecontext = default

[linha1]
type=friend
context=recebe_telefone_2
qualify=yes
secret=123
host=dynamic
disallow=all
allow=ulaw
allow=alaw
insecure=port,invite
nat=force_rport
dtmfmode=rfc2833
reinvite=no
canreinvite=no

[linha2]
type=friend
context=recebe_telefone_2
qualify=yes
secret=123
host=dynamic
disallow=all
allow=all
insecure=port,invite
nat=force_rport
dtmfmode=rfc2833
reinvite=no
canreinvite=no

[linha3]
type=friend
context=recebe_telefone_3
qualify=yes
secret=123
host=dynamic
disallow=all
allow=all
insecure=port,invite
nat=force_rport
dtmfmode=rfc2833
reinvite=no
canreinvite=no

[linha4]
type=friend
context=recebe_telefone_4
qualify=yes
secret=123
host=dynamic
disallow=all
allow=all
insecure=port,invite
nat=force_rport
dtmfmode=rfc2833
reinvite=no
canreinvite=no

EXEMPLO DE RECEBIMENTO E EFETUAÇÃO DE CHAMADAS (Extensios.conf):

[recebe-chamadas]
exten => s,1,Noop(BINA RECEBIDO ${CALLERID(num)})
same => n,Dial(DAHDI/33,50)
same => n,hangup()

[efetua-chamadas]
exten => _X.,1,Dial(SIP/linha1/${EXTEN},50,r)

Placa de rede para Channel bank, retirando autonegociacao e limitando velocidade.

Exemplo de configuração da placa de rede para SO CentOS / RedHat

A configuração deve ser feita no arquivo:

/etc/sysconfig/network-scripts

1- Edite o arquivo network-scripts:

# vim /etc/sysconfig/network-scripts/iface
(Substitua o parâmetro iface pela interface eth que esta conectada ao Channel Bank)

Exemplo:
# vim /etc/sysconfig/network-scripts/ifcfg-eth0

2- Altere as configurações da interface de rede conectada ao CB3000 TDMoE conforme o exemplo abaixo:

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
ETHTOOL_OPTS=”speed 100 duplex full autoneg off”

3- Reinicie o serviço de rede com o comando:

# service network restart

Exemplo para desabilitar o protocolo ipv6 em SO CentOS / RedHat

A configuração deve ser feita no arquivo:

/etc/rc.d/rc.local

1- Edite o arquivo rc.local:

# vim /etc/rc.d/rc.local

2- Adicione a linha abaixo ao final do mesmo:

echo “1” > /proc/sys/net/ipv6/conf/iface/disable_ipv6

Substitua o parâmetro iface pela interface eth que esta conectada ao CB3000 TDMoE.
Exemplo:
echo “1” > /proc/sys/net/ipv6/conf/eth0/disable_ipv6

3- Reinicie o servidor ou execute o comando:

# /etc/rc.d/rc.local

Verifique a configuração da placa de rede com o comando ifconfig.

Instalação chan_dongle asterisk 11

INSTALANDO O COMANDO lspci e lsusb NO CENTOS (REDHAT)
yum install pciutils usbutils

Com o comando abaixo verificaremos se o servidor e sistema operacional reconheceu o dispositivo:

Duas necessidades:
1 – Desabilitar autorom, cdrom, sdstorage do Minimodem com os programas que encontram-se ao final do post
2 – Desabilitar o suporte a usb storage no Sistema Operacional (Exemplo CentOS):
modprobe -r usb_storage
touch /etc/modprobe.d/no-usb
mv /lib/modules/$(uname -r)/kernel/drivers/usb/storage/usb-storage.ko /root
reboot

[root@]# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 013: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
<strong>Bus 002 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA Modem</strong>

Instalação do utilitário de modens:
Verificar (uname -m) se seu sistema operacional é 32bits (i686 – x86_64) ou 64bits (amd64).


[root@localhost ~]# yum search libusb

#Para 32bits:
[root@localhost ~]#  yum install libusb.i686
[root@localhost ~]#  yum install libusb-devel.i686 

#Para 64bits:
[root@localhost ~]#  yum install libusb1-devel.x86_64  libusb.x86_64 libusb1.x86_64
[root@localhost ~]#  yum install libusb-devel.x86_64 

Instalação chan_dongle asterisk 11

Baixar o source: https://github.com/jstasiak/asterisk-chan-dongle/archive/asterisk11.zip

Descompactar e proceder abaixo:

2.1) Descompactar os sources:
tar xzvf package.tgz
2.2) Entrar no diretorio criado
2.3) Configurar o tipo de instalação
–> simples:
./configure
–> personalizada: explicite set install directory for module
./configure DESTDIR=”/usr/lib/asterisk/modules”
Pode ativar o debug –> ./configure –enable-debug
(no centOs 64bits tive que personalizar este caminho para /usr/lib64/asterisk/modules/)
2.4) Build
make
2.5) Instalação
make install

Copiar o arquivo de exemplo /asterisk/asterisk-chan-dongle-asterisk11/etc/dongle.conf /etc/asterisk/

Entre no asterisk e carregue o modulo manualmente. Provavelmente dará um erro de MSI pois o imei e dados que constam no arquivo dongle.conf estão com os dados incorretos. Será necessário realizar a inclusão manualmente dos dados corretos.


CLI>module load chan_dongle.so
CLI>module unload chan_dongle.so
CLI>module reload chan_dongle.so

#  No meu caso o arquivo dongle.conf ficou: 

[root@localhost ~]# cat /etc/asterisk/dongle.conf

[general]
 interval=15
[defaults]
 context=interface-celular      
 group=0                        
 rxgain=0                       
 txgain=0                       
 autodeletesms=yes              
 resetdongle=yes                
 u2diag=-1                      
 usecallingpres=yes 
 callingpres=allowed_passed_screen 
 disablesms=no              
 language=pt_BR               
 smsaspdu=yes                 
 mindtmfgap=45                
 mindtmfduration=80           
 mindtmfinterval=200          
 callwaiting=auto 
 initstate=start  
 exten=+1234567890
 dtmf=relax 

[dongle0]
 audio=/dev/ttyUSB1 
 data=/dev/ttyUSB2   
 group=1
 imei=359806032983112
 imsi=123456789013312

[dongle1]
 audio=/dev/ttyUSB4
 data=/dev/ttyUSB5
 group=1
 imei=354112037073122
 imsi=724317620391711

Programas para mini modem: —> https://www.dc-unlocker.com/downloads

—> Baixar essa imagem e renomear para .exe

———————————————————————-

Mais documentação: http://wiki.e1550.mobi/

Obs: Mudanças do original. Patch https://github.com/jstasiak/asterisk-chan-dongle/commit/3485ac50c337bb0f70d68f2fa4d62ea3beee568a

comandos AT:

AT^CVOICE=0 Enable Voice
AT^CVOICE=1 Disable Voice
AT^CVOICE=? Check status
=========
AT^U2DIAG=0 – switch the device in modem mode only
AT^U2DIAG=1 – device in modem mode + CD-ROM
AT^U2DIAG=255 – modem mode + CD-ROM + Card Reader
AT^U2DIAG=256 – modem mode + Card Reader

ATI
AT^U2DIAG?
AT+GMR
AT!IGVER?
AT^HVER
AT!UDINFO?
AT^CARDLOCK?
AT^CVOICE?
AT+CGMR

CLI Asterisk para adicionar a identificação do número ao dongle:

localhost*CLI> dongle cmd dongle0 AT+CPBS=\"ON\"
localhost*CLI> dongle cmd dongle0 AT+CPBW=1,\"+552184357785\",145

Para que sempre que reiniciar o servidor ou trocar de porta USB os chips permanecem no mesmo contexto/perfil eh necessario a introducao do IMEI e IMSI e remocao dos /dev/ttyUSB
Exemplo:


/etc/asterisk/dongle.conf

[chip-oi]
imei=354712124354566
imsi=724312230293733

Detalhe importante para recebimento de UUSD, tive que recompilar com make e make install após alteraçao do arquivo:


vim /usr/src/asterisk-chan-dongle-asterisk11/at_response.c


        // FIXME: strictly check USSD encoding and detect encoding
        if ((dcs == 0 || dcs == 1 || dcs == 15) && !pvt->cusd_use_ucs2_decoding)

Adicione o dcs == 1 como acima aproximadamente na linha: 1350

https://code.google.com/p/asterisk-chan-dongle/issues/detail?id=98

https://code.google.com/p/asterisk-chan-dongle/issues/attachmentText?id=98&aid=980000000&name=chan_dongle-7bit-fix.patch&token=ABZ6GAe818KOfnLuWEWMddG9THdCE-PDOA%3A1450970504790