パソコンからQNAPのasteriskに収容した050Plusで電話

この記事は約5分で読めます。

自宅には光が引いてあるが,自宅からする仕事の電話では番号が伝わってしまう関係で別の番号を使いたい.
OCN モバイル one を会社で契約している関係で 050Plus も試しに契約していたが,音質が悪くて,とても仕事の電話では使えない.
PHS もイマイチ回線品質が悪くて微妙なのでやむを得ず自宅で個人契約の光回線の電話で電話していた.

なんとか自宅からの仕事関連の電話を会社契約の 050Plus で使えないかと試行錯誤した結果,まあうまくいったので備忘録として残しておく.

先ほども書いた通り,050Plus は Nexus7 で使うと音がいまいちで,特に相手側にかなり不評でエコーがかかっているとか雑音が入るとか散々である.

そのためにまず,050Plus を asterisk に収容するところから始める.
最初,raspberry pi に asterisk を入れて,050Plus を収容する設定をして動かしていた.
asterisk に050plus収容」や「asterisk をインストールして初期設定&050plus を外線に使う」の辺りを参照.いつもながら感謝.

ところが,これでも音質が悪い.
やっぱりダメかと諦めかけたとき,回線は光だし,wifi は十分スピード出ていると思うので,パソコンでやってみることにした.
(いや,Nexus7だって十分なスピードでネットにつながっているはずなのだが.)
実験してみると AGEPhone を使えば実用レベルの音質になることがわかった.zoiper も音質は悪くなかったが,なぜか着信ができなかったので途中で断念した.

また,別の件で QNAP の管理画面を触っているときに qpkg の中に asterisk が存在することに気づいたので,QNAP で動かすことにした.
これならわざわざ電話のためだけに raspberry pi をつけておく必要がなくなるからである.

ところが,qpkg の asterisk だとなぜか電話出来ない.
(というか,GUIの画面の設定方法がよく分からない.)

よく分からないが,ipkg で asterisk を install してみると動いた.
(QNAP に ssh でログインして,ipkg install asterisk18)
結果オーライである.

なお,/opt/ の下に入る.
設定ファイルは
/opt/etc/asterisk/sip.conf

[general]
context=default
port=5060
bindaddr=0.0.0.0
language=ja

; 050plus and tls
maxexpirey=3600
defaultexpirey=3600
context=default

tlsenable=yes
tlsbindaddr=0.0.0.0
tlscertfile=/opt/etc/asterisk/keys/asterisk.pem
tlscafile=/opt/etc/asterisk/keys/ca.crt
tlscipher=ALL
tlsclientmethod=tlsv1
tlsdontverifyserver=yes
register => tls://<nicNm>:<sipPwd>:<sipID>@60.37.58.170:5061/100
;着信したら内線100を鳴らす

[050plus]
type=friend
secret=<sipPwd>
port=5061
defaultuser=<sipID>
fromuser=<nicNm>
host=60.37.58.170
;host=kar-f2fcp.050plus.com
fromdomain=050plus.com
context=default
insecure=invite,port
dtmfmode=inband
canreinvite=no
disallow=all
allow=ulaw
callgroup=1
transport=tls
encryption=yes
nat=yes

[101]
type=friend
defaultuser=101
secret=<password>
canreinvite=no
host=dynamic

[102]
type=friend
defaultuser=102
secret=<password>
canreinvite=no
host=dynamic

リンク先とほぼ同じである.
<nicNm> <sipPwd> <sipID> は 050Plus の自分の数字.
探し方はAsteriskサーバで050plus収容などを参考に決めればよい.(感謝です.)
<password>は自分で適当に決める.

/opt/etc/asterisk/extenstions.conf

[globals]
;For 050plus 自分の電話番号
MYNUMBER=050xxxxxxxx

[default]
; Ring phones 100
exten => 100,1,Dial(SIP/101&SIP/102)
exten => 100,n,Hangup

;050plus
exten => _0.,1,Set(CALLERID(num)=${MYNUMBER})
exten => _0.,n,Set(CALLERID(name)=${MYNUMBER})
exten => _0.,n,Dial(SIP/${EXTEN}@050plus,120,T)

exten => 101,1,Dial(SIP/101,30,r)
exten => 101,2,Hangup()

exten => 102,1,Dial(SIP/102,30,r)
exten => 102,2,Hangup()

/share/HDA_DATA/.qpkg/autorun/autorun.sh
の自動実行シェルに

/opt/sbin/asterisk -vvv &

を追加した.

これにより,050Plus も AGEPhone で外に電話がパソコンからかけられるようになった.
ちなみにマイクはアナログのマイクをUSBオーディオ変換ケーブルを通して使い,音はスピーカーから出している.
耳が痛くなることもなく快適だ.