スマートフォンの設定

Asteiskの最低限の設定が出来たので手持ちのSIP電話機をAsteriskに繋ぎます。
って、SIP喋れる電話機なんて普通の人は持ってないわと思いきや巷に溢れているスマートフォンがSIPを喋れます。(そうでなくてはこの記事全てが成り立たないのですが)

Androidは2.3から標準でSIP機能を持つようになりました。2011年後半から2012年以降に発売されている機種なら設定するだけでSIP電話機になります。iPhoneとAndroid2.2以下は標準ではSIP機能を持ちませんがSIP通話用のアプリをインストールすれば使えるようになります。Skypeアプリを追加するようなものだと思えば良いでしょうか。また、Androidの標準のSIP機能はあまり高機能では無いので高機能なものを使いたい場合はやはりアプリをインストールします。
個人的にはAndroidの標準SIPの機能程度で十分に思いますがツッコミ所はいろいろあるようなので細かいことが気になる人はSIP通話アプリを利用する方が幸せになれます。Android用のSIPアプリではCSipSimpleがその名前とは裏腹に使いこなせないほど高機能で良いです。

通話設定画面
1. Androidの設定メニューから通話設定を開く
アカウントを開く
2. 下にスクロールしてアカウントを開く
アカウント追加画面
3. 右上のアカウントを追加を押す
SIP接続設定
4. SIP接続設定を入力して右上の保存を押す
着信を受けるにチェック5. 着信を受けるにチェックする 設定を抜けて電話をかける6. 設定を抜けて電話をかけてみる

選択画面
7. これまで出なかった携帯通信網で通話するかインターネット通話をするか選択画面が出るようになるので「インターネット通話」を押す。(毎回聞かれます)
ダイヤルした電話相手に繋がれば成功。逆に他所からひかり電話の電話番号にかけてAndroidで着信鳴動し、通話出来ることも確認します。

上手く通信できない場合

SIP電話はNATが苦手です。上手く越えるようにしてあげる必要があります。
この記事の例ではAsteriskサーバーはNAT内ではないのでモバイル環境の方だけが(多くの場合)NATになります。Asteriskサーバー側もNAT内だと少し面倒になるかもしれません。

幸いなことにイーモバイルのGL04PにはSIP ALG機能があります。ルーターがIPアドレスの書き換えを行なってくれるので、この機能をONにしておけば利用者は特に意識しなくてもSIPを使うことができるようになります。
GL04PのWeb設定画面(PC用)からファイアウォールの設定を開きます。

SIP ALGアイコン
SIP ALGのアイコンをクリックします。
SIP ALG有効
SIP ALGを有効にチェックして[適用]。
ポート番号5060はそのまま

SIP ALGが万能は解りませんが実際に使ってみて特に不都合は発生していません。
と、思ってたら2012年12月5日にGL04PのファームウエアをVer.2.1に更新したら着信しないようになってしまった。(調査中です。 以下で対応可)

どうしてもダメな場合

伝送方式をUDPからTCPに変更してみます。
まずはsip.confの変更

[general]
・
・
tcpenable=yes  #前の記事でコメントになってたので;を取る
tcpbindaddr=0.0.0.0:5060
tlsenable=no #前の記事ではコメント且つyesだったがnoに変更;を取る

[192.168.0.128]
・
・
transport=udp  #この1行を追加してudpであることを明示

[5001]
・
・
transport=tcp  #この一行を追加してtcpであることを明示

スマートフォン側の設定で上の写真4の画面の「オプション設定」を選択し、伝送方式をUDPからTCPに変更する。保存すれば終わり。



これで携帯電話(スマホ)でもひかり電話経由での発着信ができるようになったので発信をひかり電話経由にすると電話代が携帯電話の料金からひかり電話の料金に安くなります。番号を周知して着信をひかり電話に統一するとかけてくる相手も電話代が安くなる場合があります。

これだけじゃまだ終わらない。

次はイエデンワもIP電話機にしてみるです。