[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