Como ajustar prefixos de números de SMS

Neste guia, damos exemplos de regras de roteamento que mostram como você pode ajustar prefixos de números de telefone com regras de roteamento. Se os números de telefone vêm em vários formatos dos usuários, precisamos criar regras que ajustem cada formato para garantir que os números sejam enviados corretamente ao provedor de serviços de SMS.

Introdução

Em nosso exemplo, o provedor de serviços de SMS aceitará um número de telefone no seguinte formato:

+97466781661

Os usuários do sistema usarão outros formatos para enviar a mensagem. Por exemplo:

66781661 -> +97466781661
0097466781661 -> +97466781661
97466781661 -> +97466781661
+97466781661 -> +97466781661

Queremos garantir que todos os formatos acima sejam aceitos pelo nosso provedor de serviços de SMS. Para isso, criaremos 5 regras de roteamento:

Rota 1: Adicionar o prefixo "+974" a números de telefone com 8 dígitos
Rota 2: Alterar números de telefone que começam com "00974" para começar com "+974"
Rota 3: Alterar números de telefone que começam com "974" para começar com "+974"
Rota 4: Manter números de telefone que começam com "+974" e enviar o SMS para a rede móvel
Rota 5: Qualquer outro formato deve ser enviado para a lixeira

Rota 1 / Passo 1: Criar a rota

O primeiro exemplo adicionará um prefixo ao número de telefone se o número tiver exatamente 8 dígitos.

Mudar isto: 66781661
Para isto: +97466781661

Você precisa criar uma rota dedicada para fazer essa modificação. Esta rota precisa corresponder aos números de telefone com 8 dígitos e modificá-los para ter o prefixo +974.

Você pode começar clicando no ícone "Rotas" na barra de ferramentas. Depois, especifique a conexão "De" como "Any_SMS_User" e a conexão "Para" como "SMPP_Client_1". Deixe o modo como "Mover".

Figura 1 - Criar a rota

Rota 1 / Passo 2: Criar uma condição de correspondência

Para fazer esta rota corresponder a números de telefone com exatamente 8 dígitos, você precisa adicionar uma "Condição de correspondência". A "Condição de correspondência" verificará o "Endereço Para" e, se o número de telefone tiver exatamente 8 dígitos, a rota entrará em efeito.

Condição de correspondência:

/^\d{8}$/

Esta condição pode ser explicada assim:
iniciar a correspondência: ^
8 dígitos: \d{8}
finalizar a correspondência: $

Figura 2 - Condição de correspondência

Rota 1 / Passo 3: Criar um modificador

Após o SMS corresponder a este padrão, a regra de modificação entrará em efeito:

/^(\d{8})$/+974$1/

Esta condição pode ser explicada assim:
mudar isto: ^(\d{8})$
para isto: +974$1

Observe que a seção "para isto" contém $1. Isso significa que o primeiro grupo deve ser colocado ali. O primeiro grupo é "(\d{8})". Um grupo é marcado por ( ).

Figura 3 - Modificador

Rota 1 / Passo 4: Testar a rota

Para testar o sistema, basta enviar um SMS para um número de telefone com 8 dígitos. Observe que, após enviar a mensagem, quando você verificar a pasta de itens enviados, verá que o número de telefone "Para" foi alterado para o formato apropriado. Você enviou o SMS para "66781661", mas o SMS foi realmente enviado para "+97466781661".

Enviar mensagem para 66781661
Figura 4 - Enviar mensagem para 66781661

Mensagem enviada para +97466781661
Figura 5 - Mensagem enviada para +97466781661

As propriedades da rota são:

Nome da rota: Rota 1
De: Any_SMS_User@localhost
Para: SMPP_client_1@localhost
Modo: Mover
Corresponder ao endereço Para: /^\d{8}$/
Modificar endereço Para: /^(\d{8})$/+974$1/

A tabela acima contém as configurações que você precisa aplicar.


Rota 2. - Prefixo 00971 para um prefixo +971

A segunda rota irá alterar o prefixo 00 para um sinal de +. Nas redes móveis, os números de telefone internacionais começam com um sinal de +, enquanto nos sistemas telefônicos clássicos eles começam com 00.

Mude isto: 0097466781661
Para isto: +97466781661
Condição de correspondência:
/^00974.*$/

A condição acima pode ser decomposta da seguinte forma:
iniciar a correspondência: ^
os dígitos seguintes são: 00974
qualquer coisa pode vir depois disso: .*
terminar a correspondência: $

Modificador:
/^00974(.*)$/+974$1/

O modificador acima pode ser decomposto da seguinte forma:
mude isto: ^00974(.*)$
para isto: +974$1

As propriedades da rota são:

Nome da rota: Rota 2
De: Any_SMS_User@localhost
Para: SMPP_client_1@localhost
Modo: Mover
Corresponder endereço Para: /^00974.*$/
Modificar endereço Para: /^00974(.*)$/+974$1/

A tabela acima contém as configurações que você precisa aplicar


Rota 3. - Prefixo 971 para um prefixo +971

Esta rota irá adicionar o sinal de + ao número de telefone. Nas redes móveis, os números de telefone internacionais começam com um sinal de +, caso contrário, o número será tratado como um número local.

Mude isto: 97466781661
Para isto: +97466781661
Condição de correspondência:
/^974.*$/

A condição acima pode ser decomposta da seguinte forma:
iniciar a correspondência: ^
os dígitos seguintes são: 974
qualquer coisa pode vir depois disso: .*
terminar a correspondência: $

Modificador:
/^974(.*)$/+974$1/

O modificador acima pode ser decomposto da seguinte forma:
mude isto: ^974(.*)$
para isto: +974$1

As propriedades da rota são:

Nome da rota: Rota 3
De: Any_SMS_User@localhost
Para: SMPP_client_1@localhost
Modo: Mover
Corresponder endereço Para: /^974.*$/
Modificar endereço Para: /^974(.*)$/+974$1/

A tabela acima contém as configurações que você precisa aplicar


Rota 4. - Prefixo +971 para um prefixo +971 (deixar passar números formatados corretamente)

A quarta rota simplesmente corresponderá ao número de telefone formatado corretamente e permitirá que a SMS passe sem modificação.

Corresponder a isto: 97466781661
Condição de correspondência:
/^[+]974.*$/

A condição acima pode ser decomposta da seguinte forma:
iniciar a correspondência: ^
o dígito seguinte é: +
os dígitos seguintes são: 974
qualquer coisa pode vir depois disso: .*
terminar a correspondência: $

Observe que o sinal de + foi colocado entre colchetes: [+]. Isso porque o sinal de + é um caractere especial na sintaxe de expressões regulares.

Modificador:
Deixar vazio

Se o número de telefone estiver formatado corretamente, nenhuma modificação é necessária

As propriedades da rota são:

Nome da rota: Rota 4
De: Any_SMS_User@localhost
Para: SMPP_client_1@localhost
Modo: Mover
Corresponder endereço Para: /^[+]974.*$/
Modificar endereço Para:

A tabela acima contém as configurações que você precisa aplicar


Rota 5. - Mover qualquer outra coisa para a lixeira

Nossa rota final irá mover quaisquer números de telefone que não correspondam a nenhuma das condições de roteamento acima para a lixeira.

Corresponder: Qualquer coisa
Sem alteração
Roteamento para: Lixeira

Nome da rota: Rota 5
De: Any_SMS_User@localhost
Para: SMPP_client_1@localhost
Modo: Descartar
Corresponder endereço Para:
Modificar endereço Para:

A tabela acima contém as configurações que você precisa aplicar

A tabela de roteamento final

Sua tabela de roteamento final ficará assim:

Nome da rota De Corresponder Modificar Modo Para
Rota 1 Any_SMS_User@localhost /^\d{8}$/ /^(\d{8})$/+974$1/ Mover SMPP_client_1@localhost
Rota 2 Any_SMS_User@localhost /^00974.*$/ /^00974(.*)$/+974$1/ Mover SMPP_client_1@localhost
Rota 3 Any_SMS_User@localhost /^974.*$/ /^974(.*)$/+974$1/ Mover SMPP_client_1@localhost
Rota 4 Any_SMS_User@localhost /^[+]974.*$/ Mover SMPP_client_1@localhost
Rota 5 Any_SMS_User@localhost Descartar

More information