As formas de se fazer o bloqueio de chamadas a cobrar são completamente diferentes nas sinalizações ISDN e MFCR2. Isso ocorre pelo fato que cada sinalização indica tal tipo de chamadas de uma forma. Em sinalização MFCR2, o bloqueio pode ser realizado pela categoria da chamada ou ainda, utilizando a variante BR da sinalização, pelo duplo atendimento. Já em sinalização ISDN o parâmetro utilizado dentro da mensagem é o IE 74 (Information Element 74). No entanto, quando se utiliza ISDN, nem sempre a operadora tem suporte ao fornecimento de sinalização indicativa de chamada a cobrar.
Neste artigo vamos estudar as formas de prover o bloqueio deste tipo de chamada a partir de gateways SIP E1, AG800 e nas placas AP400 da Aligera.
Em MFCR2 pela categoria da chamada no arquivo /etc/asterisk/chan_dahdi.conf:
Você deve incluir o parâmetro mfcr2_allow_collect_calls=no antes da linha que começa com channel, se houver mais de uma linha channel, verifique a que corresponde ao link em que você quer realizar o bloqueio.
Nos gateways SIP/E1 o parâmetro correspondente é o Allow collect calls e deve ser definido como No.
Em MFCR2 pelo duplo atendimento no arquivo /etc/asterisk/chan_dahdi.conf:
Em uma chamada a cobrar, se for gerada para o link a combinação de tons answer->clear back->answer a chamada é desconectada, isso é o que se chama de duplo atendimento. Para realizar o bloqueio desta forma, inclua o parâmetro mfcr2_double_answer=yes antes da linha que começa com channel, se houver mais de uma linha channel, verifique a que corresponde ao link em que você quer realizar o bloqueio.
Nos gateways SIP/E1 o parâmetro correspondente é o Double answer e deve ser definido como Yes.
ATENÇÃO: Só recomendamos a utilização deste tipo de bloqueio se as outras formas não surtirem efeito, tendo em vista que o funcionamento deste depende de temporizadores que não serão abordados aqui.
Em MFCR2 pela categoria da chamada no dialplan (/etc/asterisk/extensions.conf):
Você deve alterar o contexto de entrada das chamadas do E1 da seguinte forma:
[from-e1] exten => _X.,1,GotoIf($["${MFCR2_CATEGORY}" == "Collect Call"]?reject:accept) exten => _X.,n(accept),Dial(SIP/${EXTEN}@User1) exten => _X.,n(reject),Hangup
Nos gateways E1 o procedimento é o mesmo, você deve localizar o contexto de entrada das chamadas (from-e1, from-e1-1, from-e1-2) e alterar o mesmo conforme o exemplo acima. Não esqueça de salvar as configurações na memória flash:
cp /etc/asterisk/extensions.conf /mnt/config/asterisk/
Em ISDN no dialplan (/etc/asterisk/extensions.conf):
Quando se utiliza sinalização ISDN a única forma de se realizar o bloqueio da chamada é através do Information Element Reverse Charge. No Asterisk o valor deste parâmetro é recuperado através da variável CHANNEL(reversecharge). Para efetuar o bloqueio, localize o contexto de entrada das chamadas do E1 e configure-o da seguinte forma:
[from-e1] exten => _X.,1,GotoIf($["${CHANNEL(reversecharge)}" = "-1"]?accept:reject) exten => _X.,n(accept),Dial(SIP/${EXTEN}@User1) exten => _X.,n(reject),Hangup()
Nos gateways E1 o procedimento é o mesmo, você deve localizar o contexto de entrada das chamadas (from-e1, from-e1-1, from-e1-2) e alterar o mesmo conforme o exemplo acima. Não esqueça de salvar as configurações na memória flash:
cp /etc/asterisk/extensions.conf /mnt/config/asterisk/
Caso não funcione, habilite o debug
pri set debug on span 1
e verifique se aparece o seguinte:
IE 74: Reverse Charging Indication
Se não aparecer, a operadora não está enviando a informação de que a chamada é a cobrar. Fato que pode ocorrer em MFCR2 também, onde a operadora eventualmente não envia a categoria da chamada corretamente ou os temporizadores configurados no link da mesma inviabilizam a utilização do duplo atendimento. Nestes caso, não há o que fazer no Asterisk.