Archived
14
0
Fork 0
Commit graph

25 commits

Author SHA1 Message Date
seanbright
8cb986b936 Another big chunk of changes from the RSW branch. Bunch of stuff from main/
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@137082 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-10 19:35:50 +00:00
mmichelson
e3f8a4c03c Add an additional sanity check in case an event is passed between
Asterisk boxes with mismatched ie_maps.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@121649 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-10 19:52:21 +00:00
russell
639a4bf7e4 Merge some more changes from team/russell/events
This commit pulls in a batch of improvements and additions to the event API.
Changes include:
 - the ability to dynamically build a subscription.  This is useful if you're
    building a subscription based on something you receive from the network,
    or from options in a configuration file.
 - Add tables of event types and IE types and the corresponding string
    representation for implementing text based protocols that use these
	events, for showing events on the CLI, reading configuration that
	references event information, among other things.
 - Add a table that maps IE types and the corresponding payload type.
 - an API call to get the total size of an event
 - an API call to get all events from the cache that match a subscription
 - a new IE payload type, raw, which I used for transporting the Entity ID in
    my code for handling distributed device state.
 - Code improvements to reduce code duplication
 - Include the Entity ID of the server that originated the event in every event
 - an additional event type, DEVICE_STATE_CHANGE, to help facilitate distributed
    device state.  DEVICE_STATE is a state change on one server, DEVICE_STATE_CHANGE
	is the aggregate device state change across all servers.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@121555 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-10 14:53:40 +00:00
russell
d380bc9762 Simplify code by using a taskprocessor for dispatching events in the Asterisk core.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@115324 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-05 22:01:56 +00:00
murf
7ba4ed906e Introducing a small optimization to event_unsubscribe; events now use a Doubly-Linked list for events, gives fast deletions, for the sake of channel driver mwi events. From team/murf/bug11210.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114183 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-16 20:28:08 +00:00
mmichelson
4d009015b3 Fix a small logic error in ast_event_iterator_next. The previous logic allowed for the iterator
to indicate there was more data than there really was, causing the iterator read beyond the end
of the event structure. This led to invalid memory reads and potential crashes.



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103559 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-13 00:55:09 +00:00
mmichelson
0208ffa7e7 Fix a problem regarding network vs. host byte order
in the event API.

ast_event_iterator_get_ie_type should return the ie type in
host byte order. Furthermore, ast_event_get_ie_raw should already
have its ie type argument in host byte order since it could be called
externally (and it in fact is called in this way by ast_event_get_cached).



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@103282 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-11 02:47:25 +00:00
file
0898d1a9f3 Goodbye again drumkilla.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98435 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-11 23:09:31 +00:00
file
3a29ee26cc drumkilla ftw.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98434 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-11 23:00:21 +00:00
russell
3e1330a03a * In unaligned.h, remove some unnecessary casts and mark the arg of the
get_unaligned functions as const
* In event.c, use get_unaligned_uint32() in a couple of places to fix issues on
  architectures that don't allow unaligned access


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@92305 f38db490-d61c-443f-a65b-d21fe96a405b
2007-12-11 16:29:29 +00:00
rizzo
8d3385f534 move internal function declarations to include/asterisk/_private.h
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89465 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-20 22:18:21 +00:00
rizzo
883346d64a Start untangling header inclusion in a way that does not affect
build times - tested, there is no measureable difference before and
after this commit.

In this change:

use asterisk/compat.h to include a small set of system headers:
inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h,
stdlib.h, alloca.h, stdio.h

Where available, the inclusion is conditional on HAVE_FOO_H as determined
by autoconf.

Normally, source files should not include any of the above system headers,
and instead use either "asterisk.h" or "asterisk/compat.h" which does it
better. 

For the time being I have left alone second-level directories
(main/db1-ast, etc.).



git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89333 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-16 20:04:58 +00:00
kpfleming
a45a413db3 improve linked-list macros in two ways:
- the *_CURRENT macros no longer need the list head pointer argument
  - add AST_LIST_MOVE_CURRENT to encapsulate the remove/add operation when moving entries between lists


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89106 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-08 05:28:47 +00:00
russell
2149521341 Try to clarify the rules on changing ast_event and ast_event_ie
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81356 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 19:41:16 +00:00
russell
7a00d5df42 Fix parenthesis from my last commit
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81355 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 19:33:57 +00:00
russell
11d3039143 Change pointer aritmetic on void * to char *
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81354 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 18:33:31 +00:00
russell
24be6b7a07 there is not actually code that sends these over the network in trunk yet
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81353 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 18:27:48 +00:00
file
6799b0ecd1 Return ast_event_get_ie_raw to using an iterator and fix logic in ast_event_iterator_next.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81348 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 16:25:30 +00:00
file
eecfea3dfd This concludes bringing trunk back to a working state.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81345 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 16:07:35 +00:00
file
f64bc26def To keep others happy... revert part of my additions so trunk works.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81344 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 16:03:51 +00:00
file
64fec3775a Add API calls for iterating through an event. This should allow events to have multiple information elements (while there was nothing preventing it before you could not actually access any except the first one).
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81334 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29 15:19:11 +00:00
russell
58d5edca86 Merge a set of device state improvements from team/russell/events.
The way a device state change propagates is kind of silly, in my opinion.  A
device state provider calls a function that indicates that the state of a
device has changed.  Then, another thread goes back and calls a callback for
the device state provider to find out what the new state is before it can go
send it off to whoever cares.

I have changed it so that you can include the state that the device has changed
to in the first function call from the device state provider.  This removes the
need to have to call the callback, which locks up critical containers to go find
out what the state changed to.

This change set changes the "simple" device state providers to use the new method.
This includes parking, meetme, and SLA.

I have also mostly converted chan_agent in my branch, but still have some more
things to think through before presenting the plan for converting channel drivers
to ensure all of the right events get generated ...


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@79027 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-10 16:24:11 +00:00
tilghman
eb5d461ed4 Issue 9869 - replace malloc and memset with ast_calloc, and other coding guidelines changes
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@67864 f38db490-d61c-443f-a65b-d21fe96a405b
2007-06-06 21:20:11 +00:00
oej
666b27ef92 This file really needs more documentation...
When we implement new API's - please include a small general overview in Doxygen


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@64496 f38db490-d61c-443f-a65b-d21fe96a405b
2007-05-16 07:10:54 +00:00
russell
9c61ba7c81 Merge changes from team/russell/events
This set of changes introduces a new generic event API for use within Asterisk.
I am still working on a way for events to be shared between servers, but this
part is ready and can already be used inside of Asterisk.

This set of changes introduces the first use of the API, as well.  I have
restructured the way that MWI (message waiting indication) is handled.  It is
now event based instead of polling based.  For example, if there are a bunch
of SIP phones subscribed to mailboxes, then chan_sip will not have to
constantly poll the mailboxes for changes.  app_voicemail will generate events
when changes occur.

See UPGRADE.txt and CHANGES for some more information on the effects of these
changes from the user perspective.  For developer information, see the text in
include/asterisk/event.h.

As always, additional feedback is welcome on the asterisk-dev mailing list.


git-svn-id: http://svn.digium.com/svn/asterisk/trunk@62292 f38db490-d61c-443f-a65b-d21fe96a405b
2007-04-28 21:01:44 +00:00