[AsteriskBrasil] Identificar chamada recebida a cobrar em PJSIP

Vinicius Souza suportelinux em zohomail.com
Quinta Dezembro 7 11:33:45 -02 2023


Bom dia Mestres!

Sou novo no Asterisk e não faço uso profissional, estou aprendendo pq gosto e para usar na minha casa.

Tenho OI Fibra que me entrega o acesso a internet e uma linha telefônica. Fiz o desbloqueio do ONT para coloca-lo em modo bridge e coloquei a conta SIP da linha no Asterisk.

Tudo está funcionando, porém me deparei com um problema. Como identificar chamadas a cobrar???

Não quero fazer o bloqueio definitivo na operadora, pois penso em fazer uma lista branca de números que receberei chamadas a cobrar, mas isso é mais pra frente. Por hora, preciso identificar que a chamada que entrou é a cobrar e desligar.

Fiz a captura do fluxo SIP e não consegui identificar absolutamente nenhum parâmetro que forneça essa informação, segue abaixo o INVITE de uma ligação recebida a cobrar:

===================================================================================
INVITE sip:0xxxxxxxxxx em 192.168.xxx.xxx:5060;line=rzixxxx;ue-addr=10.xxx.xxx.xxx SIP/2.0
Via: SIP/2.0/UDP 10.xxx.xxx.xxx:5060;branch=z9hG4bK26gr170010xxxxxxxxxx.1
Call-ID: LU-1701558408xxxxxx-xxxxxxxx em imsxxx-xxx.mgmpxxxxxx.ims.oi.net.br
To: <sip:+55xxxxxxxxxx em ims.oi.net.br;user=phone>
From: <sip:+55xxxxxxxxxxx;cpc=priority em ims.oi.net.br;user=phone>;tag=62689ffe-656bb888xxxxxxxx-gm-pt-lucentPCSF-xxxxxx
CSeq: 1 INVITE
Allow: INVITE,BYE,REGISTER,ACK,OPTIONS,CANCEL,SUBSCRIBE,NOTIFY,INFO,REFER
Contact: <sip:+55xxxxxxxxx;cpc=priority em 10.xxx.xxx.xxx:5060;x-afi=132;encoded-parm=QbkRBthOEgsTXgkTBA0HHiUrKz1CQEJLRkZNNgQVHVQsJW4pNS9qPCg5e35jJyIjxxxxxxxxxxxxxxxxxxxx;transport=udp>
Content-Type: application/sdp
Expires: 155
Max-Forwards: 67
P-Asserted-Identity: <sip:+55xxxxxxxxxxx;cpc=priority em ims.oi.net.br;user=phone>
Request-Disposition: no-fork
Timestamp: 25531
Content-Length: 181
P-Called-Party-ID: "+55xxxxxxxxxx" <sip:+55xxxxxxxxxx em ims.oi.net.br;user=phone>
CondorTrigger: term

v=0
o=LucentPCSF 70012xxxx 70012xxxx IN IP4 10.xxx.xxx.xxx
s=-
c=IN IP4 10.xxx.xxx.xxx
t=0 0
m=audio 12274 RTP/AVP 8 96
a=rtpmap:96 telephone-event/8000
a=ptime:20
a=maxptime:60
===================================================================================

Após o INVITE segue o fluxo normal, nada que identifique ser chamada a cobrar.

Não adiante achar que a OI vai colaborar, nem mesmo usar a linha direto no Asterisk ou qualquer outra central, eles permitem e dificultam tanto quanto possível.

Quando atendo a ligação a cobrar, escuto aquele anúncio característico (está em anexo), então pensei em de alguma forma identificar aquele som e assim saberia que a chamada é a cobrar. Mas como identifico aquele som?

Teria que ser algo que não paralisasse a chamada para analisar, de preferência, pq o mesmo demora mais de 15 segundos. Pensei em usar a função TONE_DETECT, mas isso já é muito avançado para mim e não achei muitos exemplos a respeito, a documentação também é muito superficial, pelo menos para o meu nível de conhecimento. Fiz alguns testes mas não consegui absolutamente nenhum resultado.

Alguém poderia me auxiliar? Pode ser usando essa função ou com outras ideias.

Estou usando Asterisk puro, versão 16.30.1, sob o Debian 10.7. PJSIP 2.12.1

Agradeço muito quem puder colaborar.

Saudações,

Vinicius


-------------- Próxima Parte ----------
Um anexo não-texto foi limpo...
Nome: Chamada a cobrar 1.wav
Tipo: application/octet-stream
Tamanho: 273044 bytes
Descrição: não disponível
URL: <http://asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20231207/9cf2010d/attachment-0001.obj>


Mais detalhes sobre a lista de discussão AsteriskBrasil