Asterisk-1.2の変更点

2007年4月15日 (日) 19:24時点におけるTakahashi (トーク | 投稿記録)による版 (新しいページ: '==インストール要件 == Asterisk 1.2をインストールするためにはZaptel、libpriも1.2系にアップグレードする必要があります。PRIを使用し...')
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

目次

インストール要件

Asterisk 1.2をインストールするためにはZaptel、libpriも1.2系にアップグレードする必要があります。PRIを使用しない場合にはlibpriは不要です。

設定ファイル類の変更箇所

1.2でのextensions.confのコマンド類の変更点を別ページに整備中です。
1.2における主な変更点は以下の通りです。

extensions.conf

便利な記述方法

Asterisk 1.2からはextensions.confのプライオリティにnが使えるようになりました。

exten => 1234,1,Answer
exten => 1234,n,MeetMe...

このように記述すると n は自動的にインクリメントされた値(ここならば2)が使用されます。このため、従来までのようにNoPを書いておいたり、プライオリティを全て書き直すことなくプライオリティの挿入などが簡単にできるようになりました。

Set系アプリケーションが関数に変更

全般的にSet系のアプリケーションのが変わっています。
従来は

exten => 1000,1,SetLanguage(jp)

1.2からは

exten => 1000,1,Set(LANGUAGE()=jp)

となり、Set系はSet()で処理するように変更されました。これはアプリケーション・コマンドとして実装されていたものが、関数(function)としての実装に変更されたものが多いためです。
ただしAsterisk 1.2では互換性の維持のためSetLanguage()など、従来のアプリケーション・コマンドとして実装されていたSet系もそのまま使えますが、1.4への移行を考えた場合には書き直しておくのが良いでしょう。

IVRメニューを使用する場合の注意

1.0と1.2ではautofallthroughの挙動が変わっています。1.0で使用していたIVRメニューをそのまま使用する場合にはautofallthrough=noを指定してください。 注:1.2の後期バージョンではautofallthroughでは対応できないようです。WaitExtenを使う方式に書き直してください。

musiconhold.conf

Asterisk 1.2では書式が大きく変わっています。従来通りのクラス設定を行い、mpg123で再生を行う場合には以下のように記述します。

[default]
mode=quietmp3
directory=/var/lib/asterisk/mohmp3

この場合にも互換性維持のため1.0系の書式のままでも動作するようですが、以下のような警告が出力されます。

Oct  3 18:02:55 WARNING[10679] res_musiconhold.c: The old musiconhold.conf
syntax has been deprecated!  Please refer to the sample configuration for
information on the new syntax.

新しい機能としてはファイルからの直接再生モード(mpg123等の外部プレイヤーを使わない)が追加されており、この場合には以下のように記述します。

[default]
mode=files
directory=/var/lib/asterisk/mohmp3

ただし、この場合には各CODECに対応したファイルを用意しておかなくてはならないようです。Voicemailアプリケーション同様に、.gsm、.wav、.WAVなどを一式用意すれば良いものと考えられます。

アプリケーション、ファンクション

Math()

Set系の変更にともないMath()も関数として実装され書式が変更になっています。
新しい書式では

Set(var=${Math(....)})

で記述するようです。(余計わかりにくくなってないか・・?)

SetCIDNum,SetCIDName

SetCIDNum、SetCIDNameは廃止予定とされます。かわりに以下のふたつを用います。SetCIDNumに相当するのは上で、SetCIDNameが下です。

Set(CALLERID(number)=value)
Set(CALLERID(name)=value)

Set系の例外

ただし何でもかんでも、こう変更になったわけではなく例外もあります。

SetMusicOnHold(class)

これはこのままです

プライオリティ・ジャンプ

n+101ジャンプは『好まれない』使用方法になったようです。処理を分岐させる際にはn+101ジャンプを使うのではなく、アプリケーション・コマンドの実行後の変数を見るようにします。n+101ジャンプを使用したい場合にはextensions.confに

priorityjumping=yes

を付けるか、あるいは各アプリケーションのjオプションを使います。
ただし、Asterisk 1.2のデフォルトではpriorityjumping=yesです。このため、1.0系の書き方はそのまま1.2で使用することができますが、1.4への移行の際にインパクトが大きくなりますので注意してください。