您的位置:首页 > 其它

Asterisk manager API(AMI)文档(中文版)

2016-11-09 13:28 253 查看
本文转自http://blog.csdn.net/seven407/article/details/5292110Asterisk控制接口(AMI)允许管理客户端程序连接到一个asterisk实例并且可以通过TCP/IP流发送命令或读取事件。这在试图跟踪asterisk的状态或其中的电话客户端状态时很有用,AMI说明了客户端基于的一般(可能是动态的)规则。一种简单的"key: value"协议用于已连接的管理客户端和asteriskPBX之间的信息传递。每行都用回车换行(/r/n)来结束。协议特点:在发送命令前,你必须建立一个连接。在认证后,数据包任何时间都可以在两个方向上互相传输。数据包第一行为"Action"时表明是由管理客户端发送到asterisk,第一行为"Event"或"Response"表明有asterisk发送到管理客户端。数据包内各行顺序可以变化,对数据包没有影响。回车换行由于区分每一行,空行(两个连续回车换行)用于表明命令结束,Asterisk开始处理命令。数据包类型:数据包的类型通过一下几种关键字来划分Action:一个由管理客户端发送到Asterisk的数据包,请求执行特定的动作。只有有限的几种动作供客户端使用,每个动作是由Asterisk服务器上的模块所决定的。一次只能执行一个动作,该动作数据包包含了动作名称以及执行所必需的参数。Response:Asterisk对管理客户端动作的响应。Event: 有关Asterisk核心或扩展模块发生事件的信息。建立管理连接和用户身份验证:为了与Asterisk进行管理通话,管理客户端必须建立到Asterisk服务器侦听端口(一般是5038)的TCP/IP连接,并使用登陆动作进行身份验证。这就要求在Asterisk服务器上创建用户账户,用户账户在/etc/asterisk/manager.conf中配置。账户由允许登陆的主机,登录密码以及被授予的权限列表组成。管理的登录和身份验证,你必须发送一个" Action "行动,用您的用户名和秘密(密码作为参数)。 Here is an example:下面是一个例子:Action: loginUsername: adminSecret: secret你还可以通过"Events: off"阻止事件数据包发送到你的连接。例如:Action: loginUsername: adminSecret: secretEvents: off动作数据包:向Asterisk发送动作时,额外的关键字可以提供进一步的动作信息。例如,你可能希望指定号码或通道的断开。此外,如果您的操作会导致Asterisk来执行拨号规则中的条目,你可以传递变量给拨号规则。这与你传递关键字的方式是一样的。向Asterisk发送动作数据包时,按照以下格式:Action: <action type><CRLF><Key 1>: <Value 1><CRLF><Key 2>: <Value 2><CRLF>...Variable: <Variable 1>=<Value 1><CRLF>Variable: <Variable 2>=<Value 2><CRLF>...<CRLF>管理动作( Action ):通过CLI命令show manager commands的输出结果就是管理动作列表。具体如下: AbsoluteTimeout :这个命令将要求Asterisk在指定秒数后挂断特定的通道,从而有效地结束通话。参数:Channel :哪些渠道挂断,如SIP/123-1c20Timeout :到通道应挂断的秒数例子:请求信息Action: AbsoluteTimeoutChannel: SIP/123-1c20Timeout: 20返回成功信息Response: SuccessMessage: Timeout Set返回失败信息Response: ErrorMessage: No such channel ChangeMonitor :更改记录某通道信息文件名。参数:Channel:通道名称File:文件名例子:发送请求ACTION: ChangeMonitorChannel: SIP/x7065558529-1c20File: 20050103-140105_cc51返回失败信息Response: ErrorMessage: No such channel返回成功信息Response: SuccessMessage: Stopped monitoring channel Command :发送Asterisk CLI命令。参数:Command:Asterisk CLI 命令。例子:发送请求ACTION: COMMANDcommand: Show Channels返回信息Response: FollowsChannel (Context Extension Pri ) State Appl. Data0 active channel(s)--END COMMAND-注意:返回的事件响应结果并不是发送一个回车换行(/r/n),而只发送换行(/n),如果你在中断处理程序中只等待回车换行,那么这条信息将会被被丢失。例如command返回信息如下:Response: Follows/r/nChannel Location State Application(Data)/nSIP/x7065551212b-1af (None) Ringing AppDial((Outgoing Line))/nSIP/x7065551212c-2aa 29@default:2 Ring Dial(SIP/x7065551212b)/n2 active channels/n1 active call/r/n--END COMMAND--/r/n/r/n Events :事件控制流,用于启用/禁用发送给管理客户端的事件。参数:EventMask: 'on'表示所有事件均会被发送到管理客户端。'off'表示所有时间都不会被发送。'system,call,log'用于选择被发送的事件。提示:有些事件是启用或禁止已经在.conf文件中配置了, They might be disabled by default.他们可能是默认为禁用。例子:注意在此例子中EventMask事件没有立即返回的响应信息,只有在设备注销时才返回相关信息。发送请求:ACTION: EVENTSEVENTMASK: ON返回信息:Event: PeerStatusPeer: SIP/ChannelNamePeerStatus: UnregisteredCause: Expired当EventMask参数为'off'时会立即返回响应信息,如下:发送:ACTION: EVENTSEVENTMASK: OFF返回:Response: Events Off ExtensionState :检查分机的状态。参数:Exten,Context,ActionID例子:发送:ACTION: ExtensionStateContext: defaultExten: 2001ActionID: 1接收:Response: SuccessActionID: 1Message: Extension StatusExten: 2001Context: defaultHint: SIP/2001Status: 0Status状态代码:-1=Extension找不到0 =空闲1 =在使用2 =忙4 =不可用8 =振铃16 =正等待 GetVar:获取一个通道变量。参数:Channel,Variable,actionIDActionID是一个可选的参数匹配信息。例子:发送:ACTION: GetVarChannel: SIP/5060-44d225d0Variable: extension成功返回:Response: SuccessValue: 17065551419失败返回:Response: ErrorMessage: No such channel或Response: Successvarname: (null)Hangup:挂断指定通道。参数:Channel例子:发送:ACTION: HangupChannel: SIP/x7065558529-99a0接收:Event: UnlinkChannel1: SIP/127.180.254.109-44df88e8Channel2: SIP/x7065558529-99a0Uniqueid1: 1124989110.20473Uniqueid2: 1124989110.20474Event: HangupChannel: SIP/x7065558529-99a0Uniqueid: 1124989110.20474Cause: 16Event: HangupChannel: SIP/127.180.254.109-44df88e8Uniqueid: 1124989110.20473Cause: 16Response: SuccessMessage: Channel Hungup IAXpeers :显示iax信息列表。例子:发送:Action: IAXPeers接收:Name/Username Host Mask Port Status8002 (Unspecified) (D) 255.255.255.255 0 UNKNOWN8001 192.168.0.91 (D) 255.255.255.255 4569 OK (5 ms)2 iax2 peers [1 online, 1 offline, 0 unmonitored] ListCommands :显示命令列表。参数:ActionID例子:发送:Action:ListCommands接收:Response: SuccessAbsoluteTimeout: Set Absolute Timeout (Priv: call,all)AgentCallbackLogin: Sets an agent as logged in by callback (Priv: agent,all)AgentLogoff: Sets an agent as no longer logged in (Priv: agent,all)Agents: Lists agents and their status (Priv: agent,all)ChangeMonitor: Change monitoring filename of a channel (Priv: call,all)Command: Execute Asterisk CLI Command (Priv: command,all)DBGet: Get DB Entry (Priv: system,all)DBPut: Put DB Entry (Priv: system,all)Events: Control Event Flow (Priv: )ExtensionState: Check Extension Status (Priv: call,all)Getvar: Gets a Channel Variable (Priv: call,all)Hangup: Hangup Channel (Priv: call,all)IAXnetstats: Show IAX Netstats (Priv: )IAXpeers: List IAX Peers (Priv: )ListCommands: List available manager commands (Priv: )Logoff: Logoff Manager (Priv: )MailboxCount: Check Mailbox Message Count (Priv: call,all)MailboxStatus: Check Mailbox (Priv: call,all)MeetmeMute: Mute a Meetme user (Priv: call,all)MeetmeUnmute: Unmute a Meetme user (Priv: call,all)Monitor: Monitor a channel (Priv: call,all)Originate: Originate Call (Priv: call,all)Park: Park a channel (Priv: call,all)ParkedCalls: List parked calls (Priv: )PauseMonitor: Pause monitoring of a channel (Priv: call,all)Ping: Keepalive command (Priv: )PlayDTMF: Play DTMF signal on a specific channel. (Priv: call,all)QueueAdd: Add interface to queue. (Priv: agent,all)QueuePause: Makes a queue member temporarily unavailable (Priv: agent,all)QueueRemove: Remove interface from queue. (Priv: agent,all)Queues: Queues (Priv: )QueueStatus: Queue Status (Priv: )Redirect: Redirect (transfer) a call (Priv: call,all)SetCDRUserField: Set the CDR UserField (Priv: call,all)Setvar: Set Channel Variable (Priv: call,all)SIPpeers: List SIP peers (text format) (Priv: system,all)SIPshowpeer: Show SIP peer (text format) (Priv: system,all)Status: Lists channel status (Priv: call,all)StopMonitor: Stop monitoring a channel (Priv: call,all)UnpauseMonitor: Unpause monitoring of a channel (Priv: call,all)UserEvent: Send an arbitrary event (Priv: user,all)WaitEvent: Wait for an event to occur (Priv: )ZapDialOffHook: Dial over channel while offhook (Priv: )ZapDNDoff: Toggle channel Do Not Disturb status OFF (Priv: )ZapDNDon: Toggle channel Do Not Disturb status ON (Priv: )ZapHangup: Hangup Channel (Priv: )ZapRestart: Fully Restart channels (terminates calls) (Priv: )ZapShowChannels: Show status channels (Priv: )ZapTransfer: Transfer Channel (Priv: ) Logoff :注销管理客户端。例子:发送:ACTION: LOGOFF接收:Response: GoodbyeMessage: Thanks for all the fish. MailboxCount :检查语音信箱是否有新信息。参数:MailBox,actionID例子:发送:Action: MailboxCountMailbox: 2001@device接收:Response: SuccessMessage: Mailbox Message CountMailbox: 2001@deviceNewMessages: 1OldMessages: 0 MailboxStatus:检查语音信箱状态。参数:MailBox,actionID例子:发送:Action: MailboxStatusMailbox: 2001@device接收:Response: SuccessMessage: Mailbox StatusMailbox: 2001@deviceWaiting: 1 Monitor:监听某个通道。参数:Channel, File, Format, Mix例子:发送:ACTION: MonitorChannel: SIP/x7062618529-643dFile: channelsavefileMix: 1返回:Response: SuccessMessage: Started monitoring channel失败返回Response: ErrorMessage: No such channel Originate :产生一个呼叫。(privilege: call,all)参数:Channel:呼叫连接产生的通道。Context:呼叫连接所使用的Context(Context,Exten,Priority必须同时使用)Exten: 呼叫连接所使用的分机(Context,Exten,Priority必须同时使用)Priority:呼叫连接的优先级。(Context,Exten,Priority必须同时使用)TimeOut:呼叫连接的超时(,单位为毫秒,默认为30000毫秒)CallID:呼叫连接的来电显示。Variable:通道变量设置。本地通道和连接通道都将被设置。Account:呼叫所用密码。Application:使用此次呼叫的应用程序。(使用参数和数据)Data:应用程序参数所使用的数据。Async:呼叫是否为异步。(允许多次调用不等待响应生成)ActionID请求标识符。 It allows you to identify the response to this request.它允许您确定这一请求的响应信息。 You may use a number or a string. Useful when you make several simultaneous requests.当您有用几个并发请求,您可以使用一个数字或字符串来区分。事件的顺序:首先SGI通道鸣响,然后当他被接听后,通过上下文呼叫另一端的分机。注意超时只用于呼叫通道,呼叫分机时的超时另外指定。使用Async导致1 OriginateResponse事件,包含了失败的 Reason。Reason may be one of the following:原因可能是下列之一:0 = no such extension or number 0 =没有这样的extension或号码1 = no answer 1 =无应答4 = answered 4 =回答8 = congested or not available 8 =拥挤或不可用例1(从SIP通道呼叫一个分机,这将导致外部呼叫无法产生直到sip通道挂断)发送:Action: OriginateChannel: SIP/101testContext: defaultExten: 8135551212Priority: 1Callerid: 3125551212Timeout: 30000Variable: var1=23|var2=24|var3=25ActionID: ABC45678901234567890分机8135551212是外呼号码。这个例子表明了Variable的使用方法例2(从呼出通道呼叫一个本地分机,这将导致该分机不再响铃直到zap通道挂断)发送:Action: OriginateChannel: Zap/g2/8135551212Context: defaultExten: 101Priority: 1Timeout: 30000Callerid: 3125551212101为一个本地分机号。例3(运行系统命令)发送:Action: OriginateChannel: Local/1@dummyApplication: systemData: /path/to/script提示:如果你希望通道连接到任意分机和上下文,需要指定一个本地通道 ParkedCalls :设置显示保持的呼叫列表。参数:ActionID发送:Action: PakedCalls返回:Response: SuccessMessage: Parked calls will followEvent: ParkedCallsComplete Ping例子:发送:Action: ping返回:Response: Pong QueueAdd :添加队列成员。参数:Queue:添加成员的队列名。Interface: 成员名(例如sip/2001)Penalty:数值,值越高越靠后。Paused:暂停(true)或不暂停(false)ActionID:(前面已介绍)例子:发送:Action: QueueAddQueue: 200Interface: sip/3001Penalty: 1Paused: true返回:Response: SuccessMessage: Added interface to queueEvent: QueueMemberAddedPrivilege: agent,allQueue: 200Location: sip/3001MemberName: sip/3001Membership: dynamicPenalty: 1CallsTaken: 0LastCall: 0Status: 5Paused: 1 QueueRemove :移除队列成员。参数:Queue:移除成员的队列名。Interface: 成员名(例如sip/2001)例子:发送:Action: QueueRemoveQueue: 200Interface: sip/3001返回:Response: SuccessMessage: Removed interface from queueEvent: QueueMemberRemovedPrivilege: agent,allQueue: 200Location: sip/3001MemberName: sip/3001 Queues :返回全部队列的配置以及电话数据信息。例子:发送:Action: Queues返回:200 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0sMembers:Local/2002@from-internal/n (Invalid) has taken no calls yetLocal/2003@from-internal/n (Invalid) has taken no calls yetLocal/2001@from-internal/n (Invalid) has taken no calls yetNo Callersdefault has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0sNo MembersNo Callers QueueStatus :返回全部队列的电话数据信息。例子:发送:Action: QueueStatus返回:Response: SuccessMessage: Queue status will followEvent: QueueParamsQueue: 200Max: 0Calls: 0Holdtime: 0Completed: 0Abandoned: 0ServiceLevel: 0ServicelevelPerf: 0.0Weight: 0Event: QueueMemberQueue: 200Name: Local/2002@from-internal/nLocation: Local/2002@from-internal/nMembership: staticPenalty: 0CallsTaken: 0LastCall: 0Status: 4Paused: 0Event: QueueMemberQueue: 200Name: Local/2003@from-internal/nLocation: Local/2003@from-internal/nMembership: staticPenalty: 0CallsTaken: 0LastCall: 0Status: 4Paused: 0Event: QueueMemberQueue: 200Name: Local/2001@from-internal/nLocation: Local/2001@from-internal/nMembership: staticPenalty: 0CallsTaken: 0LastCall: 0Status: 4Paused: 0Event: QueueParamsQueue: defaultMax: 0Calls: 0Holdtime: 0Completed: 0Abandoned: 0ServiceLevel: 0ServicelevelPerf: 0.0Weight: 0Event: QueueStatusComplete Redirect :重定向一个呼叫。参数:Channel:重定向的通道。ExtraChannel:重定向的第二通道(可选)Exten:重定向的分机。Context: 重定向的上下文。Priority:重定向的优先级ActionID:(可选)例子(把两个呼叫重定向到meetme房间)Action: RedirectChannel: Zap/73-1ExtraChannel: SIP/199testphone-1f3cExten: 8600029Context: defaultPriority: 18600029的上下文是default,并将进入meetme房间。 SetCDRUserField :设置用户的呼叫详细记录。参数:UserField,Channel,Append SetVar :设置通道变量。参数:Channel, Variable, Value例子:发送:Action: SetvarChannel: Zap/1-1Variable: AtestVariableValue: This is now setSIPpeers :显示sip用户列表。例子:发送:Action: SIPpeers返回Response: SuccessMessage: Peer status list will followEvent: PeerEntryChanneltype: SIPObjectName: 3001ChanObjectType: peerIPaddress: -none-IPport: 0Dynamic: yesNatsupport: yesVideoSupport: noACL: noStatus: UNKNOWNRealtimeDevice: noEvent: PeerEntryChanneltype: SIPObjectName: 2003ChanObjectType: peerIPaddress: -none-IPport: 0Dynamic: yesNatsupport: yesVideoSupport: noACL: noStatus: UNKNOWNRealtimeDevice: noEvent: PeerEntryChanneltype: SIPObjectName: 2002ChanObjectType: peerIPaddress: -none-IPport: 0Dynamic: yesNatsupport: yesVideoSupport: noACL: noStatus: UNKNOWNRealtimeDevice: noEvent: PeerEntryChanneltype: SIPObjectName: 2001ChanObjectType: peerIPaddress: -none-IPport: 0Dynamic: yesNatsupport: yesVideoSupport: noACL: noStatus: UNKNOWNRealtimeDevice: noEvent: PeerlistCompleteListItems: 4 Status :返回所有开放通道或指定通道的状态。参数:Channel (可选), ActionID (可选)例子:发送:Action:Status返回:Response: SuccessMessage: Channel status will followEvent: StatusComplete StopMonitor :停止检测某通道。参数:Channel例子:发送:Action: StopMonitorChannel: Zap/1-1 ZapDialOffhook :从空闲的ZAP通道拨打呼叫。参数:ZapChannel: ZAP 通道Number: 所拨打的号码ZapDNDoff :绑定ZAP通道而不影响其关闭状态参数:ZAPChannelZapDNDon :绑定ZAP通道而不影响其开放状态参数:ZAPChannelZapHangup :挂断ZAP通道。参数:ZAPChannelZapTransfer :转拨ZAP通道。参数:ZAPChannelZapShowChannels :显示所有ZAP通道信息。参数:ActionID(可选)Asterisk 1.2.1新增:AgentCallBackLogin :设置用户以回拨方式登录。参数:Agent:用户登录的IDExten: 用于回拨的分机Context: 用于回拨的上下文AckCall: 设置在用户回拨时进行验证WrapupTime: 挂断重拨的最小间隔时间ActionID:例子:发送:Action: AgentCallBackLoginAgent: 1234Exten: 1234Context: myqueuesAckCall: trueWrapupTime: 30ActionID: 12345 AgentLogoff :注销一个用户。参数:Agent:用户登录Id例子:发送:Action: AgentLogoffAgent: 1234Agents :显示所有用户信息。例子:发送:Action: AgentsDBGet :查询数据库信息。参数:Family,Key发送:Action: DBGetFamily:Key:失败返回:Response: ErrorMessage: Database entry not found成功返回:Response: SuccessMessage: Result will followEvent: DBGetResponseFamily:Key:Val:在Perl脚本中的运用:use Asterisk::Manager;my $astman = new Asterisk::Manager;$astman->user('');$astman->secret('');$astman->host('');$astman->connect || die $astman->error . "/n";$astman->sendcommand(Action => 'DBGet', Family => '', Key => '');my @result = $astman->sendcommand(Event => 'DBGetResponse');$astman->disconnect;my $value = $result[7]; -> Value 7 is the returned Value DBPut:更新数据库信息。发送:Action: DBPutFamily:Key:Value: (note, as of Asterisk 1.4 The Manager API wants Val: )返回:Response: SuccessMessage: Updated database successfully使用方法同DBGet一样。 QueuePause :停止/开启队列中某个成员的使用。参数:Queue: 成员所在队列名.(可选,如无此项将在成员所在的所有队列停止成员的使用)Interface: 队列成员名 (如sip/1000, zap/1-1, agent/1000)Paused: 停止或开启 (true or false) SIPshowPeer :显示指定 peer 信息参数: peer:指定的peer。Asterisk 1.4.0新增: PlayDTMF :在指定通道上发送双音多频信号数字。参数:Channel:指定的通道Digit:双音多频信号数字发送:Action: PlayDTMFChannel: SIP/123-e2b2Digit: 1成功返回:Response: SuccessMessage: DTMF successfully queued失败返回:Response: ErrorMessage: No such channel 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: updateconfigreload: yessrcfilename: manager.confdstfilename: manager.confaction-000000: appendcat-000000: newuservar-000000: secretvalue-000000: nottelling例2:(更新extension.conf,通过'>'增加前缀)action:updateconfigreload:yessrcfilename: extensions.confdstfilename: extensions.confAction-000000:appendCat-000000: ami-testVar-000000: extenValue-000000: >999,1,Dial(SIP/Bob)例3:(删除manager.conf中的配置信息)action: updateconfigsrcfilename: manager.confdstfilename: manager.confaction-000000: deletecat-000000: newuservar-000000: secretvalue-000000: nottellingmatch-000000: nottelling删除时必须设置'value'和'match',不设置'match'将会删除变量为'var'所有条目 GetConfig :显示配置文件内容,主要给AJAM和asterisk图形界面使用。变量:FileName:显示的文件名(.conf)。 Asterisk 事件( Event ) :以下的事件都在asterisk源码中定义。 用户状态事件:'Agentcallbacklogin' 事件 :描述:[来源于chan_agent.c]示例:Event: AgentcallbackloginAgent:Loginchan:Uniqueid:----------------------------------------'Agentcallbacklogoff'事件描述:[来源于chan_agent.c]示例:Event: AgentcallbacklogoffAgent:Loginchan:Logintime:Reason: AutologoffUniqueid:Event: AgentcallbacklogoffAgent:Loginchan:Logintime:Uniqueid:-------------------------------------------------'AgentCalled'事件描述:[来源于 app_queue.c]示例:Event: AgentCalledAgentCalled:ChannelCalling:CallerID:Context:Extension:Priority:---------------------------------------------------'AgentComplete'事件描述:[来源于 app_queue.c]示例:Event: AgentCompleteQueue:Uniqueid:Channel:Member:MemberName:HoldTime:TalkTime:Reason:------------------------------------------------------------'AgentConnect'事件描述:[来源于 app_queue.c]示例:Event: AgentConnectQueue:Uniqueid:Channel:Member:MemberName:Holdtime:BridgedChannel:---------------------------------------------------------------'AgentDump'事件描述:[来源于 app_queue.c]示例:Event: AgentDumpQueue:Uniqueid:Channel:Member:MemberName:---------------------------------------------------------------------------------------'Agentlogin'事件描述:[来源于 chan_agent.c]示例:Event: AgentloginAgent:Channel:Uniqueid:----------------------------------------------------------------------------------'Agentlogoff'事件描述:[来源于 chan_agent.c]示例:Event: AgentlogoffAgent:Logintime:Uniqueid:------------------------------------------------------------------------'QueueMemberAdded'事件描述:队列增加成员动作[来源于 app_queue.c]示例:Queue: testingLocation: Agent/AgentIdMembership: dynamicPenalty: 0CallsTaken: 0LastCall: 0Status: 4Paused: 1------------------------------------------------------------------------'QueueMemberPaused'事件描述:响应动作: QueuePause[来源于 app_queue.c]示例:Event: QueueMemberPausedLocation:MemberName:Paused:----------------------------------------------------------------'QueueMemberStatus'事件描述:[来源于 app_queue.c]Status的值可能为:/*设备是有效的,但不知道的通道状态*/define AST_DEVICE_UNKNOWN 0/*设备没有使用 */define AST_DEVICE_NOT_INUSE 1/*设备使用中 */define AST_DEVICE_INUSE 2/*设备忙 */define AST_DEVICE_BUSY 3/*设备无效 */define AST_DEVICE_INVALID 4/*设备不可用 */define AST_DEVICE_UNAVAILABLE 5/* 设备在响铃*/define AST_DEVICE_RINGING 6/*设备在响铃并在使用中*/define AST_DEVICE_RINGINUSE 7/*设备在等待 */define AST_DEVICE_ONHOLD 8示例:Event: QueueMemberStatusQueue:Location:MemberName:Membership:Penalty:CallsTaken:LastCall:Status:Paused:- &nbs22dd4p;命令状态事件: 呼叫状态事件:'CDR'事件描述:[来源于 cdr_manager.c]必须在 cdr_manager.conf 配置文件中有:generalenabled = yes示例:Event: CdrAccountCode:Source:Destination:DestinationContext:CallerID:Channel:DestinationChannel:LastApplication:LastData:StartTime:AnswerTime:EndTime:Duration:BillableSeconds:Disposition:AMAFlags:UniqueID:UserField:-------------------------------------------------------'Dial'事件描述:[来源于 app_dial.c]示例:Event: DialPrivilege: call,allSource: Local/900@default-2dbf,2Destination: SIP/900-4c21CallerID:CallerIDName: defaultSrcUniqueID: 1149161705.2DestUniqueID: 1149161705.4-------------------------------------------------------------'ExtensionStatus'事件描述:[来源于 manager.c]示例:Event: ExtensionStatusExten:Context:Status:---------------------------------------------------------'Hangup'事件描述:[来源于 channel.c]示例:Event: HangupChannel: SIP/101-3f3fUniqueid: 1094154427.10Cause: 0Cause 代码:未分配 = 1无到达路由 = 2无路由目的地 = 3无效通道 = 6正在通话中 = 7正常挂机 = 16用户忙 = 17无应答 = 18无人接听 = 19拒绝接听 = 21号码已更改 = 22目的次序不对 = 27无效的数字格式 = 28设备拒绝 = 29查询响应 = 30正常未指定 = 31正常的呼叫拥塞 = 34网络状态差 = 38正常的临时故障 = 41交换机拥塞 = 42信息过时 = 43请求通道无效 = 44被抢占 = 45无呼叫保持或呼叫等待 = 50禁止呼出 = 52禁止呼入 = 54负载过重导致失效 = 57负载过多导致不可达 = 58负载过多导致为实现 = 65通道未实现 = 66设备未实现 = 69无效的呼叫证明 = 81不相容的目的地 = 88无效的不明信息 = 95IE浏览器关闭 = 96不识别的信息类型 = 97错误信息 = 98无IE浏览器 = 99无效的IE信息 = 100呼叫状态错误 = 101计时到达 = 102强制性IE浏览器长度误差 = 103协议错误 = 111互通 = 127未定义的 = 0------------------------------------------------------------------------------'MusicOnHold'事件描述:事件表示电话等待时,播放音乐示例:Event: MusicOnHoldChannel:State:Uniqueid:---------------------------------------------------------------------------------'Join'事件描述:[来源于 app_queue.c]示例:Event: JoinChannel:CallerID:Queue:Position:Count:--------------------------------------------------------------------'Leave'事件描述:[来源于 app_queue.c]示例:Event: LeaveChannel:Queue:Count:----------------------------------------------------------------------'Link'事件描述:当两个通道已连接后开始交换声音数据时发生'link'事件示例:Event: LinkChannel1: SIP/101-3f3fChannel2: Zap/2-1Uniqueid1: 1094154427.10Uniqueid2: 1094154427.11-------------------------------------------------------------------'MeetmeJoin'事件描述:[来源于 app_meetme.c]示例:Event: MeetmeJoinChannel:Uniqueid:Meetme:Usernum:--------------------------------------------------------------------------'MeetmeLeave'事件描述:[来源于 app_meetme.c]示例:Event: MeetmeLeaveChannel:Uniqueid:Meetme:Usernum:--------------------------------------------------------------------------'MeetmeStopTalking'事件描述:[来源于 app_meetme.c]注意:这要求在meetme应用中以选中T选示例:Event: MeetmeStopTalkingPrivilege: call,allChannel: SIP/200-ABC1Uniqueid: 1234567890.1Meetme: 400Usernum: 2--------------------------------------------------------------------------'MeetmeTalking'事件描述:[来源于 app_meetme.c]注意:这要求在meetme应用中以选中T选项示例:Event: MeetmeTalkingPrivilege: call,allChannel: SIP/200-ABC1Uniqueid: 1234567890.1Meetme: 400Usernum: 2-----------------------------------------------'MessageWaiting'事件描述:[来源于 app_voicemail.c]示例:Event: MessageWaitingMailbox: @Waiting:New:Old:Event: MessageWaitingMailbox:Waiting:-------------------------------------------'Newcallerid'事件描述:[来源于 channel.c]示例:Event: NewcalleridChannel:Callerid:Uniqueid:----------------------------------------------------'Newchannel'事件描述:[来源于 channel.c]示例:Event: NewchannelChannel: Zap/2-1State: RsrvdCallerid:Uniqueid: 1094154427.11Event: NewchannelChannel: SIP/101-3f3fState: RingCallerid: 101Uniqueid: 1094154427.10---------------------------------------------------------'Newexten'事件描述:当一项PBX函数运行(例如执行拨号规则)时发生此事件。示例:Event: NewextenChannel: SIP/101-00c7Context: macro-extExtension: sPriority: 3Application: GotoAppData: s-BUSYUniqueid: 1094154321.8Event: NewextenChannel: SIP/101-3f3fContext: local_extensionsExtension: 917070Priority: 1Application: AGIAppData: /etc/asterisk/agi/ks_doorman_pickup.py|channel_upUniqueid: 1094154427.10Event: NewextenChannel: SIP/101-3f3fContext: local_extensionsExtension: 917070Priority: 2Application: DialAppData: Zap/G1/17070Uniqueid: 1094154427.10--------------------------------------------------------------'ParkedCall'事件描述:[来源于 res_features.c]示例:Event: ParkedCallExten:Channel:From:Timeout:CallerID:------------------------------------------------------------'Rename'事件描述:[来源于 channel.c: channel 'rename' event]示例:Event: RenameOldname:Newname:Uniqueid:--------------------------------------------------------'SetCDRUserField'事件描述:[来源于 app_setcdruserfield.c]示例:---------------------------------------------------------'Unlink'事件描述:当两个连接的通道断开是发生此事件,通常为挂机时示例:Event: UnlinkChannel1: SIP/101-3f3fChannel2: Zap/2-1Uniqueid1: 1094154427.10Uniqueid2: 1094154427.11------------------------------------------------------------------'UnParkedCall'事件描述:[来源于 res_features.c]-------------------------------------------------------日志状态事件:系统状态事件:'Alarm'事件:描述:[来源于 chan_zap.c]示例:Event: AlarmAlarm:<(Red|Yellow|Blue|No|Unknown)Alarm|Recovering|Loopback|Not Open|None>Channel:-----------------------------------------------------------------------'AlarmClear'事件:描述:[来源于 chan_zap.c]示例:Event: AlarmClearChannel:-------------------------------------------------------------------'DNDState'事件:描述:[来源于 chan_dahdi.c]示例:Event: DNDStateChannel: Zap/1Status:------------------------------------------------------------------'LogChannel'事件描述:[来源于 logger.c]示例:Event: LogChannelChannel: /var/log/asterisk/messagesEnabled: YesEvent: LogChannelChannel: /var/log/asterisk/messagesEnabled: NoReason: 13 - Permission denied----------------------------------------------------------------------'PeerStatus'事件描述:当用户注册或注销时发生此事件[来源于 chan_sip.c, chan_iax2.c]示例:Event: PeerStatusPeer: SIP/2005PeerStatus: RegisteredEvent: PeerStatusPeer: SIP/2005PeerStatus: UnregisteredCause: ExpiredEvent: PeerStatusPeer: IAX2/2007PeerStatus:Time: 1000-------------------------------------------------------------------------'Registry'事件描述:当应户注册时发生的事件[来源于 chan_sip.c, chan_iax2.c]示例:Event: RegistryChannel: SIPDomain: sip.domainStatus: Registered----------------------------------------------------------------'Reload'事件描述:当 "RELOAD" 命令执行时发生此事件[来源于 manager.c]示例:Event: ReloadMessage: Reload Requested--------------------------------------------------------------------'Shutdown'事件描述:[来源于 asterisk.c]示例:Event: ShutdownShutdown:Restart:---------------------------------------------------------------User Status 事件:'UserEvent'事件描述:[来源于 app_userevent.c]示例:Event:Channel:Uniqueid:Event:Channel:Uniqueid:--------------------------------------------------------------------详细状态事件:
'Newstate'事件
示例:Event: NewstateChannel: Zap/2-1State: DialingCallerid: 101Uniqueid: 1094154427.11Event: NewstateChannel: Zap/2-1State: UpCallerid: 101Uniqueid: 1094154427.11----------------------------------------------------------------------'ParkedCallsComplete:'事件描述:发生在ParkedCalls事件之后示例:Event: ParkedCallsComplete-----------------------------------------------------------------'QueueParams:'事件描述:响应Queues动作的事件示例:Event: QueueParamsQueue: salesMax: 0Calls: 0Holdtime: 0Completed: 0Abandoned: 0ServiceLevel: 0ServicelevelPerf: 0.0
--------------------------------------------------------
'QueueMember'事件
描述:响应Queues动作并且队列中有成员是发生的事件。示例:Event: QueueMemberQueue: salesLocation: SIP/101Membership: dynamicPenalty: 0CallsTaken: 0LastCall: 0
 -------------------------------------------------------------------
'QueueStatusEnd'事件
描述:响应Queues动作表示输出结束。示例:Event: QueueStatusEnd
 --------------------------------------------------------------
'Status'事件
示例:Event: StatusChannel: Zap/2-1CallerID: 101Account:State: UpLink: SIP/101-5cf0Uniqueid: 1094166088.26Event: StatusChannel: SIP/101-5cf0CallerID: 101Account:State: UpContext: local_extensionsExtension: 917070Priority: 2Seconds: 11Link: Zap/2-1Uniqueid: 1094166088.25--------------------------------------------------------------------------------------'StatusComplete'事件描述:响应Status动作的事件,表示状态输出结束。示例:Event: StatusComplete----------------------------------------------------------------------------------'ZapShowChannels'事件描述:响应ZapShowChannels动作的事件。示例:Event: ZapShowChannelsChannel: 2Signalling: FXS KewlstartContext: pstn_menuAlarm: No Alarm------------------------------------------------------------------------------------'ZapShowChannelsComplete事件描述:响应ZapShowChannels动作的事件,表示输出结束。示例:Event: ZapShowChannelsComplete---------------------------------------------------动作响应( Response )格式:Response: ( Success或Error)Message: (显示信息)示例:无动作或输入有误:Response: ErrorMessage: Missing action in request未知命令:Response: ErrorMessage: Invalid/unknown command无权限:Response: ErrorMessage: Permission denied成功:Response: SuccessMessage: Zap channel status will followseven407总结2009.09.23
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: