Twilioで開発を始める前に知っておくこと（電話の制限編）

:::note alert
2023年5月1日を持ちまして、株式会社KDDIウェブコミュニケーションズのTwilioリセール事業が終了したため、本記事に記載されている内容は正確ではないことを予めご了承ください。
:::

# はじめに

みなさん、こんにちは。
Twilioエバンジェリストの高橋です。

今回は、これからTwilioを使う方（使い始めている方にも）に知っておいてほしい、**電話に関する制限事項**について説明します。
電話に関する問い合わせで比較的多くいただく疑問を中心に解説したいと思います。

**2020/3/16 消費税の変更に伴う価格の修正をしました。**
**2021/3/19 諸々情報を更新しました。**

# 電話番号について

現在Twilioが提供する、日本国内の番号（+81の配下で管理されている番号）は、以下の3つです。それぞれ、月額利用料金が異なります。

|番号|説明|月額料金（税込）|
|:--|:--|:--|
|050番号|IP電話サービス|110円|
|0120番号|トールフリー|1,650円|
|0800番号|トールフリー|1,650円|

<font color='red'>注意</font>
上記金額は、KDDIウェブコミュニケーションズ経由でアカウントを開設した場合の料金となります。
それ以外で開設した場合は料金が異なりますのでご注意ください。

## E.164

Twilioはグローバルに接続されたネットワークを通じて、電話の受発信が可能なサービスです。そのため、電話番号に国番号を付与した**E.164形式**と呼ばれる形式を利用する必要があります。ちなみに、普段我々が使っている番号表記（03-1234-5678のようなもの）は、**0AB〜J形式**と呼びます。
国番号はITU（国際電気通信連合）が規定をしており、その一覧は[こちら](https://ja.wikipedia.org/wiki/%E5%9B%BD%E9%9A%9B%E9%9B%BB%E8%A9%B1%E7%95%AA%E5%8F%B7%E3%81%AE%E4%B8%80%E8%A6%A7)を参照すればわかります。日本は+81と規定されているので、日本の番号をTwilioで扱う場合は、0AB〜J形式の先頭の0を取り除き、+81を付与したE.164形式に変換する必要があります。
例えば、090-1234-5678は、+819012345678となりますし、050-1111-2222は+815011112222になります。

すでにTwilioを利用している方はここで疑問が湧くかもしれません。それは、Twilio経由でかかってきた番号が、E.164形式ではなく、0AB〜J形式になっていることです。
答えは簡単。実はこれ、Twilio側でよしなに変換をしてくれているからなんです。なので、Twilioからの着信に関しては、ほとんどのケースで、E.164形式を意識する必要はありません。
しかし一方、Twilioに対して発信を依頼する場合は、相手方の電話番号はE.164形式で指定が必要ですし、その際の発信者番号についても同じくE.164形式で指定しないとエラーになります。

## トールフリーについて

トールフリーというのは、発信者に課金されるのではなく、着信者に課金される番号のことで、国内では、**フリーダイヤル**とか、**フリーコール**などと呼ばれています。ちなみに、フリーダイヤルというのは、NTTコミュニケーションズの登録商標ですし、フリーコールはKDDIの登録商標ですので、Twilioではこれらを総称して**トールフリー**と呼んでいます。
先に書いたように、Twilioではトールフリー番号として、0120番号と0800番号を提供しています。どちらも使い方に違いはありませんが、電話番号の桁数が違います（0120の10桁に対し、0800は11桁）。
桁数だけでなく、昔から知られている0120番号は人気が高く、Twilioでも在庫があまりないため、管理コンソールからは購入ができません。0120の購入を希望される方は、お手数ですが[営業担当](https://twilio.kddi-web.com/contact-sales/)までご連絡ください。なお、その際に以下の内容をお伺いいたします。

- 利用用途
- 必要個数
- 発信、着信件数（月間）
- １回の平均通話時間

ご申告頂いた内容によっては、ご希望に添えないこともありますので、予めご了承ください。
なお、トールフリー番号については、番号ポータビリティが可能ですので、すでにお持ちのトールフリー番号をTwilioでご利用いただきたい場合や、別の通信事業者様で新規で取得したトールフリー番号を持ち込みたい場合は、同様に[営業担当](https://twilio.kddi-web.com/contact-sales/)までご連絡ください。

## 地域型0AB〜J番号について

日本国内の固定電話で利用されている03とか06などから始まる地域型0AB〜J番号については、現在Twilioでは扱っておりません。このような番号は、地域を特定するための市外局番を含んでいるため、Twilioのようなクラウド型のサービスで、住所の確認がない状態での提供は制限されています。また、仮に地域を特定できたとしても、Twilio側設備の設置場所についての地域情報は公開していないため、やはり提供は難しい状況でございます。予めご了承ください。
なお、以下のようなサービスを利用することで、すでにお持ちの地域型0AB〜J番号からTwilioに電話を転送して利用することができます（別途各社の利用料が発生します）。

- [ボイスワープ（NTT）](https://www.isdn-info.co.jp/voice/)
- [着信転送サービス(KDDI）](https://www.kddi.com/business/voice-phone/ip-phone/hikari-direct/option/forward/)

## 番号ポータビリティについて

現在Twilioでは、すでにお持ちのトールフリー番号（0120もしくは0800）をTwilioに移管する場合のみ、番号ポータビリティが可能です。**現在持ち込みが可能なものは、KDDIもしくはNTTコミュニケーションズの発行したトールフリー番号に限られます。**それ以外のキャリアのトールフリー番号を持ち込みたい場合は、一旦これら２つのキャリアに移管してからお手続きに入るようにしてください。
現在お持ちのトールフリー番号のキャリアによって手順や開通までの日数が異なりますので、ポータビリティをご希望される場合は[営業担当](https://twilio.kddi-web.com/contact-sales/)までご連絡ください。なお、番号ポータビリティで番号をお持ち込みになる場合は、前述した利用用途などの審査は不要です。
050番号を含む、それ以外の番号ポータビリティに関しては対応しておりません。

# 発信制限について

Twilioを使って一斉に電話を発信したいというお話をよく聞きますが、その際ご質問いただくこととして、以下のようなものがあります。

- 同時に発信するために、050番号を複数買う必要があるのか。
- 一度にかけられる件数はいくつか。
- 電話番号をリストで渡して、一斉にかけることはできるか。
- 相手が話中だったり応答しなかった場合はどうなるのか。
- 発信者番号を自由に変えることは可能か。
- Twilioから発信できない番号はあるか。

では、一つずつ解決していきましょう。

## 一つの番号で同時発信は可能か

可能です。発信者番号としてTwilioでご購入いただいた番号を指定してください。

## 一度にかけられる数

同時発信に関しては、以下の制限があります。

- 1秒に1発信しかできません。すなわち、同時に100通話をしようとしても、最初の発信が完了してから、最後の発信が始まるまでには100秒かかります。
- 同時通話数に関しては、さらに以下のガイドラインを設けています。
 - 1分間に 50本を超えるような通話を数十分続ける。
 - ある瞬間の同時コール数が100本を超える。
- 以上に該当する場合は、事前に[営業担当](https://twilio.kddi-web.com/contact-sales/)までご連絡ください。

発信に関しては、上記ガイドラインの中で運用ができるようにシステムを設計してください（たとえば、通話中のコールをカウントし、同時に100本を超えないように発信を制御するなど）。
また、着信に関しても通話数をカウントしながら、100本を超える着信には、Reject応答（強制切断）で対応するなどを考慮してください。

もしガイドラインに抵触するようなご利用を確認した場合、他のお客様への影響を考慮してアカウントを強制停止することがありますので注意してください。

同時着信が100を超えるようなケースでのご利用を想定される場合、独自の専用回線プラン（有償）もご用意しておりますので、ご希望の方は[営業担当](https://twilio.kddi-web.com/contact-sales/)までご連絡ください。

## リストによる一斉架電について

TwilioはAPIのサービスなので、電話番号リストを使って連続架電ができるようにするためには、何らかのプログラムを作っていただく必要があります。
~~もしプログラムが作ることができないという場合は、[電話連絡Excelアドインを公開](https://twilio.kddi-web.com/solutions/excel/)しています。ただし、こちらは正式サポートしているものではないので、ご利用者の責任においてご利用ください。~~（Excelアドインのご提供は諸般の事情により終了いたしました）

また、異常監視通知の仕組みにご利用いただきたい場合の参考として、以下の記事もございます。
[Twilio FunctionsとStudioを使って連続架電を行う](https://qiita.com/mobilebiz/items/8757eec854f37ce0cb2d)

## 話中や無応答時の挙動

電話発信時に相手側が話中だった場合は、Busy信号を受け取った時点で発信は停止します。また、相手側が一定時間に応答しなかった（無応答）場合も発信は停止します。呼び出し時間については、発信時に秒数を設定することが可能です（初期値が60秒で最大600秒）。ただし、たとえば600秒などと長い時間を指定しても、相手方のキャリアの制限によりそれより早く呼び出しが終了することがあります。

では、相手が話中だったのか、無応答だったのかはどうやって知るのでしょうか。
通話の結果については、通話終了時のコールステータスで確認ができます。具体的には、通話終了時にWebhookを投げるように設定しておき、届いたWebhookに含まれるステータス情報を確認することで、どういう状態で通話が完了したのかがわかります。
通話のステータスについては、[こちらのドキュメント](https://jp.twilio.com/docs/voice/api/call#call-status-values)をご覧ください。

## 発信者番号について

Twilioから発信するときに、ご自分の携帯電話番号や固定電話番号を発信者番号として表示させたいという問い合わせを受けますが、結論からいうと**できません**。
Twilioが日本国内で提供できるサービスには法的な制限があり、その中に一般公衆回線への発信については、そのサービスで利用している番号を通知することが定められています。すなわち、Twilioから発信する場合（転送も含めて）は、Twilioで購入していただいた番号を通知することになります。
ここでポイントになるのが、**一般公衆回線への発信**という部分です。Twilioでは、一般公衆回線以外にも、たとえばブラウザフォン（Twilio Client）やSIPフォンへの発信も可能であり、このケースでは上記制限は該当しません。
たとえば、お客様から着信した電話を、ブラウザフォンに転送して受信する場合は、ブラウザに対してお客様の番号が通知できます。

## 発信できない番号

Twilioから発信できない番号は以下のとおりです。

### 050番号からの発信

- 0AB0（0570、0800、0120など）
- 1XY（110、119など）
- #ABCD（#特番、#9110、#7119など）

*トールフリー番号への発信については、相手方によってはかかる場合もありますが、ケースバイケースなのでNGとしています。*

### トールフリー番号からの発信

- 0800、0120を除く0AB0（0570など）
- 1XY（110、119など）
- #ABCD（#特番、#9110、#7119など）

*トールフリー番号への発信については、無料にはならず固定電話あての通話料がかかります（5.5円/分）。*

# 着信について

Twilio番号への着信についても以下のような質問をいただくことがあります。

- Twilioが着信できない番号はあるか。
- 見覚えのない番号から着信があるのはなぜか。
- 着信拒否をすると何度も電話がかかってくるのはなぜか。

では、これらの疑問も解決していきましょう。

## 着信できない番号

IP電話に電話がかけられる番号であれば、原則Twilioで着信ができます。一部のIP電話サービスなどでは、相互接続がされていないという理由から、Twilioにかけられないという事象があるようですが、どの事業者がNGであるかはTwilio側では把握していません。
万が一、Twilioにかけられないという事象が出た場合は、大変お手数ですが、ご契約いただいている通信事業者にお問い合わせください。また、発信不可の事象を確認された方は、この記事にコメントをいただければとても助かります。

## 見慣れない番号からの着信

たとえば、発信者側が非通知設定で電話をかけてきた場合など、Twilio側では以下のような特殊な番号で着信をします。もし見慣れない番号からの着信があった場合は、お手数ですが以下の番号でないかをご確認ください。

|番号|説明|
|:--|:--|
|7378742833|RESTRICTED(制限されている)|
|2562533|BLOCKED(ブロックされている)|
|8656696|UNKNOWN(不明)|
|266696687|ANONYMOUS(匿名)|
|86282452253|UNAVAILABLE(通知不可)|

この中でよく出てくるのが、非通知による発信を表す**266696687**と**86282452253**です。

## 何度も電話がかかってくる事象について

Twilioから電話をかけた際に、相手側が着信拒否動作をしても、連続して電話がかかってくる事象があります。
本来電話機側で着信拒否を行うと、Canceledというステータスが戻り、発信動作はその時点で終了するのですが、一部の機種や条件によってはCanceledが戻らず、Twilio側が呼び出し中のネットワーク障害として認識して、再接続に移行してしまいます。
これが繰り返された場合、Twilio側は国内経由での発信に障害が発生していると判断し、海外からの接続を試みます。これにより、非通知でかかってきたり、海外の番号が表示されたりすることがあります。
どの機種で発生するかについては、[こちらのFAQ](https://twilioforkwc.zendesk.com/hc/ja/articles/115000204862)を御覧ください。

# まとめ

- Twilioでは、国内番号として050、0120、0800の3種類を使うことができます。
- Twilio上での電話番号は、国番号を付与したE.164形式で指定が必要です。
- 地域型0AB〜J番号の提供はございません。
- トールフリー番号は番号ポータビリティによる持ち込みが可能です。
- 1秒1発信や同時に100通話をしないなど、いくつかの制限があります。

---
### Twilio（トゥイリオ）とは

https://cloudapi.kddi-web.com
Twilio は音声通話、メッセージング（SMS /チャット）、ビデオなどの 様々なコミュニケーション手段をアプリケーションやビジネスへ容易に組み込むことのできるクラウド API サービスです。初期費用不要な従量課金制で、各種開発言語に対応しているため、多くのハッカソンイベントやスタートアップなどにも、ご利用いただいております。

自己紹介|　
:--|:--
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/86046/b51a8b88-abd5-ce5e-195a-de3564ba2ae6.png" height='200' width='150'/>|高橋克己（Katsumi Takahashi） 自称「<font color='red'>赤い芸人</font>」<br />グローバル・インターネット・ジャパン株式会社　代表取締役<br />株式会社KDDIウェブコミュニケーションズ　Twilio事業部エバンジェリスト<br /><br />2001年より大手通信事業者の法人サービスの教育に携わり、企業における電話のしくみや重要性を研究。2016年よりTwilio事業部にジョインし、Twilioを使ったスマートコミュニケーションの普及活動を精力的に行っている。<br />2015 Hall of Doers<br />2019 Twilio Champions