TaskRouterを日本国内で使う場合の注意点


こんにちは、@24guchiaです。

日本国内でTaskRouterを受電で使う場合、通話音声が遅れる可能性があります。今まで、TaskRouterを使いましょうみたいなことを書いていたので、
その反省と皆様への注意を兼ねて記事にします。

原因

受電が遅れるということですが、原因はTaskRouter自体の仕組みにあります。TaskRouterはTask割り振りをして、米国サーバーでキューが作成されます。
そのままdequeueをすると、
米国サーバーで作成されたキューを介して通話が始まります。
そのため、日本国内のピア同士の通話であっても
米国サーバーを経由することになるため、
音声の遅れが発生します。

対応方法

dequeueを使うのではなくConferenceを使いましょう
Conferenceの作成方法はドキュメント見てもらおうとして、
Conference作成時、リージョンの指定ができます。
このリージョンをjp1に設定することによって、日本国内での通話が実現できます。

まとめ

1月にリニューアルしてから、通話が遅れることがあるとよく言われていました。
アルファー版で発生していなかったので、なんでだろうと悩んでいましたが、
原因がわかればなんということはないです(遠い目)。

現在、 通常のCallからConferenceに置き換える作業しています。
これはなかなかに骨が折れますので、
これから日本国内で導入を考えているTwilioデベロッパーの皆様、
予めConferenceでの実装をお勧めします。

Conferenceへの置き換え苦労話は今度、まとめます。
とりあえず言えることは、単純な置換では絶対に動かないし、
1対1が前提の通話に対し、複数人が通話する前提のConferenceでは
そもそも考え方が異なります。
この辺はかなり苦労しています。