Asterisk - The Open Source Telephony Project  21.4.1
event_defs.h
Go to the documentation of this file.
1 /*
2  * Asterisk -- An open source telephony toolkit.
3  *
4  * Copyright (C) 2007 - 2008, Digium, Inc.
5  *
6  * Russell Bryant <russell@digium.com>
7  *
8  * See http://www.asterisk.org for more information about
9  * the Asterisk project. Please do not directly contact
10  * any of the maintainers of this project for assistance;
11  * the project provides a web site, mailing lists and IRC
12  * channels for your use.
13  *
14  * This program is free software, distributed under the terms of
15  * the GNU General Public License Version 2. See the LICENSE file
16  * at the top of the source tree.
17  */
18 
19 /*!
20  * \file
21  * \author Russell Bryant <russell@digium.com>
22  * \brief Generic event system
23  */
24 
25 #ifndef AST_EVENT_DEFS_H
26 #define AST_EVENT_DEFS_H
27 
29  /*! Reserved to provide the ability to subscribe to all events. A specific
30  * event should never have a payload of 0. */
31  AST_EVENT_ALL = 0x00,
32  /*! This event type is reserved for use by third-party modules to create
33  * custom events without having to modify this file.
34  * \note There are no "custom" IE types, because IEs only have to be
35  * unique to the event itself, not necessarily across all events. */
37  /*! Voicemail message waiting indication */
38  AST_EVENT_MWI = 0x02,
39  /*! Someone has subscribed to events */
40  AST_EVENT_SUB = 0x03,
41  /*! Someone has unsubscribed from events */
43  /*! The aggregate state of a device across all servers configured to be
44  * a part of a device state cluster has changed. */
46  /*! The state of a device has changed on _one_ server. This should not be used
47  * directly, in general. Use AST_EVENT_DEVICE_STATE instead. */
49  /*! Channel Event Logging events */
50  AST_EVENT_CEL = 0x07,
51  /*! A report of a security related event (see security_events.h) */
53  /*! Used by res_stun_monitor to alert listeners to an exernal network address change. */
55  /*! The presence state for a presence provider */
57  /*! Used to alert listeners when a named ACL has changed. */
59  /*! Send out a ping for debugging distributed events */
61  /*! A cluster discovery message */
63  /*! Number of event types. This should be the last event type + 1 */
65 };
66 
67 /*! \brief Event Information Element types */
69  /*! Used to terminate the arguments to event functions */
71 
72  /*!
73  * \brief Number of new messages
74  * Used by: AST_EVENT_MWI
75  * Payload type: UINT
76  */
78  /*!
79  * \brief Number of
80  * Used by: AST_EVENT_MWI
81  * Payload type: UINT
82  */
84  /*!
85  * \brief Mailbox name \verbatim (mailbox[@context]) \endverbatim
86  * Used by: AST_EVENT_MWI
87  * Payload type: STR
88  */
90  /*!
91  * \brief Unique ID
92  * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
93  * Payload type: UINT
94  */
96  /*!
97  * \brief Event type
98  * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
99  * Payload type: UINT
100  */
102  /*!
103  * \brief Hint that someone cares that an IE exists
104  * Used by: AST_EVENT_SUB
105  * Payload type: UINT (ast_event_ie_type)
106  */
108  /*!
109  * \brief Device Name
110  * Used by AST_EVENT_DEVICE_STATE_CHANGE
111  * Payload type: STR
112  */
114  /*!
115  * \brief Generic State IE
116  * Used by AST_EVENT_DEVICE_STATE_CHANGE
117  * Payload type: UINT
118  * The actual state values depend on the event which
119  * this IE is a part of.
120  */
122  /*!
123  * \brief Context IE
124  * Used by AST_EVENT_MWI
125  * Payload type: str
126  */
128  /*!
129  * \brief Channel Event Type
130  * Used by: AST_EVENT_CEL
131  * Payload type: UINT
132  */
134  /*!
135  * \brief Channel Event Time (seconds)
136  * Used by: AST_EVENT_CEL
137  * Payload type: UINT
138  */
140  /*!
141  * \brief Channel Event Time (micro-seconds)
142  * Used by: AST_EVENT_CEL
143  * Payload type: UINT
144  */
146  /*!
147  * \brief Channel Event User Event Name
148  * Used by: AST_EVENT_CEL
149  * Payload type: STR
150  */
152  /*!
153  * \brief Channel Event CID name
154  * Used by: AST_EVENT_CEL
155  * Payload type: STR
156  */
158  /*!
159  * \brief Channel Event CID num
160  * Used by: AST_EVENT_CEL
161  * Payload type: STR
162  */
164  /*!
165  * \brief Channel Event extension name
166  * Used by: AST_EVENT_CEL
167  * Payload type: STR
168  */
170  /*!
171  * \brief Channel Event context name
172  * Used by: AST_EVENT_CEL
173  * Payload type: STR
174  */
176  /*!
177  * \brief Channel Event channel name
178  * Used by: AST_EVENT_CEL
179  * Payload type: STR
180  */
182  /*!
183  * \brief Channel Event app name
184  * Used by: AST_EVENT_CEL
185  * Payload type: STR
186  */
188  /*!
189  * \brief Channel Event app args/data
190  * Used by: AST_EVENT_CEL
191  * Payload type: STR
192  */
194  /*!
195  * \brief Channel Event AMA flags
196  * Used by: AST_EVENT_CEL
197  * Payload type: UINT
198  */
200  /*!
201  * \brief Channel Event AccountCode
202  * Used by: AST_EVENT_CEL
203  * Payload type: STR
204  */
206  /*!
207  * \brief Channel Event UniqueID
208  * Used by: AST_EVENT_CEL
209  * Payload type: STR
210  */
212  /*!
213  * \brief Channel Event Userfield
214  * Used by: AST_EVENT_CEL
215  * Payload type: STR
216  */
218  /*!
219  * \brief Channel Event CID ANI field
220  * Used by: AST_EVENT_CEL
221  * Payload type: STR
222  */
224  /*!
225  * \brief Channel Event CID RDNIS field
226  * Used by: AST_EVENT_CEL
227  * Payload type: STR
228  */
230  /*!
231  * \brief Channel Event CID dnid
232  * Used by: AST_EVENT_CEL
233  * Payload type: STR
234  */
236  /*!
237  * \brief Channel Event Peer -- for Things involving multiple channels, like BRIDGE
238  * Used by: AST_EVENT_CEL
239  * Payload type: STR
240  */
242  /*!
243  * \brief Channel Event LinkedID
244  * Used by: AST_EVENT_CEL
245  * Payload type: STR
246  */
248  /*!
249  * \brief Channel Event peeraccount
250  * Used by: AST_EVENT_CEL
251  * Payload type: STR
252  */
254  /*!
255  * \brief Channel Event extra data
256  * Used by: AST_EVENT_CEL
257  * Payload type: STR
258  */
260  /*!
261  * \brief Description
262  * Used by: AST_EVENT_SUB, AST_EVENT_UNSUB
263  * Payload type: STR
264  */
266  /*!
267  * \brief Entity ID
268  * Used by All events
269  * Payload type: RAW
270  * This IE indicates which server the event originated from
271  */
273  AST_EVENT_IE_SECURITY_EVENT = 0x0022,
274  AST_EVENT_IE_EVENT_VERSION = 0x0023,
275  AST_EVENT_IE_SERVICE = 0x0024,
276  AST_EVENT_IE_MODULE = 0x0025,
277  AST_EVENT_IE_ACCOUNT_ID = 0x0026,
278  AST_EVENT_IE_SESSION_ID = 0x0027,
279  AST_EVENT_IE_SESSION_TV = 0x0028,
280  AST_EVENT_IE_ACL_NAME = 0x0029,
281  AST_EVENT_IE_LOCAL_ADDR = 0x002a,
282  AST_EVENT_IE_REMOTE_ADDR = 0x002b,
283  AST_EVENT_IE_EVENT_TV = 0x002c,
284  AST_EVENT_IE_REQUEST_TYPE = 0x002d,
285  AST_EVENT_IE_REQUEST_PARAMS = 0x002e,
286  AST_EVENT_IE_AUTH_METHOD = 0x002f,
287  AST_EVENT_IE_SEVERITY = 0x0030,
288  AST_EVENT_IE_EXPECTED_ADDR = 0x0031,
289  AST_EVENT_IE_CHALLENGE = 0x0032,
290  AST_EVENT_IE_RESPONSE = 0x0033,
291  AST_EVENT_IE_EXPECTED_RESPONSE = 0x0034,
292  AST_EVENT_IE_RECEIVED_CHALLENGE = 0x0035,
293  AST_EVENT_IE_RECEIVED_HASH = 0x0036,
294  AST_EVENT_IE_USING_PASSWORD = 0x0037,
295  AST_EVENT_IE_ATTEMPTED_TRANSPORT = 0x0038,
296  AST_EVENT_IE_PRESENCE_PROVIDER = 0x0039,
297  AST_EVENT_IE_PRESENCE_STATE = 0x003a,
298  AST_EVENT_IE_PRESENCE_SUBTYPE = 0x003b,
299  AST_EVENT_IE_PRESENCE_MESSAGE = 0x003c,
300 
301  /*!
302  * \brief Event non-cacheability flag
303  * Used by: All events
304  * Payload type: UINT
305  */
307 
308  /*!
309  * \brief Cluster node ID
310  * Used by: Corosync
311  * Payload type: UINT
312  */
314  /*! \brief Must be the last IE value +1 */
316 };
317 
318 /*!
319  * \brief Payload types for event information elements
320  */
322  AST_EVENT_IE_PLTYPE_UNKNOWN = -1,
323  /*! Just check if it exists, not the value */
325  /*! Unsigned Integer (Can be used for signed, too ...) */
327  /*! String */
329  /*! Raw data, compared with memcmp */
331  /*! Bit flags (unsigned integer, compared using boolean logic) */
333 };
334 
335 /*! \brief Results for checking for subscribers */
337  /*! No subscribers exist */
339  /*! At least one subscriber exists */
341 };
342 
343 struct ast_event;
344 struct ast_event_ie;
345 struct ast_event_iterator;
346 
347 /*!
348  * \brief supposed to be an opaque type
349  *
350  * This is only here so that it can be declared on the stack.
351  */
353  uint16_t event_len;
354  const struct ast_event *event;
355  struct ast_event_ie *ie;
356 };
357 
358 #endif /* AST_EVENT_DEFS_H */
Channel Event CID name Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:157
Channel Event app name Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:187
An event.
Definition: event.c:81
Channel Event extra data Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:259
ast_event_ie_pltype
Payload types for event information elements.
Definition: event_defs.h:321
Must be the last IE value +1.
Definition: event_defs.h:315
Channel Event channel name Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:181
Hint that someone cares that an IE exists Used by: AST_EVENT_SUB Payload type: UINT (ast_event_ie_typ...
Definition: event_defs.h:107
Channel Event UniqueID Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:211
Channel Event context name Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:175
ast_event_subscriber_res
Results for checking for subscribers.
Definition: event_defs.h:336
Channel Event app args/data Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:193
Channel Event peeraccount Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:253
Channel Event Time (micro-seconds) Used by: AST_EVENT_CEL Payload type: UINT.
Definition: event_defs.h:145
Channel Event CID dnid Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:235
Description Used by: AST_EVENT_SUB, AST_EVENT_UNSUB Payload type: STR.
Definition: event_defs.h:265
Definition: astman.c:222
Number of new messages Used by: AST_EVENT_MWI Payload type: UINT.
Definition: event_defs.h:77
Number of Used by: AST_EVENT_MWI Payload type: UINT.
Definition: event_defs.h:83
supposed to be an opaque type
Definition: event_defs.h:352
Channel Event Type Used by: AST_EVENT_CEL Payload type: UINT.
Definition: event_defs.h:133
Entity ID Used by All events Payload type: RAW This IE indicates which server the event originated fr...
Definition: event_defs.h:272
Channel Event Time (seconds) Used by: AST_EVENT_CEL Payload type: UINT.
Definition: event_defs.h:139
Channel Event CID num Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:163
Channel Event extension name Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:169
ast_event_ie_type
Event Information Element types.
Definition: event_defs.h:68
ast_event_type
Definition: event_defs.h:28
Context IE Used by AST_EVENT_MWI Payload type: str.
Definition: event_defs.h:127
An event information element.
Definition: event.c:53
Channel Event Userfield Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:217
Channel Event CID RDNIS field Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:229
Event non-cacheability flag Used by: All events Payload type: UINT.
Definition: event_defs.h:306
Event type Used by: AST_EVENT_SUB, AST_EVENT_UNSUB Payload type: UINT.
Definition: event_defs.h:101
Channel Event User Event Name Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:151
Channel Event Peer – for Things involving multiple channels, like BRIDGE Used by: AST_EVENT_CEL Payl...
Definition: event_defs.h:241
Channel Event CID ANI field Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:223
Channel Event AMA flags Used by: AST_EVENT_CEL Payload type: UINT.
Definition: event_defs.h:199
Channel Event LinkedID Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:247
Unique ID Used by: AST_EVENT_SUB, AST_EVENT_UNSUB Payload type: UINT.
Definition: event_defs.h:95
Generic State IE Used by AST_EVENT_DEVICE_STATE_CHANGE Payload type: UINT The actual state values dep...
Definition: event_defs.h:121
Device Name Used by AST_EVENT_DEVICE_STATE_CHANGE Payload type: STR.
Definition: event_defs.h:113
Cluster node ID Used by: Corosync Payload type: UINT.
Definition: event_defs.h:313
Channel Event AccountCode Used by: AST_EVENT_CEL Payload type: STR.
Definition: event_defs.h:205
Mailbox name.
Definition: event_defs.h:89