8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TwilioAdvent Calendar 2016

Day 6

Twilio の Dial のちょっとした豆知識

Posted at

TwiML の Dial

TwiML の Dial といえば、 Twilio の根幹をなす最も重要な TwiML 動詞です。ズバリ、対象の相手先に電話をかけてくれます。

さて、この Dial は色々なクセもありますので、よく陥りがちな点についてご紹介します。

電話番号に関して

Twilio の Dial でよく起きる問題として、発信できたはいいものの番号が非通知になってしまうということが起きます。これは主に2つの理由が考えられます。

  • 本家 US の Twilio を利用している
  • CallerID の指定が間違えている

以下、詳細の説明と共に電話番号についての Tips をご紹介します。

03 番号などの住所に紐づく番号

本家 US の Twilio 番号は 03 番号があって大変魅力的ですが、この番号を購入して Dial し、外線にかけると相手には全て非通知と表示されてしまいます。せっかくの 03 番号もそれでは台無しですね。

というのも 03 番号などは住所と紐づく番号になっており、IP電話では基本的に対応していない番号なのです。そのため日本で正式に Twilio を提供している KDDI ウェブコミュニケーションズさんはしっかりとその決まりに則って 050, 0120, 0800 の3種類のみを提供しています。

03番号をどうしても Twilio で扱えるようにしたい!という場合には、ボイスワープなどの機能を利用して 03 番号から 050 へ転送する、という形をとることができます。この場合は当然 03 番号の転送料金などが追加でかかりますので、どうしてもそうしたい場合以外はお勧めできません。

0120 番号の移設

ちなみに 0120 番号は、他で購入したものを KDDI へ移し、さらに Twilio へ移すことでナンバーポータビリティも可能です。ただし完全移行には 2,3 ヶ月くらいかかるので、その時間の余裕が必要です。私たちの検証によると、一部の NTT の 0120 番号はベンダーロックイン的な形で移すことができなかったりするパターンがあるそうです。そこも要確認です。

CallerID の特殊な指定

さて話をもどして、050番号を購入し、CallerID を適当な番号にすればいけるんじゃないか、と思われるかもしれませんが当然そんなことはできません。Twilio で購入した番号の CallerID でしか発信通知表示を行ってくれません。

しかし実は CallerID には電話番号以外を指定することができます。client: から始まるアルファベットの識別子です。これは、Twilio Client に Dial するときだけ有効な識別子となります。
Twilio Client で着信時に渡ってくる parameters の From に、この文字が入ってきます。

Twilio Client だけを使って電話の着信を実装している場合にはこれはかなり役立ちます。しかしながら、Twilio Client にも発信するし、普通の固定番号にも同時に Dial したい場合には、この方法は役に立ちません。あくまで Twilio Client だけに発信する場合にだけ活用を検討ください。

Dial の制限

TwiML のドキュメントを読むと、

動詞で最大 10 件の 名詞を使用して、全宛先に同時に電話をかけることができます

という文章を見かけます。さて、ここで気になるのは10件以上指定してしまった場合、ですよね。実際に試してみました。

すると、少なくとも Client で 10個以上指定してたとしても、全員オンラインになっているような状態でなければその一部の人たちにはちゃんと着信が鳴るようです。ただし、10個以上のClient + Number の組み合わせだと、たまに Number が鳴らないという問い合わせを受けた経験があります。

結論としては"10個以上指定しても全部鳴らなくなるわけではなく、一部が鳴らない時がある"くらいに思っていただければいいかと思います。

この10個という制限はたまにネックになることもあるかもしれません。しかしそもそも 10個以上同時に鳴らすってケース自体あまりないような気もしますし、その場合はいきなりキューに突っ込んでオペレーター側から順次接続する設計にした方が明らかに良いでしょう。通話の保留などを使えば最初に出る人だけの Client を鳴らし、取次やスーパーバイザー的な方は最初に電話を鳴らさないClient として待機するなどの工夫も可能です。

実際の運用方法によって異なってくると思いますので、その時々で最適な Dial の設計を検討しましょう。

## 海外での電話について

IP 電話といえば、距離にかかわらず一定の値段で発信できることがメリットですよね。日本国内であれば全国一律の料金で電話の受発信ができます。ただ、固定番号の場合は03番号は東京都内に近ければ近いほど料金が安くなったりする場合があり、都内だけの電話であれば固定電話の方が圧倒的に安かったりもします。これは一長一短ですね。

だとしたらもっと大きなところに目を向けましょう。海外発信は圧倒的に IP 電話の方が安くなるはずです。先ほどの料金ページを見てみると、下の方に海外番号について書かれています。実際、Twilio で簡単に海外へも発信ができます。ちなみに海外番号の受発信のテストも、Twilio で海外の電話番号を購入し、TwiML の Dial で携帯番号に転送するような形にすれば海外番号のテストも簡単です。

反対に、国内で取得した050番号を、海外で運用できるのかというとケースバイケースです。050当てに発信した番号を海外でログインした Twilio Client で受信することは当然可能です。しかし、発信に関してたまに正しく CallerID を指定しても非通知になってしまうという問題が報告されており、この点は私たちも調査中です。(もしうまくいった方法あれば教えてください!)あと、当然海外の インターネット回線を使っての通話となるので、遠ければ遠いほど音質も気になってしまうことでしょう。

終わりに

Twilio の Dial は奥が深いです。まだまだ共有したいことはありますが、長くなるので今回はこの辺りで終わりにします。このような使ってみないと分からない情報というのが日本の Twilio ユーザー間でシェアできるようなコミュニティになっていけばいいなと願っています。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?