OBS.: Procedimento válido a partir da versão de firmware 5.40


Por padrão as rotas do gateway são previamente configuradas para encaminhar as chamadas oriundas da conta SIP para a interface TDM e vice-versa. Porém, em muitos casos é necessário fazer manipulações nos números enviados ou recebidos.


O primeiro passo é identificarmos as regras atuais no equipamento e avaliar os parâmetros para entendermos o que cada um faz. Para isso acesse o gateway via ssh.


Execute o comando que segue:

config dialplan show


Com isso será exibido o dialplan atualmente configurado no gateway. Será mostrado como abaixo:

config dialplan rule tdm_group1_default source_peer tdm group1
config dialplan rule tdm_group1_default destination_peer sip trunk1
config dialplan rule tdm_group1_default called_pattern X.
config dialplan rule tdm_group1_default callerid_pattern
config dialplan rule tdm_group1_default outgoing_called {}
config dialplan rule tdm_group1_default outgoing_callerid {}
config dialplan rule tdm_group1_default answer_timeout 90
config dialplan rule sip_trunk1_default source_peer sip trunk1
config dialplan rule sip_trunk1_default destination_peer tdm group1
config dialplan rule sip_trunk1_default called_pattern X.
config dialplan rule sip_trunk1_default callerid_pattern
config dialplan rule sip_trunk1_default outgoing_called {}
config dialplan rule sip_trunk1_default outgoing_callerid {}
config dialplan rule sip_trunk1_default answer_timeout 90


Os parâmetros exibidos têm a seguinte sintaxe:

config dialplan rule <nome_da_regra> <parâmetro> <valor> <...>


Sabendo isso, podemos separar as duas regras apresentadas e analisa-las.

Essa primeira regra, denominada tdm_group1_default é a regra que trata as chamadas recebidas pela conta SIP e que serão encaminhadas para o E1:

config dialplan rule tdm_group1_default source_peer tdm group1
config dialplan rule tdm_group1_default destination_peer sip trunk1
config dialplan rule tdm_group1_default called_pattern X.
config dialplan rule tdm_group1_default callerid_pattern
config dialplan rule tdm_group1_default outgoing_called {}
config dialplan rule tdm_group1_default outgoing_callerid {}
config dialplan rule tdm_group1_default answer_timeout 90


Agora vamos analisar cada um dos parâmetros da regra:


O parâmetro source_peer especifica o canal de origem da chamada, ou seja, nesta regra serão tratadas somente as chamadas entrantes através deste canal. No caso a regra especifica que o canal de origem deve ser do tipo tdm e o grupo deve ser o group1:

config dialplan rule tdm_group1_default source_peer tdm group1

Para interfaces TDM as regras são separadas por grupos. No caso do AG561 há somente o grupo group1, para equipamentos de maior porte, poderão existir mais grupos e os mesmos poderão ser customizados. Para o tipo de canal SIP deverão ser utilizados os nomes das contas.


O parâmetro destination_peer especifica o canal de destino, ou seja, para qual canal a chamada será encaminhada.

config dialplan rule tdm_group1_default destination_peer sip trunk1


O parâmetro called_pattern especifica o padrão esperado para o número que entra pela interface de origem:

config dialplan rule tdm_group1_default called_pattern X.

No exemplo acima, o valor "X." indica que a regra trata quaisquer números, pois o "X" indica qualquer dígitos de 0 a 9, e o "." indica quaisquer dígitos em qualquer quantidade.


O parâmetro callerid_pattern representa o padrão esperado para o número de "A", ou seja, o callerid:

config dialplan rule tdm_group1_default callerid_pattern

Deixe vázio para não filtrar a chamada por callerid.


Os parâmetros callerd_pattern e callerid_pattern utilizam o padrão de dígitos que segue:

XDígito de 0 a 9
ZDígito de 1 a 9
NDígito de 2 a 9
[1237-9]
Qualquer dígito entre os colchetes. No exemplo serão aceitos 1, 2, 3, 7 até 9
.Qualquer dígito, um ou mais caracteres



O parâmetro outgoing_called representa o número de saída. No exemplo abaixo, as duas chaves sem quaisquer outros dígitos junto a elas ou entre elas, indicam que será enviado para a saída o mesmo número recebido na entrada:

config dialplan rule tdm_group1_default outgoing_called {}



O parâmetro outgoing_callerid representa o número de identificação para a saída. No exemplo abaixo, as duas chavess sem quaisquer outros dígitos junto a elas, indicam  que será enviado como identificação para frente o mesmo número de identificação recebido:

config dialplan rule tdm_group1_default outgoing_callerid {}


Seguem alguns exemplos de preenchimentos dos parâmetros outgoing_callerid e outgoing_called:

{}
Encaminha todos os dígitos recebidos (padrão)
{:2:4}
Após o segundo dígito, encaminha 4 dígitos. Exemplo: de 123456 encaminha 3456
{:-4}
Encaminha os últimos 4 dígitos
{:2}
Remove os 2 primeiros dígitos
012{}
Adiciona o prefixo 012 ao número original
{}0100
Adiciona o sufixo 0100 ao número original


O parâmetro timeout indica o tempo pelo qual a regra aguardará o atendimento antes de desligar por timeout. O valor é expresso em segundos:

config dialplan rule tdm_group1_default answer_timeout 90



A regra original encaminha todos os dígitos recebidos para a frente. Mantendo-se essa regra, podem ser criadas regras mais específicas que se sobreponham a ela. Por exemplo, supondo que queiramos adicionar o CSP (código de seleção de prestadora) 21 aos números discados iniciados por 0 (zero).


O primeiro passo será criar uma regra:

config dialplan rule sip_trunk1_inserir_csp


Com o comando acima criamos a regra denominada sip_trunk1_inserir_csp.

Execute o comando abaixo visualizar os parâmetros da regra:

config dialplan rule sip_trunk1_inserir_csp show


A regra é criada, por padrão, com alguns parâmetros já preenchidos:

config dialplan rule sip_trunk1_inserir_csp source_peer tdm group1
config dialplan rule sip_trunk1_inserir_csp called_pattern X.
config dialplan rule sip_trunk1_inserir_csp callerid_pattern
config dialplan rule sip_trunk1_inserir_csp outgoing_called {}
config dialplan rule sip_trunk1_inserir_csp outgoing_callerid {}
config dialplan rule sip_trunk1_inserir_csp answer_timeout 90


Para editar os parâmetros conforme a sua necessidade, copie cada um dos comandos, altere o parâmetro desejado, cole-o na console e pressione a tecla ENTER.


Agora, vamos analisar cada um dos comandos, fazendo as alterações necessárias para o que foi proposto.


O canal de destino no nosso caso será a conta SIP trunk1:

config dialplan rule sip_trunk1_inserir_csp source_peer sip trunk1


No called_pattern que vamos definir o padrão do número esperado, neste exemplo, esperamos todo número que inicie com 0 (zero), seguido de qualquer dígito em qualquer quantidade:

config dialplan rule sip_trunk1_inserir_csp called_pattern 0.


No parâmetro outgoing_called vamos fazer a conversão do número para o destino:

config dialplan rule sip_trunk1_inserir_csp outgoing_called 021{:1}


No exemplo acima, supondo que o número discado foi 05135000100, ao passar o valor {:1} estamos informando ao gateway para remover o primeiro dígito, ou seja, o número será 5135000100. Concomitantemente a isso, estamos adicionando o prefixo 021 ao número, de forma que o número final será 0215135000100.


Agora vamos ver o resultado final da nossa regra:

config dialplan rule sip_trunk1_inserir_csp source_peer sip trunk1
config dialplan rule sip_trunk1_inserir_csp called_pattern 0X.
config dialplan rule sip_trunk1_inserir_csp callerid_pattern
config dialplan rule sip_trunk1_inserir_csp outgoing_called 021{:1}
config dialplan rule sip_trunk1_inserir_csp outgoing_callerid {}
config dialplan rule sip_trunk1_inserir_csp answer_timeout 90


Resumidamente, nessa regra, estamos dizendo que, sempre que o número discado iniciar com zero, deverá ser suprimido o primeiro dígito e incluído o prefixo 021.


Após criar ou editar as regras de discagem é necessário salvar e aplicar as configurações ao sistema. Para isso, execute os seguintes comandos:

config save
config apply