スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Asterisk活用 (第一回:内線編)

Asterisk活用 (第一回:内線編)

AsteriskはオープンソースのPBX(【Private Branch eXchange】:構内交換機)です。
日本では高橋隆雄さんという方が第一人者です。

このAsterisk、実力はあるのに、なかなか、ヒットに恵まれない演歌歌手のようですが、Android2.3がSIPに対応したことで、今後、ぐいぐい流行りそうな予感。

そこでこのAsteriskについて調査し、Asteriskを使って音声通話を便利にしよう、という企画です。


第一回は Asteriskの導入。Android2.3を収容して、内線通話の設定まで。
第二回は、フレッツ光回線を収容して、外線の着発信を行う。
第三回は、携帯電話をBluetooth収容して、家族割での無料転送を行う。

では、第一回のはじまり、はじまり。
-
さぁ、Asteriskのインストールから始めましょう。
私どもはUbuntu10.04を使って構築しますが、Linuxなら何でも良いと思われます。

まず、何はともあれ、以下からソースを取得してください。(9/10現在 1.8.6.0が最新ですね)
http://www.asterisk.org/downloads
取得したら、

# gunzip asterisk-1.8.6.0.tar.gz
# tar xvfz asterisk-1.8.6.0.tar
# cd asterisk-1.8.6.0
# ./configure > log.configure

configureで成功すれば、* の巨大なアスキーアートが出現します。
失敗する場合は、何かモジュールが足りないので、パッケージマネージャ等で補完して下さい。

# make menuselect
Add-ons (See README-addons.txt) ここでスペース
chan_mobile ここでスペース
「Esc, Esc, S」で保存して終了

※menuselectはターミナルの縦と横を広げて実行する。
※chan_mobileは携帯電話をbluetooth接続するためのモジュールです。
第三回で必要なモジュールですが、ここでビルドしておきます。
*** となって選択できない場合は、bluetooth関連のモジュールが足りませんので、パッケージマネージャ等で補完して下さい。

# make > log.make
# sudo make install

これでインストール完了。

起動スクリプト : /etc/init.d/asterisk
本体 : /usr/sbin/asterisk
設定ファイル : /etc/asterisk
設定ファイル サンプル : /usr/share/doc/asterisk-config/examples/configs

インストール直後に、もう、起動されているはず。
次のコマンドで、動作が確認できます。
# sudo asterisk -vvvvvvvr

r : 対話モード
v : verboseモード。数が多いほど詳しい。適当に5,6個並べる。

「対話モード」で起動しておけば、asteriskの動きがよく分かる。

しかし、初期状態では、設定ファイルが0、モジュールも0 なので、何も起こらない。

まず、ログを出るようにしよう。
サンプル設定ファイル置き場から、設定ファイルを /etc/asterisk にコピーする。
※サンプル設定ファイルの変更不要。
# cd /usr/share/doc/asterisk-config/examples/configs
# sudo cp logger.conf.sample /etc/asterisk/logger.conf
# sudo /etc/init.d/asterisk restart
# sudo asterisk -vvvvvvr  必要なければquitで終わる

これで、動作がログとして分かるようになりました。

次に、必要なモジュールをロードする設定の追加。
※サンプル設定ファイルの変更不要。
# cd /usr/share/doc/asterisk-config/examples/configs
# sudo cp modules.conf.sample /etc/asterisk/modules.conf
# sudo /etc/init.d/asterisk restart
# sudo asterisk -vvvvvvr  必要なければquitで終わる


ここまでできたら、asteriskの様子を見てみましょう。

# sudo asterisk -vvvvvvr

*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time

→ 0 件のはず。「第二回:フレッツ光回線を収容」で。

*CLI> mobile show devices
ID Address Group Adapter Connected State SMS

→ 0 件のはず。「第三回:携帯電話をBluetooth収容」で。

*CLI> sip show peers
Name/username Host Dyn Forcerport ACL Port Status

→ 0 件のはず。「第一回:Android2.3を収容」で。この後やります。

重要な設定ファイルは2つ。
sip.conf : デバイスの定義
extensions.conf : 振る舞いの定義
サンプルをコピーすると、わけがわからないので、ゼロから自分で作成する。

/etc/asterisk/sip.conf
[general]
maxexpirey=3600
defaultexpirey=3600
context=default
port=5060
bindaddr=0.0.0.0
srvlookup=yes
disallow=all
allow=ulaw
allow=gsm
language=jp

[201]
type=friend
username=201
secret=pass
canreinvite=no
host=dynamic
dtmfmode=auto
callgroup=1
pickupgroup=1

[202]
type=friend
username=202
secret=pass
canreinvite=no
host=dynamic
dtmfmode=auto
callgroup=1
pickupgroup=1


/etc/asterisk/extensions.conf
[general]
writeprotect=no

[default]
;;内線
exten = _20X,1,Dial(SIP/${EXTEN})
exten = _20X,n,Hangup


sip.conf と extensions.conf を追加したら、asteriskを再起動しましょう。

これで、内線が扱える環境が整いました。
※上記の設定は、201番と202番の、2台の内線端末を使う設定です。
sip.conf の内容を修正すれば、何台でも大丈夫です。

さて、Android2.3を接続しましょう。

「通話設定」-「インターネット通話の設定」が該当のメニューです。
※2.3でも、このメニューがない機種もあります。

「アカウント」メニューを開いて

「SIPアカウントを追加」します。
「着信を受ける」にチェックします。

アカウントは以下のような感じ。
「ユーザ名」は上記の設定では「201」か「202」。
「パスワード」は、上記の設定では「pass」。
「サーバー」は、Asteriskが動作するサーバのIPアドレス。
「メインアカウントにする」にチェックすると、発信時にいつもこの設定が使用されます。(チェックすると便利ですが、チェックしたことを忘れないように。)
「オプション設定」はいじらなくてよいようです。
入力後は[戻る]ボタンで上位メニューへ戻ってください。自動で保存されます。

「インターネット通話を使用」のメニューで「通話のたびに確認」を選択しておきます。


「201」と「202」の2台を登録すれば、準備完了。
これら2台間で、内線通話が可能になりました。
(内線電話番号は「201」と「202」です。)

次回はNTTのBフレッツひかり電話をAsteriskに収容してみます。
スポンサーサイト

コメントの投稿

非公開コメント

検索フォーム
RSSリンクの表示
リンク
exabugsをフォローしましょう
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。