1. はじめに
前回は、Rakuten Communications IP電話サービス までの紹介で終わっておりました。 いよいよ、asteriskをセットアップして、Rakuten Communications IP電話サービスとつないで行きます。
最後まで読んでいただければ、Rakuten Communications IP電話サービス とつながった、Astersikサーバと、PC上のソフトフォンのセットアップが終わります。
UbuntuでAsteriskサーバを作成
それでは、順番に実施していきましょう。
Ubuntuのセットアップ
Asteriskを運用するには、Linuxサーバが必要です。
今回はUbuntu Server18.04で構築します。
UbuntuにはServerとDesktop版がありますが、ServerはGUIの画面が省かれており、軽量化が図られているので筆者は好んで使っています。GUIが必要という方は、Desktop版をインストールください。
次のページにアクセスして、Downloadボタンをクリックください。
インストール手順は、youtubeで紹介されておりましたので、貼っておきます。こちらを参照ください。
Asteriskのインストール
Asteriskのバージョンは次の一覧のものがあり、Release TypeがLTSのものが長期安定版で、現在は13と16のLTSバージョンがあります。よく使われているものは13でしょうか、最新の長期安定版を望まれる方は16をよく使われるようです。
Ubuntu18.04のAsteriskバージョンを調べてみると、13となっていました。今回はそのまま13を入れていきます。
# apt-cache policy asterisk
asterisk:
Installed: (none)
Candidate: 1:13.18.3~dfsg-1ubuntu4
Version table:
1:13.18.3~dfsg-1ubuntu4 500
500 http://archive.ubuntu.com/ubuntu bionic/universe amd64 Packages
次のコマンドで、Asteriskをインスールします。
# sudo apt-get -y install asterisk
インストールは以上で終了です。設定に入っていきます。
Asterisk設定ファイルの準備
今回の設定では、SIP電話を2機準備し、Asteriskサーバを介してRakuten Communications IP電話サービスの外線発着信を実現します。
電話概略図
電話網 | Rakuten Communications IP電話サービス | Asterisk Server |-- SIP電話1 内線 1 |-- SIP電話2 内線 2
- SIP電話1,2があり、それぞれ内線1,2で内線通話が可能。
- SIP電話1,2から外線は、0から始まる番号を外線と識別して発信。
- 外線の着信は、SIP電話1,2が一緒に着信音がなり、電話に出たほうが通話状態となる。
- Rakuten Communications IP電話サービスは、同時通話2なので、この構成で、SIP電話1,2が同時に発着信可能。
それでは、Asteriskの設定ファイルを整備します。
設定は、/etc/asterisk/ディレクトリ以下の、sip.conf,extensions.confの2つのファイルで行います。
まず、OS初期状態のファイルを退避しましょう。次のコマンドで、/etc/asterisk/saveフォルダに初期状態のファイルが移動されます。
# cd /etc/asterisk
# mkdir save
# mv sip.conf save
# mv extensions.conf save
設定にはRakuten Communications IP電話サービスから送られてくる、「IP電話B2BUA OpenGateサービス開始のご案内」に記載されている内容を基に入力が必要となる箇所がありますので、注意してください。
以下が「IP電話B2BUA OpenGateサービス開始のご案内」のサンプルです。記載の番号、アカウントは架空のもので、後続の設定例と対応づいています。
それでは、sip.confを編集していきましょう。viで編集します。 viが苦手な方は、端末側で編集してscpなどのファイル転送を行ってください。
# vi /etc/asterisk/sip.conf
書き込む内容は次のとおりです。99998888,hogepass,hogesipは「IP電話B2BUA OpenGateサービス開始のご案内」の内容に読み替えてください。
FileName /etc/asterisk/sip.conf
[general]
defaultexpiry=3600
realm=asterisk
context=default
register => 99998888:hogepass@hogesip
disallow=all
allow=ulaw
qualify=yes
;内線1番
[1]
type=friend
context=group1
defaultuser=1
#SIP電話1のパスワードです。実際は書き換えてください。
secret=pass
host=dynamic
canreinvite=no
disallow=all
allow=ulaw
;内線2番
[2]
type=friend
context=group1
defaultuser=1
#SIP電話2のパスワードです。実際は書き換えてください。
secret=pass
host=dynamic
canreinvite=no
disallow=all
allow=ulaw
[rakuten]
type=friend
defaultuser=99998888
fromuser=99998888
secret=hogepass
host=hogesip
fromdomain=hogesip
context=rakuten-in
insecure=port,invite
careinvite=no
FileName /etc/asterisk/extensions.conf
[globals]
RAKUTEN=99998888
WAIT_TIME=60
SIP_S=SIP/1&SIP/2
[rakuten-in]
;着信の設定
exten => ${RAKUTEN},1,NoOp(着信rakuten-in)
exten => ${RAKUTEN},n,Answer()
exten => ${RAKUTEN},n,Set(AGC(rx)=off)
exten => ${RAKUTEN},n,Set(AGC(tx)=off)
exten => ${RAKUTEN},n,Dial(${SIP_S},${WAIT_TIME},tT)
exten => ${RAKUTEN},n,Hangup
[group1]
;内線用設定
exten => _[1-9],1,NoOp(内線定義)
exten => _[1-9],n,Dial(SIP/${EXTEN},${WAIT_TIME},tT)
exten => _[1-9],n,Hangup
;外線設定
exten => _0.,1,NoOp(外線発信)
exten => _0.,n,Dial(SIP/${EXTEN}@rakuten)
exten => _0.,n,Set(AGC(rx)=off)
exten => _0.,n,Set(AGC(tx)=off)
「Set(AGC(rx)=off)」「Set(AGC(tx)=off)」の行は、AutoGainControlをoffにする設定です。なぜか、電話受信に使うMicrosipで運用する場合、ノイズが出ることが多かったので、offで運用することにしています。 皆さんが運用される場合、該当行を削除いただければ、AutoGainControlがOnになりますので、状況を見て設定変更してください。
以上で設定完了です。
Asteriskの起動
それではAsteriskを起動していきます。コマンドは次を使います。
# sudo systemctl start asterisk
正常起動を確認します。次のように表示されれば、正常起動しています。
# systemctl | grep asterisk
asterisk.service loaded active running Asterisk PBX
正常起動していない場合、メッセージが以下ファイルに出力されていますので、そちらを確認してください。
FileName /var/log/astersik/messages
SIP電話の設定
今回はPCソフトフォンMicrosipをセットアップしていきます。
以下よりダウンロードしてください。
ダウンロード出来たら、起動してインストールを実施してください。
インストールが終わるとMicrosipが起動するので、▼ボタンを押して、設定メニューを開いてください。
「アカウント編集」をクリックしてください。
「アカウント名」「ユーザ名」「ログイン」にsip.confに設定した 1または2を、「パスワード」もsip.confに設定したものを入力してください。
また、「SIPサーバ」「ドメイン」にAsteriskサーバのipアドレスを入力してください。
入力が終わりましたら「保存」ボタンを押してください。
電話番号を入力して電話が掛けられるかどうかテストしてください。
以上ですべての作業が完了です。
Asteriskのコマンド
Asterskの詳細調査は次のコマンドでCLIインタフェースを起動します。-vに続く、vの数によってより詳細のメッセージが表示されますので、状況によって指定してください。3つぐらいで十分と思います。
# sudo asterisk -vvvr
Asterisk 13.18.3~dfsg-1ubuntu4, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 13.18.3~dfsg-1ubuntu4 currently running on ubuntu18 (pid = 3211)
ubuntu18*CLI>
sipコネクションの状況を確認には、sip show peersを使います。 以下は、sipユーザ1とrakutenの接続が行われており、sipユーザ2は未接続であることがわかります。
ubuntu18*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
1/1 192.168.10.102 D Auto (No) No 56867 OK (1 ms)
2/1 (Unspecified) D Auto (No) No 0 UNKNOWN
rakuten/99998888 XX.XXX.XXX.XXX Auto (No) No 5060 OK (29 ms)
3 sip peers [Monitored: 2 online, 1 offline Unmonitored: 0 online, 0 offline]
設定ファイル(sip.conf, extensions.conf)を修正後、次のコマンドにて、動作させてまま、再読込出来ます。(電話中の状況でも切断されません。)
ubuntu18*CLI> reload
どうでしたか?できるだけ簡単に具体的に記載してみました。
もし何か依頼されたい点がありましたら、twitter kazuihitsohiまでご連絡ください。