Mon Mar 12 2012 21:39:05

Asterisk developer's documentation


event_defs.h File Reference

Generic event system. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  ast_event_iterator
 supposed to be an opaque type More...

Enumerations

enum  ast_event_ie_pltype {
  AST_EVENT_IE_PLTYPE_UNKNOWN = -1, AST_EVENT_IE_PLTYPE_EXISTS, AST_EVENT_IE_PLTYPE_UINT, AST_EVENT_IE_PLTYPE_STR,
  AST_EVENT_IE_PLTYPE_RAW, AST_EVENT_IE_PLTYPE_BITFLAGS
}
 Payload types for event information elements. More...
enum  ast_event_ie_type {
  AST_EVENT_IE_END = -1, AST_EVENT_IE_NEWMSGS = 0x0001, AST_EVENT_IE_OLDMSGS = 0x0002, AST_EVENT_IE_MAILBOX = 0x0003,
  AST_EVENT_IE_UNIQUEID = 0x0004, AST_EVENT_IE_EVENTTYPE = 0x0005, AST_EVENT_IE_EXISTS = 0x0006, AST_EVENT_IE_DEVICE = 0x0007,
  AST_EVENT_IE_STATE = 0x0008, AST_EVENT_IE_CONTEXT = 0x0009, AST_EVENT_IE_CEL_EVENT_TYPE = 0x000a, AST_EVENT_IE_CEL_EVENT_TIME = 0x000b,
  AST_EVENT_IE_CEL_EVENT_TIME_USEC = 0x000c, AST_EVENT_IE_CEL_USEREVENT_NAME = 0x000d, AST_EVENT_IE_CEL_CIDNAME = 0x000e, AST_EVENT_IE_CEL_CIDNUM = 0x000f,
  AST_EVENT_IE_CEL_EXTEN = 0x0010, AST_EVENT_IE_CEL_CONTEXT = 0x0011, AST_EVENT_IE_CEL_CHANNAME = 0x0012, AST_EVENT_IE_CEL_APPNAME = 0x0013,
  AST_EVENT_IE_CEL_APPDATA = 0x0014, AST_EVENT_IE_CEL_AMAFLAGS = 0x0015, AST_EVENT_IE_CEL_ACCTCODE = 0x0016, AST_EVENT_IE_CEL_UNIQUEID = 0x0017,
  AST_EVENT_IE_CEL_USERFIELD = 0x0018, AST_EVENT_IE_CEL_CIDANI = 0x0019, AST_EVENT_IE_CEL_CIDRDNIS = 0x001a, AST_EVENT_IE_CEL_CIDDNID = 0x001b,
  AST_EVENT_IE_CEL_PEER = 0x001c, AST_EVENT_IE_CEL_LINKEDID = 0x001d, AST_EVENT_IE_CEL_PEERACCT = 0x001e, AST_EVENT_IE_CEL_EXTRA = 0x001f,
  AST_EVENT_IE_DESCRIPTION = 0x0020, AST_EVENT_IE_EID = 0x0021, AST_EVENT_IE_SECURITY_EVENT = 0x0022, AST_EVENT_IE_EVENT_VERSION = 0x0023,
  AST_EVENT_IE_SERVICE = 0x0024, AST_EVENT_IE_MODULE = 0x0025, AST_EVENT_IE_ACCOUNT_ID = 0x0026, AST_EVENT_IE_SESSION_ID = 0x0027,
  AST_EVENT_IE_SESSION_TV = 0x0028, AST_EVENT_IE_ACL_NAME = 0x0029, AST_EVENT_IE_LOCAL_ADDR = 0x002a, AST_EVENT_IE_REMOTE_ADDR = 0x002b,
  AST_EVENT_IE_EVENT_TV = 0x002c, AST_EVENT_IE_REQUEST_TYPE = 0x002d, AST_EVENT_IE_REQUEST_PARAMS = 0x002e, AST_EVENT_IE_AUTH_METHOD = 0x002f,
  AST_EVENT_IE_SEVERITY = 0x0030, AST_EVENT_IE_EXPECTED_ADDR = 0x0031, AST_EVENT_IE_CHALLENGE = 0x0032, AST_EVENT_IE_RESPONSE = 0x0033,
  AST_EVENT_IE_EXPECTED_RESPONSE = 0x0034, AST_EVENT_IE_TOTAL = 0x0035
}
 Event Information Element types. More...
enum  ast_event_subscriber_res { AST_EVENT_SUB_NONE, AST_EVENT_SUB_EXISTS }
 Results for checking for subscribers. More...
enum  ast_event_type {
  AST_EVENT_ALL = 0x00, AST_EVENT_CUSTOM = 0x01, AST_EVENT_MWI = 0x02, AST_EVENT_SUB = 0x03,
  AST_EVENT_UNSUB = 0x04, AST_EVENT_DEVICE_STATE = 0x05, AST_EVENT_DEVICE_STATE_CHANGE = 0x06, AST_EVENT_CEL = 0x07,
  AST_EVENT_SECURITY = 0x08, AST_EVENT_NETWORK_CHANGE = 0x09, AST_EVENT_TOTAL = 0x0a
}
 Event types. More...

Detailed Description

Generic event system.

Author:
Russell Bryant <russell@digium.com>

Definition in file event_defs.h.


Enumeration Type Documentation

Payload types for event information elements.

Enumerator:
AST_EVENT_IE_PLTYPE_UNKNOWN 
AST_EVENT_IE_PLTYPE_EXISTS 

Just check if it exists, not the value

AST_EVENT_IE_PLTYPE_UINT 

Unsigned Integer (Can be used for signed, too ...)

AST_EVENT_IE_PLTYPE_STR 

String

AST_EVENT_IE_PLTYPE_RAW 

Raw data, compared with memcmp

AST_EVENT_IE_PLTYPE_BITFLAGS 

Bit flags (unsigned integer, compared using boolean logic)

Definition at line 293 of file event_defs.h.

                         {
   AST_EVENT_IE_PLTYPE_UNKNOWN = -1,
   /*! Just check if it exists, not the value */
   AST_EVENT_IE_PLTYPE_EXISTS,
   /*! Unsigned Integer (Can be used for signed, too ...) */
   AST_EVENT_IE_PLTYPE_UINT,
   /*! String */
   AST_EVENT_IE_PLTYPE_STR,
   /*! Raw data, compared with memcmp */
   AST_EVENT_IE_PLTYPE_RAW,
   /*! Bit flags (unsigned integer, compared using boolean logic) */
   AST_EVENT_IE_PLTYPE_BITFLAGS,
};

Event Information Element types.

Enumerator:
AST_EVENT_IE_END 

Used to terminate the arguments to event functions

AST_EVENT_IE_NEWMSGS 

Number of new messages Used by: AST_EVENT_MWI Payload type: UINT.

AST_EVENT_IE_OLDMSGS 

Number of Used by: AST_EVENT_MWI Payload type: UINT.

AST_EVENT_IE_MAILBOX 

Mailbox name.

(mailbox[@context]) 

Used by: AST_EVENT_MWI Payload type: STR

AST_EVENT_IE_UNIQUEID 

Unique ID Used by: AST_EVENT_SUB, AST_EVENT_UNSUB Payload type: UINT.

AST_EVENT_IE_EVENTTYPE 

Event type Used by: AST_EVENT_SUB, AST_EVENT_UNSUB Payload type: UINT.

AST_EVENT_IE_EXISTS 

Hint that someone cares that an IE exists Used by: AST_EVENT_SUB Payload type: UINT (ast_event_ie_type)

AST_EVENT_IE_DEVICE 

Device Name Used by AST_EVENT_DEVICE_STATE_CHANGE Payload type: STR.

AST_EVENT_IE_STATE 

Generic State IE Used by AST_EVENT_DEVICE_STATE_CHANGE Payload type: UINT The actual state values depend on the event which this IE is a part of.

AST_EVENT_IE_CONTEXT 

Context IE Used by AST_EVENT_MWI Payload type: str.

AST_EVENT_IE_CEL_EVENT_TYPE 

Channel Event Type Used by: AST_EVENT_CEL Payload type: UINT.

AST_EVENT_IE_CEL_EVENT_TIME 

Channel Event Time (seconds) Used by: AST_EVENT_CEL Payload type: UINT.

AST_EVENT_IE_CEL_EVENT_TIME_USEC 

Channel Event Time (micro-seconds) Used by: AST_EVENT_CEL Payload type: UINT.

AST_EVENT_IE_CEL_USEREVENT_NAME 

Channel Event User Event Name Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CIDNAME 

Channel Event CID name Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CIDNUM 

Channel Event CID num Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_EXTEN 

Channel Event extension name Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CONTEXT 

Channel Event context name Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CHANNAME 

Channel Event channel name Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_APPNAME 

Channel Event app name Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_APPDATA 

Channel Event app args/data Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_AMAFLAGS 

Channel Event AMA flags Used by: AST_EVENT_CEL Payload type: UINT.

AST_EVENT_IE_CEL_ACCTCODE 

Channel Event AccountCode Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_UNIQUEID 

Channel Event UniqueID Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_USERFIELD 

Channel Event Userfield Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CIDANI 

Channel Event CID ANI field Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CIDRDNIS 

Channel Event CID RDNIS field Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_CIDDNID 

Channel Event CID dnid Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_PEER 

Channel Event Peer -- for Things involving multiple channels, like BRIDGE Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_LINKEDID 

Channel Event LinkedID Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_PEERACCT 

Channel Event peeraccount Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_CEL_EXTRA 

Channel Event extra data Used by: AST_EVENT_CEL Payload type: STR.

AST_EVENT_IE_DESCRIPTION 

Description Used by: AST_EVENT_SUB, AST_EVENT_UNSUB Payload type: STR.

AST_EVENT_IE_EID 

Entity ID Used by All events Payload type: RAW This IE indicates which server the event originated from.

AST_EVENT_IE_SECURITY_EVENT 
AST_EVENT_IE_EVENT_VERSION 
AST_EVENT_IE_SERVICE 
AST_EVENT_IE_MODULE 
AST_EVENT_IE_ACCOUNT_ID 
AST_EVENT_IE_SESSION_ID 
AST_EVENT_IE_SESSION_TV 
AST_EVENT_IE_ACL_NAME 
AST_EVENT_IE_LOCAL_ADDR 
AST_EVENT_IE_REMOTE_ADDR 
AST_EVENT_IE_EVENT_TV 
AST_EVENT_IE_REQUEST_TYPE 
AST_EVENT_IE_REQUEST_PARAMS 
AST_EVENT_IE_AUTH_METHOD 
AST_EVENT_IE_SEVERITY 
AST_EVENT_IE_EXPECTED_ADDR 
AST_EVENT_IE_CHALLENGE 
AST_EVENT_IE_RESPONSE 
AST_EVENT_IE_EXPECTED_RESPONSE 
AST_EVENT_IE_TOTAL 

Must be the last IE value +1.

Definition at line 62 of file event_defs.h.

                       {
   /*! Used to terminate the arguments to event functions */
   AST_EVENT_IE_END                 = -1,

   /*! 
    * \brief Number of new messages
    * Used by: AST_EVENT_MWI 
    * Payload type: UINT
    */
   AST_EVENT_IE_NEWMSGS             = 0x0001,
   /*! 
    * \brief Number of
    * Used by: AST_EVENT_MWI 
    * Payload type: UINT
    */
   AST_EVENT_IE_OLDMSGS             = 0x0002,
   /*! 
    * \brief Mailbox name \verbatim (mailbox[@context]) \endverbatim
    * Used by: AST_EVENT_MWI 
    * Payload type: STR
    */
   AST_EVENT_IE_MAILBOX             = 0x0003,
   /*! 
    * \brief Unique ID
    * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
    * Payload type: UINT
    */
   AST_EVENT_IE_UNIQUEID            = 0x0004,
   /*! 
    * \brief Event type 
    * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
    * Payload type: UINT
    */
   AST_EVENT_IE_EVENTTYPE           = 0x0005,
   /*!
    * \brief Hint that someone cares that an IE exists
    * Used by: AST_EVENT_SUB
    * Payload type: UINT (ast_event_ie_type)
    */
   AST_EVENT_IE_EXISTS              = 0x0006,
   /*!
    * \brief Device Name
    * Used by AST_EVENT_DEVICE_STATE_CHANGE
    * Payload type: STR
    */
   AST_EVENT_IE_DEVICE              = 0x0007,
   /*!
    * \brief Generic State IE
    * Used by AST_EVENT_DEVICE_STATE_CHANGE
    * Payload type: UINT
    * The actual state values depend on the event which
    * this IE is a part of.
    */
    AST_EVENT_IE_STATE              = 0x0008,
    /*!
     * \brief Context IE
     * Used by AST_EVENT_MWI
     * Payload type: str
     */
    AST_EVENT_IE_CONTEXT            = 0x0009,
   /*! 
    * \brief Channel Event Type
    * Used by: AST_EVENT_CEL
    * Payload type: UINT
    */
   AST_EVENT_IE_CEL_EVENT_TYPE      = 0x000a,
   /*! 
    * \brief Channel Event Time (seconds)
    * Used by: AST_EVENT_CEL
    * Payload type: UINT
    */
   AST_EVENT_IE_CEL_EVENT_TIME      = 0x000b,
   /*! 
    * \brief Channel Event Time (micro-seconds)
    * Used by: AST_EVENT_CEL
    * Payload type: UINT
    */
   AST_EVENT_IE_CEL_EVENT_TIME_USEC = 0x000c,
   /*! 
    * \brief Channel Event User Event Name
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_USEREVENT_NAME  = 0x000d,
   /*! 
    * \brief Channel Event CID name
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CIDNAME         = 0x000e,
   /*! 
    * \brief Channel Event CID num
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CIDNUM          = 0x000f,
   /*! 
    * \brief Channel Event extension name
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_EXTEN           = 0x0010,
   /*! 
    * \brief Channel Event context name
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CONTEXT         = 0x0011,
   /*! 
    * \brief Channel Event channel name
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CHANNAME        = 0x0012,
   /*! 
    * \brief Channel Event app name
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_APPNAME         = 0x0013,
   /*! 
    * \brief Channel Event app args/data
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_APPDATA         = 0x0014,
   /*! 
    * \brief Channel Event AMA flags
    * Used by: AST_EVENT_CEL
    * Payload type: UINT
    */
   AST_EVENT_IE_CEL_AMAFLAGS        = 0x0015,
   /*! 
    * \brief Channel Event AccountCode
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_ACCTCODE        = 0x0016,
   /*! 
    * \brief Channel Event UniqueID
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_UNIQUEID        = 0x0017,
   /*! 
    * \brief Channel Event Userfield
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_USERFIELD       = 0x0018,
   /*! 
    * \brief Channel Event CID ANI field
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CIDANI          = 0x0019,
   /*! 
    * \brief Channel Event CID RDNIS field
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CIDRDNIS        = 0x001a,
   /*! 
    * \brief Channel Event CID dnid
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_CIDDNID         = 0x001b,
   /*! 
    * \brief Channel Event Peer -- for Things involving multiple channels, like BRIDGE
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_PEER            = 0x001c,
   /*! 
    * \brief Channel Event LinkedID
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_LINKEDID        = 0x001d,
   /*! 
    * \brief Channel Event peeraccount
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_PEERACCT        = 0x001e,
   /*! 
    * \brief Channel Event extra data
    * Used by: AST_EVENT_CEL
    * Payload type: STR
    */
   AST_EVENT_IE_CEL_EXTRA           = 0x001f,
   /*!
    * \brief Description
    * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
    * Payload type: STR
    */
   AST_EVENT_IE_DESCRIPTION         = 0x0020,
   /*!
    * \brief Entity ID
    * Used by All events
    * Payload type: RAW
    * This IE indicates which server the event originated from
    */
   AST_EVENT_IE_EID                 = 0x0021,
   AST_EVENT_IE_SECURITY_EVENT      = 0x0022,
   AST_EVENT_IE_EVENT_VERSION       = 0x0023,
   AST_EVENT_IE_SERVICE             = 0x0024,
   AST_EVENT_IE_MODULE              = 0x0025,
   AST_EVENT_IE_ACCOUNT_ID          = 0x0026,
   AST_EVENT_IE_SESSION_ID          = 0x0027,
   AST_EVENT_IE_SESSION_TV          = 0x0028,
   AST_EVENT_IE_ACL_NAME            = 0x0029,
   AST_EVENT_IE_LOCAL_ADDR          = 0x002a,
   AST_EVENT_IE_REMOTE_ADDR         = 0x002b,
   AST_EVENT_IE_EVENT_TV            = 0x002c,
   AST_EVENT_IE_REQUEST_TYPE        = 0x002d,
   AST_EVENT_IE_REQUEST_PARAMS      = 0x002e,
   AST_EVENT_IE_AUTH_METHOD         = 0x002f,
   AST_EVENT_IE_SEVERITY            = 0x0030,
   AST_EVENT_IE_EXPECTED_ADDR       = 0x0031,
   AST_EVENT_IE_CHALLENGE           = 0x0032,
   AST_EVENT_IE_RESPONSE            = 0x0033,
   AST_EVENT_IE_EXPECTED_RESPONSE   = 0x0034,
   /*! \brief Must be the last IE value +1 */
   AST_EVENT_IE_TOTAL               = 0x0035,
};

Results for checking for subscribers.

ast_event_check_subscriber()

Enumerator:
AST_EVENT_SUB_NONE 

No subscribers exist

AST_EVENT_SUB_EXISTS 

At least one subscriber exists

Definition at line 312 of file event_defs.h.

                              {
   /*! No subscribers exist */
   AST_EVENT_SUB_NONE,
   /*! At least one subscriber exists */
   AST_EVENT_SUB_EXISTS,
};

Event types.

Note:
These values can *never* change.
Enumerator:
AST_EVENT_ALL 

Reserved to provide the ability to subscribe to all events. A specific event should never have a payload of 0.

AST_EVENT_CUSTOM 

This event type is reserved for use by third-party modules to create custom events without having to modify this file.

Note:
There are no "custom" IE types, because IEs only have to be unique to the event itself, not necessarily across all events.
AST_EVENT_MWI 

Voicemail message waiting indication

AST_EVENT_SUB 

Someone has subscribed to events

AST_EVENT_UNSUB 

Someone has unsubscribed from events

AST_EVENT_DEVICE_STATE 

The aggregate state of a device across all servers configured to be a part of a device state cluster has changed.

AST_EVENT_DEVICE_STATE_CHANGE 

The state of a device has changed on _one_ server. This should not be used directly, in general. Use AST_EVENT_DEVICE_STATE instead.

AST_EVENT_CEL 

Channel Event Logging events

AST_EVENT_SECURITY 

A report of a security related event (see security_events.h)

AST_EVENT_NETWORK_CHANGE 

Used by res_stun_monitor to alert listeners to an exernal network address change.

AST_EVENT_TOTAL 

Number of event types. This should be the last event type + 1

Definition at line 30 of file event_defs.h.

                    {
   /*! Reserved to provide the ability to subscribe to all events.  A specific
    *  event should never have a payload of 0. */
   AST_EVENT_ALL                 = 0x00,
   /*! This event type is reserved for use by third-party modules to create
    *  custom events without having to modify this file. 
    *  \note There are no "custom" IE types, because IEs only have to be
    *  unique to the event itself, not necessarily across all events. */
   AST_EVENT_CUSTOM              = 0x01,
   /*! Voicemail message waiting indication */
   AST_EVENT_MWI                 = 0x02,
   /*! Someone has subscribed to events */
   AST_EVENT_SUB                 = 0x03,
   /*! Someone has unsubscribed from events */
   AST_EVENT_UNSUB               = 0x04,
   /*! The aggregate state of a device across all servers configured to be
    *  a part of a device state cluster has changed. */
   AST_EVENT_DEVICE_STATE        = 0x05,
   /*! The state of a device has changed on _one_ server.  This should not be used
    *  directly, in general.  Use AST_EVENT_DEVICE_STATE instead. */
   AST_EVENT_DEVICE_STATE_CHANGE = 0x06,
   /*! Channel Event Logging events */
   AST_EVENT_CEL                 = 0x07,
   /*! A report of a security related event (see security_events.h) */
   AST_EVENT_SECURITY            = 0x08,
   /*! Used by res_stun_monitor to alert listeners to an exernal network address change. */
   AST_EVENT_NETWORK_CHANGE      = 0x09,
   /*! Number of event types.  This should be the last event type + 1 */
   AST_EVENT_TOTAL               = 0x0a,
};