<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
   <title>彩らいん！もじサイト(ブログ版) blog.sailine.net</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/" />
   <link rel="self" type="application/atom+xml" href="http://blog.sailine.net/atom.xml" />
   <id>tag:blog.sailine.net,2006://1</id>

   <updated>2010-10-22T05:09:29Z</updated>
   <subtitle>徒然なるまま日暮しＰＣに向かひて・・・
(首都圏コンピュータ技術者協同組合の組合員です)
---http://blog.sailine.net---</subtitle>
   <generator uri="http://www.sixapart.com/movabletype/">Movable Type 3.34</generator>

<entry>
   <title>gskyの回答(オリジナル)</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/10/gsky_che_anser.html" />
   <id>tag:blog.sailine.net,2010://1.116</id>
   
   <published>2010-10-22T04:11:12Z</published>
   <updated>2010-10-22T05:09:29Z</updated>
   
   <summary>yahoo知恵袋に回答した内容のオリジナルを書き留めておきます。 http://...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[yahoo知恵袋に回答した内容のオリジナルを書き留めておきます。
<a href="http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1348983723">http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1348983723</a>


「出力を絞っても日本国内で使用すと電波法違反になりますね。」
電波法第四条一に「発射する電波が著しく微弱な無線局で総務省令で定めるもの」とあります。
GSKYを改造して省令に合致した無線設備になれば合法と考えられます。
ただし改造が容易に出来ないので、GSKYのパッケージを破った時点で電波法違反となります。

「シグナルジェネレータにパワーアンプ云々」
上記と同様。売っている(または自作の)上記機器は電波法の微弱電波に合致しているため合法です。
パワーアンプを取り付けた場合は、電波法第四条により総務大臣の免許が必要となりますので、免許申請しない場合は違法です。
ただし、パワーアンプは外付品(ここがGSKYと違うところ)であり、当該SGに取り付けることを合理的に証明することは適いません。したがって取り付けてあることを証明できなけば電波法違反になることは無いと解釈されます。
GSKYはすでに電波法違反状態なので、有無を言わさずなのです。

「3.実験的に遮蔽された云々」
電波暗室でも、電波の発射場所を明示して免許申請します。つまり、販売店が言うところの「(国内では)研究用限定」との表記で免罪されるわけではありません。

「5.海外輸入物のApad云々」
国内で流通させる場合は免許申請をするか技適を通す必要があります。具体的にどのような型番をさしているのか不明ですが、国内正規代理店がある商品については、並行輸入される可能性のある機器については、ほぼ技適を通しているのが現状です。
(SIMロックフリーのIPhoneがいい例)

「5.自作の云々」
(これも第四条根拠)
自作の場合でも同様で、技適を受けるか免許申請が必要です。アマチュア機の場合は近々発売されているものは技適が付いておりますが、目的・用途がWLANと異なりますので、アマチュア局としての免許申請が必要です。
自作機の場合は、総務省に直接免許申請をするか、保証認定を受けたのちに免許申請をすることになります。
なお、アマチュア機の場合は、WLANと違い免許申請を前提としない所持は、たとえ技適が付いていても不法開設とみなされることがあります。
(「免許申請を前提としない」を捜査当局はどのように判定するかは知りません)

「6.免許を受けず云々」
無線局を廃止した場合は遅滞なく空中線を撤去することになっています。(電波法第七十八条)
監督官庁とどのような話があったのかは知る由もないですが、数が数ですので、念書等を差し入れていることは想定できます。
「遅滞なく」がどれくらいの期間かというと判定に困ると思いますが、上記監督官庁に一筆を入れていれば、相当数延長されるのは世の習いです。
ちなみに、PHSの場合は、中央制御システムが動作していないとか末端への通信回線が途絶している場合は、「容易に電波が発射できない」とみなされます。また、過去に免許を受けていたことを勘案しますとスワ第四条違反・・・とならないのが現状でしょう。
もっとも、厳密に判定すると電波法違反になると考えられますが、過去にこのような事例で判例があったことを自分は知りません。ただし、仮に起訴されても無罪になる可能性は高いと思います。

「７．つかまったあとで云々」
電波法は法律として公布手続きがされており、他の法律同様、公布し施行した時点で国民全員が知っているという前提になっております。
GSKYが電波(無線LAN)を発射する機器と認識し、それを利用する目的で購入した時点で「(電波法違反だったとは)知らなかった」は済まされません。一般市民は違反か否かを判定することが求められるのです。

故意でないと判定される可能性のある事例として
たとえば、他人の敷地に立ち入った場合は、「住居侵入罪」となりますが、門扉や塀が無い場合は立ち入ったことすら認識していないと思います。このような場合にのみ「罪を犯す意思がない」と判定されることになります。
とは言っても、事実が発覚した場合は起訴までは拘束されることを覚悟しなければなりません。
ここらへんの判例はそれなりにあると思いますが、どれだけ故意なのかという判定は総合的になされると思います。上記のように100人中90人以上が無意識で立ち入ってしまうような場所であれば警察は事件にしませんし、書類送検されたとしても、検察も起訴をしません。仮に起訴されたとしても無罪になる可能性は高いです。

なお、
----
第八十条 無線局の免許人等は、次に掲げる場合は、総務省令で定める手続により、総務大臣に報告しなければならない。 
一 (省略)
二 この法律又はこの法律に基づく命令の規定に違反して運用した無線局を認めたとき。 
----
となっています。
(「しなければならない」となっているが無報告による罰則はない)
今まで報告なんて無縁と思っていたのですが・・・報告するチャンスに恵まれるかもしれませんね。

※もっと書きたかったのですが字数制限にひっかかりました(笑)]]>
      
   </content>
</entry>
<entry>
   <title>自己認証局</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/10/self-certification.html" />
   <id>tag:blog.sailine.net,2010://1.114</id>
   
   <published>2010-10-06T05:47:48Z</published>
   <updated>2010-10-06T06:26:06Z</updated>
   
   <summary>布施加工で自己認証証明書を作りました。ここからダウンロードすることができます。 ...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="linux雑多" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[<a href="http://fusekako.jp">布施加工</a>で自己認証証明書を作りました。<a href="http://blog.sailine.net/fusekako-ca.der">ここから</a>ダウンロードすることができます。
いまのところテスト運用のみですが、仲間内だけの証明で事足りる場合のルート証明書として利用いただければと思います。

Windowsの場合、ダウンロードしたファイルをダブルクリックしますと、まずは「セキュリティの警告画面」POPUP表示されます。
ダウンロードし保存したファイル名と同一のものが表示されておりましたら、全く問題ありませんので、「開く」をクリックしてください。
<img alt="opender.jpg" src="http://blog.sailine.net/opender.jpg" width="480" height="289" />


つづいて、証明書の詳細が表示されます。発行先・発行者が「Fusekako ROOT CA」であることを確認ください。
<img alt="capicture1.jpg" src="http://blog.sailine.net/capicture1.jpg" width="484" height="485" />


詳細タブを開きまして、「拇印」の内容を確認ください。
「63 15 55 30 51 96 e2 3e 26 7f a2 05 8a 41 9d 2d 67 f4 e1 1b」
と表示されていれば、まちがいなく布施加工の自己認証証明書となっております。
<img alt="capicture1.jpg" src="http://blog.sailine.net/capicture2.jpg" width="484" height="485" />

上記確認できましたら、全体タブを開きまして、「証明書のインストール」を押してください。
以後、Fusekako ROOT CAの証明書が有効となりVerisign等の証明書と同じ機能を発揮します。
Verisignに証明書を頼むとベラボウな証明書発行手数料を課金されますが、Fusekako ROOT CAは今のところ無料です。ただし、上記自己証明書をインストールしていないと「あやしげなサイト」と表示されてしまうので、信用度が低いということはご勘案ください。]]>
      
   </content>
</entry>
<entry>
   <title>著作権表示</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/09/copyright_notice.html" />
   <id>tag:blog.sailine.net,2010://1.113</id>
   
   <published>2010-09-25T06:34:40Z</published>
   <updated>2010-09-25T06:51:11Z</updated>
   
   <summary>このブログは「http://blog.sailine.net」の管理者が著作権を...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="その他" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      このブログは「http://blog.sailine.net」の管理者が著作権を所有しています。
引用については、出展元(http://blog.sailine.netで始まるURL)を明示してください。
その他の使用許諾条件については「http://fusekako.jp/contact/contact.html」よりお問い合わせください。
検索エンジンが、このブログの内容を「キャッシュ」することを目的とした複製については、許諾は必要はありませんが、複製物を表示する場合は、「キャッシュ」であることと、複製を作成した日時を明示してください。

警告
「http://usawebdl5.appspot.com」で始まるURLは、著作権者からなんら許諾を受けずに、当コンテンツを複製し、あたかも自身が作成したかのこどく表示しているので、すぐに表示を中止することを求めます。

著作権者は日本人です。
本ブログによる著作権侵害については、日本の法律が適用されますし、裁判については、著作権者の居住地を管轄する裁判所に提訴することになります。
平成22年9月25日
      
   </content>
</entry>
<entry>
   <title>asteriskの不正アクセス対策</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/09/unauthorized_access_asterisk.html" />
   <id>tag:blog.sailine.net,2010://1.112</id>
   
   <published>2010-09-24T03:00:00Z</published>
   <updated>2010-09-26T04:09:28Z</updated>
   
   <summary>事務所に8個の固定IPを引き、FWをとりつけ、サーバを立てており、メールやWEB...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[事務所に8個の固定IPを引き、FWをとりつけ、サーバを立てており、メールやWEBをホスティングではなく、自前で運用しています。
FWを建ててはあるが、サービス提供ポートは開いているので、サービスレベルのセキュリティはそれなりに万全にする必要があると考えています。
まずは、基本中の基本ですが、アプリケーションが吐くログを監視して、不正アクセスの兆候をつかむように努力しています。
asteriskもこのなかで運用していますが、国際電話も発着信する必要があるのでPSTN側規制をかけることができずにおります。
したがって、アカウント&パスワードを強化するしか対策はないのですが、別システムからワンタイムアカウント&パスワードを発行するような強固な作りとしてしまうと、その都度SIPクライアントに登録しなおす必要があります。さすがに、自動的に追従してくれるSIPクライアントってのはありませんので、利便性とを量りにかけ、長文のアカウント&パスワードとすることにしました。
使用しているアカウント&パスワードは、日本人的思考で作成しているので、欧米的辞書攻撃には少なからず耐えられるとは思っていますが、不正アクセスをのさばらせておくのは許せません・・・
そこで、不正アクセスを検知し、一定時間アクセスをブロックする仕組みを考えてみました。
asteriskの認証が失敗すると、asteriskのログに痕跡が残ります。
痕跡を追跡して、不正アクセスしたIPアドレスを一時的にブロックするようにシステムを作りこんでみました。

asteriskのログを眺めてみますと、認証が失敗した場合に以下のようなログを見つけることができます。
<blockquote>
[date] NOTICE[x] chan_sip.c: Registration from '"!"<sip:!@server-ip>' failed for '220.90.137.98'- No matching peer found
</blockquote>
自分が建てているasteriskでは、LANG=Cで動いているようで、[date]は"Sep  8 17:00:00"のように表示されます。今まで最高秒間20件程度の辞書攻撃をされたことがあり、そうすると1分間で1200件もの認証エラーが記録されたことがありました。
したがって、1分ごとにログを監視することにしました。
Linuxの場合は、cronにより分刻みでスクリプトを実行することができます。
ログを時刻と認証エラー文字列でgrepし、取得されたIPをユニークソートして、不正アクセスしたIPを特定して、OSレベルでブロックするようにしてみます。

OSレベルでブロックしようとするには、iptablesで実現します。
自分んとこのasterisk稼動サーバの構成は、eth0側がLAN、eth1がグローバルIPとなっており、グローバルIP側には基本となるFWポリシーを設定してあります。
iptablesによるパケットフィルタ設定は、iptablesコマンドを1つ1つ実行していくシェル方式がネット検索で引っかかることが多いと思います。ただし多数の設定を入れる場合は、テーブルを作成しておき、一括で読み込ませたほうが早く設定させることができます。
(テーブルに作成する具体的な方法については割愛いたします)

以下、asteriskが動いているサーバの"/etc/sysconfig/iptables"の内容です。(一部省略しています)
<blockquote>
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
#
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:ADDRESSFILTER - [0:0]
:SIPFILTER - [0:0]
:DROPROLE -[0:0]
#ADDRESS FILTER
-A INPUT -j ADDRESSFILTER
-A FORWARD -j ADDRESSFILTER
#SIP FILTER
-A INPUT -j SIPFILTER
-A FORWARD -j SIPFILTER
-A SIPFILTER -m udp -p udp --dport ! sip -j RETURN
#DROP
-A DROPROLE -j DROP
</blockquote>
上記でIPFILTERというテーブルを定義しています。このテーブルに不正アクセスしてきたIPを追加で設定し、一定期間パケットをDROPするようにします。
SIPFILTERテーブルに192.168.0.1からのパケットをDROPする内容を追加するコマンドは以下のとおりです。
<blockquote>
/sbin/iptables -A SIPFILTER -j DROP -s 192.168.0.1
</blockquote>
本来は、udp sipのみをDROPするのが筋でしょうが、当該IPは悪意を持ってアクセスしているのが明白ですので、全パケットをDROPしてもいいと考えます。
udp sipのみをブロックしたい場合のコマンドは、"man iptables"でお調べください。

悪意を持った・・・と書きましたが、大多数はbotのことが多いと思います。設定しっぱなしだと都合が悪いので、一定時間が過ぎたら設定した内容を落とすようにします。
すでに追加されているDROPのIPを削除するコマンドは以下のとおりです。
<blockquote>
/sbin/iptables -D SIPFILTER -j DROP -s 192.168.0.1
</blockquote>
"-A"で設定した内容とまったく同じ内容で"-D"とするのがコツです。同じにしないと、「設定されていないよん」というエラーが出て、削除されません。

アクセスブロックする時間と、ブロックしているIPを管理する必要があります。ファイルに格納するのが一般的のようですが、管理のしやすさ(動的に変更確認できる)と、セキュアに外部から容易に確認できる方法を提供するために、LAN内にあるDBサーバに情報を格納してみました。
利用ライセンスと構築のしやすさから、今回はPostgreSQLで実現させています。
以下asteriskというDBを作成しました。
<blockquote>
CREATE DATABASE asterisk
  WITH OWNER = postgres
       ENCODING = 'UTF8'
       CONNECTION LIMIT = -1;
</blockquote>
DBを作成しましたら、不正アクセスを検知した時刻を格納するテーブル(attack_ip)とブロック中のIPを格納するテーブル(drop_ip)、そしてブロックしている時間を格納するテーブル(interval_table)を作成します。
<blockquote>
CREATE TABLE attack_ip
(
  ipaddress text NOT NULL,
  start_time timestamp without time zone NOT NULL,
  CONSTRAINT pk_attack_id PRIMARY KEY (ipaddress, start_time)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE attack_ip OWNER TO postgres;
CREATE TABLE drop_ip
(
  ipaddress text NOT NULL,
  start_time timestamp without time zone NOT NULL,
  CONSTRAINT pk_drop_id PRIMARY KEY (ipaddress)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE drop_ip OWNER TO postgres;
CREATE TABLE interval_table
(
  interval_hour integer NOT NULL,
  CONSTRAINT interval_table_pkey PRIMARY KEY (interval_hour)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE interval_table OWNER TO postgres;
</blockquote>
interval_tableには、ブロックする時間をあらかじめいれておきましょう。
※下記例では1時間としていますがお好みにより増やしてください
<blockquote>
INSERT INTO interval_table(interval_hour)VALUES(1);
</blockquote>

つづいて、1分ごとに動かすシェルを作成します。
他にcronに登録されている数にもよりますが、毎分1秒ないし2秒に実行されるようです。
したがって、1分前のログと現在時分のログを対象にして不正ログを取得するようにしました。
内容については割愛しますが、実装されているshの仕様とDBおよびログの構成により、適宜変更することになると思います。
<blockquote>
#!/bin/sh
LANG=C
DBNAME="asterisk"
DBUSER="postgres"
DBHOST="192.168.0.21"
DBNAME="asterisk"
ALOG="/var/log/asterisk/messages"
d=$(date "+%b %d %H:%M")
b=$(date -d "1 min ago" "+%b %d %H:%M")
#
SQLA="SELECT ipaddress FROM drop_ip WHERE start_time + CAST((SELECT interval_hour FROM interval_table)||' hour' AS INTERVAL) < NOW()"
for a in $(psql -t -U $DBUSER -h $DBHOST -d $DBNAME -c "$SQLA");do
  SQLB="DELETE FROM drop_ip WHERE ipaddress='$a'"
  psql -U $DBUSER -h $DBHOST -d $DBNAME -c "$SQLB"
  iptables -D SIPFILTER -j DROP -s $a
done
#
for a in $(cat $ALOG\
|grep 'failed for'\
|egrep "$d|$b"\
|sed 's/failed for/\n/'\
|grep -v NOTICE\
|sed "s/'/\n/g"\
|grep .\
|grep "[0-9]"\
|sort -u);do
  SQLC="SELECT COUNT(*) FROM drop_ip WHERE ipaddress='$a'"
  cnt=$(psql -t -U $DBUSER -h $DBHOST -d $DBNAME -c "$SQLC")
  if [ $cnt -eq 1 ];then
    SQLD="UPDATE drop_ip SET start_time = NOW() WHERE ipaddress='$a'"
    psql -U $DBUSER -h $DBHOST -d $DBNAME -c "$SQLD"
  else
    SQLE="INSERT INTO drop_ip (ipaddress, start_time)VALUES('$a',now())"
    psql -U $DBUSER -h $DBHOST -d $DBNAME -c "$SQLE"
    iptables -A SIPFILTER -j DROP -s $a
  fi
  SQLF="INSERT INTO attack_ip (ipaddress, start_time)VALUES('$a',now())"
  psql -U $DBUSER -h $DBHOST -d $DBNAME -c "$SQLF"
done
</blockquote>
自分んとこでは、上記シェルを"/opt/tools/asteriskchk"に実行権限をつけて格納しています。
つづいて、crontabの設定です。(詳細は割愛します)
<blockquote>
* * * * * /opt/tools/asteriskchk
</blockquote>
自分んとこはasteriskをrootで動かしているので、rootのcrontabに作成していますが、構成により変更することになるでしょう。

なお、手動でブロックするアドレスを追加、削除するシェルも用意しておくとよいでしょう。
以下は、ブロック追加のシェル。
<blockquote>
#!/bin/sh
DBNAME="asterisk"
DBUSER="postgres"
DBHOST="192.168.0.21"
DBNAME="asterisk"
ALOG="/var/log/asterisk/messages"
LANG=C
a=$1
cnt=$(psql -t -U $DBUSER -h $DBHOST -d $DBNAME -c "SELECT COUNT(*) FROM drop_ip WHERE ipaddress='$a'")
if [ $cnt -eq 1 ];then
  psql -U $DBUSER -h $DBHOST -d $DBNAME -c "UPDATE drop_ip SET start_time = NOW() WHERE ipaddress='$a'"
else
  psql -U $DBUSER -h $DBHOST -d $DBNAME -c "INSERT INTO drop_ip (ipaddress, start_time)VALUES('$a',now())"
  iptables -A SIPFILTER -j DROP -s $a
fi
</blockquote>
上記を適当なファイルに実行権限付きで格納します。
自分んとこでは、"/opt/tools/asteriskdropip"として格納しました。
手動で"192.168.0.10"のアドレスを追加する場合は以下によりコマンド打鍵してください。
<blockquote>
# /opt/tools/asteriskdropip 192.168.0.10
</blockquote>

つづいて、ブロック削除のシェル。
<blockquote>
#!/bin/sh
DBNAME="asterisk"
DBUSER="postgres"
DBHOST="192.168.0.21"
DBNAME="asterisk"
ALOG="/var/log/asterisk/messages"
LANG=C
a=$1
for a in $(psql -t -U $DBUSER -h $DBHOST -d $DBNAME -c "SELECT ipaddress FROM drop_ip WHERE ipaddress = '$a'");do
  psql -U $DBUSER -h $DBHOST -d $DBNAME -c "DELETE FROM drop_ip WHERE ipaddress='$a'"
  iptables -D SIPFILTER -j DROP -s $a
done
</blockquote>
※cronで実行させるためにはコマンドに対するpassが通っていることが前提

asteriskの招かざるユーザの対応に苦慮している方々の一助になれば幸いです。

上記ソースは自分のところでは動作確認をしていますが、なんら保証はなく、各人の責任においてご利用ください。
著作権は放棄していませんがご利用は自由に行ってください。ただし、出展は明らかにしてください。利用料、ご連絡は不要です。
]]>
      
   </content>
</entry>
<entry>
   <title>n-02bのsipはOPTIONSをサポートしていない??</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/09/n02bsipoptions.html" />
   <id>tag:blog.sailine.net,2010://1.111</id>
   
   <published>2010-09-19T14:19:30Z</published>
   <updated>2010-09-19T15:39:07Z</updated>
   
   <summary>N-02BをAsteriskに収容し、NAT越えの評価をしております。 /etc...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[N-02BをAsteriskに収容し、NAT越えの評価をしております。
/etc/asterisk/sip.configには以下を設定
<blockquote>
[801]
type=friend
username=801
secret=********
context=default
host=dynamic
canreinvite=no
callgroup=1
pickupgroup=1
;dtmfmode=rfc2833
dtmfmode=inband
disallow=all
allow=ulaw
qualify=3600
nat=yes
</blockquote>
「dtmfmode=inband」としているのは、rfc2833としておくと、レジストが外れた後にDTMF操作をするとN-02Bがフリーズしてしまうため。
docomo経由でNECに問い合わせたところ、「バグ」であることを認めinbandの設定で回避してくれとのこと。
(すごいです・・・Asteriskの環境を作り、実験して、結果を報告してくれた。NECさん感謝!)
DTMFいったん決着が付いたものの、依然としてNAT越えREGISTは不安定のまま。
具体的には、REGISTはするもの、一定時間たつとUNREACHABLEになってしまうという現象がつづく。
これはどういうことかと言うと、N-02Bから発信は可能だが着信は不可ということ。
他に、IpodtouchとX-LiteをAsteriskに収容し、MzoneやEMobile経由で発着信がOKとなっているだけに、N-02BのUNREACHABLEは痛い。
なぜ、UNREACHABLEになってしまうのかを調べてみました。

まずは、Asteriskのサーバでtcpdumpによるパケットキャプチャをしてみます。
<blockquote>
# tcpdump -e -vvv -n -i ppp0 port sip
        REGISTER sip:xxx.xxx.xxx.xxx SIP/2.0
        Via: SIP/2.0/UDP 123.45.67.89:5060;branch=xxxxxxx
        Via: SIP/2.0/UDP 192.168.1.101:5060;branch=xxxxxxxx
        From: <sip:801@xxx.xxx.xxx.xxx>;tag=xxxxxxx
        To: <sip:801@xxx.xxx.xxx.xxx>
        Call-ID: xxxxx@801.192.168.1.101
        CSeq: 0 REGISTER
        Contact: <sip:801@123.45.67.89>;expires=3600
        max-forwards: 69
        user-agent: DoCoMo/1.0 N02B
        Content-Length: 0
</blockquote>
これに対するasteriskからの返答が
<blockquote>
        SIP/2.0 100 Trying
        Via: SIP/2.0/UDP 123.45.67.89:5060;branch=xxxxxxx;received=123.45.67.89
        Via: SIP/2.0/UDP 192.168.1.101:5060;branch=xxxxxxx
        From: <sip:801@xxx.xxx.xxx.xxx>;tag=5764761e
        To: <sip:801@xxx.xxx.xxx.xxx>
        Call-ID: xxxxxx@801.192.168.1.101
        CSeq: 0 REGISTER
        User-Agent: Asterisk PBX
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
        Supported: replaces
        Content-Length: 0
</blockquote>
その後数回のREGISTERシーケンスを繰り返した後Asteriskが200をN-02Bに渡してREGIST完了。
この時点で、N-02Bのステータスを見ると、
<blockquote>
# asterisk -r
...
albatross*CLI> sip show peer 801
albatross*CLI>

  * Name       : 801
  Secret       : <Set>
  MD5Secret    : <Not set>
...
  Status       : OK (128 ms)
  Useragent    : DoCoMo/1.0 N02B
  Reg. Contact : sip:801@192.168.0.111
albatross*CLI>
</blockquote>
となっているので、AsteriskはN-02Bが生きていると信じているわけです。
ところが、この後Asteriskから「OPTIONS」リクエストがN-02Bに向かって飛ぶわけです。
たしかに、N-02BのAllowタグは何も無いので、Asteriskとすれば、どんな機能があるか問い合わせをしたいと思うのは納得できます。
<blockquote>
        OPTIONS sip:801@123.45.67.89 SIP/2.0
        Via: SIP/2.0/UDP xxx.xxx.xxx.xxx:5060;branch=xxxxxxx;rport
        From: "asterisk" <sip:asterisk@xxx.xxx.xxx.xxx>;tag=xxxxxxx
        To: <sip:801@123.45.67.89>
        Contact: <sip:asterisk@xxx.xxx.xxx.xxx>
        Call-ID: xxxxxxx@xxx.xxx.xxx.xxx
        CSeq: 102 OPTIONS
        User-Agent: Asterisk PBX
        Max-Forwards: 70
        Date: Sat, 18 Sep 2010 14:28:37 GMT
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
        Supported: replaces
        Content-Length: 0
</blockquote>
ただ、この後がいけません・・・N-02BからのOPTIONSに対しての返信がない。
何回か、AsteriskからOPTIONSを送信したのち、返信が無いということで、N-02Bを「UNREACHABLE」にしてしまっているようです。
ただし、N-02Bからは、呼要求である「INVITE」なんかおかまいなしに飛んできます。
INVITEと、それ以降の通信はつつがなくネゴシエーションが取れているので、UNREACHABLEに気がつかないわけです。

N-02Bの兄貴分であるN906では、sip.confに以下の設定を入れると良いといっていた方がいました。
<blockquote>
;qualify=3600
qualify=no
</blockquote>
回線監視をしないという荒業ですが、これ本当にN906でも有効なのでしょうか??
N906を持っていないので評価のしようがありませんが、少なくともAsteriskからN-02Bに呼び出しをする場合、N-02Bに対して、通話要求であるINVITEの前にOPTIONS要求がAsteriskから出ているようです。
したがって、結局OPTIONS要求に対してN-02Bの返答が無いため、UNREACHABLEとなり、AsteriskからINVITEが出ることは無いのではないかと思います。

SIP関連のRFCである、「RFC3261」では、すべてのUAでOPTIONSメソッドは実装しなければならない(MUST)と記載があるのですがね～

ここらへんの事情を紙におこし、またまたdocomoショップに持っていきました。前回の正式回答は3ヶ月近くかかりましたが、今回はどのくらいで来るのでしょうか。
生産終了品なので、あまり期待してはいけないかな?
とりあえず、N-02Bの後継機であるN-04Bも同様の実装でないことを祈るばかりです。
(他機種の横展開も忘れずにお願いしてきました)]]>
      
   </content>
</entry>
<entry>
   <title>N-02Bと光電話がつながる仕組み</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/02/n02b-siptel.html" />
   <id>tag:blog.sailine.net,2010://1.110</id>
   
   <published>2010-02-28T01:37:12Z</published>
   <updated>2010-03-04T08:02:29Z</updated>
   
   <summary>N-02BにはWLANの機能があり、WLAN接続設定ごとのSIP設定機能がある。...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      N-02BにはWLANの機能があり、WLAN接続設定ごとのSIP設定機能がある。
WLAN接続設定では、無線LANアクセスポイントへの接続方法を設定し、そのなかのSIP設定により、光電話に電話可能とする設定を入れる。
アクセスポイントの接続方法は、一般的な無線LAN子機の設定とほぼ同じで、SSIDと暗号化方式、パスフレーズを設定する。

一般的な家庭では、WEP/WPA/WPA2による暗号化とパスフレーズのみで家庭内LANに接続させているのが一般的だが、公衆無線LANでは少し異なる。
公衆無線LANでは、契約者か否かを判定するため、ログインIDとパスワードによる認証が追加される。この認証は、アクセスポイントに接続可能となった後に、任意のURLでWANにアクセスしようとしたときに、認証画面が現れて、認証させるようすることが多い。(ブラウザ認証)
一部のプロバイダでは、IEEE802.1xによる認証も行われている。IEEE802.1x認証は、ログインIDとパスワードを無線LANの設定と同時に行わせることが可能なので、該当する無線LANサービスのエリアに入った場合にアクセスポイントに接続させ、認証を行い、自動的にインターネット接続させることが可能だ。

ネットワークに接続したあと、光電話アダプタに対して収容認証を行う。認証が終了したあとは、割り当てられた内線番号により内線通話と光電話アダプタ経由で公衆電話網に通信可能となる。また、公衆電話網から着信があった場合に、N-02Bの内線番号が鳴動する設定としていれば、N-02Bから呼び出し音が出るという仕掛け。
NTT東西の光電話アダプタにはソフトフォンを5台まで収容させることが可能。ソフトフォンといっても、N-02Bのこの機能もソフトフォンと同様なので、N-02Bを5台収容させて内線電話として利用することも可能ではある。ただし、転送機能やピックアップなどのPBX機能は残念ながら備えられていない。

PBX機能を備えたシステムとして、「asterisk=アスタリスク」というものがある。
光電話はもちろんだが、アナログ回線・ISDN回線のVoIPアダプタがあれば、asteriskに収容可能。なにしろオープンソースのため、スキルさえあれば自分ひとりで構築できるというのもすごい。

      
   </content>
</entry>
<entry>
   <title>マイエリア(femtocell)の導入</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/02/femtocell_myarea.html" />
   <id>tag:blog.sailine.net,2010://1.109</id>
   
   <published>2010-01-31T20:06:24Z</published>
   <updated>2010-03-02T07:34:21Z</updated>
   
   <summary>とうとうわが家にフェムトセル無線局が開局した。 フェムトセル（femtocell...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[とうとうわが家にフェムトセル無線局が開局した。
フェムトセル（femtocell）とは、半径数十m程度のきわめて小さな範囲をカバーする携帯電話の通話エリアのことだ。
設置は、ドコモの作業員が2名きて、機器調整を含め1時間で完了した。<table><tr><td><img alt="フェムトセル無線局筐体" src="http://blog.sailine.net/femtocellrouter3.jpg" width="240" height="427" /></td><td>
基地局の全容
後ろ出っ張りが携帯の電波を発射するアンテナと思われる。
無線LAN親機と見間違うような感じを受けます。
大きさは、ブロードバンドルータを一回り大きくした感じ。</td></tr></table><table><tr><td><img alt="銘版シール" src="http://blog.sailine.net/femtocellrouter2.jpg" width="240" height="427" /></td><td>型番を表示したシール。
三菱電機製と表示がある。・・・あれれ～三菱電機って携帯から撤退したよね(笑)</td></tr></table><table><tr><td><img alt="ディップスイッチ" src="http://blog.sailine.net/femtocellrouter1.jpg" width="240" height="427" /></td><td>筐体裏にあるデップスイッチ。
開通時に制御局と打ち合わせしながら、値を設定していった。</td></tr></table>
設置は県内二番目(おしい!!)、市内ではもちろん1番目。
電波法によるれっきとした携帯電話の基地局なので、免許状を置いていくかと思ったら、マイエリア開局確認書に免許状の写しが記載されていただけだった。
総務省の「電波利用ホームページ」から無線局免許状情報は検索可能となっているので、条件を指定して閲覧してみる。<a target="_blank" href="http://www.tele.soumu.go.jp/menkyo/SearchServlet?IT=A&HZ=3&FT=2147.4&OX=FB+&FF=2137.6&NA=%8A%94%8E%AE%89%EF%8E%D0%83%47%83%6B%81%45%83%65%83%42%81%45%83%65%83%42%81%45%83%68%83%52%83%82&HC=11&MK=CCC&SY=2010&SM=1&SD=4&OW=FB+0&DC=10&pageID=3&DF=0003337473&styleNumber=21">閲覧結果</a>
(これ表示すると位置がバレバレなんだけどね～)
電波型式は5M00G7W、周波数は2137.6MHz～2147.4MHz、出力は50mW。この筐体で、50mWも出るんだね・・・すごい！！
免許状の写しとだけあって、件の言葉・・・
「法律に別段の定めがある場合を除くほか、この無線局の無線設備を使用し、特定の相手方に対して行われる無線通信を傍受してその存在若しくは内容を漏らし、又はこれを窃用してはならない」
がしっかりと記載されていた。

ドコモのフェムトセルは、「マイエリア」というサービス名で提供され、事前に登録した移動機のみ接続可で、制御局との通信はドコモが負担するのではなく、フェムトセル無線局設置場所の管理者(つまり自分ね)が負担するもの。足回りの回線を負担するのだから、通話料が割引されるのでは・・・と思ったら大間違いで、フェムトセル無線局設置費用と月額980円が余計にかかってしまう。
さらに、マイエリア対応携帯でないと接続させることは不可能だ。一般エリア-マイエリア自動的に切り替え機能が付いた移動機では、自動的にマイエリアに切り替わるように設定しておくと、一般エリアで通話またはiモード接続するたびに、「マイエリアではありません」というダイアログが必ず表示される。鬱陶しいこと甚だしい。
これでメリットと言えば、「イマスカ」サービスが受けられることだけ。これも、マイエリア推奨機種では、マイエリアに在圏したら手動で切り替える必要があるし、マイエリア対応機種では「オートGPS」を動かしていないと利用できない。なんと中途半端なサービスなんだ～]]>
      
   </content>
</entry>
<entry>
   <title>IEEE802.1X認証方式で接続する(N-02B編)</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/01/ieee8021xn02b.html" />
   <id>tag:blog.sailine.net,2010://1.106</id>
   
   <published>2010-01-30T15:00:00Z</published>
   <updated>2010-01-31T00:47:14Z</updated>
   
   <summary>N-02BでWiFi接続でMzoneにつなげたはいいが、毎回、接続のたびにブラウ...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[<a href="http://blog.sailine.net/2010/01/n02bwifi.html">N-02BでWiFi接続</a>でMzoneにつなげたはいいが、毎回、接続のたびにブラウザ認証するのはとても不便だ。
実は、SIPサーバのレジストを自動で行う機能がN-02Bにある。IEEE802.1X認証を行うことが出来れば、Mzoneのエリア内に入ったと同時に、FOMA以外のモードで電話の送受が出来るしかけだ。

Mzoneのページを見ると・・・あるある。IEEE802.1X認証をサポートしているではないか。
設定はいたって簡単。
<a href="http://blog.sailine.net/2010/01/n02bwifi.html">N-02BでWiFi接続</a>で説明したが、セキュリティ方式設定をWEPからIEEE802.1Xに変えてあげればよい。

以下、前回説明した〔セキュリティ方式選択〕を選択以降をWEPから802.1Xに変更。
<img alt="n02b-18.jpg" src="http://blog.sailine.net/n02b-18.jpg" width="195" height="350" />


証明書を選択。
<img alt="n02b-19.jpg" src="http://blog.sailine.net/n02b-19.jpg" width="195" height="350" />


ルート証明書を選択。
<img alt="n02b-20.jpg" src="http://blog.sailine.net/n02b-20.jpg" width="195" height="350" />


表示されたimode証明書すべてを選択しインストール。
※このページではすでに全部の証明書がインストールされてます
<img alt="n02b-21.jpg" src="http://blog.sailine.net/n02b-21.jpg" width="195" height="350" />


EAPフェーズⅡ用IDを選択。
<img alt="n02b-22.jpg" src="http://blog.sailine.net/n02b-22.jpg" width="195" height="350" />


IDを選択。
<img alt="n02b-23.jpg" src="http://blog.sailine.net/n02b-23.jpg" width="195" height="350" />


この画面で、プロバイダより払い出された接続用IDを設定する。
<img alt="n02b-24.jpg" src="http://blog.sailine.net/n02b-24.jpg" width="195" height="350" />


パスワードを選択。
<img alt="n02b-25.jpg" src="http://blog.sailine.net/n02b-25.jpg" width="195" height="350" />


この画面で、プロバイダより払い出された接続用IDにおけるパスワードを設定する。
<img alt="n02b-26.jpg" src="http://blog.sailine.net/n02b-26.jpg" width="195" height="350" />

入力が終了したら、左下に表示される「確定」「完了」をコンプリートして設定を終了させよう。
サービスエリア外でも設定可能だし、サービスエリア内だったら、自動的に接続される。
接続されると、左上のアイコンで「WLAN」マークが点灯する。]]>
      
   </content>
</entry>
<entry>
   <title>オートGPS</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/01/autogps.html" />
   <id>tag:blog.sailine.net,2010://1.108</id>
   
   <published>2010-01-25T14:59:59Z</published>
   <updated>2010-01-26T02:24:49Z</updated>
   
   <summary>最近の携帯は、web・メール・カメラは当然で、GPS機能もついている。 もちろん...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[最近の携帯は、web・メール・カメラは当然で、GPS機能もついている。
もちろん、HTMLでGPSデータを引っ張るようにすることもでき、GPS測定をアプリに入れればユーザが意識しなくても、定期的に測定したGPSデータを送信することも可能。
ドコモでは、この冬モデルから、アプリを立ち上げておかなくとも、携帯のネイティブ機能でGPSデータを送信させることが可能となる携帯が登場した。
「オートGPS機能」搭載携帯がそれだ。
ただし、オートGPS機能を使うためには、オートGPS機能をON/OFFするアプリを作る必要がある。つまり、この「オートGPSスイッチアプリ」を起動し、設定を完了したらアプリを終了した後に定期的にGPSデータを送信しつづけるという仕組み。

ドコモでは、このオートGPS機能をASPとして提供するソリューションを発表した。
<a href="http://www.nttdocomo.co.jp/info/news_release/page/100125_00.html?ref=nr_index">2010/01/25ドコモ報道発表</a>
携帯から送信されてきたGPSデータによりPUSH配信を行うというもので、携帯から受信したGPSデータを情報提供事業者向けにもリアルタイムで提供し、提供GPSデータにより、情報提供事業者が独自のコンテンツを携帯にPUSH配信することが可能となっている。
なにぶん新しいネイティブ機能なので、それなりの需要が出てくるのは数年先と考えられる。ただ、リアルな位置情報がネイティブで取れるというのは画期的な仕組みだと思うし、他のキャリアも追従するのではないかと思う。
]]>
      ここまで書いて、「iコンシェル」とどう違うの??と思った方、かなりのドコモフリークとお見受けする。
iコンシェルは、ドコモ内で完結してしまっており、移動機のGPSデータが企業側には行かない。さらには、エンドユーザがiコンシェルのサービス料を支払うという導入障壁がある。
新規/機種変時にKBを含めてiコンシェル契約をしてもらうようにがんばっているようだが、レコメンドがきめ細かくなされていないので、使用していくうちに、やめてしまうユーザが多いのではないだろうか・・・
これに比べて、情報提供を限定できる仕組みがあれば、目的を持ってユーザはダウンロードするので、息が長いと考える。
さらには、移動機の情報が入手できるので、さらにきめ細かなレコメンドが可能だ。
今後のサービス拡大に期待したい。
   </content>
</entry>
<entry>
   <title>N-02BでWiFi接続</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2010/01/n02bwifi.html" />
   <id>tag:blog.sailine.net,2010://1.105</id>
   
   <published>2010-01-18T06:43:50Z</published>
   <updated>2010-01-20T16:32:44Z</updated>
   
   <summary>FOMA契約をしていると、800円追加で公衆無線LANサービスが受けられる。 h...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="ネタ帳" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[FOMA契約をしていると、800円追加で公衆無線LANサービスが受けられる。
<a href="http://www.nttdocomo.co.jp/service/data/mzone/bill_plan/u_publiclan/">http://www.nttdocomo.co.jp/service/data/mzone/bill_plan/u_publiclan/</a>
以前、Ipodtouchを求めたときに知り、衝動で加入してしまった次第。
このたびめでたく?N-02Bを購入してしまったので、WiFi対応であるN-02BをMozoneにつなげてみた。
他の公衆無線LANと同じで、アクセスポイントにWEPでつなぎ、ブラウザを立ち上げてID/PASSを入れて認証するしくみとなっている。

まず、アクセスポイントに接続する設定をしよう。


N-02Bを開き、WLANキーを長押しする。以下の図を参照してほしい。
<img alt="n02bkeybord.jpg" src="http://blog.sailine.net/n02bkeybord.jpg" width="194" height="345" />


通話モード画面で出るので、「DUALモード（WLAN優先）」または、「WLANシングルモード」を選択する。
<img alt="n02b-01.jpg" src="http://blog.sailine.net/n02b-01.jpg" width="195" height="350" />


設定後モードが切り替わる。
<img alt="n02b-02.jpg" src="http://blog.sailine.net/n02b-02.jpg" width="195" height="350" />


キーボートのMENUボタンを押し、メインメニュー画面から、〔設定/NWサービス〕を選択
<img alt="n02b-03.jpg" src="http://blog.sailine.net/n02b-03.jpg" width="195" height="350" />


2ページ目の〔WLAN設定〕を選択
<img alt="n02b-04.jpg" src="http://blog.sailine.net/n02b-04.jpg" width="195" height="350" />


暗証番号4桁（初期値：0000）を入力→〔確定〕
<img alt="n02b-05.jpg" src="http://blog.sailine.net/n02b-05.jpg" width="195" height="350" />


〔プロファイル設定〕→プロファイル01を選択
※プロファイル01以外にも設定できる
<img alt="n02b-06.jpg" src="http://blog.sailine.net/n02b-06.jpg" width="195" height="350" />
<img alt="n02b-07.jpg" src="http://blog.sailine.net/n02b-07.jpg" width="195" height="350" />


〔WLAN詳細設定〕を選択
<img alt="n02b-08.jpg" src="http://blog.sailine.net/n02b-08.jpg" width="195" height="350" />


〔ESSID設定〕を選択
<img alt="n02b-09.jpg" src="http://blog.sailine.net/n02b-09.jpg" width="195" height="350" />


6.MzoneのESSIDを入力(画面に表示されちゃってますが各自でご確認を)→〔確定〕
<img alt="n02b-10.jpg" src="http://blog.sailine.net/n02b-10.jpg" width="195" height="350" />


〔セキュリティ方式設定〕を選択
<img alt="n02b-11.jpg" src="http://blog.sailine.net/n02b-11.jpg" width="195" height="350" />


〔セキュリティ方式選択〕を選択
<img alt="n02b-12.jpg" src="http://blog.sailine.net/n02b-12.jpg" width="195" height="350" />


〔WEP〕を選択
<img alt="n02b-13.jpg" src="http://blog.sailine.net/n02b-13.jpg" width="195" height="350" />


KeyID画面〔1〕を選択
<img alt="n02b-14.jpg" src="http://blog.sailine.net/n02b-14.jpg" width="195" height="350" />


〔64bit/HEX〕を選択
<img alt="n02b-15.jpg" src="http://blog.sailine.net/n02b-15.jpg" width="195" height="350" />


Mzoneで払い出されたWEPキーを設定
<img alt="n02b-16.jpg" src="http://blog.sailine.net/n02b-16.jpg" width="195" height="350" />
設定後、確定キー


これで、アクセスポイントにつながるわけだが、実際にインターネットに接続するためには、さらに認証を通る必要がある。
認証は、ブラウザを起動して、適当なURLを打つと、認証画面が出てくるので、IDとパスワードを入力する。


以下、Mzoneの設定方法を参考にした
<a href="http://www.nttdocomo.co.jp/service/data/mzone/usage/wireless_lan/index.html">つなげ方</a>
]]>
      
   </content>
</entry>
<entry>
   <title>N02B早速壊れる</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2009/12/n02b_broken.html" />
   <id>tag:blog.sailine.net,2009://1.104</id>
   
   <published>2009-12-30T15:25:27Z</published>
   <updated>2009-12-30T15:37:35Z</updated>
   
   <summary>前回のつづき 12月27日に手に入れたN02Bであるが、早速不具合が発覚。 アプ...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="部品" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[<a href="http://blog.sailine.net/2009/12/n02b_autogps.html">前回のつづき</a>
12月27日に手に入れたN02Bであるが、早速不具合が発覚。
アプリを立ち上げようとして、砂時計のままになってしまいやむなく強制リセット。
つづいては、通話中に自動的にリセットがかかってしまい、通話が中断。

仕方ないので、近所のドコモショップに行って調査してもらう。
アプリの砂時計は再現されなかったものの、通話中リセットは心当たり?があるらしく、新品交換対応となった。
さすがdocomoの代理店。量販店とは違い、立派な対応である。
発売直後の最新機種を買い増し(機種変と言うらしいがFOMAはSIMを変えれば元々の電話も使用できるのでMOVA時代の呼び方に抵抗がある)は量販店とそれほど値段が変わらないので、対応のよいドコモショップで買い求めたくなる。次回の買い増しは量販店で買うのはよそう。]]>
      
   </content>
</entry>
<entry>
   <title>オートGPS対応携帯を手に入れる</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2009/12/n02b_autogps.html" />
   <id>tag:blog.sailine.net,2009://1.103</id>
   
   <published>2009-12-27T11:00:00Z</published>
   <updated>2009-12-30T15:25:25Z</updated>
   
   <summary>仕事の都合から新しい携帯を入手した。オートGPS対応のdocomo PRIME ...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="部品" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[仕事の都合から新しい携帯を入手した。オートGPS対応のdocomo PRIME series N-02Bだ。<a href="http://blog.sailine.net/N02B_photo.html" onclick="window.open('http://blog.sailine.net/N02B_photo.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">(写真)</a>
早速、オートGPS対応アプリを入れて動かしてみる。アプリを動かした後にGPS測位履歴を開いてみた。単独測位とオートGPS測位との履歴が
<a href="http://blog.sailine.net/gpsrecord_tab.html" onclick="window.open('http://blog.sailine.net/gpsrecord_tab.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">別タブ</a>で表示されている。
過去にGPSを使ったアプリの開発をしたことがあり、細かく測位をするのと引き換えに電池のモチが悪くなることにジレンマを感じていた。今回も、心なしか電池の減りが激しいように思う。
上部はひっくり返してタッチパネル仕様となる。<a href="http://blog.sailine.net/touchpanel_n02b.html" onclick="window.open('http://blog.sailine.net/touchpanel_n02b.html','popup','width=1024,height=768,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">(画像)</a>
今回開発したオートGPSアプリはタッチパネル仕様なのだが、なぜかN02Bでタッチしてもうまく動かない(笑)
今年の年末・年始休暇は例年よりも数日少ない。N02Bをどこまでいじり倒せるか・・・

N02Bの他の主な機能は以下の通り。
・送信5.7Mbps注意3のFOMAハイスピード
・Wi-Fi（無線LAN）対応
・アクセスポイントモード
・ホームU対応
・マイエリア

ということで、自宅のWiFiにつないでみようとおもう。]]>
      
   </content>
</entry>
<entry>
   <title>CentOS5.3でNTFSをマウントする</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2009/12/centos53_ntfsmounthtml.html" />
   <id>tag:blog.sailine.net,2009://1.101</id>
   
   <published>2009-12-20T11:27:48Z</published>
   <updated>2009-12-20T12:09:26Z</updated>
   
   <summary>X40からX200に乗り換えの続き。 NTFSフォーマットのディスクをCentO...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="linux雑多" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[<a href="http://blog.sailine.net/2009/12/x40x200.html">X40からX200に乗り換え</a>の続き。
NTFSフォーマットのディスクをCentOS5.3にマウントしてサルベージした。
通常にインストールした場合は、NTFSをマウントすることが出来ないようだ。以下、うちの環境でマウントしようと試みたログ。
<blockquote>
[root@lCentOS5.3 ~]# cat /var/log/messages<br />
server kernel: usb 1-5: new high speed USB device using ehci_hcd and address 6<br />
server kernel: usb 1-5: configuration #1 chosen from 1 choice<br />
server kernel: scsi8 : SCSI emulation for USB Mass Storage devices<br />
server kernel: Vendor: Generic Model: USB Disk Rev: 9.02<br />
server kernel: Type: Direct-Access ANSI SCSI revision: 02<br />
server kernel: SCSI device sdf: 78140160 512-byte hdwr sectors (40008 MB)<br />
server kernel: sdf: Write Protect is off<br />
server kernel: sdf: assuming drive cache: write through<br />
server kernel: SCSI device sdf: 78140160 512-byte hdwr sectors (40008 MB)<br />
server kernel: sdf: Write Protect is off<br />
server kernel: sdf: assuming drive cache: write through<br />
server kernel: sdf: sdf1 sdf2<br />
server kernel: sd 8:0:0:0: Attached scsi disk sdf<br />
server kernel: sd 8:0:0:0: Attached scsi generic sg5 type 0<br />
[root@lCentOS5.3 ~]# fdisk -l<br />
デバイス Boot Start End Blocks Id System<br />
/dev/sdf1 * 1 4529 34239208+ 7 HPFS/NTFS<br />
/dev/sdf2 4530 5167 4823280 12 Compaq 診断<br />
[root@lCentOS5.3 ~]# mount -t ntfs /dev/sdf1 /mnt<br />
mount: unknown filesystem type ‘ntfs’<br />
</blockquote>
どうやら、ntfsファイルをマウントするにはなにかコツがいるようだ。早速google先生に問い合わせてみると、以下のパッケージが必要と判明した。
<p>File System in Userspace (FUSE) utilities</p>
<p>Linux NTFS userspace driver</p>
これのパッケージはカーネルに同居させるため、さらに
<p>Dynamic Kernel Module Support Framework</p>
<p>Linux kernel module for FUSE (Filesystem in USErspace)</p>
も必要とわかる。
FUSE関連はATrpmsに、dkmsはepel、fuse-ntfs-3gはrpmforgeのリポジトリにあるようだ。リポジトリを設定し、早速yumでインストールしよう。
<blockquote>
[root@lCentOS5.3 ~]# yum -y dkms dksm-fuse fuse fuse-ntfs-3g<br />
...<br />
Installed:<br />
  dkms.noarch 0:2.1.0.1-1.el5<br />
  dkms-fuse.noarch 0:2.7.4-1.nodist.rf<br />
  fuse.x86_64 0:2.7.4-8_12.el5<br />
  fuse-ntfs-3g.x86_64 0:2009.4.4-2.el5.rf<br />
Complete!<br />
</blockquote>
たまに、atrpmがビジーのときがある。
<blockquote>
[root@lCentOS5.3 ~]# yum -y dkms dksm-fuse fuse fuse-ntfs-3g<br />
Downloading Packages:
http://dl.atrpms.net/el5-x86_64/atrpms/stable/fuse-2.7.4-8_12.el5.x86_64.rpm: [Errno 4] <br />
IOError: <urlopen error (111, '\xe6\x8e\xa5\xe7\xb6\x9a\xe3\x82\x92\xe6\x8b\x92\xe5\x90\xa6\xe3\x81\x95\xe3\x82\x8c\xe3\x81\xbe\xe3\x81\x97\xe3\x81\x9f')><br />
Trying other mirror.<br />
</blockquote>
などと出たら他のミラーに切り替えよう。rikenやkddilabsがいいかもしれない。

yumでのinstallが完了したら、fuseモジュールをカーネルに読み込ませる。このとき、以下のようにnot foundが出たら要注意。
<blockquote>
[root@lCentOS5.3 ~]# modprobe fuse
FATAL: Module fuse not found.
</blockquote>
現在実行しているカーネルと読み込んだfuse-ntfs-3gが異なっているためだ。
この場合は、fuseモジュール類をいったんリムーブ(削除)し、最新のkernelを読み込んでリブートしてから、fuseを入れよう。]]>
      
   </content>
</entry>
<entry>
   <title>RHNのパッケージアップデータとyum</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2009/12/rhnyum.html" />
   <id>tag:blog.sailine.net,2009://1.102</id>
   
   <published>2009-12-07T00:08:39Z</published>
   <updated>2009-12-07T00:44:42Z</updated>
   
   <summary>仕事で使っているサーバ機にはRed Hat Enterprise Linux (...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="linux雑多" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      仕事で使っているサーバ機にはRed Hat Enterprise Linux (v. 5 for 64-bit x86_64) がインストールされている。RedHat系Linuxのソフトウェアはカーネルも含めてrpmによるパッケージ管理をしている。
rpmは基本的にはバイナリによる提供である。rpmのインストールにあたり他の必要なパッケージのインストールが必要かどうか分かるようになっている。
さらに進んで、必要なパッケージをユーザが指定することなく自動的に取得して適用してくれる仕組みも提供されている。それがyumだ。
もちろん、バグFIXやセキュリティアップデートもパッケージにバージョン情報が入っているので、updateスイッチを指定することにより、自動的に最新のパッケージが適用される仕組みである。
RedHatのサブスクリプションを購入するとサポートが付いてくる。と同時に、GUIによるパッケージアップデータが利用可能となる。仕組みは簡単で、サーバ側から、初期インストール時に導入パッケージ一覧をRHNに送信し、以後、定期的に更新されたパッケージ情報をRHNに送りつけるようになっている。
これをRHNが管理していて、アップデートが必要なパッケージについて、登録されたメールアドレス宛に情報を提供してくれるというわけ。
GUI画面でも各システム毎に、エラータ数・適用対象パッケージ数が表示される。パッケージを自動更新としておくと、サーバからRHNに通信したときに、RHNから適用パッケージが返され、サーバ側で次回のパッケージ取り込みのリストに取り入れられるという仕組み。基本的には、yumの自動アップデートをcronで実現しておけばよいことではあるが、適用済み、未適用のパッケージがGUIに表示されるのがありがたい。なぜなら、自宅環境では隣にサーバがあり家庭内LANから即つなげて確認できるが、商用環境においては実機につなげての確認は、そうおいそれとは出来ないことが多いためだ。

      
   </content>
</entry>
<entry>
   <title>X40からX200に乗り換え</title>
   <link rel="alternate" type="text/html" href="http://blog.sailine.net/2009/12/x40x200.html" />
   <id>tag:blog.sailine.net,2009://1.100</id>
   
   <published>2009-12-05T04:50:00Z</published>
   <updated>2009-12-06T08:19:46Z</updated>
   
   <summary>長年使用していたIBM(あえてレノボとは言わない)X40がとうとう釈迦った。 9...</summary>
   <author>
      <name>もじらa-chan</name>
      
   </author>
         <category term="部品" scheme="http://www.sixapart.com/ns/types#category" />
   
   
   <content type="html" xml:lang="ja" xml:base="http://blog.sailine.net/">
      <![CDATA[長年使用していたIBM(あえてレノボとは言わない)X40がとうとう釈迦った。
9月に120Gの増床工事をして少し延命しようと思ったのだが、それがいけなかったらしい。
直接の原因は重ショックなのだが、1m以上の落下試験を行っての出荷のため、増床工事の不具合と信じたい。
というわけで、今度はレノボのX200に乗り換えたのだが、大事な設定ファイルはX40のディスクの中だ。とりあえず元々取り付けてあった<a href="http://blog.sailine.net/IMG_0249_R.html" onclick="window.open('http://blog.sailine.net/IMG_0249_R.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">換装元のディスク</a>から、HDDのサルベージを試みた。

HDDは日立Travelstar C4K40。1.8インチ型で電源は3.3V/5Vの両方対応しているらしい。
<a href="http://blog.sailine.net/IMG_0249_R.html" onclick="window.open('http://blog.sailine.net/IMG_0249_R.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">写真</a>で見ての通りIDEではあるが、最近はIDE-USB変換の<a href="http://blog.sailine.net/IMG_0250_R.html" onclick="window.open('http://blog.sailine.net/IMG_0250_R.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">キット</a>が販売されている。う～ん、便利な世の中になったものだ。

早速、HDDに挿してみた。(<a href="http://blog.sailine.net/IMG_0251_R.html" onclick="window.open('http://blog.sailine.net/IMG_0251_R.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">挿したときの画像</a>)
コードがクセになっており多少危なっかしいように思えるが、とりあえずLinuxマシンにつないでみた。
(<a href="http://blog.sailine.net/IMG_0252_R.html" onclick="window.open('http://blog.sailine.net/IMG_0252_R.html','popup','width=640,height=480,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false">つないだときの画像</a>)
接続部分の赤色LEDが点灯し、直後にあの独特なヘッドトラック音が聞こえてきた。

<blockquote>
server kernel: usb 1-5: new high speed USB device using ehci_hcd and address 6<br />
server kernel: usb 1-5: configuration #1 chosen from 1 choice<br />
server kernel: scsi8 : SCSI emulation for USB Mass Storage devices<br />
server kernel:   Vendor: Generic   Model: USB Disk          Rev: 9.02<br />
server kernel:   Type:   Direct-Access                      ANSI SCSI revision: 02<br />
server kernel: SCSI device sdf: 78140160 512-byte hdwr sectors (40008 MB)<br />
server kernel: sdf: Write Protect is off<br />
server kernel: sdf: assuming drive cache: write through<br />
server kernel: SCSI device sdf: 78140160 512-byte hdwr sectors (40008 MB)<br />
server kernel: sdf: Write Protect is off<br />
server kernel: sdf: assuming drive cache: write through<br />
server kernel:  sdf: sdf1 sdf2<br />
server kernel: sd 8:0:0:0: Attached scsi disk sdf<br />
server kernel: sd 8:0:0:0: Attached scsi generic sg5 type 0<br />
</blockquote>
ということで、手持ちのLinuxでは問題なく認識されていることがわかる。
つづいて、fdiskコマンドを実行してみた。
<blockquote>
デバイス Boot      Start         End      Blocks   Id  System<br />
/dev/sdf1   *           1        4529    34239208+   7  HPFS/NTFS<br />
/dev/sdf2            4530        5167     4823280   12  Compaq 診断<br />
</blockquote>
sdf1が本体、sdf2にリカバリが入っているのだろう。

早速、マウントしてみた。
<blockquote>
# mount -t ntsf /dev/sdf1 /mnt
mount: unknown filesystem type ‘ntfs’
</blockquote>
およよ、ntfsは標準で入っていないのかぁ。そういえば、以前MAXTERのバックアップストレージをマウントしようとして挫折したことがあったっけ。

ということで、サルベージはまだまだ続く。]]>
      
   </content>
</entry>

</feed>

