一种简单的\"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中配置。账户由允许登陆的主机,登录密码以及被授予的权限列表组成。
登录和身份验证的经理,你必须发送一个\" 登录 \"行动,用您的用户名和秘密(密码作为参数)。 Here is an example:下面是一个例子:
Action: login Username: admin Secret: secret
你还可以通过\"Events: off\"阻止事件数据包发送到你的连接。例如:
Action: login Username: admin
Secret: secret Events: off 动作数据包:
向Asterisk发送动作时,额外的关键字可以提供进一步的动作信息。例如,你可能希望指定号码或通道的断开。此外,如果您的操作会导致Asterisk来执行拨号规则中的条目,你可以传递变量给拨号规则。这与你传递关键字的方式是一样的。
向Asterisk发送动作数据包时,按照以下格式:
Action: Variable: 管理动作( Action ): 通过CLI命令show manager commands的输出结果就是管理动作列表。 具体如下: 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 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- 注意:返回的事件响应结果并不是发送一个回车换行(/r/n),而只发送回车(/n),如果你在中断处理程序中只等待回车换行,那么这条信息将会被被抛弃。 例如command返回信息如下: Response: Follows/r/n Channel Location State Application(Data)/n SIP/x7065551212b-1af (None) Ringing AppDial((Outgoing Line))/n SIP/x7065551212c-2aa 29@default:2 Ring Dial(SIP/x7065551212b)/n 2 active channels/n 1 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: EVENTS EVENTMASK: ON 返回信息: Event: PeerStatus Peer: SIP/ChannelName PeerStatus: Unregistered Cause: Expired 当EventMask参数为'off'时会立即返回响应信息,如下: 发送: ACTION: EVENTS EVENTMASK: OFF 返回: Response: Events Off ExtensionState :检查分机的状态。 参数:Exten,Context,ActionID 例子: 发送: ACTION: ExtensionState Context: default Exten: 2001 ActionID: 1 接收: Response: Success ActionID: 1 Message: Extension Status Exten: 2001 Context: default Hint: SIP/2001 Status: 0 Status状态代码: -1 =扩展找不到 0 =空闲 1 =在使用 2 =忙 4 =不可用 8 =振铃 16 =正等待 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) 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 IAXpeers :显示iax信息列表。 例子: 发送: Action: IAXPeers 接收: Name/Username Host Mask Port Status 8002 (Unspecified) (D) 255.255.255.255 0 UNKNOWN 8001 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: Success AbsoluteTimeout: 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: Goodbye Message: Thanks for all the fish. MailboxCount :检查语音信箱是否有新信息。 参数:MailBox,actionID 例子: 发送: Action: MailboxCount Mailbox: 2001@device 接收: Response: Success Message: Mailbox Message Count Mailbox: 2001@device NewMessages: 1 OldMessages: 0 MailboxStatus:检查语音信箱状态。 参数:MailBox,actionID 例子: 发送: Action: MailboxStatus Mailbox: 2001@device 接收: Response: Success Message: Mailbox Status Mailbox: 2001@device Waiting: 1 Monitor:监听某个通道。 参数:Channel, File, Format, Mix 例子: 发送: ACTION: Monitor Channel: SIP/x7062618529-643d File: channelsavefile Mix: 1 返回: Response: Success Message: Started monitoring channel 失败返回 Response: Error Message: 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通道鸣响,然后当他被接听后,通过上下文呼叫另一端的分机。注意超时只用于呼叫通道,呼叫分机时的超时另外指定。 使用异步导致1 OriginateResponse事件,包含了失败的原因。 Reason may be one of the following:原因可能是下列之一: 0 = no such extension or number 0 =没有这样的延长或编号 1 = no answer 1 =无应答 4 = answered 4 =回答 8 = congested or not available 8 =拥挤或不可用 例1(从SIP通道呼叫一个分机,这将导致外部呼叫无法产生直到sip通道挂断) 发送: Action: Originate Channel: SIP/101test Context: default Exten: 8135551212 Priority: 1 Callerid: 3125551212 Timeout: 30000 Variable: var1=23|var2=24|var3=25 ActionID: ABC45678901234567890 分机8135551212是外呼号码。这个例子表明了变量的使用方法 例2(从呼出通道呼叫一个本地分机,这将导致该分机不再响铃直到zap通道挂断) 发送: Action: Originate Channel: Zap/g2/8135551212 Context: default Exten: 101 Priority: 1 Timeout: 30000 Callerid: 3125551212 101为一个本地分机号。 例3(运行系统命令) 发送: Action: Originate Channel: Local/1@dummy Application: system Data: /path/to/script 提示:如果你希望通道连接到任意分机和上下文,需要指定一个本地通道 ParkedCalls :设置显示保持的呼叫列表。 参数:ActionID 发送: Action: PakedCalls 返回: Response: Success Message: Parked calls will follow Event: ParkedCallsComplete Ping 例子: 发送: Action: ping 返回: Response: Pong QueueAdd :添加队列成员。 参数: Queue:添加成员的队列名。 Interface: 成员名(例如sip/2001) Penalty:数值,值越高越靠后。 Paused:暂停(true)或不暂停(false) ActionID:(前面已介绍) 例子: 发送: Action: QueueAdd Queue: 200 Interface: sip/3001 Penalty: 1 Paused: true 返回: Response: Success Message: Added interface to queue Event: QueueMemberAdded Privilege: agent,all Queue: 200 Location: sip/3001 MemberName: sip/3001 Membership: dynamic Penalty: 1 CallsTaken: 0 LastCall: 0 Status: 5 Paused: 1 QueueRemove :移除队列成员。 参数: Queue:移除成员的队列名。 Interface: 成员名(例如sip/2001) 例子: 发送: Action: QueueRemove Queue: 200 Interface: sip/3001 返回: Response: Success Message: Removed interface from queue Event: QueueMemberRemoved Privilege: agent,all Queue: 200 Location: sip/3001 MemberName: 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 0s Members: Local/2002@from-internal/n (Invalid) has taken no calls yet Local/2003@from-internal/n (Invalid) has taken no calls yet Local/2001@from-internal/n (Invalid) has taken no calls yet No Callers default has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime), W:0, C:0, A:0, SL:0.0% within 0s No Members No Callers QueueStatus :返回全部队列的电话数据信息。 例子: 发送: Action: QueueStatus 返回: Response: Success Message: Queue status will follow Event: QueueParams Queue: 200 Max: 0 Calls: 0 Holdtime: 0 Completed: 0 Abandoned: 0 ServiceLevel: 0 ServicelevelPerf: 0.0 Weight: 0 Event: QueueMember Queue: 200 Name: Local/2002@from-internal/n Location: Local/2002@from-internal/n Membership: static Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 4 Paused: 0 Event: QueueMember Queue: 200 Name: Local/2003@from-internal/n Location: Local/2003@from-internal/n Membership: static Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 4 Paused: 0 Event: QueueMember Queue: 200 Name: Local/2001@from-internal/n Location: Local/2001@from-internal/n Membership: static Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 4 Paused: 0 Event: QueueParams Queue: default Max: 0 Calls: 0 Holdtime: 0 Completed: 0 Abandoned: 0 ServiceLevel: 0 ServicelevelPerf: 0.0 Weight: 0 Event: QueueStatusComplete Redirect :重定向一个呼叫。 参数: Channel:重定向的通道。 ExtraChannel:重定向的第二通道(可选) Exten:重定向的分机。 Context: 重定向的上下文。 Priority:重定向的优先级 ActionID:(可选) 例子(把两个呼叫重定向到meetme房间) Action: Redirect Channel: Zap/73-1 ExtraChannel: SIP/199testphone-1f3c Exten: 8600029 Context: default Priority: 1 8600029的上下文是default,并将进入meetme房间。 SetCDRUserField :设置用户的呼叫详细记录。 参数:UserField,Channel,Append SetVar :设置通道变量。 参数:Channel, Variable, Value 例子: 发送: Action: Setvar Channel: Zap/1-1 Variable: AtestVariable Value: This is now set SIPpeers :显示sip用户列表。 例子: 发送: Action: SIPpeers 返回 Response: Success Message: Peer status list will follow Event: PeerEntry Channeltype: SIP ObjectName: 3001 ChanObjectType: peer IPaddress: -none- IPport: 0 Dynamic: yes Natsupport: yes VideoSupport: no ACL: no Status: UNKNOWN RealtimeDevice: no Event: PeerEntry Channeltype: SIP ObjectName: 2003 ChanObjectType: peer IPaddress: -none- IPport: 0 Dynamic: yes Natsupport: yes VideoSupport: no ACL: no Status: UNKNOWN RealtimeDevice: no Event: PeerEntry Channeltype: SIP ObjectName: 2002 ChanObjectType: peer IPaddress: -none- IPport: 0 Dynamic: yes Natsupport: yes VideoSupport: no ACL: no Status: UNKNOWN RealtimeDevice: no Event: PeerEntry Channeltype: SIP ObjectName: 2001 ChanObjectType: peer IPaddress: -none- IPport: 0 Dynamic: yes Natsupport: yes VideoSupport: no ACL: no Status: UNKNOWN RealtimeDevice: no Event: PeerlistComplete ListItems: 4 Status :返回所有开放通道或指定通道的状态。 参数:Channel (可选), ActionID (可选) 例子: 发送: Action:Status 返回: Response: Success Message: Channel status will follow Event: StatusComplete StopMonitor :停止检测某通道。 参数:Channel 例子: 发送: Action: StopMonitor Channel: Zap/1-1 ZapDialOffhook :从空闲的ZAP通道拨打呼叫。 参数: ZapChannel: ZAP 通道 Number: 所拨打的号码 ZapDNDoff :绑定ZAP通道而不影响其关闭状态 参数:ZAPChannel ZapDNDon :绑定ZAP通道而不影响其开放状态 参数:ZAPChannel ZapHangup :挂断ZAP通道。 参数:ZAPChannel ZapTransfer :转拨ZAP通道。 参数:ZAPChannel ZapShowChannels :显示所有ZAP通道信息。 参数:ActionID(可选) Asterisk 1.2.1新增: AgentCallBackLogin :设置用户以回拨方式登录。 参数: Agent:用户登录的ID Exten: 用于回拨的分机 Context: 用于回拨的上下文 AckCall: 设置在用户回拨时进行验证 WrapupTime: 挂断重拨的最小间隔时间 ActionID: 例子: 发送: Action: AgentCallBackLogin Agent: 1234 Exten: 1234 Context: myqueues AckCall: true WrapupTime: 30 ActionID: 12345 AgentLogoff :注销一个用户。 参数: Agent:用户登录Id 例子: 发送: Action: AgentLogoff Agent: 1234 Agents :显示所有用户信息。 例子: 发送: Action: Agents DBGet :查询数据库信息。 参数:Family,Key 发送: Action: DBGet Family: Key: 失败返回: Response: Error Message: Database entry not found 成功返回: Response: Success Message: Result will follow Event: DBGetResponse Family: 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: DBPut Family: Key: Value: (note, as of Asterisk 1.4 The Manager API wants Val: ) 返回: Response: Success Message: 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: PlayDTMF Channel: SIP/123-e2b2 Digit: 1 成功返回: Response: Success Message: DTMF successfully queued 失败返回: Response: Error Message: 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: 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)。 Asterisk 事件( Event ) : 以下的事件都在asterisk源码中定义。 用户状态事件: 'Agentcallbacklogin' 事件 : 描述: [来源于chan_agent.c] 示例: Event: Agentcallbacklogin Agent: Loginchan: Uniqueid: 'Agentcallbacklogoff'事件 描述: [来源于chan_agent.c] 示例: Event: Agentcallbacklogoff Agent: Loginchan: Logintime: Reason: Autologoff Uniqueid: Event: Agentcallbacklogoff Agent: Loginchan: Logintime: Uniqueid: 'AgentCalled'事件 描述: [来源于 app_queue.c] 示例: Event: AgentCalled AgentCalled: ChannelCalling: CallerID: Context: Extension: Priority: 'AgentComplete'事件 描述: [来源于 app_queue.c] 示例: Event: AgentComplete Queue: Uniqueid: Channel: Member: MemberName: HoldTime: TalkTime: Reason: 'AgentConnect'事件 描述: [来源于 app_queue.c] 示例: Event: AgentConnect Queue: Uniqueid: Channel: Member: MemberName: Holdtime: BridgedChannel: 'AgentDump'事件 描述: [来源于 app_queue.c] 示例: Event: AgentDump Queue: Uniqueid: Channel: Member: MemberName: 'Agentlogin'事件 描述: [来源于 chan_agent.c] 示例: Event: Agentlogin Agent: Channel: Uniqueid: 'Agentlogoff'事件 描述: [来源于 chan_agent.c] 示例: Event: Agentlogoff Agent: Logintime: Uniqueid: 'QueueMemberAdded'事件 描述: 队列增加成员动作 [来源于 app_queue.c] 示例: Queue: testing Location: Agent/AgentId Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 Status: 4 Paused: 1 'QueueMemberPaused'事件 描述: 响应动作: QueuePause [来源于 app_queue.c] 示例: Event: QueueMemberPaused Location: 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: QueueMemberStatus Queue: Location: MemberName: Membership: Penalty: CallsTaken: LastCall: Status: Paused: - 命令状态事件: 呼叫状态事件: 'CDR'事件 描述: [来源于 cdr_manager.c] 必须在 cdr_manager.conf 配置文件中有: general enabled = yes 示例: Event: Cdr AccountCode: Source: Destination: DestinationContext: CallerID: Channel: DestinationChannel: LastApplication: LastData: StartTime: AnswerTime: EndTime: Duration: BillableSeconds: Disposition: AMAFlags: UniqueID: UserField: 'Dial'事件 描述: [来源于 app_dial.c] 示例: Event: Dial Privilege: call,all Source: Local/900@default-2dbf,2 Destination: SIP/900-4c21 CallerID: CallerIDName: default SrcUniqueID: 1149161705.2 DestUniqueID: 1149161705.4 'ExtensionStatus'事件 描述: [来源于 manager.c] 示例: Event: ExtensionStatus Exten: Context: Status: 'Hangup'事件 描述: [来源于 channel.c] 示例: Event: Hangup Channel: SIP/101-3f3f Uniqueid: 1094154427.10 Cause: 0 Cause 代码: 未分配 = 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 无效的不明信息 = 95 IE浏览器关闭 = 96 不识别的信息类型 = 97 错误信息 = 98 无IE浏览器 = 99 无效的IE信息 = 100 呼叫状态错误 = 101 计时到达 = 102 强制性IE浏览器长度误差 = 103 协议错误 = 111 互通 = 127 未定义的 = 0 'MusicOnHold'事件 描述: 事件表示电话等待时,播放音乐 示例: Event: MusicOnHold Channel: State: Uniqueid: 'Join'事件 描述: [来源于 app_queue.c] 示例: Event: Join Channel: CallerID: Queue: Position: Count: 'Leave'事件 描述: [来源于 app_queue.c] 示例: Event: Leave Channel: Queue: Count: 'Link'事件 描述: 当两个通道已连接后开始交换声音数据时发生'link'事件 示例: Event: Link Channel1: SIP/101-3f3f Channel2: Zap/2-1 Uniqueid1: 1094154427.10 Uniqueid2: 1094154427.11 'MeetmeJoin'事件 描述: [来源于 app_meetme.c] 示例: Event: MeetmeJoin Channel: Uniqueid: Meetme: Usernum: 'MeetmeLeave'事件 描述: [来源于 app_meetme.c] 示例: Event: MeetmeLeave Channel: Uniqueid: Meetme: Usernum: 'MeetmeStopTalking'事件 描述: [来源于 app_meetme.c] 注意: 这要求在meetme应用中以选中T选 示例: Event: MeetmeStopTalking Privilege: call,all Channel: SIP/200-ABC1 Uniqueid: 1234567890.1 Meetme: 400 Usernum: 2 'MeetmeTalking'事件 描述: [来源于 app_meetme.c] 注意: 这要求在meetme应用中以选中T选项 示例: Event: MeetmeTalking Privilege: call,all Channel: SIP/200-ABC1 Uniqueid: 1234567890.1 Meetme: 400 Usernum: 2 'MessageWaiting'事件 描述: [来源于 app_voicemail.c] 示例: Event: MessageWaiting Mailbox: @ Waiting: New: Old: Event: MessageWaiting Mailbox: Waiting: 'Newcallerid'事件 描述: [来源于 channel.c] 示例: Event: Newcallerid Channel: Callerid: Uniqueid: 'Newchannel'事件 描述: [来源于 channel.c] 示例: Event: Newchannel Channel: Zap/2-1 State: Rsrvd Callerid: Uniqueid: 1094154427.11 Event: Newchannel Channel: SIP/101-3f3f State: Ring Callerid: 101 Uniqueid: 1094154427.10 'Newexten'事件 描述: 当一项PBX函数运行(例如执行拨号规则)时发生此事件。 示例: Event: Newexten Channel: SIP/101-00c7 Context: macro-ext Extension: s Priority: 3 Application: Goto AppData: s-BUSY Uniqueid: 1094154321.8 Event: Newexten Channel: SIP/101-3f3f Context: local_extensions Extension: 917070 Priority: 1 Application: AGI AppData: /etc/asterisk/agi/ks_doorman_pickup.py|channel_up Uniqueid: 1094154427.10 Event: Newexten Channel: SIP/101-3f3f Context: local_extensions Extension: 917070 Priority: 2 Application: Dial AppData: Zap/G1/17070 Uniqueid: 1094154427.10 'ParkedCall'事件 描述: [来源于 res_features.c] 示例: Event: ParkedCall Exten: Channel: From: Timeout: CallerID: 'Rename'事件 描述: [来源于 channel.c: channel 'rename' event] 示例: Event: Rename Oldname: Newname: Uniqueid: 'SetCDRUserField'事件 描述: [来源于 app_setcdruserfield.c] 示例: 'Unlink'事件 描述: 当两个连接的通道断开是发生此事件,通常为挂机时 示例: Event: Unlink Channel1: SIP/101-3f3f Channel2: Zap/2-1 Uniqueid1: 1094154427.10 Uniqueid2: 1094154427.11 'UnParkedCall'事件 描述: [来源于 res_features.c] 日志状态事件: 系统状态事件: 'Alarm'事件: 描述: [来源于 chan_zap.c] 示例: Event: Alarm Alarm:<(Red|Yellow|Blue|No|Unknown)Alarm|Recovering|Loopback|Not Open|None> Channel: 'AlarmClear'事件: 描述: [来源于 chan_zap.c] 示例: Event: AlarmClear Channel: 'DNDState'事件: 描述: [来源于 chan_dahdi.c] 示例: Event: DNDState Channel: Zap/1 Status: 'LogChannel'事件 描述: [来源于 logger.c] 示例: Event: LogChannel Channel: /var/log/asterisk/messages Enabled: Yes Event: LogChannel Channel: /var/log/asterisk/messages Enabled: No Reason: 13 - Permission denied 'PeerStatus'事件 描述: 当用户注册或注销时发生此事件 [来源于 chan_sip.c, chan_iax2.c] 示例: Event: PeerStatus Peer: SIP/2005 PeerStatus: Registered Event: PeerStatus Peer: SIP/2005 PeerStatus: Unregistered Cause: Expired Event: PeerStatus Peer: IAX2/2007 PeerStatus: Time: 1000 'Registry'事件 描述: 当应户注册时发生的事件 [来源于 chan_sip.c, chan_iax2.c] 示例: Event: Registry Channel: SIP Domain: sip.domain Status: Registered 'Reload'事件 描述: 当 \"RELOAD\" 命令执行时发生此事件 [来源于 manager.c] 示例: Event: Reload Message: Reload Requested 'Shutdown'事件 描述: [来源于 asterisk.c] 示例: Event: Shutdown Shutdown: Restart: User Status 事件: 'UserEvent'事件 描述: [来源于 app_userevent.c] 示例: Event: Channel: Uniqueid: Event: Channel: Uniqueid: 详细状态事件: 'Newstate'事件 示例: Event: Newstate Channel: Zap/2-1 State: Dialing Callerid: 101 Uniqueid: 1094154427.11 Event: Newstate Channel: Zap/2-1 State: Up Callerid: 101 Uniqueid: 1094154427.11 'ParkedCallsComplete:'事件 描述: 发生在ParkedCalls事件之后 示例: Event: ParkedCallsComplete 'QueueParams:'事件 描述: 响应Queues动作的事件 示例: Event: QueueParams Queue: sales Max: 0 Calls: 0 Holdtime: 0 Completed: 0 Abandoned: 0 ServiceLevel: 0 ServicelevelPerf: 0.0 'QueueMember'事件 描述: 响应Queues动作并且队列中有成员是发生的事件。 示例: Event: QueueMember Queue: sales Location: SIP/101 Membership: dynamic Penalty: 0 CallsTaken: 0 LastCall: 0 'QueueStatusEnd'事件 描述: 响应Queues动作表示输出结束。 示例: Event: QueueStatusEnd 'Status'事件 示例: Event: Status Channel: Zap/2-1 CallerID: 101 Account: State: Up Link: SIP/101-5cf0 Uniqueid: 1094166088.26 Event: Status Channel: SIP/101-5cf0 CallerID: 101 Account: State: Up Context: local_extensions Extension: 917070 Priority: 2 Seconds: 11 Link: Zap/2-1 Uniqueid: 1094166088.25 'StatusComplete'事件 描述: 响应Status动作的事件,表示状态输出结束。 示例: Event: StatusComplete 'ZapShowChannels'事件 描述: 响应ZapShowChannels动作的事件。 示例: Event: ZapShowChannels Channel: 2 Signalling: FXS Kewlstart Context: pstn_menu Alarm: No Alarm 'ZapShowChannelsComplete事件 描述: 响应ZapShowChannels动作的事件,表示输出结束。 示例: Event: ZapShowChannelsComplete 动作响应( Response ) 格式: Response: ( Success或Error) Message: (显示信息) 示例: 无动作或输入有误: Response: Error Message: Missing action in request 未知命令: Response: Error Message: Invalid/unknown command 无权限: Response: Error Message: Permission denied 成功: Response: Success Message: Zap channel status will follow 因篇幅问题不能全部显示,请点此查看更多更全内容