お世話になっております。
こちらでは大変有効な情報と皆様のご助力に支えられ、先日、無事に当初の目的を達成することが出来ました。
改めて、心より御礼申し上げます。
また、今回の取り組みに於いて、私の知識不足と勘違いにより、サーバに不要な設定が反映し、それが原因で致命的な誤動作をしておりました。
本日、その修正を終え、全ての問題を正しく回避することが出来ました。これを踏まえ、これまでの私の投稿が、今後の誰かの役に立てばと思い、まとめとして投稿させて頂きます。
== サーバ設定情報 ==
環境: FreeBSD10.3 Asterisk11.22.0
回線: NTT西日本 光ネクスト隼 ひかり電話オフィスタイプ 4ch2番号
接続方式: ONU-Asterisk 直収
ネットワーク環境: NIC A(社内LANへ接続) NIC B(ONUへ接続)
NIC B IP:DHCP
defaultrouter IP:172.20.0.242(社内LAN用インターネット接続ルーターアドレス)
gateway_enable="YES"
== NTT西日本情報 ==
SIPサーバアドレス:124.XXX.XX.1
DHCP払出し情報:IP:124.XXX.XX.48/30 ゲートウェイ:124.XXX.XX.49(NIC B のDHCP設定により自動的に設定されます)
ひかり電話番号:05XX-XX-XX01(主契約番号) 05XX-XX-XX02(追加番号)
== テストクライアント ==
PC:Windows7 SoftPhone:X-lite4.9.3 x 2 内線201・203
携帯:iPhone6 SoftPhone:AGEphone2.4.2 内線202
RICOH複合機 MP3503 内線901(現時点にて通信できず。レジストのみ確認)
前準備として、NTTのSIPサーバアドレスを調べます。私の場合は、NTTのビジネスフォンから取得しましたので、皆様の参考にならず申し訳ないです。
次に、/etc/hosts ファイルにSIPサーバアドレスとSIPドメインネームを追記します。
/etc/hosts 抜粋
#
::1 localhost localhost.my.domain
127.0.0.1 localhost localhost.my.domain
124.XXX.XX.1
ntt-west.ne.jp#
Asterisk の sip.conf を編集します。
/usr/local/etc/asterisk/sip.conf 抜粋
[general]
port=5060
bindaddr=0.0.0.0
allowguest=no ; セキュリティのために設定
vmexten=voicemail ; Voicemail 必須でしたので設定
disallow=all
allow=ulaw
allow=alaw
allow=ilbc
allow=gsm
t38pt_udptl=yes,fec,maxdatagram=400 ; RICOH複合機でFAXを使いたかったです。
language=ja ; 日本語を設定
[ntt]
type=peer
context=fromline
host=124.XXX.XX.1
nat=never
fromdomain=
ntt-west.ne.jpcanreinvite=update
dtmfmode=inband
session-timers=originate
session-expires=3600
session-minse=300
session-refresher=uas
[201]
type=friend
callerid="USER1"
defaultname=201
secret=pass
host=dynamic
directmedia=no
disallow=all
allow=ulaw
allow=alaw
allow=gsm
mailbox=201
registertrying=yes
;--------------------------------------
[202]
type=friend
callerid="GUEST"
defaultname=202
secret=pass
host=dynamic
directmedia=no
disallow=all
allow=ulaw
allow=alaw
allow=gsm
mailbox=202
registertrying=yes
;--------------------------------------
[901]
type=peer
callerid="FAX"
defaultname=901
secret=pass
host=dynamic
directmedia=no
disallow=all
allow=ulaw
allow=alaw
allow=gsm
allow=g729
;mailbox=901
setvar=FAXOPT(gateway)=yes
実際には内線203の設定も書いてます。
内線901がRICOH複合機なのですが、残念ながら、現時点では動作しません。
携帯から外線経由で電話を掛けると、無呼出で即断し、ビジーが流れます。何か Asterisk の設定が違うのか?複合機側の設定に問題があるのかわかりません。
次に、extensions.conf を編集します。
/usr/local/etc/asterisk/extensions.conf
[general]
static=yes
writeprotect=yes
autofallthrough=yes
[globals]
TEL1=05XXXXXX01 ;主契約番号
TEL2=05XXXXXX02 ;追加番号
[fromline]
exten => _0X.,1,Set(Ntt_in=${SIP_HEADER(To)})
exten => _0X.,n,Set(Num_to=${Ntt_in:5:10})
exten => _0X.,n,GotoIf($[${Num_to}=${TEL1}]?dial1)
exten => _0X.,n,GotoIf($[${Num_to}=${TEL2}]?dial2)
exten => _0X.,n(dial1),Dial(SIP/201&SIP/202&SIP/203,30,tT) ; 主契約番号へ着信した場合、内線201~203を呼びます
exten => _0X.,n(dial2),Goto(fax_in,test,1) ; 追加番号へ着信した場合は内線901(FAX)を呼ぶ設定です。いまはまだ鳴りません
exten => _0X.,n,Hangup
[fax_in] ; う~ん。。。何かが悪いのか?上手く複合機が動作しません
exten => test,1,Noop()
exten => test,n,Set(FAXOPT(gateway)=yes,10)
exten => test,n,Dial(SIP/901,30,tT)
exten => test,n,Hangup
[default]
exten => _20X,1,Dial(SIP/${EXTEN},20,tT)
exten => _20X,n,Voicemail(${EXTEN})
exten => _20X,n,Hangup
exten => _20X,102,Voicemail(${EXTEN})
exten => _20X,103,Hangup
exten => 299,1,VoiceMailMain(s${CALLERID(num)})
exten => _3XX,1,ConfBridge(${EXTEN}) ; ユーザ任意の会議室番号で音声会議室の作成
exten => _3XX,n,Hangup
exten => 901,1,Goto(fax_in,test,1) ; fax_in コンテクストへ
exten => 901,n,Hangup
exten => _0X.,1,Dial(SIP/ntt/${EXTEN},60) ; 外線へ発信
RICOH複合機が上手く動作して、普通に動けばお見事なのですが。。。そうは行かないようです。。。
何とかしたいのですが、リコーに問い合わせても「前例がないので・・・」と言われるだけでした。
今回の必須設定であった Voicemail の設定は次の様にしております。
/usr/local/etc/asterisk/voicemail.conf 抜粋
[general]
format=wav49|wav
serveremail=asterisk
;attach=yes
attach=no
skipms=3000
maxmessages=300
maxsilence=10
silencethreshold=128
; 以下はメールが日本語で届くようにしたかったので、私が勝手に編集しました
; The character set for voicemail messages can be specified here
charset=UTF-8 ; character set UTF-8 in for Japanese
;fromstring=The Asterisk PBX
fromstring=不在着信のお知らせ
;emailsubject=[PBX]: New message ${VM_MSGNUM} in mailbox ${VM_MAILBOX}
emailsubject=[PBX]: 新しいメッセージがあります。 電話番号 ${VM_MAILBOX} への ${VM_MSGNUM} 番目のメッセージを添付します。
; Japanese subject set
;emailbody=Dear ${VM_NAME}:\n\n\tjust wanted to let you know you were just left a ${VM_DUR} long message (number ${VM_MSGNUM})\nin mailbox ${VM_MAILBOX} from ${VM_CALLERID}, on ${VM_DATE}, so you might\nwant to check it when you get a chance. Thanks!\n\n\t\t\t\t--Asterisk\n
emailbody= ${VM_NAME} さんへ:\n\n\t メッセージの録音時間は ${VM_DUR} です。\n\t 電話番号 ${VM_MAILBOX} の録音可能件数は ${VM_MSGNUM}/10 件となります。\n 発信者名<発信元番号>: ${VM_CALLERID}\n 着信日時: ${VM_DATE}\n\n\t メッセージと併せて、録音可能件数をお確かめ下さい。\n\t\t\t\t--serviced by pbx.section9.\n\t\t\t\--administrator is kaede yano.
;edhit by mail body for Japanese
;
; Default
;emaildateformat=%A, %B %d, %Y at %r
; 24h date format
emaildateformat=%Y年 %m月 %d日 %H時 %M分
;
; Using the mailcmd option, you can specify what command is called for
; outbound E-mail. The default is shown below.
;
;mailcmd=/usr/sbin/sendmail -t
;
[zonemessages]
eastern=America/New_York|'vm-received' Q 'digits/at' IMp
central=America/Chicago|'vm-received' Q 'digits/at' IMp
central24=America/Chicago|'vm-received' q 'digits/at' H N 'hours'
military=Zulu|'vm-received' q 'digits/at' H N 'hours' 'phonetic/z_p'
european=Europe/Copenhagen|'vm-received' a d b 'digits/at' HM
japan=Asia/Tokyo|Q PHM 'jp-ni' 'vm-received'
[default]
201 => 0201,USER1,US...@mail.account,,attach=yes|tz=japan|saycid=no|maxmsg=10 ; 内線201へ留守電が入った場合のメール送信先情報
202 => 0202,GUEST,GU...@mail.account,,attach=yes|tz=japan|saycid=no|maxmsg=10 ; 内線202へ留守電が入った場合のメール送信先情報
;[other]
;1234 => 5678,Company2 User,root@localhost
以上が、私の現在の設定内容となります。
この設定で、無事に外線/内線発着信・ボイスメール・音声会議室・パーク保留転送が行えます。
どなたかの参考になれれば幸いです。
構築途中、NTTへのレジストが出来るようになり、外線発着信が出来たのと同時に、LAN経由でのインターネット接続が出来なくなりました。
原因は NIC B によるDHCPのネットワーク情報設定が邪魔をして、サーバ自体のデフォルトゲートウェイが、NTT払出しの 24.XXX.XX.49 に設定されてしまうためでした。
これを回避しようとスタティックなルーティング設定を行なったりしましたが、結果的には、私が /etc/dhclient.conf へ不要な設定を書いてしまった事による誤動作であったことが判明。サーバのデフォルト設定でDHCPを動かしていれば、何の問題もなく動いたと言う、お粗末な話でした。。。
この数週間、こちらでお世話になりながら、ここまで構築作業が進んだことに感謝します。
今後も、お邪魔させて頂くと思いますので、宜しくお願い申し上げます。