その1で書いたように、アジルフォンproの契約を行うと、以下の情報が取得できます。
外線着信番号 これは03から始まるお馴染みの電話番号
アジルフォンNo. 外線着信番号と1対1で発行されます
パスワード アジルフォンのWebサイトにあるmyページのログインパスワードと同じ
sipサーバ名 インターネットのグローバル側に設置されています
インターネットを利用してのsipサーバとの接続について、本来、外線着信はインバウンド接続(外からLAN内に設置されているsipサーバにパケットがやってくる)になるのですが、動的IPやNATを越える事を考慮して、利用者のsipサーバが、ITSP(Internet Telephony Service Provider)側のsipサーバへ最初にコネクションを張っておいて、そのコネクションを使ってサーバ間で通信を行うようになっています。これをAsteriskの世界ではレジストすると表現します。
このため、利用回線のIDであるアジルフォンNo.とパスワードが必要となるわけです。
今回構築するVoIPネットワークは、以下のようになります。
1.外線が着信するITSP側にあるsipサーバ
2.自宅内ネットワーク(ローカル側)にAsteriskで構築したIP-PBX(sipサーバ)
3.iCOM製VP-71:無線LAN接続のコードレスIPフォン
4.X-lite:PCにインストールするソフトウェアIPフォン
3と4のIPフォンには内線番号をふります。200,201,202の三つを割り当てました。
【Asteriskのインストール】
それでは、Windows server 2008 Foundationで動いているVMware Serveで仮想化されたLennyへ、Asteriskをインストールします。
インストール自体は簡単で、aptitude install asterisk だけで、全て必要なプログラムはインストールされます。システム自体も、VoIPカードやISDNカード等の特殊なハードウェアを使わないのであれば、仮想化されたシステムであっても問題なく動作します。
LennyでインストールされるAsteriskは1.4.21というバージョンで、Debian用にチューンされています。本家のサイトからtarボールをもってきて自力でコンパイルというのも良いのですが、ちょっとバージョンが古くてもdebパッケージで運用することをお勧めします。
【Asteriskの設定】
それでは、Asteriskの設定をはじめます。
まずは、動作与件を整理しておきましょう。
1.外線からの着信は全ての内線(200,201,202)を呼び出す
2.発信は電話番号1を優先して使い、ビジーの時に電話番号2を使う
3.着信後の保留が可能(保留音を流す)
4.着信後、内線へ転送が可能
5.着信後、外線へ転送が可能
6.転送が終了するまで保留音を流す
設定するファイルは3つです。
普通にsipというプロトコルだけで構築するなら、sip.confとextension.confの二つのファイルを設定すればおしまいですが、今回、ローカル側のsipサーバとITSP側のsipサーバとの接続に、Asterisk独自のIAX2というプロトコルを使って接続しているので、ちょっと設定内容が一般とは異なります。
※IAX2に関してはこちらが詳しいです。
/etc/asterisk/sip.conf |
また、mailboxの指定は留守録を使わないときでも設定だけをしておくと、ログがワーニングに埋まることが避けられます。
usernameとsecretは、端末認証に使うIDとパスワードです(上記のは例)。
これはLAN内なので、パスワードは全部同じでも良いですが、無線IPフォンだけはちょっとひねったパスワードにしておくと良いかもしれません。
iax.confで、ITSP側のsipサーバへレジストする設定を記述します。
以下は例として、アジルフォンNO.が899991と899992、パスワードはpasswordとしています。
また、899991が着信電話番号1で、899992が電話番号2に対応しているものとします。
/etc/asterisk/iax.conf |
次が一番難関だったextension.confです。
この設定ファイルで、子機がダイヤルしたときのAsteriskの挙動を規定します。
/etc/asterisk/extension.conf |
これはAsteriskでも古いバージョンで有効だった機能だそうで、互換性維持のため残っているので、先々なくなるとの事です。
私も最初は、priorityjumpingをonにした設定を書いていたのですが、動作確認が終わった時点でその設定は捨てました。この部分の解説を書き出すと長くなるのですが、priorityjumpingをonにすると、プライオリティーの部分がbusyの時に+101されると記憶しておくと良いかもしれません。
※Dialコマンド発行時のプライオリティーが2だとすると、busyのときは+101されて103になる。
今回は、プライオリティーはnを設定したので自動発番の機能を使っています。
■以上の設定を行いAsteriskを動作させると、一番最初に書いた与件はすべて満たします。
しかし、回線が2つあるのに電話番号1を使っているときに、その同じ着信電話番号1に電話がかかってくると当然のことながら相手には話中になってしまいます。
独立した2つの番号を持っているので、これは仕方の無い事なんでしょう…
やっぱりITSP側にあるsipトランクを使ってシステムを組んでみたいです。
※3回線くらいでトランクサービス、お願いします>ITSPの中の人
■ちょっと長くなってしまったので、無線IPフォンの設定と、デフォルトでは鳴らない保留音の話は次回に書くことにします。
最後にpriorityjumpingをonにしたときの設定です。ご参考までに…
[general] |