自宅の電話がひかり電話(IP電話)になったので、IP電話についてちょっと調べた。
PC上のソフトフォン(Express Talk)が子機になって、外線電話が使えるようになった。
PC上で電話ができるなら、FAXだってできるんじゃない?と思っていろいろ調べていたら、asteriskと言うPBXソフトにたどり着いた。
とりあえず、参考になるのはAsterisk - VOIP-Info.jp Wiki。
まずは、portsから関係しそうなものをインストール。
japanese/asterisk-soundは単にmake installでは駄目で、そのときに出てくるpkg-messageに従ってasteriskをコンパイルしなおす必要がある。
そもそもasteriskの思想が良くわかっていなかったので、まともに内線の体系も計画せずにへろへろ設定して、一喜一憂する。
結局、VOIP-info.jp Wikiのサンプルコンフィグを貰ってきて、それをベースにする。
PC上のソフトフォン(Express Talk)が子機になって、外線電話が使えるようになった。
PC上で電話ができるなら、FAXだってできるんじゃない?と思っていろいろ調べていたら、asteriskと言うPBXソフトにたどり着いた。
とりあえず、参考になるのはAsterisk - VOIP-Info.jp Wiki。
まずは、portsから関係しそうなものをインストール。
- net/asterisk
- japanese/asterisk-sound
japanese/asterisk-soundは単にmake installでは駄目で、そのときに出てくるpkg-messageに従ってasteriskをコンパイルしなおす必要がある。
そもそもasteriskの思想が良くわかっていなかったので、まともに内線の体系も計画せずにへろへろ設定して、一喜一憂する。
結局、VOIP-info.jp Wikiのサンプルコンフィグを貰ってきて、それをベースにする。
- まず、外部との窓口となるひかり電話のルータは、外線の番号を持ち、アナログ電話が内線1と2で、内線3~7がIP電話を設定できる。(内線番号は変更可能だけど、そのまま行く)
- asteriskは、ひかり電話のルータに内線7として登録する。
- asteriskに登録するIP電話は、内線201~204を割り当てる。
-
で、設定ファイルは以下のような感じ(関係しそうなところを抜粋)
asterisk.conf[options] languageprefix=yes
sip.conf[general] register => 7:password:0007@192.168.0.1/200 [192.168.0.1] type=friend secret=password Port=5060 username=0007 fromuser=7 host=192.168.0.1 context=default insecure=very dtmfmode=inband disallow=all allow=ulaw [201] type=friend username=ext1 secret=password canreinvite=no host=dynamic [202] type=friend username=ext2 secret=password canreinvite=no host=dynamic [203] type=friend username=ext3 secret=password canreinvite=no host=dynamic [204] type=friend username=ext4 secret=password canreinvite=no host=dynamic
extension.conf[globals] SPEAKINGCLOCK=317 ECHOTEST=333 MYNUMBER=045xxxxxxx [default] ; Ring 201-204 phones exten => 200,1,Dial(SIP/201&SIP/202&SIP/203&SIP/204) exten => 200,n,Hangup ; Local SIP/IAX phones 201-209 exten => _20Z,1,GotoIf($["${USEVOICEMAIL}"="YES"]?use-vm) exten => _20Z,n,Dial(SIP/${EXTEN}&IAX2/${EXTEN},,tT) exten => _20Z,n,Hangup exten => _20Z,n(use-vm),Dial(SIP/${EXTEN}&IAX2/${EXTEN},60,tT) exten => _20Z,n,NoOp(${DIALSTATUS}) exten => _20Z,n,GotoIf($["${DIALSTATUS}"="BUSY"]?vm-rec) exten => _20Z,n,GotoIf($["${DIALSTATUS}"="NOANSWER"]?vm-rec) exten => _20Z,n,GotoIf($["${DIALSTATUS}"="CHANUNAVAIL"]?vm-rec) exten => _20Z,n,Hangup exten => _20Z,n(vm-rec),Answer() exten => _20Z,n,Wait(1) exten => _20Z,n,Voicemail(${EXTEN}) exten => _20Z,n,Hangup ; For Voicemail Recording exten => _20Z*1,1,Answer() exten => _20Z*1,n,Wait(1) exten => _20Z*1,n,Voicemail(${EXTEN:0:3}) exten => _20Z*1,n,Hangup ; For Voicemail Playback exten => 298,1,Answer() exten => 298,n,Wait(1) exten => 298,n,VoicemailMain() exten => 298,n,Hangup exten => 299,1,Answer() exten => 299,n,Wait(1) exten => 299,n,VoicemailMain(${CALLERID(num)},s) exten => 299,n,Hangup ; Speaking Clock exten => ${SPEAKINGCLOCK},1,Answer() exten => ${SPEAKINGCLOCK},n,Wait(1) exten => ${SPEAKINGCLOCK},n,Set(FutureTime=$[${EPOCH} + 5]) exten => ${SPEAKINGCLOCK},n,SayUnixTime(${FutureTime},Japan,YbdAPHM) exten => ${SPEAKINGCLOCK},n,Playback(jp-desu) exten => ${SPEAKINGCLOCK},n,playback(beep) exten => ${SPEAKINGCLOCK},n,Hangup ; Echo Test exten => ${ECHOTEST},1,Answer exten => ${ECHOTEST},n,Wait(1) exten => ${ECHOTEST},n,Playback(demo-echotest) exten => ${ECHOTEST},n,Playback(beep) exten => ${ECHOTEST},n,Echo exten => ${ECHOTEST},n,Playback(demo-echodone) exten => ${ECHOTEST},n,Playback(vm-goodbye) exten => _0.,1,Set(CALLERID(num)=${MYNUMBER}) exten => _0.,n,Set(CALLERID(name)=${MYNUMBER}) exten => _0.,n,Dial(SIP/${EXTEN}@192.168.0.1,120,T) exten => _Z,1,Dial(SIP/${EXTEN}@192.168.0.1,120,T)
この設定で、以下の動作をする。(Voicemail絡みはテストしてないので良くわからない)- 外線着信すると、ひかり電話の内線とasteriskの内線(201~204)が全て鳴る。
- ひかり電話の内線から、7をcallするとasteriskの内線(201~204)が全て鳴る。
- asteriskの内線から、201~204をcallするとasteriskの内線が鳴る。
- asteriskの内線から、0で始まる番号をcallすると外線をかける。
- asteriskの内線から、1~6をcallするとひかり電話の内線が鳴る。
- 317で時報、333でecho test。
- ひかり電話の内線から、asteriskの内線の呼び分け(201だけを呼ぶ、とか)
- 外線から、内線の呼び分け(これは、不可能か?ISDNのTAとかだとできたんだけどな)
iPhoneのfringだと、asteriskでも駄目だった。無線LANを使う場合でも、一度外に出たりするのかな?
さて、次回はasteriskでFAXに挑戦しようと思います。(今の所、spandspとasterisk-agxのコンパイルまではできてるんだけど、使い方がわからない状態)
カテゴリ
Networkトラックバック(0)
このブログ記事を参照しているブログ一覧: asteriskの導入 (1)
このブログ記事に対するトラックバックURL: https://www.wizard-limit.net/cgi-bin/mt/mt-tb.cgi/1721
コメントする