エンジニアらしき人のひとりごと

100人中100人は興味を示さなくても、100万人居たら1人くらいは面白いと思ってくれそうな、重箱の隅をほじくってみるブログ。

ひかり電話ルーター という名の SIPサーバ

NTTのひかり電話を契約しているフレッツ光ユーザーは、「ひかり電話ルーター」をレンタルします。私は、RV-S340(以下、ルーター)を借りています(VDSL回線用ですね)。このルーターSIP機能に関するメモです。日曜プログラマ向け。

 

pjsipでSIPクライアントを作るときに注意すること

REGISTERは、すんなり成功します。

が、発信のためにINVITE(w/SDP)を送信すると、488応答で拒否されてしまいます。488応答ということは、SDPを許容できないとルーターが判断したことを意味します。同様に、着信時に200OK(w/SDP)を返信すると、やはりルーターはSDPを拒否します。

ということで、pjsipのSDPに関する挙動を変更する必要があります。コード変更するの面倒・・・と悩んでいたら、先人のいい情報見つけました。

最新のpjsua単体でひかり電話の発着信ができない - IGINブルネイ/syasudaの日記(MT版)

つまり、pjsip/include/pjsua-lib/pjsua.h の

#   define PJSUA_SDP_SESS_HAS_CONN    0

 ↓

#   define PJSUA_SDP_SESS_HAS_CONN    1

として、makeするとよいです。

 

公衆電話からの着信

Fromヘッダは、

From:"Coin line/payphone"<sip:anonymous@anonymous.invalid>;tag=hogehoge

のようになります。anonymous@anonymous.invalidは、非通知を表します。公衆電話からの発信なので非通知だよ、ということを表すために、 "Coin line/payphone" をつけているんでしょうね。

 

さいごに

「収容」の説明を探していて、面白いページを見つけたので、ご紹介。

www.ntt-east.co.jp