このエントリーをはてなブックマークに追加

サーバに何か起こったときに、自動で電話をかけて欲しい時があると思います。Twilioを使うとZabbixから電話をかける機能を手軽に実装できました。ちなみに利用料金はこちら

1. Twillioのアカウントを開けてサンプルコードを取得する。

Twilioは日本ではKDDIが提供しているようです。ログイン後に、[ツール]→[API Explorer]のページで’電話に発信する’という項目があるので、’リクエストとサンプルコードを見る’をクリック。そこで、curl,Ruby,PHP,Python,Node.js,Java,C#のコードが取得できます。

2. ZABBIXのアクションに登録する。

[設定]→[アクション]もしくは[管理]→[スクリプト]で取得したコードを登録して、コールがくるかテストします。

3. Twilioにしゃべらす

調べてみるとTwilio Labというのがあって、その中のTwimletsは機械音声を扱えるAPIを提供しています。日本語もいけます。例えば

<Response><Say voice="alice" language="ja-JP">やばい。サーバおちてる</Say></Response>

これをTwimlets Echoでデコードすると

http://twimlets.com/echo?Twiml=%3CResponse%3E%0A%20%20%20%20%3CSay%20voice%3D%22alice%22%20language%3D%22ja-JP%22%3E%E3%82%84%E3%81%B0%E3%81%84%E3%80%82%E3%82%B5%E3%83%BC%E3%83%90%E3%81%8A%E3%81%A1%E3%81%A6%E3%82%8B%3C%2FSay%3E%0A%3C%2FResponse%3E&

なので、

curl -X POST 'https://jp.twilio.com/2010-04-01/Accounts/[your account]/Calls.json' \
--data-urlencode 'To=[your phone number]'  \ #+81の形式。はじめの0はとる
--data-urlencode 'From=[your phone number]'  \
-d 'Url=http://twimlets.com/echo?Twiml=%3CResponse%3E%0A%20%20%20%20%3CSay%20voice%3D%22alice%22%20language%3D%22ja-JP%22%3E%E3%82%84%E3%81%B0%E3%81%84%E3%80%82%E3%82%B5%E3%83%BC%E3%83%90%E3%81%8A%E3%81%A1%E3%81%A6%E3%82%8B%3C%2FSay%3E%0A%3C%2FResponse%3E&'  \
-d 'Method=GET'  \
-d 'FallbackMethod=GET'  \
-d 'StatusCallbackMethod=GET'  \
-d 'Record=false' \
-u [your Auth Token]

これを実行すると「やばい。サーバおちてる」と電話がかかってきます。なかなかおもしろい。

– APIドキュメント等
https://www.twilio.com/labs/twimlets/echo
https://www.twilio.com/docs/api/twiml

関連記事

  1. ネットワークにつながらない時に確認する4つの手順Linux
  2. SSL証明書の作り方(3ステップ Rapid SSL編)
  3. ZABBIXからTwilioを使って電話をかける
  4. DELL製のL2スイッチとL3スイッチ