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

zerotwilio_3-6-1.jpgこんにちは。ネットワークエンジニアのまさです。

今回は、左の写真の通り、コレを用意しました。前回まではフリーのソフトウェアIPフォンアプリを使ってシミュレーションをしていたのですが、ハードなSIP対応電話機でもちゃんと動くのか、これを検証したいと思います。

何事も実際に試してみることが大事です。


今回用意したのは Panasonic の KX-UT123 という電話機でございます。これをインターネットに出られる社内LAN に接続し、IPアドレスの設定や Gateway の設定、ひと通り基本的なネットワーク設定を済ませ、この電話機のWeb設定画面へ接続。SIPに関する設定を済ませます。つまり、全体図でいうと、このようになります。
zerotwilio_3-6-3.jpg

この電話機がインターネットに出られるところまでは、さすがに、みなさんがマニュアルと格闘して頑張ってください(;-ω-) この電話機における要の部分だけ紹介しておきます。前回までに Windowsのフリーソフトや iPhone のアプリの設定をしてきましたが、電話機も同じです。もっと色々細かい設定ができるだけで、基本的にSIP通信できるための設定項目は同じ。

 

SIP対応電話機側の設定

 

zerotwilio_3-6-2.jpg

※写真をクリックすると別窓で拡大表示します。

この電話機においては VoIPタブの中にSIP設定がありました。

上の方、SIP URI には、この電話機に割り当てる内線番号にします。これまで 412601 と 412602 をアプリに割り当てているので、この電話機には 412603 を割り当てます。@ から下は要らないようです。

SIPサーバー:レジストラサーバー・プロキシサーバー・プレゼンスサーバー・アウトバウンドプロキシ・SIPサービスドメインと、全てAsteriskの役割なので、これらの欄、全て Asterisk のIPアドレスを入れておきます。

そして下の方、SIP認証の部分に、Asterisk に登録に行く際に使う認証情報を入力します。これらは当然、あとで Asterisk の sip.conf に追加します。2つのアプリと同じように、認証ユーザー名は内線番号にしました。

他の設定項目はよくわからないので、デフォルトのままにしました。これで、Web画面の登録ボタンを押すと、設定が保存されます。電話機側で「ネットワーク状況」のメニューを表示すると、まだ「未登録」になっているはずです。なぜでしょうか?

ピンと来る方は多いと思います。そうですね、今設定した認証情報についても、412603 の内線情報も、まだ Asterisk に設定を入れてないためです。

 

Asteriskの設定

入れるべき設定は「Panasonicの電話機を内線 412603 にする、ついでに、外線がかかってきたらこのPanasonicの電話機が鳴るようにも変更してみましょう。いじるファイルは、これまでと同様、/etc/asterisk/sip.conf と /etc/asterisk/extensions.conf です。
以下は、改修後の完成形です。前回からの変更点が赤色になっています。

/etc/asterisk/sip.conf

[general]
context=default
port=5060
bindaddr=0.0.0.0
language=ja
allowguest=yes
alwaysauthreject=yes

[412601]
type=friend
defaultuser=412601
secret=*****
canreinvite=no
host=dynamic
qualify=yes
nat=yes

[412602]
type=friend
defaultuser=412602
secret=*****
canreinvite=no
host=dynamic
nat=yes

[412603]
type=friend
defaultuser=412603
secret=***** →ご自身で設定したパスワード
canreinvite=no
host=dynamic
nat=yes

[TwilioSipTrunk]
type=peer
secret=*****
username=masa
host=*****.pstn.twilio.com
dtmfmode=rfc2833
canreinvite=no
disallow=all
allow=ulaw
insecure=port,invite
fromuser=+8150XXXXXXXX
fromdomain=*****.pstn.twilio.com

 

続いて extensions.conf です。こちらも同じく、前回からの変更点が赤色です。

/etc/asterisk/extensions.conf

 

[default]
exten => 412601,1,Dial(SIP/412601,30,r)
exten => 412601,2,Hangup()

exten => 412602,1,Dial(SIP/412602,30,r)
exten => 412602,2,Hangup()

exten => 412603,1,Dial(SIP/412603,30,r)
exten => 412603,2,Hangup()

exten => +8150XXXXXXXX,1,Log(NOTICE, Incoming call from ${CALLERID(all)})
exten => +815XXXXXXXX,n,Dial(SIP/412603)
exten => +815XXXXXXXX,n,Hangup()

exten => _0.,1,Log(NOTICE, Dialing out from ${CALLERID(all)} to ${EXTEN:1} through Twilio Provider)
exten => _0.,n,Dial(SIP/TwilioSipTrunk/+${EXTEN:1},60)
exten => _0.,n,Playtones(congestion)
exten => _0.,n,Hangup()

 

前回までの extensions.conf では、外線がかかってくると 412601 を鳴り出す設定でした。これをPanasonicに変えますので、412603 としてあります。

さあ、 /etc/init.d/asterisk restart で Asteriskを再起動しましょう。程なくして、Panasonic の電話機でネットワーク状況の確認メニューを選ぶと「登録完了」に変化したはずです。

前回までに設定済みのパソコン側のIPフォンアプリや iPhone のアプリを使って内線 412603 を呼び出してみましょう。アプリ同士と同じように電話機でもおしゃべりできましたか?

続いて、電話機から外線発信もしてみましょう。extensions.conf で外線にかけるときは 0 発信にしたので、例えば 03-9999-8765 にかける場合は、Panasonicの電話機で 「081399998765」とダイヤルします。これもうまくいきましたね! 外線からこちらにかけるテストもしましょう、適当な一般電話から 050-XXXX-XXXX (ご自身でこのSIPトランクに割り当てたTwilio番号) にかけてみましょう、Panasonicの電話機が鳴ったはずです。

これで、VoIP対応のハードウェア電話機でもきちんとSIPトランクを利用できることが体感できました。

今回はここまでにいたします。次回は大詰め、ちょっとトリッキーなことをしてみます。このSIPトランクにもう1つ、Twilio番号を割り当ててみます。そして、

・Twilio番号A への着信時は内線 412601を鳴らし、Twilio番号B への着信時は内線 412603 を鳴らす
・各電話機から 0発信したら Twilio番号A で外線発信、1発信したら Twilio番号B で外線発信

ということをやってみます。オフィスの電話環境っぽくなってきましたね。お楽しみに!

※ 2015/8/21 追記
本記事掲載当時は、SIP Trunk で外線発信時に、番号通知が行えないバグがございましたが、8/21 このバグの修正が完了し、番号通知ができるようになりました。本文より、番号通知が行えない旨の表記を削除いたしました。

この記事をシェア


最新記事

すべての記事へ