Twilioブログ

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

マサさんこんにちは、ネットワークエンジニアの まさです。

 

さて、今回からいよいよ IPフォンな環境を実際に構築していきます。前回お知らせした以下の環境、ご準備いただいていますでしょうか?

 

  • root権限でオペ可能なインターネットから直アクセスできるサーバー
  • Windowsパソコン・Macパソコン・スマホ の中から 2つ

特に前者ですが、Twilioがこのサーバー目がけて通信してきますので、グローバルIPアドレスを持つサーバーである必要があります。ファイヤーウォールを挟んで、グローバル:ローカルのIPアドレスを 1:1 のスタティックNATしている場合でもOKですが、サーバーからインターネット側にIPマスカレードで出て行くタイプのNATではダメです。出て行った帰りのパケットが届くだけではダメで、Twilioからこのサーバーへ通信を開始できる必要があります。また前回書き添えたように、現在、他のサービスが本番で稼働しているようなサーバーではなく、検証環境・テスト用サーバー等、既存サービスに影響がでないサーバーにしてください。

最初に、このシーズン完了時に出来あがるものの全体図を示します。これからこういうものを作ります。

システム構成図

今回は、このうち IP-PBX の部分を構築をします。いきなり一番の難所です。青い部分はインターネットに接続されているもの、Twilioから右は一般電話網につながっているものです。Twilio はインターネットと一般電話網を架け橋していますので、両方につながっています。ちなみに、「一般電話網」のことを PSTN と呼ぶので覚えておいてください。次からPSTNと書きます。

今回お金を掛けずにお試しで作ってみますので、フリーの IP-PBXソフトウェア「Asterisk」をインストールし、設定します。最初にご理解いただきたいのですが、私も初めてですし、弊社がサポートするのはあくまでも Twilioです、どうか Asterisk の質問はお寄せいただかないようにお願いします。むしろ、みなさんの Asteriskノウハウを私に教えていただきたいです。

 

Asteriskインストールファイルの入手とインストール

なぜAsteriskなのかという点ですが、私が IP-PBXのソフトウェアで最初に思いついたものだったから、という理由なだけですので、他のIP-PBXに慣れてる方はそれを使ってください。私の環境は以下の通りです。

■ 私の環境

CentOS release 5.11 (Final)

Kernel 2.6.18-406.el5

メモリやCPUは今回の実験環境においてはそう使うものじゃないはずなので、メモリ 4MB/CPUクロック 16MHz のような化石モノのPCでは無い限り、何でもいいです。コマンドの類は、上記環境を元に書きますので、それぞれみなさんの環境のものに読み替えてください。

まずは、インストールファイルの入手です。Asterisk CentOS とか適当にググってみます。すると、以下の事がわかりました。

・Asterisk は 1.8系 が良いらしい
・Asterisk と Dahdi というものをインストールする必要があるらしい

ふーん。では、入れてみようかな。ご自身のサーバーで root権限になり、以下を実行します。

$ yum install asterisk
No package asterisk available.
Nothing to do

(´・ω・`)

そんな甘くないのね、これは・・・。しかたない、素材を持ってきてコンパイルしてインストールするしかなさそうです。とりあえず、情報サイトに書いてある通りにやってみます。まずは Dahdi なるものを入れます。何をするものかよく分からないですが、「Asteriskのドライバー」と書いてあるので、必要そうです。入れます。

Dahdi を入れるためには、依存する各基本パッケージが必要だというので、情報サイト通りやってみます。

$ yum install gcc-c++ kernel-devel ncurses-devel openssl-devel

 

これはすんなり入りましたね。よしよし。では、Dahdi にとりかかります。ところでなんと読むのでしょうね、これ。「ダディ」でしょうか。作業ディレクトリを作り、そこにインストールファイルをダウンロードして make します。

$ mkdir /home/masa/work/dahdi
$ cd /home/masa/work/dahdi
$ wget http://downloads.asterisk.org/pub/telephony/dahdi-linux/dahdi-linux-2.10.2.tar.gz
$ gzip -cd dahdi-linux-2.10.2.tar.gz | tar xf -
$ cd dahdi-linux-2.10.2
$ make

あら・・・ Kernelソースがないと怒られてしまい make が止まってしました。おそらくこれはみなさんがハマるポイントになると思います。

よく情報サイトを読むと、Dahdiを入れるときにKernel類を最新にしろ、つまり yum update をかけろという指示があります。この作業を始める前、私のKernelは少し古いものでした。私はアップデートの指示をあえて無視したんですね。他サービスと入れ子の本番環境にもしAsteriskをいれなきゃいけないとき、そう簡単にKernelなんてアップデートできないですから。

が、必要になるのは、現在稼働している Linux Kernel の Kernelソース、つまり kernel-develのパッケージです。古いKernelなので yumで入手できない。仕方がないので私は Kernelごとアップデートすることにします。現在ご利用の Linux Kernel に対応する kernel-devel がインストールされていれば以下は不要のはずです。

$ yum update
$ yum install kernel-devel
Kernelをアップデートしたのでサーバーをリブートする必要があります。Kernelをアップデートしなかった方はこのリブートも不要です。
$ reboot

リブートしたらさっきの作業ディレクトリに移動して、再チャレンジ。 今度は make が通るはずなので、そのまま make install まで進みます。

$ cd /home/masa/work/dahdi/dahdi-linux-2.10.2
$ make
$ make install

これで Dahdi がインストールされました。何をするものか分からないので、設定とかきっと必要なんでしょうが放置しておき、次、Asterisk に進みます。Asterisk は最初に configure する必要があります。

$ mkdir /home/masa/work/asterisk
$ cd /home/masa/work/asterisk
$ wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-1.8.32.3.tar.gz
$ gzip -cd asterisk-1.8.32.3.tar.gz | tar xf -
$ cd asterisk-1.8.32.3
$ ./configure

あら・・・ libxml2 がねぇ! と怒られ止まってしまいました。うーん。なら、入れましょう。

$ yum install libxml2 libxml2-devel
$ ./configure

今度はうまくいきました。続いて make, make install です。情報サイトによるとその後も2つコマンドを叩けといっているのでその通りにします。

$ make
$ make install
$ make samples
$ make config

これでAsteriskがインストールされました。ちなみに、私の tar.gz の解凍方法気づきました? みなさん、大体は、tar xfvz とかなんとかオプションで一気にやりますよね? 私はこの世界、Solaris から入ってるので、こうしてパイプで渡すのがクセなんです。未だにこの tar のオプションは覚えられません。

はい、これで IP-PBXの大元になるソフトウェアのインストールが完了しました。

今日はここまでにしましょう、次回は、Asterisk の実設定に入ってまいります。お楽しみに!

まとめ

インフラエンジニア まさ
インフラエンジニア まさ

インフラエンジニア。サーバー・ネットワーク両方やります。チームではプロダクト全般・キャリア接続・システム運用保守を担当。好きな食べ物: 納豆。

Share!!

この記事を読んだ人へのオススメ

  • お役立ち情報
  • イベント情報
  • 相談会申込
  • 導入事例