AsteriskはFree SoftwareのPBX
開発は,Linuxで行われているようだけど,FreeBSD9.2も出たことだしインストールしてみる。
portsに入っていたのは1.8だった。インストール時点のAteriskは11.5.1なので,ソースからインストールしてみる。ちなみにFreeBSd9.2は入れたてなので他に何も入っていない状態。
素材
要求された素材
$ tar xvzf asterisk-11-current.tar.gz $ ls asterisk-11-current.tar.gz asterisk-11.5.1
$ cd asterisk-11.5.1 $ ./configure
$ ./configure --disable-xmldocとすることで作成しないようにする。
configure: Menuselect build configuration successfully completed .$$$$$$$$$$$$$$$=.. .$7$7.. .7$$7:. .$$:. ,$7.7 .$7. 7$$$$ .$$77 ..$$. $$$$$ .$$$7 ..7$ .?. $$$$$ .?. 7$$$. $.$. .$$$7. $$$$7 .7$$$. .$$$. .777. .$$$$$$77$$$77$$$$$7. $$$, $$$~ .7$$$$$$$$$$$$$7. .$$$. .$$7 .7$$$$$$$7: ?$$$. $$$ ?7$$$$$$$$$$I .$$$7 $$$ .7$$$$$$$$$$$$$$$$ :$$$. $$$ $$$$$$7$$$$$$$$$$$$ .$$$. $$$ $$$ 7$$$7 .$$$ .$$$. $$$$ $$$$7 .$$$. 7$$$7 7$$$$ 7$$$ $$$$$ $$$ $$$$7. $$ (TM) $$$$$$$. .7$$$$$$ $$ $$$$$$$$$$$$7$$$$$$$$$.$$$$$$ $$$$$$$$$$$$$$$$. configure: Package configured for: configure: OS type : freebsd9.2 configure: Host CPU : i386 configure: build-cpu:vendor:os: i386 : unknown : freebsd9.2 : configure: host-cpu:vendor:os: i386 : unknown : freebsd9.2 :
ということでコンフィグは成功したらしいので,素直にmakeする
+--------- Asterisk Build Complete ---------+ + Asterisk has successfully been built, and + + can be installed by running: + + + + gmake install + +-------------------------------------------+
+---- Asterisk Installation Complete -------+ + + + YOU MUST READ THE SECURITY DOCUMENT + + + + Asterisk has successfully been installed. + + If you would like to install the sample + + configuration files (overwriting any + + existing config files), run: + + + + gmake samples + + + +----------------- or ---------------------+ + + + You can go ahead and install the asterisk + + program documentation now or later run: + + + + gmake progdocs + + + + **Note** This requires that you have + + doxygen installed on your local system + +-------------------------------------------+
インストールし終わった後,もう一度/ports/netを見ていたらasterisk11というのがあった。何の気なしにdistinfoを見てみたら,11.5.1だった。orz...
# make samplesとすると/usr/local/etc/asteriskにできる。&bf; 変更すると差分が判らなくなってしまうので,とりあえず,DEFディレクトリを作成しそちらに全てコピーしておく
# mkdir DEF # cp * DEF
# pw group add asterisk # pw user add asterisk asterisk:*:1001:1001:Asterisk Owner:/nonexistent:/usr/sbin/nologin
ログインする必要はないのでnologinとしておく
#!/bin/sh # # $FreeBSD: branches/RELENG_9_2_0/net/asterisk11/files/asterisk.in 316277 2013- 04-22 21:11:34Z flo $ # # PROVIDE: asterisk # REQUIRE: LOGIN # KEYWORD: shutdown # # Add the following lines to /etc/rc.conf to enable asterisk: # # asterisk_enable="YES" # . /etc/rc.subr name=asterisk rcvar=asterisk_enable extra_commands="reload" stop_cmd="asterisk_stop" reload_cmd="asterisk_reload" command="/usr/local/sbin/asterisk" command_args="-n -F -U asterisk" pidfile=${asterisk_pidfile:-"/var/run/asterisk/asterisk.pid"} asterisk_stop() { echo 'Stopping asterisk' $command -nqrx 'core stop now' } asterisk_reload() { echo 'Reloading asterisk' $command -nqrx 'reload' } load_rc_config $name asterisk_enable=${asterisk_enable:-"NO"} run_rc_command "$1"
# tail -1 /etc/rc.conf asterisk_enable="YES"
# /usr/local/etc/rc.d/asterisk start Starting asterisk. #
asterisk.orgのGetting Startを参考に設定してみる。
[john] type=friend host=dynamic secret=pass context=users deny=0.0.0.0/0 permit=192.168.1.0/255.255.255.0 [paul] type=friend host=dynamic secret=pass context=users deny=0.0.0.0/0 permit=192.168.1.0/255.255.255.0
# asterisk -r SIP_SERVER*CLI> sip reload
閑話休題 |
sip.confにはsecretでパスワードが書かれている。 パーミションをみると644で誰でも見れる状態となっていたので,chmodで600に変えたら動作しなくなっちゃった。 というのも設定ファイルのオーナーはrootで(make samplesをrootで実行したので)asteriskはasteriskユーザが起動している。 というわけで設定ファイルを見れなくなってしまったからだね。 |
SIP_SERVER*CLI> sip show peers Name/username Host Dyn Forcerport ACL Port Status Description john/john 192.168.1.33 D a A 61887 Unmonitored paul/paul 192.168.1.34 D a A 5060 Unmonitored 2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 2 online, 0 offline] SIP_SERVER*CLI>
[users] exten=>6001,1,Dial(SIP/john,20) exten=>6002,1,Dial(SIP/paul,20)
これは,6001番をダイアルするとSIPでjohnにつなぎますよっとなるらしい。
実際の例をみるともうちょっと複雑で出なかった場合など設定できるよう。
設定した結果は,CLIで確認できる
SIP_SERVER*CLI>dialplan show users [ Context 'users' created by 'pbx_config' ] '6001' => 1. Dial(SIP/john,20) [pbx_config] '6002' => 1. Dial(SIP/paul,20) [pbx_config]
-= 2 extensions (2 priorities) in 1 context. =- SIP_SERVER*CLI>
これで,とりあえず電話できるようになっているらしいので,テストしてみよう!