天天看點

Asterisk的AMI中常用的重要的AMI操作

1.  AbsoluteTimeout 

AbsoluteTimeout :這個指令将要求 Asterisk 在指定秒數後挂斷特定的通道,進而有效地結束通話。

參數:

Channel : 哪些管道挂斷,如 SIP/123-1c20

Timeout : 到通道應挂斷的秒數

例子:

請求資訊

Action: AbsoluteTimeout

Channel: SIP/123-1c20

Timeout: 20

傳回成功資訊

Response: Success

Message: Timeout Set

傳回失敗資訊

Response: Error

Message: No such channel

ChangeMonitor :更改記錄某通道資訊檔案名。

參數:

Channel :通道名稱

File :檔案名

例子:

發送請求

ACTION: ChangeMonitor

Channel: SIP/x7065558529-1c20

File: 20050103-140105_cc51

傳回失敗資訊

Response: Error

Message: No such channel

傳回成功資訊

Response: Success

Message: Stopped monitoring channel

2. Command

Command :發送 Asterisk CLI 指令。

參數:

Command : Asterisk CLI 指令。

例子:

發送請求

ACTION: COMMAND

command: Show Channels

傳回資訊

Response: Follows

Channel (Context Extension Pri ) State Appl. Data

0 active channel(s)

--END COMMAND-

3 Events

Events :事件控制流,用于啟用 / 禁用發送給管理用戶端的事件。

參數:

EventMask: 'on' 表示所有事件均會被發送到管理用戶端。

'off' 表示所有時間都不會被發送。

'system,call,log' 用于選擇被發送的事件。

提示:有些事件是啟用或禁已經在 .conf 檔案中配置了, They might be disabled by default. 他們可能是預設為禁用。

例子:

注意在此例子中 EventMask 事件沒有立即傳回的響應資訊,隻有在裝置登出時才傳回相關資訊。

發送請求:

ACTION: EVENTS

EVENTMASK: ON

傳回資訊:

Event: PeerStatus

Peer: SIP/ChannelName

PeerStatus: Unregistered

Cause: Expired

當 EventMask 參數為 'off' 時會立即傳回響應資訊,如下:

發送:

ACTION: EVENTS

EVENTMASK: OFF

傳回:

Response: Events Off

4. GetVar

GetVar :擷取一個通道變量。

參數: Channel , Variable , actionID

ActionID 是一個可選的參數比對資訊。

例子:

發送:

ACTION: GetVar

Channel: SIP/5060-44d225d0

Variable: extension

成功傳回:

Response: Success

Value: 17065551419

失敗傳回:

Response: Error

Message: No such channel

Response: Success

varname: (null)

5. Hangup

Hangup :挂斷指定通道。

參數: Channel

例子:

發送:

ACTION: Hangup

Channel: SIP/x7065558529-99a0

接收:

Event: Unlink

Channel1: SIP/127.180.254.109-44df88e8

Channel2: SIP/x7065558529-99a0

Uniqueid1: 1124989110.20473

Uniqueid2: 1124989110.20474

Event: Hangup

Channel: SIP/x7065558529-99a0

Uniqueid: 1124989110.20474

Cause: 16

Event: Hangup

Channel: SIP/127.180.254.109-44df88e8

Uniqueid: 1124989110.20473

Cause: 16

Response: Success

Message: Channel Hungup

6 UpdateConfig

UpdateConfig :更新配置檔案。

參數:

SrcFilename: 要讀取的配置檔案 (.conf)

DstFilename: 要更新的配置檔案 (.conf)

Reload: 是否重新加載( asterisk 或者子產品名稱)

Action-XXXXXX: 采取的動作 ( NewCat 、 RenameCat 、 DelCat 、 Update 、 Delete 、 Append )

Cat-XXXXXX: 操作對象

Var-XXXXXX: 采用的變量

Value-XXXXXX: 變量的值

Match-XXXXXX: 其他比對資訊

例 1 :(更新 manager.conf )

action: updateconfig

reload: yes

srcfilename: manager.conf

dstfilename: manager.conf

action-000000: append

cat-000000: newuser

var-000000: secret

value-000000: nottelling

例 2:( 更新 extension.conf ,通過 '>' 增加字首 )

action:updateconfig

reload:yes

srcfilename: extensions.conf

dstfilename: extensions.conf

Action-000000:append

Cat-000000: ami-test

Var-000000: exten

Value-000000: >999,1,Dial(SIP/Bob)

例 3 :(删除 manager.conf 中的配置資訊)

action: updateconfig

srcfilename: manager.conf

dstfilename: manager.conf

action-000000: delete

cat-000000: newuser

var-000000: secret

value-000000: nottelling

match-000000: nottelling

删除時必須設定 'value' 和 'match' ,不設定 'match' 将會删除變量為 'var' 所有條目

GetConfig :顯示配置檔案内容,主要給 AJAM 和 asterisk 圖形界面使用。

變量: FileName :顯示的檔案名( .conf )。

繼續閱讀