はじめに
こんばんは。
エンジニアの卵のなりかけです。
障害が発生したらLINE Notify経由で通知する仕組みを昔作ったんですが、夜間だと気づかないことも多いので電話で通知するシステムを作ることにしました。
今回はそのためにVonageを使ってみようとしたお話です。
結論(12/24追記)
個人だと利用不可能。
電話をかけるには電話番号の取得が必須ですが、日本の番号を取得する場合は
「犯罪による収益の移転防止に関する法律」に定義される電話転送サービスに該当する機能を含むため、同法に基づく本人特定事項の確認が必要
になるそうです。
これだけなら「個人でも本人確認をすればいける」と思っちゃいますが、ここで言う本人は「法人または個人事業主」を指しています(登記事項証明書または開業届出書などの提出が必要になります)。
そのため1個人での番号取得は難しそうです。
Twilioとの比較
Good
電話で話して欲しい言葉を直接プログラム内に記述できます。
import const
import vonage
client = vonage.Client(
application_id=const.VONAGE_APPLICATION_ID,
private_key=const.VONAGE_APPLICATION_PRIVATE_KEY_PATH,
)
voice = vonage.Voice(client)
response = voice.create_call({
'to': [{'type': 'phone', 'number': const.TO_NUMBER}],
'from': {'type': 'phone', 'number': const.VONAGE_NUMBER},
'ncco': [
{
"action": "talk",
# 話して欲しい言葉
"text": "これは通話用のサンプルテキストです。",
"language": "ja-JP",
"style": 3
}
]
})
なおどんな感じで話すのかはconsoleのVoice Playgroundから実際に自分の番号にかけて確認することもできます。
Voice Playgroundスクショ
![スクリーンショット 2021-12-24 0.31.44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304608/b75add95-8d54-af10-8142-4aee8f82dd47.png)TwilioだとTwiMLを作成してそれをhttp/httpsでアクセスできるようにする必要があるので、面倒が減って非常に良いです。
More
TwilioだとUS番号を無料かつ手続きなしで取得できますが、VonageではUS番号も有償(といっても€1以下)かつUSでの登記情報の提出が必要になります。
提出画面スクショ
![スクリーンショット 2021-12-24 0.04.15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304608/57f18342-d2c5-419f-7cd5-969d6a0ff88a.png) ![スクリーンショット 2021-12-24 0.05.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/304608/ebf12f6c-8801-aa4c-9f92-a6c1fd234dc6.png)感想
以下はこの結論に辿り着くまでに辿った道のりです。
残念ながら個人で使うことは難しそうですが、誰かのお役に立てれば幸いです。
Vonageの利用準備
アカウント作成
Vonageサイト:
最近Ericssonに買収された関係かAPI名が変わっていたりログイン窓口が複数あったりしますが、今回は電話(通話)システムを作りたいのでコミュニケーションAPI(旧Nexmo)の欄からアカウントを作成します。
クレカ不要なの嬉しいですね。
ここで入力したメールアドレスに確認メールが飛ぶので、クリックして有効化します。
その後は自分の携帯番号(E.164形式)を入力し、そのこへの電話口で話させたい言語と声を選んで、メッセージ内容を入力します。
なお日本語の場合はMizuki(さん?)の声しか選べなかったです。
Call meを押すと「不明」から電話がかかってくるのでちょっとビビりました...。
なお、この通話代金は初回に付与されるクレジット(€2)から引かれます。
自分の場合はたしか「これはテストコールです」って文言で電話かけて、7秒間の通話になりました。
料金を確認する
料金は従量課金なのは間違い無いですが、金額については情報がいくつかあって把握しきれていないです。
サイトのPricingを見るとこんな感じになっています。
一方でログイン後のダッシュボードから料金を見ると
こんな感じでリストされています。
現在(12/23)のレートだと€1 = 129円程度なので、一番高そうな携帯電話への発信でも1分あたり18円程で済みそうですね。
自分が詰まった点
ログイン後のメニューにBillingがあるのでこちらで確認できるかと思ったんですが、発生した利用料について確認できず...
(€20はアドベントカレンダー投稿用にいただいたやつです。感謝)
いろいろいじった結果、Analyticsから見れることがわかりました。
ただ12/15と12/22でコール数が違うのに料金が同じになっているので、ちょっとよく理解できていないです。
まぁ安いのでよしとします。
電話番号を買う
リクエストする
これで開発できるぞ、と思ったら電話番号の購入が必要らしいです。
購入はこちらから行います。
画面に出ていますが、日本の番号はリクエストフォームを介して要望しないと購入できないとのことなのでリクエストを出します。
フォームを提出してから平均2日で返信をくれるそうです。
自分は20:00ごろリクエスト出して、翌々日にメールをもらいました。
この辺からちょっと嫌な感じがします(zipファイル...?なぜ...?)。
必要書類を準備する
ひとまず先程のzipファイルを解凍したところ、なんかたくさん書類が入っています。
どうやら「犯罪による収益の移転防止に関する法律」に定義される電話転送サービスに該当する機能を含むため、本人確認などが必要になっているようです。
また申し込み可能なのは法人または個人事業主のみでした。
自分はたまたま個人事業主届けを届けていたので、そちらで申請するかちょっと検討します。
その際はまた別の記事として書きますね。
それでは。
おまけ
電話番号を購入する際には
「特徴(Feature)」と「タイプ」を選択する必要があります。
SMSはShort Message Service、Voiceは音声通話、MMSはMultimedia Messaging Serviceと呼ばれるキャリアメールのことだそうです。
MMS初めて知りました...。
参考:SMSとMMS、iMessageはなにが違う? 各サービスの特徴や文字数、料金を解説
またタイプにはMobile、Landline、Toll-free、Unknownの4種類がありますが、
日本で利用可能なのはLandlineとToll-free(通話料無料)の2つのみです。
通話料無料は購入した番号に対して「電話をかけてきた人に通話料がかからない」という意味みたいなので、今回はLandlineの申し込みを検討しています。
通話料無料!?ならこれ一択じゃん!とぬか喜びしたのは内緒です...。