宿泊施設用にIP-PBXを構築した覚書(未FIXの仮版)
システム要件は
- 内線専用(外線は不要)
- フロントとお帳場等同時呼び出し
- 各客室内線
- 従業員用内線
Ubuntu/Lubuntu 18.04 + Asterisk 16 で構築
最初にとりあえず、システムを最新状態にしておく。
必要なライブラリーを入れる。
sudo apt -y install libedit-dev libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev
Asteriskのソースを入手
# cd /usr/src # wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz # tar zxvf asterisk-16-current.tar.gz # cd asterisk-16.5.1
Asteriskのコンパイルとインストール
# sudo ./configure --with-jansson-bundled # sudo make menuselect # sudo make # sudo make install # sudo make samples # sudo make basic-pbx # sudo make config # sudo make install-logrotate
「sudo make menuselect」の際にコンソールサイズが80×27以上ないと選択画面が表示されません。
Core Sound PackagesでCORE_SOUND-JA-GSM
q->sでsaveして抜けます
Asterisk設定ファイルの修正
- /etc/asterisk/sip.conf
[general] maxexpirey=3600 defaultexpirey=3600 context=default ;SIPポートは5060 bindport=5060 bindaddr=0.0.0.0 srvlookup=yes allowguest=no disallow=all allow=ulaw allow=alaw allow=gsm language=ja ;電話機用テンプレート(共通設定) [phone](!) type=friend canreinvite=no host=dynamic dtmfmode=rfc2833 callgroup=1 pickupgroup=1 disallow=all allow=ulaw ;ACL ;安全措置のため192.168系以外は受け付けない ;他のネットワークを使用している場合にはここを変更すること deny=0.0.0.0/0 permit=192.168.0.0/255.255.0.0 ;各電話機毎の設定 ;以下各番号ごとにパスワード設定 [201](phone) username=201 secret=pass [202](phone) username=202 secret=pass [203](phone) username=203 secret=pass [205](phone) username=205 secret=pass [206](phone) username=206 secret=pass [207](phone) username=207 secret=pass [208](phone) username=208 secret=pass [210](phone) username=210 secret=pass ;以下、省略....実際にはそれどれの番号で設定が必要
- /etc/asterisk/extensions.conf
[general] writeprotect=no priorityjumping=no [globals] GROUP1=SIP/270&SIP/271&SIP/272&SIP/273&SIP/275 GROUP2=SIP/281&SIP/282&SIP/283&SIP/285&SIP/286&SIP/287&SIP/288 GROUP3=SIP/201&SIP/202&SIP/203&SIP/205&SIP/206&SIP/207&SIP/208&SIP/210& SIP/211&SIP/212&SIP/213&SIP/215&SIP/216&SIP/217&SIP/218&SIP/220& SIP/221&SIP/222&SIP/223&SIP/225&SIP/226&SIP/227&SIP/228&SIP/230 ;自局の着信番号を設定する ;[incoming]セクションを参照 [default] ;200番をフロントに割り当て,270/271/272/273/275をCall ;グループ着信 exten => 200,1,NoOp(フロント着信) exten => 200,n,Dial(${GROUP1},60) exten => 200,n,Hangup ;280番を従業員用に割り当て,281/282/283/285/286/288をCall ;グループ着信 exten => 280,1,NoOp(従業員着信) exten => 280,n,Dial(${GROUP2},60) exten => 280,n,Hangup ;内線呼び出し exten => _2ZZ,1,NoOp(内線呼出) exten => _2ZZ,n,Dial(SIP/${EXTEN},60) exten => _2ZZ,n,Hangup
この記述はこんな感じというだけで、実際に動作確認したのは別に記述しています。
まぁ、ここは、内線だけなら、この程度という参考
Asteriskをユーザモードで動作させる
この設定をしなくても、問題なく動作します。
しかし、ほぼメンテ無しで長時間動作させる為、セキュリティを配慮してユーザモードで動作させるようにします。
sudo groupadd asterisk sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk sudo usermod -aG audio,dialout asterisk sudo chown -R asterisk.asterisk /etc/asterisk sudo chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk sudo chown -R asterisk.asterisk /usr/lib/asterisk
グループ、ユーザを作って、所有者などを変更と
# sudo vi /etc/default/asterisk AST_USER="asterisk" AST_GROUP="asterisk"
コメントアウトされているので頭の「#」を消す。
# sudo vi /etc/asterisk/asterisk.conf runuser = asterisk rungroup = asterisk
コメントアウトされているので頭の「;」を消す。
Asteriskのサービスをスタート
# sudo systemctl restart asterisk # sudo systemctl enable asterisk