ゼロからはじめるぜ! Twilio – シーズン3: SIP Trunking編 第1回

masa_prof.jpg

ご無沙汰しております、ネットワークエンジニアの まさです。

 

久々のゼロからTwilioシリーズをお送りしようと思います。シーズン1から読んで頂いている方も、今回初めて目にして頂いた方も、こんにちは。

このシリーズは、アプリケーション開発には全くド素人の私が、同様にこのジャンルにあまり詳しくない方と同じ目線でTwilioを触ってみようとシリーズになります。

シーズン1: アカウント作成からはじめてのTwiML

シーズン2: PHPを用いてGATHER動詞で動作が分岐するものを作ってみる

という感じでやってきました。あまり大きな声で言うことでもないのですが、小さい声で言うと聞こえないし、どのみちこれはBLOGですので普通に文字で書きますが、このシリーズ、むちゃくちゃお客様からの評判がよろしいのです!! 本当にありがとうございます。お初の方はぜひ、シーズン1から読んでみてくださいね。

シーズン3は何を書こうかなと考えていたのですが、エラスティック SIP Trunkingにしてみました。2015年5月 にTwilio社がサンフランシスコで開催したカンファレンス「SIGNAL」で正式発表された新機能です。

Twilioは日々、こうした新機能の開発に勤しんでおり、新機能リリースのサイクルがかなり早いナウでヤングな集団です。既に Twilio Docs を活用している方はご存知かもしれませんが、正直、こちらのドキュメント翻訳作業が追いついていません(;-ω-) ナウでヤングなサービスをご活用いただくメリットのちょっとした代償として、一つ大目に見て頂けますと幸いです。

というわけで、この SIP Trunking を皆さんと一緒にゼロから触るというコンセプトでお送りします。

 

エラスティック SIP Trunkingって? SIPって? そもそも電話の仕組み知らないけど...

何となく聞いたことがある名前で、何となくGoogleしたけど、何となくしか分からない、けど、周りにわかりやすく噛み砕いて教えてくれる人がそうそう居ない。SIPというのは、若干ニッチな分野になるため、ポンと聞いてポンと情報が得られない技術です。このシーズンを気軽にスタートしていただくために、まずは簡単にここからお話します。

そもそも、みなさんお馴染みの「電話」、簡単にどういう仕組みのインフラかご存知ですか?

次の図をみてください。

zerotwilio_3-1-1.jpg

2つの電話がつながる様子を示したものです。電話は、電話線で電話局につながっているもの、というのはご存知だと思います。この電話線には大きく2つの通信が流れています。音声をやりとりする「通話路網」と、電話をあげた・ダイヤルした・相手を呼び出す・受話器を取った・切った等、通話の制御を行うための「信号網」です。

これを中継しているのが電話交換機で、PBXと呼ばれます。電話機がたくさんあって、それらが内線でつながるようなオフィスには、オフィスのPBXがありますし、当然電話局には大きなPBXがあります。PBXが各地のPBXとつながっていて、まるでインターネットのルーターのようです。ついでなので、内線がぶら下がる図も載せておきます。

zerotwilio_3-1-2.jpg

企業に電話をかけるとき、代表番号にかけたりすることがあると思います。代表番号にかけると、取るべき人の座っているデスクの電話機が一斉に鳴りますね。

左側の電話が 06-X-Y に電話をかけると、PBXが信号を中継し、右側のオフィスのPBXに到達、このPBXには「06-X-Y に電話がかかってきたら、配下の電話機A・電話機Bを鳴らす」という設定が入っており、そしてこれらに「鳴れ」という信号を渡して、やれジジリリリだのピコポンピコポンだの呼び出し音が鳴るわけです。

そして、呼び出す→受話器をあげる→受話器を取ったよ というやりとりが「信号網」で完結すると、音声をどうやって流す等、裏側でやりとりがあり、その決定にしたがって「通話路網」が確立、ついに私達は受話器に向かって「もうしあげる、もうしあげる」とお話をスタートできるのです。

先ほど、この電話網・PBXというのは「まるでインターネットのルーターのようなだ」と書きましたが、その通り。そうなんです、似てるからインターネットでもやってしまえと考えた人がいて、それを天才が実現したものが SIP なのです。IPフォンとか、VoIP とか聞いたことがあると思うのですが、この電話網をインターネットで真似っこして実現した仕組みです。

インターネット上で「信号網」を模倣したものが SIP (Session Initiation Protocol) であり、「通話路網」を模倣したものが RTP (Real-time Transport Protocol)です。インターネットフォンと称されるものは大抵このSIPとRTPをセットで利用しています。

このシーズンで取り上げる SIP Trunking ですが、正式なサービス名を Twilio Elastic SIP Trunking (トゥイリオ エラスティック シップ トランキング) といいます。面倒なので、私たち KWCスタッフは SIPトランク と呼んでいます。

SIPトランクは、このようなPBXを介在して一般電話網とIPフォンを簡単に連携したり、さらに、地球規模での利用を考慮にいれ、最適なルーティングを行うパワフルな機能を備えています。元々TwilioにはSIP通信の機能もあるのですが、今回はそれがエラスティックなのです。エラスティックとは「柔軟な」という意味です。

このシーズンでは実際に、前述の図にあるようなインフラをゼロから構築してみます。

具体的なシラバスとしては、IPフォンを使った内線の実現・それらの電話から一般電話網に電話をかける・一般電話網から電話を受ける、という形で進めたいと考えています。これをその手の業者に注文したら、オンプレミスのPBX買ったり、設定費用・構築費用・その他もろもろと大変お金が掛かります。

本来ならお金と時間がいっぱい掛かるのにTwilioを使うと、安く早くできる!!

これがTwilioサービスの強みです。

もちろん、さあPBXを買ってくれ、やれ電話機を買ってくれなんて言い出したりしませんのでご安心を。Twilioの SIPトランク通信費は掛かるので、そこはレッスン代と思ってご容赦いただきたいのですが、ほんの僅かなものです。PBXやIPフォンの方は、お金の掛からないものを使います。

次回から実際に構築をスタートしていきます。必要なものを予めお知らせしておきますね。

・root権限でオペレーションが可能で、インターネットから直接アクセスできるサーバー 1つ

つまり、一意のグローバルIPでアクセスできるサーバーということです。

間違えても本番環境としてサービス中のサーバーは使わないでください。

ある程度自由に壊して良い自由な検証環境を用意してください。

・Windowsパソコン・Macパソコン・スマホ ・SIP対応電話機 のうち自由な組み合わせ 2つ

私は MacパソコンとiPhoneで書き進めていきます。

では、次回からお楽しみに!

この記事をシェア

最新記事

すべての記事へ