Um dos objectivos do Kannel é funcionar como gateway de SMS para redes GSM, podendo assim receber e enviar SMS. Está será a funcionalidade por nós implementada e aqui explicada.
O seguinte diagrama pretende definir a arquitectura do Kannel:
Figura 1: Arquitectura.
Esta arquitectura consiste no seguinte: o telemóvel envia uma SMS para o número da placa GSM do Kannel (no nosso caso, por exemplo a pedir uma factura relativa a uma compra num café). O Kannel processa a mensagem de texto e reencaminha para o servidor o conteúdo pretendido. O SMSC envia a resposta com o conteúdo que o Kannel.
Nesta pequeno tutorial que a seguir apresentamos foi usada uma pen TMN ZTE MF190J.
1. Instalar o Kannel.
O primeiro passo, obviamente, pela instalação com o seguinte comando:
sudo apt-get install Kannel
2. Configuração da smsbox.
Alterar o ficheiro que está em /etc/default/Kannel para descomentar a parte do ficheiro que irá permitir a troca de SMS.
START_WAPBOX = 13. Construção do ficheiro de configuração
Neste passo começamos a interagir com o ficheiro /etc/Kannel/Kannel.conf que será o maior responsável pela troca de SMS.
O primeiro grupo a ser inserido no ficheiro de configuração será o “core” que será o grupo onde será configurado o beararbox.
group = core
Para procedermos à configuração do centro de SMS do Kannel teremos de construir um grupo chamado “smsc”. Este grupo deve incluir todos os dados necessários para proceder à ligação ao centro de SMS.
Neste grupo irão aparecer alguns dados relativos à placa, tais como: o número do cartão desta, o número do centro de mensagens do respectivo operador (TMN +351962100000, Vodafone +351911616161 e Optimus +35193121314) e a porto usb do PC onde a placa se encontra conectada.
group = smsc
Para verificar o porto de ligação da placa poderemos instalar o wvdial e correr o ficheiro de configuração wvdialconf.
sudo apt-get install wvdial
Figura 2: Exemplo da execução do wvdial.
Após especificar onde a placa se encontrava conectada, precedemos à elaboração do grupo “modems” que terá toda a configuração necessária para o correcto funcionamento desta.
Para o envio de uma sms teremos de definir o “SMSBox”. Este grupo terá todas as informações necessárias sobre a omposição do link que irá permitir o envio da SMS.
group = smsbox
Deveremos definir um ou mais utilizadores para que seja activo o push SMS através da interface HTTP. O grupo responsável pela criação desta denomina-se “sendsms-user”
Assim, após a criação destes dois grupos, já estaremos em condições de processar o envio de mensagens do nosso servidor Kannel para o número à nossa escolha (correndo o servidor e o cliente). Mediante as configurações que anteriormente temos, podemos concluir que o link responsável por este envio é:
http://localhost:15013/cgi-bin/sendsms?u
Por último, a única coisa que nos falta para o nosso serviço de SMS funcionar como queremos é a criação de um grupo “sms-service”. Este grupo estará responsável pela recepção das SMS por nós desejadas.
group = sms-serviceO funcionamento deste serviço é muito simples. De destacar a tag “keyword” que detecta o conteúdo da mensagem, verifica se é igual, e se o for executa o restante grupo (poderíamos ter uma tag “text” com o conteúdo que queríamos responder à pessoa, por exemplo). Quanto à tag “get-url”, será automaticamente preenchida aquando da recepção duma SMS, o que fará disparar o web-service por nós criado para leitura destes parâmetros.
4. Execução dos serviços
Após finalizada a configuração do ficheiro Kannel, podemos proceder à execução do servidor e do cliente para, finalmente, testarmos o nosso serviço.
Para a execução do servidor executamos o seguinte comando (aquando do arranque do sistema operativo, o Kannel arranca automaticamente um processo, sendo assim importante pará-lo primeiro):
sudo /etc/init.d/kannel stopApós este, somente nos falta executar o cliente Kannel:
sudo ./smsbox –v 1 /etc/Kannel/Kannel.confPara exemplificar o q antes explicamos, seguem-se as seguintes imagens:
Figura 3: Execução do servidor.
Figura 4: Execução do cliente.
Figura 5: Exemplo de envio de SMS.
Figura 6: Exemplo de recepção de SMS.
Problemas durante a criação do serviço:
- Durante a execução do trabalho, tivemos de trocar de placa GSM porque a placa anteriormente usada tava com alguns problemas na recepção de SMS. À partida seria a falta de alguns comandos AT.
- Problemas com a criação init-string e detect-string do grupo modems. Estes problemas podem ser resolvidos correndo o servidor com a opção 0 (modo debug) e assim, aquando da leitura das destas variáveis do ficheiro Kannel, irá dar um erro e informar do que era suposto aparecer.
- Problemas na execução de algumas funcionalidades do Kannel, que nos prenderam durante algum tempo.
Aqui segue o ficheiro de configuração: kannel.conf