[AsteriskBrasil] DTMF x featuremap
Paulo Angonese
angonese em via-rs.net
Quinta Maio 18 17:44:53 BRT 2006
Pessoal, se alguem passou por esta situação e sabe a solução...
Caso contrario serve para registro.
Se faço Dial tT e com atxfer e blindxfer habilitados (no meu caso ##
e #*), após a conexão estabelecida o * não está passando adiante os
DTMFs (RFC2833).
No nosso caso discando para 100 pego o tom do DISA de um Ericsson
MD110. Neste momento o usuário entre com sua senha (*72*...) para discar
para celular ou DDD, por exemplo. Se este Dial for com tT o MD não
recebe estes tons. Se tiro tT funciona perfeitamente.
Tive que desabilitar a possibilidade de transferência através do *
quando discando através de senha do MD110.
Este problema ocorre em um Asterisk 1.2.7.1, as ligações feitas por
SIP atraves adaptadores e telefones IP (os mais variados), com destino
também SIP para outro Asterisk com a função de gateway E1 (conectado ao MD).
A relação com o features.conf foi comprovada esta semana. Habilitei
automon para o pessoal através de *1. Mais uma vez tive que tirar a
opção W do Dial para o 100 (DISA do MD110). Na prática, mais uma vez,
esta facilidade (automon) não estará disponível para quem discar para a
rua usando o DISA do MD110.
Em tempo, para quem se interessar. Disponibilizei para estes usuários
o acesso a estas gravações do automon através do Asterisk Recording
Interface (http://www.littlejohnconsulting.com/ari). Funciona bem para o
Monitor chamado do extension.conf. Mas quando utilizando o automon
requereu um patch "caseiro" em res_monitor.c.
O ARI disponibiliza o CDR para ser consultado pelo "dono" da extensão.
E se houver gravação disponibliza o acesso na linha deste CDR. Para
isto ele relaciona o UNIQUEID do CDR com o filename.wav, que deve ter
este UNIQUEID em seu nome.
O filename do Monitor é a segunda opção, na realidade o prefixo.
Porem,através de [applicationmap] do features.conf nao achei uma bendita
maneira de passar a variavel UNIQUEID / ${UNIQUEID}. Então alterei o
default do Monitor em res_features.c para que fosse chan->uniqueid.
Problema não resolvido!! O chan->uniqueid após o usuário teclar a
sequencia do automon não é mais o mesmo do CDR. Mas, pelo que pude
observar, é a parte a direita do . uniqueid + 1 . Então subtrai 1 desta
parte do chan->uniqueid e... it's working!!
Não é uma solução nada elegante, mas ... ( o responsável pelo ARI foi
notificado e reconheceu o problema. No mais o ARI está funcionando muito
bem.
Paulo Angonese
Mais detalhes sobre a lista de discussão AsteriskBrasil