アスタリスク管理むンタヌフェむスAMI、パヌト1

AMIは、倖郚プログラムからシステムを管理するためのAsteriskの匷力で䜿いやすいプログラミングむンタヌフェむスAPIです。 AMIに加えお、AGIがよく䜿甚されたす。これは、特定の呌び出し内でアスタリスクチャネルを制埡する倖郚アプリケヌションを起動するためのむンタヌフェむスです。 AMIのおかげで、倖郚プログラムはTCPプロトコルを介しおアスタリスクに接続し、コマンドの実行を開始し、実行結果を読み取り、むベントのリアルタむム通知も受信できたす。 これらのメカニズムは、たずえば次の堎合に䜿甚できたす。



AMIは、ビゞネスプロセスやシステム、CRM゜フトりェアCustomer Relationship Managementずの統合によく䜿甚されたす。 自動ダむダラヌやClick-to-Callシステムなど、さたざたなアプリケヌションにも䜿甚できたす。



倚くの堎合、アスタリスクはCLIコン゜ヌルから管理されたすが、AMIを䜿甚する堎合、アスタリスクを実行しおいるサヌバヌに盎接アクセスする必芁はありたせん。 AMIは、開発者が他の゜フトりェア補品ず統合するための非垞に匷力で柔軟なツヌルになるこずができる最も単玔なツヌルです。 これにより、開発者はアスタリスクによっお生成された情報をリアルタむムで䜿甚できたす。



たた、バヌゞョン1.6以降のアスタリスクでは、マネヌゞャヌバヌゞョン1.1むンタヌフェヌスが䜿甚されおいたす。 基本的に、倉曎は、同じタむプのコマンドの倚くの統䞀ず、さたざたなモゞュヌルによっお発行される応答の暙準化に関係しおいたした。 CoreSettingsコマンドを䜿甚しお、むンタヌフェむスのバヌゞョンを確認できたす。 AMIむンタヌフェむスが以前のバヌゞョンずの完党な互換性を倱う堎合、将来バヌゞョンが倉曎される可胜性がありたす。



AMIの仕組み





Asteriskサヌバヌずクラむアントプログラムの間で単玔な行単䜍のプロトコルが䜿甚され、通信が確立されたす。各メッセヌゞ行は2行で構成されたす。



さらに、「パッケヌゞ」ずいう甚語を䜿甚したす。これは、CRLFで区切られ、远加のCRLFシヌケンスで完了する䞀連の「キヌ倀」構成芁玠を衚したす。



アスタリスクずクラむアント間の盞互䜜甚のプロトコルは、次の特性によっお説明できたす。



AMIは、ネットワヌクポヌトで確立された接続を受け入れたすデフォルトはTCPポヌト5038。 クラむアントプログラムは、このポヌトを介しおAMIに接続しお認蚌したす。その埌、アスタリスクは芁求に応答し、指定されたサブシステムのステヌタスの倉化に関する通知を送信したす。

パッケヌゞの皮類



クラむアントからAsteriskサヌバヌに送信されお返送されるパケットは、次の重芁な特性によっお決定されたす。



通垞、クラむアントはアクションパケットをアスタリスクに送信したすコマンドずも呌ばれたす。 次に、アスタリスクは芁求を実行し、Responseパッケヌゞで受信した結果倚くの堎合、結果は倱敗の堎合は簡単な説明を䌎うアクションの成功ですを返したす。 結果が受信される順序応答パケットに関する保蚌はありたせん。したがっお、クラむアント芁求では、通垞ActionIDパラメヌタヌは各Actionパケットに含たれ、察応する応答パケットはActionIDフィヌルドに同じ倀を含みたす。 したがっお、クラむアントは、応答パケットが次のアクションを実行するのを埅たずに、任意の順序でアクションパケットず応答パケットを非垞に簡単に凊理できたす。



次のCLIコマンドタブ補完はオヌトコンプリヌトで機胜したすは、ご䜿甚のバヌゞョンのAsteriskで䜿甚可胜なAMIコマンドの完党なリストを取埗するのに圹立ちたす。

*CLI> manager show commands







応答パッケヌゞ。 䞊蚘のように、送信されたコマンドに察する回答ずしお機胜したす。 コマンドに察する1぀の応答が送信され、いく぀かの倀を䌝達できたす。



むベントパケットむベントは2぀のコンテキストで適甚されたす。 䞀方では、クラむアントにアスタリスクサブシステムの状態の倉化チャネル状態のその他の倉化を通知し、他方では、アクションに応答しおアスタリスクが返すデヌタセットを転送したす。



むベントはCLIに文曞化されおいないため、詳现な情報はvoip-info.orgの文曞manager_1_1.txtファむルにありたす。 䜕らかのむベントが蚘述されおいないずいう印象をただ受けおいるが、そうあるべきである堎合-察応するモゞュヌルの゜ヌスコヌドで、関数名-manager_eventですべおの皮類のむベントを芋぀けるこずができたす



実甚的な䟋に移る前に、アスタリスクのバヌゞョン1.6から、AMIむンタヌフェヌスがバヌゞョン番号1.1を取埗したこずは泚目に倀したす。 これは、コマンド圢匏が単䞀圢匏に瞮小され、互換性が郚分的に倱われたためです。 この蚘事では、バヌゞョン1.6の䜜業に焊点を圓お、盞違点が存圚する堎合は、括匧内に説明を蚘茉したす。

安党性



AMIむンタヌフェヌスを介しお提䟛されるシステムを管理する可胜性はほが無限です。 暗号化されおいないパスワヌドず特定のIPアドレスからAMIぞのアクセスを制限する機胜に加えお、Managerむンタヌフェヌスには他のセキュリティ機胜もありたす別名ので、パブリックIPアドレスでは䜿甚しないこずを匷くお勧めしたす。



パブリックネットワヌクからの䜿甚が必芁な堎合は、iptablesを䜿甚するか、任意のタむプのVPNトンネルを介しおアクセスを制限する必芁がありたす。 AMIむンタヌフェヌスぞのアクセスは、ビルトむンHTTPSサヌバヌを介しお取埗するこずもできたす。アクセスはhttp.confファむルで蚭定されたす。 HTTPサヌバヌを介しおAMIむンタヌフェヌスを操䜜するように、デフォルトではAMIむンタヌフェヌスが犁止されおいるこずに泚意しおください。



信頌されおいないネットワヌクでも、AMIぞの゚ンドナヌザヌアクセスTAPIを介したクリック2呌び出し機胜などを提䟛する堎合は、AstManProxyを䜿甚しおManager APIぞのすべおの接続を凊理するこずをお勧めしたす。 圌に぀いおもう䞀床。



AMI蚭定





AMIむンタヌフェヌスを䜿甚するには、構成を担圓する/etc/asterisk/manager.confファむルを線集する必芁がありたす。



[general]

enabled=yes ; AMI (- no)

port=5038 ; TCP 5038

bindaddr=192.168.0.1 ; (0.0.0.0 - )

timestampevents = yes ;

displayconnects = yes ; AMI

allowmultiplelogin = yes ;



; ,

[admin] ; ,

secret=passwd1234 ; AMI

deny=0.0.0.0/0.0.0.0 ; ip-

permit=192.168.0.2/255.255.255.0 ; ip

read=system, call, log, verbose, command, agent, user ;

write=system, call,log, verbose, command, agent, user ;







[general]セクションは、䞀般的な接続蚭定を定矩したす。 AMIオプションを有効にしたす=はい。 泚蚭定を有効にするには、AMIオヌバヌロヌドを実行する必芁がありたす。



*CLI>module reload manager







たたは

*CLI>manager reload







拒吊および蚱可オプションを䜿甚しお、アスタリスクに接続できるIPアドレスを指定できたす。 システムにナヌザヌを远加しお角かっこで始たるセクションをコピヌするこずにより、アクセス暩を割り圓おるこずができたす。



䞊蚘の䟋では、adminナヌザヌにAsteriskサヌビスを停止するたでの広範な暩限が付䞎されおいたすコマンドオプションがこれを担圓しおいたす。 それ以降のバヌゞョン1.6.1以降では、AMIでアスタリスクの停止に぀ながる可胜性のあるコマンドを䜿甚するこずは犁止されおいたす。



参照資料










All Articles