summaryrefslogtreecommitdiff
path: root/include/asterisk/event_defs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/asterisk/event_defs.h')
-rw-r--r--include/asterisk/event_defs.h57
1 files changed, 42 insertions, 15 deletions
diff --git a/include/asterisk/event_defs.h b/include/asterisk/event_defs.h
index b664ac14b..3f1e3bd15 100644
--- a/include/asterisk/event_defs.h
+++ b/include/asterisk/event_defs.h
@@ -1,7 +1,7 @@
/*
* Asterisk -- An open source telephony toolkit.
*
- * Copyright (C) 2007, Digium, Inc.
+ * Copyright (C) 2007 - 2008, Digium, Inc.
*
* Russell Bryant <russell@digium.com>
*
@@ -29,23 +29,27 @@
* \note These values can *never* change. */
enum ast_event_type {
/*! Reserved to provide the ability to subscribe to all events. A specific
- event should never have a payload of 0. */
- AST_EVENT_ALL = 0x00,
+ * 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,
+ * 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,
+ AST_EVENT_MWI = 0x02,
/*! Someone has subscribed to events */
- AST_EVENT_SUB = 0x03,
+ AST_EVENT_SUB = 0x03,
/*! Someone has unsubscribed from events */
- AST_EVENT_UNSUB = 0x04,
- /*! The state of a device has changed */
- AST_EVENT_DEVICE_STATE = 0x05,
+ 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,
/*! Number of event types. This should be the last event type + 1 */
- AST_EVENT_TOTAL = 0x06,
+ AST_EVENT_TOTAL = 0x07,
};
/*! \brief Event Information Element types */
@@ -91,13 +95,13 @@ enum ast_event_ie_type {
AST_EVENT_IE_EXISTS = 0x06,
/*!
* \brief Device Name
- * Used by AST_EVENT_DEVICE_STATE
+ * Used by AST_EVENT_DEVICE_STATE_CHANGE
* Payload type: STR
*/
AST_EVENT_IE_DEVICE = 0x07,
/*!
* \brief Generic State IE
- * Used by AST_EVENT_DEVICE_STATE
+ * 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.
@@ -109,18 +113,30 @@ enum ast_event_ie_type {
* Payload type: str
*/
AST_EVENT_IE_CONTEXT = 0x09,
+ /*!
+ * \brief Entity ID
+ * Used by All events
+ * Payload type: RAW
+ * This IE indicates which server the event originated from
+ */
+ AST_EVENT_IE_EID = 0x0A,
};
+#define AST_EVENT_IE_MAX AST_EVENT_IE_EID
+
/*!
* \brief Payload types for event information elements
*/
enum ast_event_ie_pltype {
+ 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,
};
/*!
@@ -140,4 +156,15 @@ struct ast_event_ie;
struct ast_event_sub;
struct ast_event_iterator;
+/*!
+ * \brief supposed to be an opaque type
+ *
+ * This is only here so that it can be declared on the stack.
+ */
+struct ast_event_iterator {
+ uint16_t event_len;
+ const struct ast_event *event;
+ struct ast_event_ie *ie;
+};
+
#endif /* AST_EVENT_DEFS_H */