050 plus がwifiで接続出来ない件について調査(未解決)

家の無線LANで050 Plusの調子がどうも悪い。エラー9911が出て接続が出来ないのだ。しかし、3Gで接続完了後、wifiに切り替えると正常に接続出来ることが多い。したがって、初期情報のやりとりで何かのエラーが発生していると推測出来る。だが、結局原因を特定することはできなかった。

■現象
wifi接続時に「エラー接続に失敗しました(9911)」と表示され接続に失敗する

■発生条件

  • HTC製の端末
  • OS: Android 2.3.4
  • ADSL回線(固定IP)のwifi接続時
  • ルーターはNEC IX2015に無線LAN APをぶら下げている。
  • 発生は携帯端末の電源OFF状態からの起動直後の自動起動時が多い

■詳細情報
未登録状態での「テストコール」は正常。
アプリ再起動を行うと、正常に接続出来ることがある。
3G回線では問題なく接続でき、3G回線に接続後、wifi接続に戻すと正常に接続できることがある。
無線LANルーターのパケットフィルタのログにはパケットが破棄・棄却された記録はない。
同じADSL回線でWindows用の050 Plusは問題なく使用出来る。

(スタックトレースの一部)

E/050Service( 2948): d [main] : failed to send Ini-REGISTER
E/050Service( 2948): javax.net.ssl.SSLException: Connection closed by peer
E/050Service( 2948): at org.apache.harmony.xnet.provider.jsse.NativeCrypto.SSL_do_handshake(Native Method)
E/050Service( 2948): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:474)
E/050Service( 2948): at org.apache.harmony.xnet.provider.jsse.OpenSSLSocketImpl.startHandshake(OpenSSLSocketImpl.java:328)
E/050Service( 2948):    at com.oki_access.b.ab.<init>(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.ab.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.c.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.bb.d(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.bb.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.bb.c(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.bb.f(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.bb.b(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.az.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.az.b(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.at.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.c.c.j.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.at.c(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.c.c.j.c(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.at.b(Unknown Source)
E/050Service( 2948):    at com.oki_access.b.d.aa.H(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.b.z.z(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.b.z.b(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.b.d.h(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.c.aa.t(Unknown Source)
E/050Service( 2948):    at com.oki_access.a.c.c.d.r(Unknown Source)
E/050Service( 2948):    at com.oki_access.android.ims.core.service.ImsService.d(Unknown Source)
E/050Service( 2948):    at com.oki_access.android.ims.core.service.i.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.android.ims.a.b.a(Unknown Source)
E/050Service( 2948):    at com.oki_access.android.ims.a.c.onReceive(Unknown Source)
E/050Service( 2948):    at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:748)
E/050Service( 2948):    at android.os.Handler.handleCallback(Handler.java:587)
E/050Service( 2948):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/050Service( 2948):    at android.os.Looper.loop(Looper.java:150)
E/050Service( 2948):    at android.app.ActivityThread.main(ActivityThread.java:4293)
E/050Service( 2948):    at java.lang.reflect.Method.invokeNative(Native Method)
E/050Service( 2948):    at java.lang.reflect.Method.invoke(Method.java:507)
E/050Service( 2948):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
E/050Service( 2948):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
E/050Service( 2948):    at dalvik.system.NativeStart.main(Native Method)

 

不思議なことにルーターのパケットフィルタがパケットを棄却しているわけではないようなのだ。

スタックトレースを読む限り、SSLセッションのハンドシェイクで失敗しているように見える。接続中に相手から接続を終了されてしまう。050 Plusが使用しているのは、ポート5060と5061で、このうちSSL(TLS)を使うのは、ポート5061のSIP-TLSである。また、ここを見るとhttpsで初期設定を取得しているようだ。

調査した結果、SIP-TLSはkar-f2fcp.050plus.comへ接続するようだが、PCからは問題なく接続できる。httpsが問題なく接続出来るのはいうまでもない。AndroidのSSLの実装にバグがあるのだろうか。謎である。

この件については、とりあえず公式サイトにお問い合わせフォームで報告しておいた。うーむ。

追記
解決しました→050 plus のポート関連について調査3(解決編)

「050 plus がwifiで接続出来ない件について調査(未解決)」への12件のフィードバック

  1. はじめまして。 全く同じ問題でスタックしています。 機種はsensationです。
    家の無線での接続は問題なく、docomo ポケットwifiでは9911となります。
    iphone3gs、ipod4では問題なくポケットwifiで使用できていたので悩んでいた所です。
    解決方法が見つかればいいんですが。。。

  2. yuさん、はじめまして。コメントありがとうございます。
    この記事を書いて以降の調査経過について続編をポストしましたが、やはり解決には至っていません。
    まぁAndroidの問題であることは確かだと思います。

    http://btmn.jp/2011/10/07/050-plus-2/

  3. ブタマンさん、本当に凄いですね! 解決できていなくてもこれだけの情報量は凄いです!
    自分はiphoneやめてから、ガラケーとipodとポケットwifiの3台にプラスしてipadを持ち歩いていたのですが、あまりにも邪魔で、とりあえずスマホに050を入れ直して使用する事を目的に本日sensationを購入しました。 しかし、考えが甘かったようで、050plusを導入する事ができていません。 iphone、ipodとは全く違う使用感にLinux OSを初めて使用した時の興奮を感じるのですが、目的の050plusが導入できない事で初日から頭をかかえてしまっています。 いろいろと調べていたら、DNSの変更で接続できたと言う人もいたり、できなかった人がいたり。 舐めていました。。。

    1. yuさん
      海外製の端末は色々と辛いですよね。

      >DNSの変更で接続できたと言う人もいたり、できなかった人がいたり。

      おお! 今ぱっと試して見たのですが、確かにDNSを変えるとうちの場合だと繋がるみたいです。
      試しに、Wifiの詳細設定でIPアドレスを固定し、DNS1をGoogle Public DNS (8.8.8.8) に設定してみると、上手い具合に繋がりました。
      (設定→無線とネットワーク→Wifi設定でMenuキーを押し、静的IPを使用にチェックを入れ、IP設定を手動でする)

      上手くいく理由はよく分からないのですが……。これは盲点でした。
      ルーターのDHCPで配るDNSサーバーのIPを変更できる設定があれば、その設定を変更することでうまくいくかもしれません。
      後日、検証記事をアップしたいと思います。

  4. ブタマンさん
    昨晩、ずっとDNSの変更方法を調べていたのですが、androidもって1日目で使用方法を全くわかっていませんでした。。。
    Wifi設定でメニューを押したら設定画面が出るなんて、全くわかっていませんでした! root取らないといけないのかな?って考えていましたので、本当に助かりました!!
    ブタマンさんのブログ、凄くためになりました! これからも宜しくお願い致します! 本当にありがとうございました!!

    1. と思ったんですが、つながったり切れたりの繰り返しで、結局完全に切れてしまいます。
      完全にわからなくなりました。(笑)

  5. 今朝アップした検証記事ににも書きましたが、Androidの端末の設定を変更するより
    ポケットwifiルーター側のdhcpの設定を変える方がおすすめです。

    しかし、うまく行かないのは謎ですね。
    回線の問題でしょうか。例えばソフトバンクのデータ端末であれば、イーモバにローミングしていることが
    あるので、そのタイミングで切断が発生するのかもしれません。
    またはルーターの仕様で無通信が続くとコネクションを切られてしまうのかもしれません。

    使ってみた感じ、050plusは再接続の性能は良くないのでいったん接続が切れると復帰しないことが
    ありますね。

  6. 結局、docomo wifiルーター hw-01cのDNS設定を変更したり、端末の設定を変更したりと色々と行なってみましたが、結局、一瞬繋がってもすぐに切断、エラー9908と表示されるようになりました。。。 設定しなければ9911。。。 自分の知識不足では解決できそうにありません。。。

    残念ですが今は諦めようと思います。。。

    でも、本当に勉強になりました! ありがとうございました!

    1. うーむ、そうでしたか。
      もしかするとDoCoMo網ではVoIPに関係したパケットが遮断されているのかもしれませんね。

  7. docomoデータ通信Simの場合、プランでVoIP遮断とOpenの2つがあるのですが、Openの設定で使用してはいるんです。。。
    だから、IphoneとかIpodでは使えたんですが。。。 なぜかこの子だけ無理なんですよね。。。
    明日、GalaxyとソニエリのSimフリー端末を友達が持ってくるので、それに050Plus入れてみて、自分の契約で接続できるかやってみます! とりあえず、明日にまた報告いたします。
    本当に親切にありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です