2008年10月アーカイブ

今まで、iPhoneにMDR-NC32NXを直接つけて使っていたんだけど、ケーブルが短めなのと、iPhoneのヘッドホンジャックが上部にあるので、非常に使いづらかった。
せっかくBluetoothを内臓しているiPhoneだけど、A2DPに対応していないので音楽が聴けなくて意味無し状態。
で、今回シグマA・P・OからSBT01と言うiPhoneに対応したA2DP/AVRCP対応のBluetoothアダプタが発表されたので、是非欲しいと思っていた。
9月下旬発売とあったので、いつになったら買えるのかと待っていたら、ついにヨドバシ.comでお取り寄せ可能になっていたのを見たので、ソニーのDRC-BT15Pと一緒に注文した。
9/30に注文して、10/4に届いた。
早速、iPhoneのBluetoothの設定をONにして、まずはiPhoneのHFPとDRC-BT15Pをペアリング。続いて、SBT01をiPhoneに刺して、SBT01とDRC-BT15Pをペアリング。
SBT01のマニュアルによると、iPhoneで音楽を再生するとペアリングモードに入ると書いてあるけど、どうもiPhoneに刺すだけでペアリングモードに入るようだ。
ペアリングが終了すると、ヘッドホンから音楽が聞こえてきた。
そこで、別の電話からiPhoneに電話してみたが、音楽がミュートされてiPhone本体のスピーカとDRC-BT15Pの両方から着信メロディが流れた。しかし、DRC-BT15Pのボタンを押しても反応せず、iPhone側で電話に出ても、電話の音声は聞こえない。ってゆーか、音楽の再生が始まったりして。
こ、これは駄目だったのか!?と思いながら、一度DRC-BT15Pの電源を切って、再度電源を入れたら、今度は電話も音楽も問題なく使えた。(こう言う実験をするとき、softbankのsoftbank同士無料はありがたい)
電話の着信をした場合、本体のスピーカから設定した着信音が聞こえて、DRC-BT15PからはDRC-BT15Pの内蔵着信音が聞こえる。
音質は、まあいわゆるBluetoothレベル。それでも、移動しながら聞く分には十分耐えられるだろう。本格運用は月曜日以降になるので、今はまだ良くわからない。

良かった点:
  • iPhoneをいちいち出さなくても、ボリューム調整、早送り、巻き戻し等ができる。電話もできる。
いまいちな点:
  • SBT01はロックされないので、抜き差しが微妙な感じ。(これは他の人のレビューで見て知っていたのだけれど、実際に自分で触ると何を言っていたのか良くわかった)
  • SBT01は、ペアリングしている相手がいないと常にペアリングモードらしい。電池の減り等を考えても、Bluetoothを使わないときはいちいち外しておかないといけないようだ。ここで、抜き差しがいやーんな感じなのが効いてくる。
  • DRC-BT15Pのおかげで充電器がまた一つ増えた・・・。
現在の自宅のネットワーク構成は、以下のようになっている。

Bフレッツ網 - 光終端装置 - FreeBSD - 家庭内LAN(無線LAN含む)

FreeBSDが、pppoeのクライアントで、NATとパケットフィルタ、各種サーバサービスをやっている。
Bフレッツへは、プロバイダのセッションと、フレッツスクエアのセッションの二つを張っている状態。
私の知識が不足しているので、フレッツスクエアへのセッションもIPv4になっているが、これをIPv6にしないとソニーの新しいテレビサービス(branco)等が使えない。(まあ、使えてもたぶん使わないんだが)
どうしたもんかと悩んでいるときに、フレッツのひかり電話について調べていたら、現在の光/アナログ併用状態よりもひかり電話に乗り換えた方がお得なのではないかと気がついた。
思い立ったらその場で申し込み。今週末に工事の運びとなった。
ひかり電話の場合、光終端装置の先に専用のルータをかませることになる。(Bフレッツと同時の申し込みであれば、光終端装置込みのルータもあるようだ)
どの機種が来るかは届いてみないとわからないが、現在の運用を変える必要がある。
もし、ルータにpppoeパススルーの機能があれば、それを使えば今までとまったく同じ運用ができる。しかし、そうするとがんばって勉強してFreeBSDの設定を変えないとIPv6は使えるようにならない。
せっかくIPv6やUPnPに対応したルータが来るのだから、ここはネットワーク構成を変えるべきだろう。
案1)
ルータ - FreeBSD - 家庭内LAN
ルータにpppoeのセッションを張らせるが、ポートフォワードで全てFreeBSDに投げさせる。FreeBSDは今までtun0とrl1でNATしていたのを、rl0とrl1でNATするようにする。
案2)
ルータ - 家庭内LAN - FreeBSD
ルータにNATをやらせる。FreeBSDはサーバサービスのみポートフォワードを受ける。

たぶん案2で行くと思うのだけれど、わからないことがいっぱいだ。
  • 今までは、namedやsquidやapacheなどが、外向きなのか内向きなのかを判断してサービスを分けていた。しかし、案2にするとFreeBSDが持つネットワークインターフェイスもIPアドレスも一つ(かつ家庭内LANのもの)になるので、どうやってサービスをし分けるかわからない。
  • FreeBSDにNATをさせない場合、squidの透過proxyは使えなくなる。
  • ルータがIPv6のNAT(?)をやってくれたとして、無線LANのアクセスポイントはIPv6に対応しているのか?(これは、マニュアルを調べればわかるだろうけど、対応してない気がする)
とりあえず、工事が終わってからtry & error でやることになると思うけど、今週末も休みが取れそうにないんだよなあ・・・。
ひかり電話用のルータが届いた。
RT-S300SEと言う機種で、紙のマニュアルがついてきたけど、あまり詳しいことは書いていない。
webで調べたら、機能詳細ガイドとか言うものがダウンロードできたので、それを見てみた。(CDがついていたので、それに含まれていると思われる)

pppoeブリッジや、静的NATの設定は普通にあるようだ。
dhcpサーバの設定は、アドレスブロックが指定できるだけのようなので、うちのようにMACアドレス毎に固定のIPを割り当てたい場合には使えない。
ここまででだいたい雰囲気はつかめたので、移行計画。
  • dhcpサーバは今まで通りFreeBSDでやる。
  • DNSサーバもFreeBSDでやる。どうやって内部向けと外部向けを分けるかが課題。
  • 以下のポートを静的NATに設定してFreeBSDに飛ばす。
    • ssh(22/tcp)
    • smtp(25/tcp)
    • smtps(465/tcp)
    • smtp submission(587/tcp)
    • pop3(110/tcp)
    • pop3s(995/tcp)
    • imap(143/tcp)
    • imaps(993, 1194/tcp)
    • pptp(1723/tcp)
    • torrent(2706/tcp)
    • dns(53/tcp, udp)
    • http(80/tcp)
    • https(443/tcp)
    • squid(3128/tcp)
    • vnc(5901/tcp)
    • irc(6667/tcp)
    こうしてみると結構多いなあ。
  • FreeBSDのppp/ipf/ipnat/upnpdは止める。
  • 各種サービスの設定変更
前のプロバイダは、プロバイダ側にtelnetでログインできるサーバがあったので、内部と外部でちゃんと設定がうまく行っているかが確認しやすかったんだけど、今は外部からの設定確認が面倒だ。iPhoneでも使えばwebくらいは確認できるかな。
後は、このルータには無線LANカードが刺せてIPv6ブリッジもできるらしいんだけど、毎月レンタル料がかかるのと、電波強度が弱いみたいな記事も見たので、当面は今までの無線LANアクセスポイントを使うことにする。
交換機の工事が終わったので、家庭内のネットワーク構成を変更した。
夜中の12時過ぎにはじめて、6時頃までかかってしまった。
まずは、ルータの設定のみ変えようと思って、ルータの電源を入れてPCと繋いでみたが、回線と繋がっていないと設定画面までいけないらしく、単体での設定ができなかった。
そこで、先に現在のルータであるFreeBSDの設定を変えた。(ほぼ/etc/rc.confの変更)
  • 4つあるネットワークインターフェイスのうち、つかうものをrl0のみとし、192.168.0.2とする。(以前は192.168.0.1だったが、新しいルータを192.168.0.1とするため)
  • ホスト名を変える。(gwと言う名前だったので、gwは新しいルータに譲る)
  • named周りの設定を変える。
  • pppやipfilter、ipnatが起動時に立ち上がらないようにする。
これで、FreeBSDは再起動して、dhcpサーバを止める。新しいルータを光終端装置、アナログ電話、HUBに繋いで電源ON。
Windows PCからブラウザ経由でルータの設定を変更。
  • プロバイダのpppoeアカウントを設定。フレッツスクエアもデフォルトで有効に
  • LAN側IPを192.168.1.1から192.168.0.1に変更。
  • dhcpサーバを停止。
  • ポート53を192.168.0.2に飛ばす。
これで、ルータも再起動して、FreeBSDのdhcpサーバを起動してみた。
が、WindowsでIPアドレスが取れなくなった。
さんざん悩んで、FreeBSDが自分自身にpingを打っても帰ってこないことに気づく。何度か再起動したりしているうちに、All blockでipfilterが動いていることを発見。
カーネルのoptionsでIPFILTERって書いてあると、/etc/rc.confでipfilter_enable="NO"って書いてあっても、ipfilterが効いてしまうらしい。
しょうがないので、ほとんどpassするようなipf.rulesを書いて、ipfilterを有効にしたら、dhcpとかnamedによる名前引きができるようになった。
後は、postfixとか、squidとか、imapdとか、それぞれ設定ファイルを変更して、LISTENするアドレスを以前のグローバルIPから192.168.0.2に変更していき、無事に起動したら新しいルータに静的NATの設定を追加していく。
次にはまったのがapache。
うちの環境は、名前ベースのバーチャルホスト設定になっていて、たとえばwww.wizard-limit.netだったら普通の外向けのサービス。sns.wizard-limit.netだったらopenpneって感じ。
これの設定をいまいち理解していなかったらしく、LISTENするインターフェイスが192.168.0.2だけになったらうまく動かなくなってしまった。(外から見ると403)
しょうがないので、apacheのマニュアルを読み直して、間違いに気づいて直したら、なんとか元通り見れるようになった。
一応間違いの内容を書いておく。うちのように一つのIPアドレスで名前によるバーチャルホストを使う場合、関係するディレクティブは以下の3つ。
NameVirtualHost
NameVirtualHost *:80
とか書く。IPアドレスベースのバーチャルホストを併用しない場合は、*:80で良い。IPアドレスベースも併用する場合は、使うIPアドレス毎に書く。
VirtualHost
<VirtualHost *:80>
</VirtualHost>
バーチャルホストの数分書く。NameVirtualHostで指定したものと同じアドレスを書く。
ServerName
ServerName www.wizard-limit.net
VirtualHostの内側に書く。
NameVirtualHostで指定されたIPアドレスにアクセスがあると、クライアントが指定した名前とServerNameが一致するVirtualHostを探し、一致したものがあればそれが使われる。一致したものがなければ最初のVirtualHostが使われる。
私の間違いは、VirtualHostとServerNameの意味を逆に捉えていて、VirtualHostで指定した名前が一致するものが選択されると思っていた。(ServerNameはおまけだと思っていた)

ここまでの状況を整理しておく。
  • ルータは192.168.0.1。
  • dhcpサーバは192.168.0.2で、dhcpで指定されるDNSサーバは192.168.0.2。デフォルトルータは192.168.0.1
  • dhcpで案内されるwpad.datで指定されるproxyサーバは、192.168.0.2
次に、フレッツスクエアにアクセスしてみることにする。
ルータの設定は、「要求時接続」で「.fletsにアクセスがあったとき」。
が、ブラウザからアクセスしてもうんともすんとも言わない。
いろいろ試行錯誤した結果、以下の推測をした。
  • DNSサーバがルータではなくFreeBSDで、forwardersにフレッツスクエアのDNSサーバのアドレスを指定しているが、オンデマンド接続だと名前を引きたいときにはフレッツスクエアのDNSサーバにアクセスできない。
  • squid経由でアクセスした場合、名前ではなくIPアドレスで行くので、「.fletsにアクセスがあったとき」と言うルールに引っかからない。
とりあえず、接続形態を常時接続にしたら、名前は引けるようになった。
しかし、やっぱりwebはうまく見れない。
2番目の推測が当たっているとすると、ルータがフレッツスクエア向きのリクエストをうまくルーティングできていないのではないかと思い、ルールに「あて先が.flets」だけではなく、宛先のIPアドレスがフレッツスクエアだったら、を追加した。フレッツスクエアのアドレスブロックは、ルーティングアドレス情報|フレッツ・スクウェア|フレッツ公式|NTT東日本を参考にした。
これで、無事にフレッツスクエアが見れるようになった。

1番目の推測はビンゴだったようで、forwardersの設定を192.168.0.1に変えたら、オンデマンド接続ができるようになった。
ひょっとしたら、これをやるだけでIPアドレスブロックの指定はいらないのかも知れないけど、検証するのが面倒なのでこのまま行く。

続いて、IPv6の実験をしようと思って、brancoにアクセスしてみる。
前は、「IPv6じゃないよん」と言われて会員登録ができなかったけど、今回はルータがIPv6ブリッジになるので、無事に会員登録ができた。
しかし、その後動画を見ようとするとbrancoのクライアントが落ちてしまった。
brancoのサイトを見ていたら、無線LAN版のβが出ていたので、こちらもインストールしてみたが、同じように落ちた。

気を取り直して、今度はフレッツスクエアv6にアクセスしてみた。
IEじゃないとアクセスできなかったが、フレッツ接続ツールとやらをインストールした上、なんかアクティブXコントロールをインストールしたら無線LAN経由でもv6サイトにアクセスできた。(ただし、proxyを経由しない場合のみ。squidをv6対応すれば行けるのかな?)

な~んてことをやっていたら朝になっていた。
openvpn(2)の続き。

ルータが変わったので、vpn周りも再調整。
iPhoneが使うpptpは、単にpptpのポート(1723/tcp)をFreeBSDに飛ばしてやるだけで問題なく繋がった。

openvpnの方は、openvpnのポート(1194/tcp)を飛ばすだけでなく、openvpn.confで昔の外向きのIPアドレスだったところを内向きのIPアドレスに変えたら、接続はできてIPアドレスが振られた。
しかし、昔はこの状態でサーバからクライアントにpingを飛ばせば通信ができるようになったのに、今回はいくらやってもお互いにpingが飛ばない。
FreeBSD 6.2-RELEASE と OpenVPN 2.0 を使った bridge VPN の構築 - markun日記の補足のところに、
bge0 じゃなくて brige0 に IP アドレスを付与しないと、なぜか client から server へ arp が解決できなかった。
と書いてあったので、これが原因と思われる。そう言えば、昔いじっていたときも、bridgeのメンバじゃなくてbridge自身にIPアドレスを振ったような記憶もある。
しかし、今の構成だとFreeBSDのネットワークインターフェイスのうち、繋がっているのは内向きのrl0だけ(これとtap0でbridge0)なので、rl0のIPアドレスを外すのは嫌だ。(時間があれば試してみるけど)
そこで、「bridge0にIPアドレスがあれば良いんだろ~」と言うことで
# ifconfig bridge0 192.168.0.4
なんてやって空いているIPアドレスを割り当て、openvpn.confのserver-bridgeの行を
server-bridge 192.168.0.4 255.255.255.0 192.168.0.211 192.168.0.220
なんてやってみたら、無事にサーバの所属するネットワークと、クライアントの間で通信ができるようになった。
ただし、クライアント→サーバの192.168.0.4だけはpingが帰ってこない。それ以外は、サーバ→クライアントも、クライアント→192.168.0.2(サーバのrl0のアドレス)もpingが帰ってくる。
Windowsのファイル共有も無事に見れたけど、IPアドレス指定のみ。
まあ、非常用のつもりなので、これで困らないから良いか。
昨日物理インターフェイスとbridge0の両方にIPアドレスを割り当ててひどい目にあったので、bridge0だけにIPアドレスを割り当てるように修正。
/etc/rc.conf
network_interfaces="rl0 lo0 tap0"
ifconfig_rl0="up"
ifconfig_tap0="up"
cloned_interfaces="bridge0"
autobridge_interfaces="bridge0"        # List of bridges to check
autobridge_bridge0="rl0 tap0"        # Interface glob to automatically add to the bridge
ifconfig_bridge0="inet 192.168.0.2 netmask 0xffffff00"
defaultrouter="192.168.0.1"
openvpn_enable="YES"
もともと、rl0にはaliasで192.168.0.3も割り当ててあって、jailで使っていたのだけれど、どうせ使っていないのでjailの設定は外してしまった。この場合、192.168.0.3もbridge0に割り当てるのが良いのだろうか?
で、ipf.rulesのインターフェイスをrl0からbridge0に変更して、openvpn.confのserver-bridgeの行を元通り192.168.0.2に戻したら、綺麗に動くようになった。
普段はopenvpnは使わないのに、常にインターフェイスが promiscuous モードになっているのはどうなんだろうと思うけど、まあ実害はないだろう。
RT-S300SEには、アナログ電話を繋ぐポートが二つあるので、一つを今まで使用していた電話に繋いで、もう一つをデスクトップのFAXモデムに繋いだ。
で、設定画面を見ると内線設定のページにIP Phoneとか言うのが5つ登録できるようになっている。
IP 電話って言うのがなんだか良くわからなかったけど、ひょっとしてSIPクライアントが繋がるんじゃないかと思って調べてみた。
まずは、X-Liteと言うのを試してみた。
適当に設定したら、Readyとか出て、RT-S300SEの画面にも、「登録済み」って出てきたんだけど、ダイアルしてみたら「Call failed: Bad Request」と出てうまく行かない。
次に、Express Talkと言うのをダウンロードしてきた。
最初設定がわからなかったんだけど、Options->Linesで以下のように設定したら通話までできるようになった。
  • Server: RT-S300SEのIPアドレス
  • SIP Number: 3(内線番号)
  • Password: RT-S300SEの設定画面で設定するパスワード
そして、Advanced Line Settingsの画面で「Use a different username just for authentication」にチェックし、Auth ID: に0003(RT-S300SEの設定画面の「ユーザID」)を入れた。
あと、Networkタブでは、「Use uPNP to find external IP Address」にチェックが入っていない状態にする。(ログに、「Unable to auto-detect public IP. Using private IP」って定期的に出てくるんだけど、これを消すオプションがどれだかわからない)
これで、PCから外部に電話をかけたり、外部からの電話を取ったり、アナログ電話と内線通話ができるようになったりした。

ついでに、iPhoneのfringにもSIPクライアントが入っているので、iPhoneの方も設定してみた。
設定項目はUser ID, Password, Proxyの3つだけなので、RT-S300SEの方で内線番号とユーザIDを同じにしてみたりしたけど、「User ID or password is incorrect」と出てうまくいかなかった。

FON

| | コメント(0) | トラックバック(0)| Edit
実家がBフレッツとひかり電話とフレッツTVに加入して、今日が工事だと言うので、昨日amazonのお急ぎ便でFON La Fonera (ラ・フォネラ) FON機能搭載 無線LANルータを注文した。
今日の夕方に届いたので、さっそくセッティングしに実家へ。
前準備として、FONに会員登録しておく。(FONのサイトが、やたらと重いんだが・・)
実家につくと、うちのとはタイプが違って光終端装置内蔵のルータが入っていて、テレビと電話は既に使えるようになっていたが、PPPoEの設定はしていかなかったらしい。
さっそくルータのLANポートにLa Foneraを繋いで電源ON。
マニュアルには、My PlaceとFON_FREE_INTERNETの二つのアクセスポイントが見えると書いてあったけど、My Placeのみ見える。
My Placeに繋いで見たけど、外が見えない。ルータを見に行ったらPPPランプがついていないので、本当に工事の人はIPの設定はしていってくれなかったらしい。
しょうがないので、La Foneraの設定をデフォルトのDHCPからPPPoEに変えて、プロバイダの情報を入力する。
すると、外が見えるようになったんだけど、何度か無線LANが切れた。どうも、La Foneraのファームウェアをバージョンアップして、再起動していたらしい。
再起動したら、FON_FREE_INTERNETのAPも見えるようになったので、そちらにアクセスするとログイン画面が出て、ログインするとFONアクセスポイントの登録モード(?)になる。
これって、FONを買ってきて繋いでそのまま放置しておくと、誰か知らない人に登録されてしまってLinusになられてしまうと言うことだよね。セキュリティ的にどうなんだろうか。
La FoneraはDHCP(プライベートアドレスにルーティングする)か、PPPoEを選べるようだけど、ブリッジモードが選べないようで、かつPPPoEのマルチセッションには対応していないようなので、微妙な使い勝手だ。
まあ、実家の人がフレッツスクエアを使うこともないだろうから、このままPPPoEモードで行けば良いだろう。
自宅の電話がひかり電話(IP電話)になったので、IP電話についてちょっと調べた。
PC上のソフトフォン(Express Talk)が子機になって、外線電話が使えるようになった。
PC上で電話ができるなら、FAXだってできるんじゃない?と思っていろいろ調べていたら、asteriskと言うPBXソフトにたどり着いた。
とりあえず、参考になるのはAsterisk - VOIP-Info.jp Wiki
まずは、portsから関係しそうなものをインストール。
  • net/asterisk
  • japanese/asterisk-sound
会議(Meet-Me)をやるには、ZAPTELを有効にしろと書いてあったけど、良くわからなかったのでパス。(やっぱり入れておけば良かったか)
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とかだとできたんだけどな)
    RT-S300SEだとうまく行かなかったX-Liteも、asteriskだと普通に内線登録できた。
    iPhoneのfringだと、asteriskでも駄目だった。無線LANを使う場合でも、一度外に出たりするのかな?

    さて、次回はasteriskでFAXに挑戦しようと思います。(今の所、spandspとasterisk-agxのコンパイルまではできてるんだけど、使い方がわからない状態)
と、言うわけでFAX(まだ動いてないけど、途中経過)。
参考にしたのは、Asterisk fax - voip-info.org
ここに、spandspとか、HylaFaxとか、IAX modemとかいろいろな言葉が出てくる。
とりあえず、最初に出てくるspandspで行ってみようと思う。
AGX Extra Addons for Asteriskを使うと、asterisk 1.4 にpatchをあてずに行けると書いてあるので、インストールしてみることに。
このページに、FreeBSD用のportsが置いてあり、comms/spandspではなく、comms/spandsp-devel を入れろと書いてある。(spandsp-develは、現時点ではspandsp-0.0.4p15)
spandsp-develは、普通にmake一発で入った。
しかし、件のページからダウンロードできるnet/asterisk-agx(asterisk-agx.tar.bz2 を展開するとできる)は、makeするとエラーが出た。
コンパイルエラーを見ると、asterisk.hが発見できていないっぽい。
portsのMakefilesのdo-configureターゲットでは、cmakeに対して -I/usr/local/include とか、-L/usr/local/lib とか渡しているみたいだけど、実際にコンパイルするときのcmakeが見るmakefile(?)には反映されないようだ。
ってゆーかcmakeわからない。
とりあえず、work/agx-ast-addons をつらつらと見ていたら、CMakeFiles/CMakeCCompiler.cmake が怪しかったので、ちょっと修正してみる。
*** CMakeCCompiler.cmake.ORIG   Sun Oct 26 23:42:18 2008
--- CMakeCCompiler.cmake        Sun Oct 26 23:42:38 2008
***************
*** 1,5 ****
  SET(CMAKE_C_COMPILER "/usr/bin/gcc")
! SET(CMAKE_C_COMPILER_ARG1 "")
  SET(CMAKE_C_COMPILER_ID "GNU")
  SET(CMAKE_C_PLATFORM_ID "FreeBSD")
  SET(CMAKE_AR "/usr/bin/ar")
--- 1,5 ----
  SET(CMAKE_C_COMPILER "/usr/bin/gcc")
! SET(CMAKE_C_COMPILER_ARG1 "-I/usr/local/include")
  SET(CMAKE_C_COMPILER_ID "GNU")
  SET(CMAKE_C_PLATFORM_ID "FreeBSD")
  SET(CMAKE_AR "/usr/bin/ar")
これで、コンパイルはできてリンクで止まる。もう、どこをいじっていいのか探すのも面倒だったので、リンクエラーが出るたびにそのときのコマンドラインをコピーして、-L/usr/local/lib/ を追加して実行ファイルを作っていく。
3つくらいやったら最後まで行くので、後は普通にmake install。

これで、/usr/local/lib/asterisk/modulesにいくつかのsoが置かれる。
と、言う所までやって力尽きた。
どこを見たら設定方法が書いてあるんだろうか・・・。(一応、受信したFAXをメールするような設定はAsterisk faxのページに書いてあるけど、まだ試してない)

しっかし、わざわざ通話料払ってこんな面倒なことをするなら、みんなFAXなんか捨ててeメールを使うようにしてくれないものだろうか。
2008年10月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

このアーカイブについて

このページには、2008年10月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年9月です。

次のアーカイブは2008年11月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1