Android用SIPアプリCSipSimpleが着信に失敗する問題

またAndroid用SIPアプリCSipSimpletPBXホスティングサービスPBXes.comとを組み合わせをで遊んでいる。PBXes.comのtrunkとしてFusion IP-Phone Smartの自分のアカウントを追加してあるので、その番号宛の電話はPBXes.comを経由してCSipSimpleアプリに着信する…はず。ところが、端末自身は電源が入っていて、しかも確実にwifi圏内にいるのに、着信を逃してしまうことがそこそこな頻度で起こる。

この現象の説明として、ガセとしか思えないような情報もWeb上では散見されるが、「CSipSimple が着信しない!?!?(初心者には向いていない解決法)」、「CSipSimple が着信しない!?!?(簡単な解決法&バッテリー改善?)」に説明されていることは当たっているのだろう。自分が所有する端末は全てルート化してある(…というより、できる機種を意図して選んでる)のでこれら記事で提示されている解決策が実行可能。ただ、自分の場合、既にSysTune for Root Usersというアプリを購入していたので、それら記事で提供されているスクリプトではなく、このアプリを利用してGUIを通じて同様の設定してみた。これによる改善は期待できるだろう。できれば、ルート化していない端末にも使える方法があるといいのだが、これについてはおいおい考えていきたい。

しかし、それとは別の問題がある。CSipSimpleのログを見ると、STUNサーバーが正しく動作してくれていない。CSipSimpleからの問い合わせがタイムアウトしているのが原因でCSipSimpleが正しく動けてないことが多い。というか(CSipSimple自身が認識できる範囲では)全部そうかもしれない。STUNサーバーとして、このリストを見て、s1.taraba.net を設定したり、stun.l.google.com:19302にしてみたりしたが、この問題が完全には解消しない。ちなみに、pingしてみるとレスポンスにかかる時間が(ちゃんと動いているときは)前者のほうが後者より10倍ほど速い。

信頼性が重要なら自分でSTUNサーバーを立てるべきだとそこここで勧められている。残念がら今それはできないので、そういう機会ができるのを待つしかない。ちなみに、STUNだけならよいのだが、ICEも使うように設定すると、少なくともPBXes.com相手では発信も受信もできなくなる。Windows上のSIPクライアントLinphoneだとICEを有効化しても問題ない。理由はさっぱりわからない。

なお、「スマホ用ソフト設定: CSipSimpleの設定」が、わかっている人が書いているようで参考になる。ただ、パフォーマンスを上げるための設定と、節電のための設定が、明示的に区別されていないのが残念。そのまま全部コピーしたわけではないが、WebRTCを利用するようにする設定、オーディオ実装、DSCP値、メディアスレッド数は、指定に合わせてみた。登録SIPプロバイダごとの設定もすべきなんだろうが、とりあえずそこまではやっていない。


追記:

少なくともPBXes.comと合わせて使う、というシナリオにおいてはSTUNサーバーなしでも動作するということを確認した。少なくともこちらはNATの背後にいるわけで、何かしらNAT越えの技術を使わないといけないように思うんだが、何か誤解しているのだろうか。

いずれにせよ、STUNサーバーを使わないようにしてから、発信、受信ともに遅延なく、極めて快調。

PBXes.comに対する設定としては、このスレッドにあるようにT1の値を1000以上にするのが望ましいようだ。CSipSimpleのアカウント設定のウィザードでPBXes.orgを選ぶと自動で1000が設定される模様。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中