Olha quem está falando

Olha quem está falando

Senta que lá vem a história

Antes de começar a falar do Twilio, vou falar a minha motivação para usá-lo. Foi para um aplicativo de suporte por telefone, o Support Roulette. No final, acabamos não usando exatamente o Support Roulette, mas foi uma ótima base.

Devido à facilidade de implementar uma aplicação que pode responder uma chamada telefônica, gravar uma mensagem de voz, enviar e receber SMS, ou seja, uma aplicação que fala, me inspirei para escrever esse post e inclusive apresentar um Tech Talk (Vim talk rs) sobre o assunto.

Support Roulette

No trabalho, precisamos de um telefone de suporte 24x7 caso o site fique indisponível e para outras possíveis incidências urgentes.

Nossa proposta inicial foi nomear um desenvolvedor por semana como suporte.

O MVP foi comprar um celular baratinho (a bateria do danado é infinita, mas também, não tem nem o jogo da cobrinha e deixá-lo com o suporte da vez. A ideia do celular foi principalmente para o nosso atendimento poder ligar em um número fixo "Suporte Site", não precisando buscar quem é o desenvolvedor de plantão, pegar o número do celular e ligar.

Problemas com o celular baratinho

Todo mundo já tem um celular. Carregar um segundo é um tanto quanto incômodo. Fácil, fácil de esquecer.

Solução

Nossa solução foi usar algum serviço de "Communication as a Service" (CaaS).

Usando um serviço de CaaS, podemos registrar um número fixo no Brasil, que, ao receber uma chamada telefônica, a redireciona para o número do celular do desenvolvedor de plantão.

Voip

Os serviços convencionais de Voip que avaliamos, apesar de permitirem a criação de número fixo no Brasil e inclusive permitirem o redirecionamento de ligação, não permitem que alteremos o número de redirecionamento via API. Teríamos que acessar um painel de controle semanalmente para configurar o novo número de redirecionamento. Isso é inviável pois somos programadores, queremos agendar as escalas de suporte e ter um sistema que automaticamente avise o desenvolvedor de plantão e faça o redirecionamento.

Por que Twilio?

Outras opções

Existem outras opções de CaaS, porém nem todas disponibilizam número no Brasil ou possuem API simples e bem documentada. Das que eu avaliei, o Plivio pareceu o concorrente mais forte.

Apps que se comunicam

Concedendo poderes de comunicação (voz e SMS) para uma aplicação, podemos adicionar diversos recursos, como:

No site do Twilio tem "Customer Success Stories", com alguns casos de uso de empresas que utilizam o Twilio.

Pingdom caseiro com Monit + Twilio

O Monit é um sistema para gerenciamento e monitoramento de processo, programas etc.

Pingdom é um serviço para monitoramento de uptime, downtime e performance de websites.

Um caso de uso do Pingdom padrão é usá-lo somente para notificar se o site ficou indisponível. De uma forma caseira é possível fazer isso com o Monit + Twilio.

Monit script

# /etc/monitrc

check host rexnuke with address 127.0.0.1
  if failed port 8080
   with timeout 15 seconds
   then "ruby notify-site-is-down.rb"

Ruby script

# /usr/bin/notify-site-is-down.rb
require "rubygems"
require "twilio-ruby"

account_sid = "ACxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
auth_token = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"

@client = Twilio::REST::Client.new account_sid, auth_token

@client.account.sms.messages.create(
  from: "+5511…",
  to: "+5511…",
  body: "Houston we have a problem, the website is down."
)

Custos

No caso do Support Roulette há dois custos: um de voz, quando o Twilio recebe uma ligação e redireciona para o desenvolvedor de plantão e outro de SMS, para notificá-lo que ele é o plantonista da vez.

Voz

O custo para redirecionamento de voz é de duas pernas, é cobrado para receber e também para fazer (redirecionar) a ligação.

Para receber uma ligação: USD 1¢/minuto

Para fazer uma ligação: USD 33¢/minuto

SMS

SMS messaging from an American Twilio phone number to Brazil starts at 1.2¢ however this price will vary depending on the carrier you are sending SMS messages to. Elaine Tsai, Twilio Support

Número fixo no Brasil ainda não envia SMS. Para enviar um SMS Tupiniquim é necessário ter um número americano. O principal inconveniente em usar um número americano para enviar SMS é no caso de resposta, ter que responder para um número americano.

Para enviar um SMS: a partir de USD 1.2¢/mensagem

Número fixo

Número fixo brasileiro: USD 3$/mês

Número fixo americano: USD 1$/mês

Começando com o Twilio

Os passos iniciais do Twilio são: TwiMLTM: the Twilio Markup Language e Twilio REST Web Service Interface.

Exemplo de TwiMLTM:

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Say voice="woman">Please leave a message after the tone.</Say>
</Response>

Recomendo também uma olhada no Support Roulete, pois ele é uma aplicação Sinatra super simples, que usa a gem twilio-ruby e builders para gerar TwiMLTM, podendo ser hospedada gratuitamente no Heroku.

Twimlets

Twimlets são aplicações prontas que implementam funcionalidades básicas, como redirecionamento de ligação, caixa postal etc.

Se você quiser hoje mesmo ter um número fixo em São Paulo que redirecione para um celular do Acre, basta criar uma conta no Twilio, configurar um twimlet de redirecionemto e, em menos de 10 minutos, estará tudo funcionado.