Reproduzir áudio no Asterisk sem atender a chamada – 183 Session Progress

Dica muito interessante, fonte: http://blogdovoip.com/asterisk/reproduzir-audio-no-asterisk-sem-atender-a-chamada-183-session-progress/

 

Nos tempos de telefonia analógica, a maior parte das sinalizações telefônicas eram audíveis, o que forçava a ocupar um canal para que ela fosse interpretada, porém com o advento da telefonia digital (TDM e IP) foram criados canais específicos para sinalização das chamadas, possibilitando que essas sinalizações pudessem acontecer em paralelo com as chamadas. Estes recursos sofreram uma evolução muito maior com os protocolos de telefonia IP e com a entrada do SS7 ISDN – para telefonia TDM.

Com essas sinalizaçõs, veio a sinalização de ring (o tom de chamando um telefone), onde é a plataforma responsável pelo usuário que está sendo chamado envia o áudio com esse tom, nos protocolos de telefonia TDM  – similar à telefonia analógica – e para o VoIP, existe uma sinalização especial para tom de ring onde quem origina a chamada que gera esse tom ao receber esse sinal.

Porém, para interoperar com a telefonia TDM (padrão nas redes de telefonia publica) os protocolos VoIP tiveram que abrir a possibilidade de ter uma sinalização de ring onde é enviado o áudio com esse tom, gerando a sinalização Session Progress (183 para o SIP).

Como o tom de ring indica que o telefone está chamando, ele obviamente não atendeu a chamada. Desta forma, é possível explorar essa sinalização para enviar qualquer áudio que seja desejado. No Asterisk, existe uma aplicação para o plano de discagens que ao invés de atender a chamada, envia uma sinalização de Session Progress para o originador, esta aplicação é a Progress().

Aliado à aplicação Progress() no plano de discagem do Asterisk, devemos pôr o parâmetro noanswer na aplicação Playback(), para que ela não atenda a ligação, somente toque o áudio. A aplicação Playback() é a aplicação responsável por reproduzir os arquivos de áudio no Asterisk.

Desta forma, para enviar uma mensagem audível para quem ligar para seu Asterisk sem que o originador seja tarifado em sua operadora de telefonia, devemos executar a aplicação Progress() seguido de Playback(nome_do_arquivo_de_audio,noanswer), tendo como exemplo:

exten =>_X.,1,Progress()

exten => _X.,n,Playback(tt-monkeys,noanswer)

exten =>_X.,n,Hangup()

Neste exemplo, será tocado o áudio tt-monkeys (som dos macacos berrando – padrão do Asterisk) através de uma sinalização de Session Progress.

Vale ressaltar que, caso o tronco de entrada das chamadas seja analógico (FXO) ou TDM com sinalização R2D, a sinalização de progress não terá efeito, sendo interpretada como chamada atendida pela operadora. Esta dica só vale para chamadas em VoIP (testadas com SIP) e TDM com sinalização ISDN (RDSI em portugês). Algumas operadoras também podem definir limites para o session progress e tarifar após excedido o limite

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *