ようやく面倒な作業が終わり、ついに本格的に作業が進められる。
まず最初に、内線番号を割り振る。Asteriskでは、内線番号を割り振ることは、アカウントを発行することと同じである。
番号は好きな番号で良い。
上メニューの、Applications→Extensionsから内線番号を追加・削除・内線番号ごとの設定の変更ができる。
そして、Add Extensionで内線番号を追加するのだが、通常選ぶ通信プロトコルの種類は3つある。
- Chan_SIP
- PJSIP
- IAX2
Chan_SIPは従来までのSIPである。普通はこれで良いだろう。
PJSIPは新しいSIPである。新しい故に上手くいかないことが多く(自分だけかもしれないが)、あまりお勧めではない。
IAX2はSIPとは全く異なるプロトコルである。SIPに対して優れている点もあるが、携帯電話では消費電力がとても大きいので自分は発信専用として使っている。
ただ、普通に使うならChan_SIPで良いだろうので、ここではChan_SIPの説明のみする。
User Extensionに内線番号(兼ユーザーID)、Display Nameに内線発信時に相手方に出る名前、
Secretにパスワードを入力する。
また、User Manager Settingsで、ユーザーコントロールパネル(今後UCPと略す)でのIDとパスワードを設定できる。
次に、Voicemailタブを開く。ここで、留守録の設定ができる。
EnabledをYes,Voicemail Passwordを数字のみで設定し、Disable (*) in Voicemail MenuをNoにする。これだけで、*97にダイヤルするだけで留守録が聞けるようになるが、
Play CIDをYes,Play EnvelopeをYesにすることで、その留守録が録音された日時と、どこから掛かってきたのかがわかるようになる。
次に、Advancedを見る。
ここでやっておきたいことは、NAT ModeをAutomatic Force Bothにすることである。これでNAT越えをしやすくする。
また、消費電力を抑えるために、Qualify Frequencyの数字を大きくして、通信可能かどうか調べるためのパケットを送信する回数を減らすべきだろう。
また、携帯電話で使う場合は通信ラグを考慮して、Qualifyの数字を上げておこう。(5000でよいだろう)
内線番号だけ割り振っても、肝心の外部との着発信はまだ出来ない。
次にすべきことは、外部との通信を司るTrunkと言う項目だ。
Connectivity→Trunkで、この項目に入れる。
まず最初にするべきことは、このdahdiと書かれた項目を、右にあるゴミ箱ボタンを押して消すことである。(050Freeと一緒に使うだけならば絶対この項目を使うことはない)
次に、Add TrunkからAdd SIP (chan_sip) Trunkを選択すると、次の画面になる。
Trunk Nameは識別のためだけなので自分でわかりやすい名前をつける。
Outbound CallerIDには050686XXXXX(IP電話プロバイダーより割り振られた番号)を入力し、次にsip settingsに飛ぶ。
050Freeを契約している場合は、OutgoingのPEER Detailsに以下の文字列を入れる。
その他の事業者の場合は自分で調べよう。Trunk Nameは被らなければ何でもよい。
type=friend
host=softphone.spc.brastel.ne.jp
username=XXXXXXXX(ユーザーID)
fromdomain=softphone.spc.brastel.ne.jp
fromuser=XXXXXXXX(ユーザーID)
secret=ZZZZZZZZ(パスワード)
context=from-trunk
insecure=port,invite
disallow=all
allow=ulaw&gsm
canreinvite=no
さて、次にIncomingに行き、050 Freeの場合はRegister Stringに次の文字列を入力する。
(ユーザーID):@softphone.spc.brastel.ne.jp:(パスワード)@softphone.spc.brastel.ne.jp/先程作った内線番号
次に、上メニューのConnectivityからOutbound Routesに入り、
Add Outbound Routeを押す。すると以下のような画面が出てくる。
ここで、Trunk Sequence for Matched Routesに、先程のTrunkを入れる。
Route Nameは区別のための名前なので適当に、Route CIDには自分の電話番号を入れる。
また、Route Passwordを入れると、発信の度にパスワードを必要とする。セキュリティを重視するならこれも入れておこう。
次に、Dial Patternsの設定に移ろう。ここでは、発信先を制限することができる。
発信先を制限することは重要で、これを行なわないと、万が一アカウントが悪用された際に勝手に国際電話を掛けられてしまう可能性がある。
パターンは、0120XXXXXX,0NXXXXXXXX,0NXXXXXXXXXの3つで事足りるはずだ。
これらを1つずつmatch patternに入れればよい。
次に、このままだと英語の音声が流れてしまうので、日本語音声を流すための作業をする。
この作業はかなり簡単で、特にコマンドを打ったりする必要はない。
上メニューのAdmin→Sound Languagesを選び、Japaneseの音声を入手する。
日本の固定電話はulawを使っているので、コーデックはulawのみで良いだろう。
ダウンロードしたら、Change Global Sound Languageをクリックし、LanguageをEnglishからJapaneseにする。
最後にすべきはポート番号を変えることだ。
通常の設定ではSIPのポートが5061 or 5160,PJSIPのポートが5060になっているが、プロバイダーのサーバーは5060ポートを使っているので、このままだと上手くいかない。
PJSIPのポートを何か他の番号にずらし、(9999とか)SIPのポートを5060にしてやる必要がある。
Chan PJSIP Settingに入り、0.0.0.0(udp)のポート番号を適当な番号に変更し、Allow GuestsをNoにし、Chan PJSIP SettingのタブのままSubmitを押す。
次に、Chan SIP Settingsに入り、Bind Portを5060にし、Allow SIP GuestsをNoにし、やはりChan SIP SettingsタブのままSubmitを押す。
(この時、消費電力を抑えるためにも、Regitration Minimum/Maximum Expiryの2つの数字を上げておくと良い。上げすぎると着信に失敗するので、Min3600,Max7200で良いだろう。また、一番下のOther SIP Settingsに、tcpenable = yesを入れておくとTCPで通信ができるようになる。)
ここで、ポート番号を変えた(のとTCPを有効化する)ので、Asteriskを再起動する必要がある。(PC再起動はしなくてよい)
これを行うためには、上メニューのAdminから、Asterisk CLIに入り、core restart nowと入れ、SendCommandを押すと即座に再起動が開始する。
しばらくすると再起動が完了する。
これで作業が全て完了したので、自分のグローバルIPアドレスをソフトフォンからレジストしてみよう。
正しくレジストできていれば、サーバー-端末間の通信は正しくできている。
050 Freeユーザーであれば、05068680000がテストコール用番号なので、ここに掛けて正しく発信が出来ているか確認できる。
また、050 Freeは、自分から自分にかけることができるので、着信テストには、携帯電話とPCを用意して、片方をAsteriskに登録してかけてみると良い。
また、050Free,CloudSoftphone,Acrobits Softphoneのプッシュ着信がオンになっていると着信時の挙動がおかしくなることがあるので、サーバーを運用する上ではこれらを常にオフにすることを推奨する。(TCP通信が出来れば、常駐型のソフトフォンでもそこまで電池は食わないはずである、また、常駐型のほうが着信精度は高い。)
PR