年末のパソコン掃除

大晦日に友人からパソコン(IBM NetVista M41 Slim)の掃除とメンテナンス(ハードディスクの交換)を頼まれました。自分のパソコンもろくろく掃除をしないのですが、なぜか他人からの頼まれ事には一生懸命になってしまいます(笑)。

もう何年も前に自宅サーバーとして FreeBSD をインストールしてあげたマシンでした。時折友人から頼まれては ssh でリモートメンテナンスを行っていました。しかしここ一年ほどはほとんどメンテナンスを行っていないこともあって、システムのグレードアップも行いました。

まずはマシンの蓋を開けて掃除からです。雪が降り積もるようにホコリが溜まっていました。掃除機で吸い取り、刷毛でホコリを掻き出し、エアーダスターを使って細かな場所に溜まったホコリを吹き出しました。それでも電源ユニットの内部は簡単に掃除が出来ず、二ヶ所のネジを取り外して電実ユニットの蓋を開けて掃除機でホコリの吸い出しを行いました。

掃除が一段落するとハードディスクの取り出しを行いました。ハードディスクの IDE や電源のケーブルを取り外すために CD ドライブやフロッピードライブを取り外すことから始めました。そしてハードディスクのケーブル類にアクセス出来るようになってからハードディスクをやっと取り外すことができました。コンパクトなマシンは小ささと引きかえに部品の交換が大変なのが辛いところです。

交換するハードディスクは「カッチョン」と不規則な音を発する現象が一ヶ月前から始まったというものでした。確かにハードディスクのコピー中にも頻繁にカッチン・カッチンと盛大に音を立てていました。もう寿命が近いのでしょうか?

このハードディスクのフォーマットは FreeBSD の標準の UFS2 となっています。160GB のハードディスクから 80GB のハードディスクへのコピーとなりました。ハードディスクの使用済み容量はおよそ 30GB だったのでいつもの dump & restore で内容をコピーすることとしました。

コピーの dump & restore は以前紹介したスクリプトを使用して各スライス毎に dump と restore をしました。容量が少なかったこともあり、作業時間は2時間程度で終了しました。

ハードディスクの交換作業も終了したところで、FreeBSD 7.2 から FreeBSD 8.2 へ一気にアップグレードを行いました。そしてインストール済みの ports のリビルドを行って作業終了としました。しかし順調に作業が出来たわけでなく、ruby のリビルドの最中に ports のデータベースが壊れてしまったようで、リビルド動作が異常となってしまいました。ports のデータベースを消去して、データベースの再構築をしました。これが結構時間がかかるもので、年末の忙しいときにいらいらとさせられました。

最後に電源スイッチの調子が悪いということだったので調べてみると、スイッチボタンがこんなことになっていました。これでは確かに調子悪いはずです。手元にあった同じタイプのマシンのものと交換しておきました。

夜8時に友人の手元にマシンを戻すことが出来ました。これで新しい新年を迎えることができました。

広告

アットニフティの IP 電話の設定(備忘録)

備忘録として残しておきます。
こんな情報でよかったら @nifty の IP 電話を asterisk 1.8 で使用しているときの参考にしてください。一部表示が折り返してある部分がありますので注意してください。

— sip.conf —

[general]

register => 050********@nifty.com:password:authname@nifty-sip/050********

nat=comedia

[nifty-sip]
type=friend
secret=password
defaultuser=authname
fromuser=050********
fromdomain=nifty.com
host=voip09.nifty.com
context=nifty-in
dtmfmode=inband
canreinvite=no
insecure=port,invite
progressinband=no

— extensions.conf —

[globals]
NIFTYPHONE=050********

[default]
; 市外局番の”0″からダイヤルするとIP電話で発信をする。
exten => _0N.,1,Set(CALLERID(num)=${NIFTYPHONE})
exten => _0N.,2,Set(CALLERID(name)=${NIFTYPHONE})
exten => _0N.,3,Dial(SIP/${EXTEN}@nifty-sip,,r)

[nifty-in]
; nifty phone (050-) dial in 201-205

exten => ${NIFTYPHONE},1,Dial(SIP/201&SIP/202&SIP/203&SIP/204&SIP/205,18,TtWw)
exten => ${NIFTYPHONE},2,Answer()
exten => ${NIFTYPHONE},3,Wait(1)
exten => ${NIFTYPHONE},4,Voicemail(201)
exten => ${NIFTYPHONE},5,Hangup()

注意:青色の文字の部分はアットニフティ側から指示される電話番号やパスワードなどを入力する部分です。

asterisk 1.8.8.0 の問題解決

cisco の2台の電話機だけでなく、@nifty で契約している IP 電話も不通になるなど問題山積の asterisk 1.8.8.0 でしたが、意外なことですべて解決してしまいました。

問題となっていた場所は sip.conf の nat= の設定部分でした。

asterisk の初めての設定のときに IP 電話へレジストするところを既存のユーザーの情報を参考にして設定をしていました。

参考にした情報では次の通りでした。

nat=route または never

しかし現在の asterisk 1.8 には nat= の設定に route も never もありませんでした。しかしこの設定のままでもなぜか動作していたようです。しかし asterisk のアップデートやバージョンアップに伴ってこの設定が本当に使用できなくなっていたようです。

現在は次の4つの選択肢しかありませんでした。

nat = no          ; Default. Use rport if the remote side says to use it.
nat = force_rport ; Force rport to always be on.
nat = yes         ; Force rport to always be on and perform comedia RTP handling.
nat = comedia     ; Use rport if the remote side says to use it and perform comedia RTP handling.

そこで nat=comedia としたところ IP 電話は再び開通しました。

そして cisco の2台の電話機も無事にレジスト出来て通話も出来るようになりました。

意外な落とし穴でした。前回の asterisk 1.8.7.3 へのアップデートのときにしっかりと確認をしておけばこんなことにならなかったことと思っています。

しかし生活や仕事に使っている電話が不通になってしまう事態は早く解決しなければならず、電話を止めてまで問題解決をするかどうか?は本当に悩ましい問題です。

asterisk 1.8.8.0 へアップグレード

自宅の FreeBSD なサーバーの perl がアップグレードすることになり、関連する ports もリビルドするのに合わせて、ちょうどやってきた asterisk 1.8.8.0 も一緒にアップグレードしました。

前回 asterisk 1.8.7.2 から 1.8.7.3 へのアップグレードのときには cisco CP-7911G や cisco CP-7940 の動作が不調となる症状が発生したため古いバージョンへとダウングレードしてしまいました。

今回は結果を先にお伝えしますと、前回同様に cisco CP-7911G は SIP のレジストをしない症状が発生していて、そして cisco CP-7940 はレジストは出来ましたが通話が出来ないという asterisk 1.8.7.3 の時と同じ状況となってしまいました。

どうも新しいバージョンではこの症状が出てしまうようです。新しい asterisk でもレジストや通話が出来るような設定方法を見つけ出す必要があるようです。

ただ問題が発生するのは手持ちの2台の cisco の電話機だけで、SIP 専用の電話機やアダプターには問題が発生していません。cisco 固有のものようです。なお cisco に買収された Linksys の SPA941 と PAP2 には問題が発生していません。SIP 専用機ということが原因なのでしょうか?

これから cisco CP-7911G と CP-7940 の設定ファイル(TFTP で転送するファイル)を見直してみようと思います。そういえばオーディオ・コーディックや DTMF の設定をどこでするのか?疑問に思っていたので見直すチャンスのように思っています。

なお2台の cisco の電話機のファームウェアを最新のものにする選択肢は残念ながらありません。ファームウェアに出費するぐらいでしたら新しい SIP 電話機の購入することを選びたいと思っているからです。

[追加]
友人から携帯電話へ「固定電話が通じない」との連絡を受けました。調べてみると @nifty で契約している IP 電話も不通となっていました。asterisk の messages を確認すると nifty のサーバーへ接続出来ていないようです。

[Dec 22 22:15:32] NOTICE[2259] chan_sip.c:    — Registration for ‘050********@voip09.nifty.com’ timed out, trying again (Attempt #2)

IP 電話も不通になるとは!涙が出そうです!

早くなんとかしなければ!

TA-G81112MS のその後

しばらく使用していた TA-G81112MS は結局取り外して、以前の VTL-TA02A へ戻してしまいました。

設定も終了して NTT西日本のひかり電話回線で発信も出来るようになって意気揚々と使っていましたが、いろいろと問題が発見されてその対策方法が見当たらず使用中止することとなってしまいました。

いろいろと気になる問題がありましたが一番のものは FXO 使用時のエコーキャンセル (acoustic echo canceller) と無音圧縮 (voice activity detection) にありました。

このエコーキャンセルを有効にしなければ FXO 使用時(ひかり電話)に耳へ残るエコーが発生します。しかしエコーキャンセルを有効にするとなぜか無音圧縮を有効にしたかのように音を発した瞬間 通話がズタズタに途切れてしまうのです。耳が衰えはじめている私にとっては使用に耐えかねるものでした。TA-G81112MS には無音圧縮の設定項目がありましたが有効/無効を切り替えても改善されませんでした。

思いつく様々な設定の見直しや調整を試みましたが結局私には良い結果を出すことができませんでした。このようなことから使用中止となってしまいました。残念です。

誰かよい設定をご存知の方はぜひ教えてください!

TA-G81112MS の設定

先日から運用を開始した TA-G81112MS の設定の様子を備忘のために残しておきます。

ネット上を検索しても本機(TA-G81112MS、以下本機と表記)の設定事例も見当たらないのでこの情報を必要とする人は参考にしてください。

まず最初の設定はネットワークからです。背面の LAN 端子へノートパソコンを直結します。本機には DHCP サーバーが稼動しているため、自宅内の LAN に接続すると障害が発生する場合があります。 本機とノートパソコンの電源を入れるとノートパソコンのネットワークが本機の DHCP サーバーによって自動的に設定されます。192.168.15. のセクターで設定が行われます。

ノートパソコンのブラウザを立ち上げて、http://192.168.15.1:9999/ へアクセスします。すると本機の設定画面へアクセスできます。ユーザー名とパスワードの問い合わせがありますが、ともに admin です。 本機へアクセスが出来るとステータス(Status)の画面が自動的に表示されます。

設定はネットワークの部分から開始します。本機の LAN の端子で自宅内のネットワークに接続する場合には DHCP サーバーを停止する必要があります。私の場合、最初は本機の LAN 端子で家庭内の LAN に接続するつもりだったので DHCP サーバーを停止しました。その後、WAN 端子を家庭内 LAN へ接続しても設定できることが判明したため、本機の LAN 端子の DHCP サーバーは稼動させることとしました。

次に本機の WAN 端子側の設定を行いました。ここでは初期値に DHCP クライアントが稼動している状態で家庭内の LAN に備えてある DHCP サーバーからネットワークの設定を受信することが出来る状況となっていました。このまま DHCP クライアントが稼動している状況で問題はないのですが、家庭内 LAN 内のパソコンから本機の設定を行うのに都合のよいように固定 IP の設定を行っておきました。私の場合には 192.168.24.253 と固定設定にしておきました。

ネットワークの設定の最後は内部の時計を NTP サーバーと同期させる SNTP の設定を行いました。自宅内 LAN にある NTP サーバーへアクセスするように指定しておきました。

これらのネットワークの設定を記憶させるために左下にある「Apply」ボタンをクリックします。

そしてネットワークの設定内容を反映させるために電源の「切断/入り」を行いました。どうも [System – Restart] の項目では上手くネットワークの設定が読み込まれないようで、電源の「切り/入り」が必要のようです。私はここでハマりました!
 このネットワーク以外の項目でも設定した内容が反映されていないように感じたときには電源の「切り/入り」を行ってみました。 これはネットワークの設定を行った画面のハードコピーです。

これからは [Voip] の項目の設定です。 まず SIP の項目を設定しました。[Voip – SIP Settings] の画面で行います。[Line_1] は FXS の設定で、[Line_2] は FXO の設定となります。ここは asterisk の sip.conf と合わせて設定を行いました。また asterisk サーバーは 192.168.24.101 にあるため、ここへアクセスするように設定をしておきました。その他ポート番号などは変更しませんでした。初期値のままで問題は無いようです。

 

次に [Voip – Line Settings] の設定を行いました。まずは [Line 1 Settings (FXS)]ですが、いろいろと変更してみましたが初期値のままで問題は無いようです。

ここにある [Dial1] は、この FXS の SIP エンティティからテスト呼び出しを行うもののようです。

引き続き [Line 2 Settings (FXO)] の設定です。ここでは公衆回線から着信した呼び出しを asterisk へ転送するために [PSTN to Voip] のところを [Direct Forward] に設定して、呼び出し番号を [3888] へ設定しました。extensions.conf の中で 3888 の番号が着信すると外線着信する電話機を呼び出しするように設定しておきました。

以下は私の設定事例です。

[Voip- IAX Settings] の部分は IAX を使用するときに設定するもののようですが、今回は IAX を使用しないため設定は行いませんでした。

[Call Control] では使用する音声コーディックなどの設定を行いました。
[Default Codec] は初期値に [G.729A] となっていましたが [G.711 u-low] に変更しておきました。エコーキャンセルは disable(無効) から enable(有効) へ変更しました。
この Line 2 (FXO) には NTT 西日本の VoIP アダプタの AD-100SE へ接続しますが、AD-100SE のエコーキャンセルは無効としておきました。本機と AD-100SE の両方ともエコーキャンセル機能を有効にしておくとエコー障害が逆に大きくなるようです。本機に限らずエコーキャンセルについては有効/無効の設定を実際に行って効果がよい方で設定することをお推めします。

以下は私の設定の様子です。

[Voip – Dial Settings] はどうも Line 1 (FXS) と Line 2 (FXO) の間で直接通話するときに使用するものようです。私は本機の Line 1 (FXS) を使用しないつもりだったので設定は行いませんでした。

[Voip – CDR] は本機の通話状況のログとなります。何件まで保存されるのか不明です。
[System – Restart] ではログが保存されていますが、電源の「切り/入り」で消去されてしまいます。


最後に [Advanced] の項目はファイアウォールや仮想サーバーなどの設定になりますが、この機能も使用しないので設定は行いませんでした。

以上で設定は終了です。

050 の IP 電話側から自宅の NTT 回線側へ通話を試み、そして逆方向へも通話を試みて問題がないことを確認して設定を終了しました。本機を使用することによって NTT 回線の音質などへ影響が意外と無かったことが嬉しいところでした。

asterisk 1.8.7.2 という地雷

何気なく asterisk 1.8 をインストールしている FreeBSD なサーバーを portupgrade しました。

Cisco CP-7911G がレジストできない。その他の SIP 電話機も通話は辛うじて出来ますが、突然ピーと音が鳴るなど異常な状況になってしまいました。いわゆる地雷を踏みつけてしまったようです。

久しぶりに asterisk 1.8 の ports をダウングレードすることとしました(涙)

ダウングレードには portdowngrade を使用しました。以下はその時の様子をメモしたものです。cvs サーバーには jp のものでは上手く行かなかったのでネット上で探し出した tw のものを使用して上手く行きました。

# portdowngrade -o -s:pserver:anoncvs@anoncvs.tw.freebsd.org:/home/ncvs net/asterisk

portdowngrade 0.6 by Heiner Eichmann
Please note, that nothing is changed in the ports tree
unless it is explicitly permitted in step 6!

Seeking port net/asterisk ...

Found several matches:
1: net/asterisk
2: net/asterisk-oh323
3: net/asterisk10
4: net/asterisk14
5: net/asterisk14-addons
6: net/asterisk16
7: net/asterisk16-addons

Please choose one: 1

ここでは asterisk 1.8 をインストールしているので番号1番を選択しました。

Downgrading port: net/asterisk
Logging in to :pserver:anoncvs@anoncvs.tw.freebsd.org:2401/home/ncvs
CVS password: anoncvs

Step 1: Checking out port from CVS repository
CVS root directory: :pserver:anoncvs@anoncvs.tw.freebsd.org:/home/ncvs

Step 2: Reading the port history from the CVS repository

Step 3: Analyzing the port history from the CVS repository

Step 4: Load port version numbers and present results
Keys: : next page d : details
p : previous page
: leave presentation and downdgrade if wanted
===============================================================================
number date portversion comment
1 2011/12/10 14:40:37 1.8.7.2 - Update to 1.8.7.2
2 2011/10/17 21:46:34 1.8.7.1 update to 1.8.7.1
3 2011/10/02 15:33:36 1.8.7.0 update to 1.8.7.0
4 2011/09/23 22:24:23 1.8.6.0 - Add LDFLAGS to CONFIGURE_ENV and MAK
5 2011/08/31 20:53:10 1.8.6.0 update to 1.8.6.0
6 2011/07/28 12:43:17 1.8.5.0_1 - Chase net-snmp shlib version bump.
7 2011/07/21 23:01:21 1.8.5.0 - fix WITH_ILBC
8 2011/07/19 17:38:00 1.8.5.0 Makefile only is not enough, commit th
9 2011/07/19 17:34:27 1.8.5.0 - update to 1.8.5.0
10 2011/06/29 10:15:43 1.8.4.4 update to 1.8.4.4
11 2011/06/25 22:51:49 1.8.4.3 update to 1.8.4.3
12 2011/06/02 20:43:44 1.8.4.2 - update to 1.8.4.2
13 2011/05/24 19:38:10 1.8.4.1 - update to 1.8.4.1
14 2011/05/22 17:09:50 1.8.4_1 - prevent deletion of asterisk.conf, i
15 2011/05/10 21:19:34 1.8.4 - update to 1.8.4
16 2011/04/26 18:53:16 1.8.3.3 - add another patch to acually make WI
17 2011/04/22 00:21:42 1.8.3.3 - update to 1.8.3.3
Total lines: 192. Command:
Enter version number to change port to (0: exit): 2



一つ前のバージョン 1.8.7.1 の2番を選択しました。
 
Step 5: Checking out choosen date of the port from the CVS repository

Step 6: Modifying the port
Port: net/asterisk
at : 2011/10/17 21:46:34
Type 'yes' to bring the port to the state of the date above
or 'no' to exit without changing anything. Note, that this only changes
the port, not the installed software! yes or no:yes

ここで yes を入力して ports ツリーをダウングレードしました。
 
 The port has been set to the selected version. Install it if you wish.
If you have portupgrade installed, you should run

portsdb -Uu

now, to see the changes in the ports database. In any case

portupgrade -f asterisk

will install the changed port. Note: if you run cvsup, the port
is changed back to the choosen label!

後は指示にしたがって「portsdb -Uu」と「portupgrade -f asterisk」を行いました。

# portsdb -Uu
# portupgrade -f net/asterisk

いつも最新の ports を入れるしかないのですが、こうしてつまづくと current の恐ろしさの片鱗を感じることとなります(笑)