Seguinte pessoal, estou com um problema que vi ser bastante comum uns 3 anos atrás (pelo menos em meados de 2011~2013) pela data dos comentários na lista. Já li de tudo e não consegui resolver a questão de recebimento do callerid.

Tenho uma placa TDM410P com 4 FXO e uma linha analógica da GVT. Pesquisando sobre os tipos de sinalização, vi que aqui no Brasil as operadoras utilizam quase que na totalidade DTMF e somente a GVT utilizaria FSK, então em tese o Asterisk não deveria ter problemas em me exibir o valor do parâmetro ${CALLERID(num)} já que o dahdi não teria problemas em identificar o mesmo (Utilizo a versão 2.10.0.1 do Dahdi com Asterisk 11.17.1).

Connected to Asterisk 11.17.1 currently running on asterisk (pid = 2686)
asterisk*CLI> dahdi show version
DAHDI Version: 2.10.0.1 Echo Canceller: MG2

Então encontrei esse Troubleshooting no site da Digium -> http://kb.digium.com/articles/Configuration/Troubleshooting-missing-caller-ID-on-Analog-calls . Capturei a entrada no canal correspondente e ao escutar percebe-se nitidamente que o CALLERID é enviado (tinha confirmado com a operadora mas mesmo assim não estava confiando) e que é enviando imediatamente antes do primeiro ring, aparentemente sem nenhuma sinalização prévia (audível para nós).

Lendo em alguns lugares vi que esse padrão faz parte da sinalização DTMF, o que fiz? Para resolver de uma vez por todas meus problemas comprei um conversor DTMF -> FSK (sendo mais específico, este -> http://www.lojamatel.com.br/produto/conversor-dtmf-operadora-amp-gt-fsk-equipamento/554) e para minha surpresa comecei a capturar o CALLERID "esporadicamente", o intrigante é que ao capturar o áudio do canal de comunicação, o padrão continua da mesma maneira, o CALLERID sendo recebido imediatamente antes do primeiro ring e sem nenhuma "aviso prévio" (não sei se escutaria alguma coisa com relação a inversão de polaridade).

Minha configuração no chan_dahdi.conf está:

[channels]
...
usecallerid=yes
cidsignalling=bell
cidstart=ring
...

OBS.: Essa é a única configuração que consigo enxergar o CALLERID algumas vezes, já percebi que ele só é mostrado quando a URA atende a ligação no segundo ring (do ponto de vista do chamador), antes disso (quando uso bell/pollatiry por exemplo) ele atende após o primeiro ring (do ponto de vista do chamador) e simplesmente não exibe, as vezes no terceiro ring e também não exibe. E ainda por vezes no segundo ring, mas ocorre o seguinte erro:

-- Starting simple switch on 'DAHDI/1-1'
[May 18 12:57:56] ERROR[3302][C-00000028]: callerid.c:566 callerid_feed: No start bit found in fsk data. [May 18 12:57:56] WARNING[3302][C-00000028]: chan_dahdi.c:1833 my_get_callerid: Failed to decode CallerID [May 18 12:57:56] WARNING[3302][C-00000028]: sig_analog.c:2575 __analog_ss_thread: CallerID returned with error on channel 'DAHDI/1-1'

Mesmo praticamente em toda informação da GVT sobre sinalização afirmando que ela utiliza FSK (a maioria antiga, como essa -> http://jefferson-ryan.blogspot.com.br/2009/12/o-servico-identificador-de-chamadas-da.html) estou balançado sobre estarem utilizando DTMF. Digo isso, porque peguei o fluxo capturado no dahdi_monitor, converti em WAV e o rodar no multimon (http://skoroneos.blogspot.com.br/2009/12/solving-asterisk-dtmf-callerid-issues.html) para extrair as informações do áudio, utilizei os parâmetros para sinalização DTMF e consegui ver o CALLERID em texto plano corretamente.

Muito se fala sobre o problema em detectar CALLERID em DTMF no Asterisk desde a época do Zaptel, o Dahdi ainda tem esse problema? Lendo encontrei o link abaixo, mas as informações são antigas.
https://issues.asterisk.org/jira/browse/DAHLIN-4

Ainda sem me conformar comprei um identificador de chamada para testar se a origem é sempre reconhecida já que poderia ser algum problema na minha operadora, (sendo mais específico, este -> http://www.lojamatel.com.br/produto/identificador-de-chamadas-maxtel-zk20/335) mas para minha não surpresa, a resposta foi afirmativa para o recebimento, em todas as chamadas aparece o CALLERID corretamente, ou seja, de alguma maneira deve ter como idenficá-lo sem erros no Asterisk, agradeceria muito se alguém que conhece a solução ou que já passou por isso pudesse me ajudar.

Resumindo:

Asterisk -> 11.17.1
DAHDI -> 2.10.0.1
Placa -> TDM410P 4FXO Similar (http://www.lojamundi.com.br/tdm410p-fxo-placa-asterisk.html)
Módulo -> wctdm24xxp

Captura do Canal, CALLERID aparece na variável ${CALLERID(num)}

https://colaborar.us/FUNCIONOU.wav

Captura do Canal, CALLERID NÃO aparece na variável ${CALLERID(num)}

https://colaborar.us/NAO_FUNCIONOU.wav

OBS.: No áudio que funcionou, você nota um ruído após o segundo ring e logo antes do atendimento pela URA, SEMPRE que o CALLERID aparece, o perfil do áudio é desta maneira, segue parte com "visual" de ambos no Audacity e destaque da parte que comentei:

https://colaborar.us/comparacao_func_nfunc.png


--- Arquivos de configuração

--/etc/modprobe.d/dahdi.conf--
# You should place any module parameters for your DAHDI modules here
# Example:
#
# options wctdm24xxp latency=6
options wctdm24xxp opermode=BRAZIL
--/etc/modprobe.d/dahdi.conf--

--/etc/asterisk/chan_dahdi.conf--
[channels]
language=pt_BR
usecallerid=yes
usercallingpress=yes
cancallforward=yes
hidecallerid=no
callreturn=yes
echocancel=yes
callwaiting=yes
transfer=yes
canpark=yes

rxgain=0.0
txgain=0.0

cidsignalling=bell
cidstart=ring

#include /etc/asterisk/dahdi-channels.conf
--/etc/asterisk/chan_dahdi.conf--

--/etc/asterisk/dahdi-channels.conf--
; Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
;;; line="1 WCTDM/0/0 FXSKS"
signalling=fxs_ks
callerid=asreceived
group=0
context=from-pstn
channel => 1
;callerid=
;group=
context=default
...
--/etc/asterisk/dahdi-channels.conf--

--/etc/dahdi/system.conf--
# Autogenerated by /usr/sbin/dahdi_genconf on Fri Jan  9 03:51:31 2009
# If you edit this file and execute /usr/sbin/dahdi_genconf again,
# your manual changes will be LOST.
# Dahdi Configuration File
#
# This file is parsed by the Dahdi Configurator, dahdi_cfg
#
# Span 1: WCTDM/0 "Wildcard TDM410P" (MASTER)
fxsks=1
echocanceller=mg2,1
fxsks=2
echocanceller=mg2,2
fxsks=3
echocanceller=mg2,3
fxsks=4
echocanceller=mg2,4

# Global data

loadzone        = br
defaultzone     = br
--/etc/dahdi/system.conf--
_______________________________________________
WORKOFFEE KHOMP: em Junho serão 2 edições do workshop
gratuito da Khomp:  dia 11 em Brasília, e dia 18 em Curitiba
Aproveite e conheça os lançamentos: EBS Server PRO e UMG 100
Garanta sua vaga e saiba mais em: www.workoffee.com.br
_______________________________________________
DIGIVOICE: Fabricante pioneiro em Banco de Canais e Placas E1, GSM, FXO e FXS 
para Asterisk e Elastix. Temos Cursos de Telefonia IP e Asterisk.
Construa soluções de PABX IP com produtos DigiVoice - visite  
www.digivoice.com.br
_______________________________________________
Para remover seu email desta lista, basta enviar um email em branco para 
asteriskbrasil-unsubscr...@listas.asteriskbrasil.org

Responder a