sábado, 7 de janeiro de 2012

Tutorial de Envio de SMS através do Celular utilizando o PHP

Ensinar, passo a passo, como configurar seu Telefone, e fazer um script PHP para enviar mensagens através do próprio telefone Celular.
Motivações para escrita desse tutorial
Em um projeto recente, precisei enviar uma enorme quantidade de SMS, através do próprio sistema, e procurei a melhor forma, entenda por mais barata, de enviar minhas próprias mensagens através do sistema.

Pré-requisitos:
  • conhecimento em PHP
  • conhecimento básico em windows
  • um telefone que seja reconhecido no windows como GSM Modem.
Analise do problema.
Existem hoje no mercado, diversos Gateways SMS para envio de mensagem, porem, obviamente todos são pagos. Dois que eu procurei foram:
Empresa Human
Site http://www.human.com.br
Vantagens
  • Fácil integração com seu sistema
  • Relatórios muito bem detalhados das mensagens enviadas
Desvantagens
  • Preço de R$ 0,20 a R$0,10 dependendo da volumetria do cliente
  • As mensagens que você envia são armazenadas em banco de dados próprios.

Empresa Bee Contact
Site http://www.beecontact.com.br/br/home/index.htm
Vantagens
  • Fácil integração com seu sistema
Desvantagens
  • Preço elevado(não sei ao certo)
  • As mensagens que você envia são armazenadas em banco de dados próprios.
Analisando os dois procurados, esbarrei nos seguintes problemas:
  • As mensagens são armazenadas em banco de dados próprios, pode não ser impeditivo para muitas pessoas, mas para meu projeto quanto mais sigilo melhor.
  • O preço é 'compativel' com o preço normal de uma mensagem enviada, dependendo do plano que você escolher com sua operadora
Update 1 Pessoal, hoje (17/05/2010) recebi um e-mail de uma empresa, que comercializa SMS a R$ 0,10 centavos. Indiscutivelmente o preço está ótimo. O nome dela é www.ndsms.com. Não testei seus serviços, mas só do fato de chegarem até a mim, e me encaminharem 1 e-mail, mostra que é pelo menos 1 empresa que 'corre atrás', então no mínimo vale o link. Quem me encaminhou o e-amail foi o Anderson (comercial@ndsms.com). Quem usar o sistema deles, e quiser me dar 1 retorno, fique a vontade.
A telefonia no Brasil:
É uma pena que a Anatel não faca nada para melhorar nossa vida, acontece que o envio de SMS no brasil é um dos mais caros do mundo, fora a burocracia para ter essa ferramenta. Por exemplo, nos gateways pesquisados, todos pediam um cadastro e motivo para que eles fossem encaminhados para a operadora, informando o porque estou utilizando essa funcionalidade
Plano escolhido:
Pessoal, a claro novamente saiu na frente .... sempre fui cliente deles, e agora fui em uma loja, e fechei 1 promoção ótima, que são 2.000 SMS pelo preço de R$ 109,00, ou seja um custo de R$ 0,05 centavos por mensagem (o que está super em conta pra mim agora). Se você já for cliente pode fazer esse plano, senão tem que fazer algum plano de conta para habilitar essa 'promoção'. Se
BENEFÍCIO CUSTO
2000 SMS R$ 109,00
Plano Básico R$ 49,90 (Se já for cliente, não precisa fazer essa assinatura)
Total R$ 158.90 mês para 2000 mensagens (R$ 0,05 por mensagem).

Para o projeto, fui em todas as operadoras: Vivo, Claro, Oi e TIM. Como não tenho plano corporativo, a que mais me atendeu foi a Vivo, pelos seguintes motivos: Peguei o plano conta 350, cujas vantagens são:
BENEFÍCIO CUSTO
100 SMS inclusos Incluso
300 SMS como 'beneficio' escolhido do plano Incluso
1000 SMS se enviados depois das 22:00 da noite, e até 7:00 da manha R$ 7.50 mês
Assinatura do plano R$ 155.00 mês
Total R$ 162.50 mês para 1400 mensagens (R$ 0,11 por mensagem)
Outro detalhe, peguei o aparelho que está sendo usado no tutorial por R$ 10, um nokia E51, excelente aparelho, que atendeu perfeitamente, porem se não tivesse pego esse telefone, eu ainda mandaria mensagens de vivo -> vivo por R$ 0,05 até o mês de julho.
Softwares necessários para a aplicação
A escolha do telefone
Resumidamente, o melhor telefone para essa aplicação, é qualquer um que seja reconhecido pelo Windows como Modem GSM, e que ele mesmo se recarregue pela USB (dessa forma você não precisará de deixar o telefone ligado na tomada). Os seguintes telefones foram testados, e funcionam perfeitamente para a solução:
Como saber se meu telefone é GSM Modem ?
Clique com o botão direito em Meu Computador > Propriedades > Aba Hardware > Gerenciador de Dispositivos
Se você ver uma imagem como essa abaixo, na parte de Modems, seu celular é reconhecido como Modem GSM
Como instalar meu telefone no windows
Existem vários tutoriais espalhados pela web, aqui trato apenas sobre a configuração no Nokia E51
Primeiro, instale o Nokia PC Suite no seu computador, ATENÇÃO: não plugue o telefone ainda, porque senão vai dar problema de reconhecimento dos drivers no Windows
Após a instalação você pode até desinstalar o Pc Suite (Eu até recomendo, porque ele é chato demais, softwares da HP e da Nokia acham que você tem o computador apenas para usar o softwares deles).
Meu telefone já veio com o Nokia PC Suite em um CD, só coloquei, rodei o autorun, e escolhi a opção de instalar o Nokia PC Suite, no meu caso o 6.84
Pronto, instalação concluída, após a instalar terminar, a tela 1 se abrirá, clique em avançar nas telas um e dois (isso se a tela dois aparecer com Conexão a cabo selecionada. Conecte seu telefoneAPENAS nesse momento, na tela 3, vai demorar um pouco, e aparecer a imagem 4, nela clique apenas em Concluir
1-  2-  3-  4- 
Conferindo se o telefone está instalado
Clique com o botão direito em Meu Computador > Propriedades > Aba Hardware > Gerenciador de Dispositivos
Se você ver uma imagem como essa abaixo, na parte de Modems, seu celular é reconhecido como Modem GSM
A imagem deve ser igual a de indentificação do telefone
Instalando o NowSMS para enviar as mensagens
Agora realmente começa o tutorial, é através desse programa, o NowSMS Gateway, que pode ser encontrado facilmente na internet é que iremos comunicar nossa aplicação com o PHP, para fins didáticos, separei a instalação na tabela abaixo, basta clicar na imagem para ampliá-la.
PASSOS PARA A INTALAÇÃO IMAGEM
1 - Clique duas vezes sobre o arquivo de instalação, escolha um diretório (que não interessa qual é) e vá avançando.
2 - Após instalado, ele abre a tela onde o NowSMS foi instalado, e clique no Now SMS Gateway
3 - A primeira coisa que temos que fazer é ir na aba SMSC e clicar em Add, para adicionarmos nosso telefone.
4 - Escolha a opção GSM Phone or Modem, e cique em OK
5 - Na caixa de seleção, escolha o seu modem, no meu caso Nokia GSM Phone Modem, caso você tenha informado um PIN para seu telefone, entre com ele na caixaModem PIN, no meu caso não configurei essa opção, e nem testei. Depois clique em Test and Add Modem, se der tudo certo, você verá a próxima imagem
6 - Essa é a mensagem de sucesso que deve aparecer para você.
7 - Depois clique na aba Service e em seguida Run as Service em SMS Gateway Service
8 - Essa é a mensagem que aparece se o Serviço for instalado com sucesso, e clique em Sim para instalar o serviço
9 - Volte na pasta onde instalou o NowSMS, e clique em Now SMS Web Interface, uma página na internet irá se abrir para você.
10 - Tela web que se abre, antes de seguir com o tutorial, vamos enviar uma mensagem de teste para ver se a configuração está correta.
11 - Preencha o Phone Number, com o seguinte formato : +55[Código de Área sem o 0][Telefone], exemplo: +553188888888 (enviar uma mensagem para Minas Gerais e telefone 8888-8888
12 - Se aparecer essa mensagem, é que a mensagem foi enviada com sucesso, e logo você deve receber a mensagem enviada no celular.
Enviando mensagens através do PHP
Instalado o NowSMS, enviar mensagens agora é muito simples, o processo consiste em, através do PHP, ou qualquer outra linguagem que você quiser, basta chamar uma requisição para seu server local, a função que envia a mensagem recebe os seguintes parâmetros
FUNÇÃO DE ENVIO DE SMS (SENDSMS)
$host Seu servidor, geralmente http://127.0.0.1, para saber qual é exatamente, abra a pasta onde está instalado o NowSMS, e clique em Now SMS Web Interfacee copie o IP, que está antes dos pois pontos (:)
$port É a porta, geralmente 8800, para saber qual é exatamente, abra a pasta onde está instalado o NowSMS, e clique em Now SMS Web Interfacee copie o IP, que está depois dos pois pontos (:)
$username Deixe em branco, caso não precise se autenticar na página
$password Deixe em branco, caso não precise se autenticar na página
$phoneNoRecip Telefone, no formato +55[DDD sem o 0][Telefone com 8 digitos], exemplo: +553188887777
$msgText Mensagem, até 160 caracteres, senão ele vai enviar várias mensagens, até chegar a mensagem completa
Exemplo de chamada da função:
 $x   = SendSMS("127.0.0.1", 8800, "", "", $_POST['txtTELEFONE'], $_POST['txtMENSAGEM']);   echo $x;  
Página de teste
Caso prefira, faça o download do arquivo: 

Ao clicar em Enviar SMS, a página dá reload, e deve exibir a mensagem de que foi enviado com sucesso o SMS

Nenhum comentário :

Postar um comentário

Total de visualizações de página