asteriskに050plusを収容するには、先日記載したページで取得したID/PASSWORDが必要です。
050plusの通信はsrtpを使っているので、鍵の設定も必要です。
このサイトがわかりやすくて良かったです。
鍵の生成
$ sudo mkdir /etc/asterisk/keys $ cd /etc/asterisk/keys $ sudo ~/src/asterisk-1.8.32.3/contrib/scripts/ast_tls_cert \ -C domain.com -O "My PBX" -d . $ sudo ~/src/asterisk-1.8.32.3/contrib/scripts/ast_tls_cert \ -m client -c ca.crt -k ca.key -C domain.com -O "My PBX" -d . -o 050plus
sip.conf
;050plus maxexpirey=3600 defaultexpirey=3600 tlsenable=yes tlsbindaddr=0.0.0.0 tlscertfile=/etc/asterisk/keys/asterisk.pem tlscafile=/etc/asterisk/keys/ca.crt tlscipher=ALL tlsclientmethod=tlsv1 tlsdontverifyserver=yes register = tls://[nicNm]:[sipPwd]:[sipID]@[tramGwAd]:[Port]/5075/200 ;← SIP番号の200を050plusに当てました。 [050plus] type=friend secret=[sipPwd] port=5075 defaultuser=[sipID] fromuser=[nicNm] host=[tranGwAd] fromdomain=050plus.com context=default insecure=invite,port dtmfmode=inband canreinvite=no disallow=all allow=ulaw allowguest=no callgroup=1 transport=tls encryption=yes nat=yes
のような記述になりますが、全て記述しているわけではありません。
extensions.conf
[default]
; 050plus 着信
exten => 200,1,Dial(SIP/201&SIP/202) ;← 内線201、202のみ着信を受ける。
exten => 200,n,Hangup()
; 発信
exten => .,1,Set(Language()=ja)
exten => _2.,1,Goto(naisen,${EXTEN},1)
; 050plus 発信
exten => _0.,1,Goto(outgoing,${EXTEN},1)
exten => _X.,n,Playback(privacy-incorrect)
exten => _X.,n,Hangup()
[naisen]
exten => _X.,1,NoOp(${CALLERID})
exten => _X.,n,GotoIf($["${EXTEN:0:1}" = "8"]?parkedcall)
exten => _X.,n,GotoIf($["${EXTEN:0:1}" = "9"]?voicemail)
exten => _X.,n,GotoIf($["${EXTEN:2:4}" = "99"]?groupcall)
[outgoing]
exten => _[*#0-9].,1,Dial(SIP/${EXTEN}@050plus,30,r)
exten => _[*#0-9].,n,Congestion
exten => _[*#0-9].,n,Hangup()
;/** to ParkedCall
exten => _X.,n(parkedcall),NoOp(${CALLERID})
include => parkedcalls
exten => _X.,n,ParkedCall(${EXTEN})
exten => _X.,n,Playback(pbx-invalid)
exten => _X.,n,Hangup()
;/** to VoiceMail
exten => _X.,n(voicemail),NoOp(${CALLERID})
exten => _X.,n,VoicemailMain(${CALLERID(num)},s)
exten => _X.,n,Hangup()
;/** error - busy
exten => _X.,n(busy),NoOp("---Calling but -BUSY---")
exten => _X.,n,Voicemail(${EXTEN})
exten => _X.,n,Hangup()
;/** error - noanswer
exten => _X.,n(noanswer),NoOp("---Calling but -NOAWNSER---")
exten => _X.,n,Voicemail(${EXTEN})
exten => _X.,n,Hangup()
extensions.confは理解するまで難しいですね。
このまま記述しても動かないと思います。
詳細は、vo-ip infoを見るといいでしょう。
気が向けば、自分なりに理解したsip.confとextensions.confの解説を書いてみたいと思う。
050plus接続確認
*CLI> sip show registry Host dnsmgr Username Refresh State Reg.Time kar2-f2fcp.050plus.com:5075 N fmc00000000 3585 Registered Sat, 25 Apr 2015 15:39:30