mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-02 03:48:02 +00:00
Merge changes dealing with support for Digium phones.
Presence support has been added. This is accomplished by allowing for presence hints in addition to device state hints. A dialplan function called PRESENCE_STATE has been added to allow for setting and reading presence. Presence can be transmitted to Digium phones using custom XML elements in a PIDF presence document. Voicemail has new APIs that allow for moving, removing, forwarding, and playing messages. Messages have had a new unique message ID added to them so that the APIs will work reliably. The state of a voicemail mailbox can be obtained using an API that allows one to get a snapshot of the mailbox. A voicemail Dialplan App called VoiceMailPlayMsg has been added to be able to play back a specific message. Configuration hooks have been added. Configuration hooks allow for a piece of code to be executed when a specific configuration file is loaded by a specific module. This is useful for modules that are dependent on the configuration of other modules. chan_sip now has a public method that allows for a custom SIP INFO request to be sent mid-dialog. Digium phones use this in order to display progress bars when files are played. Messaging support has been expanded a bit. The main visible difference is the addition of an AMI action MessageSend. Finally, a ParkingLots manager action has been added in order to get a list of parking lots. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@368435 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
22
main/event.c
22
main/event.c
@@ -137,6 +137,7 @@ static int ast_event_cmp(void *obj, void *arg, int flags);
|
||||
static int ast_event_hash_mwi(const void *obj, const int flags);
|
||||
static int ast_event_hash_devstate(const void *obj, const int flags);
|
||||
static int ast_event_hash_devstate_change(const void *obj, const int flags);
|
||||
static int ast_event_hash_presence_state_change(const void *obj, const int flags);
|
||||
|
||||
#ifdef LOW_MEMORY
|
||||
#define NUM_CACHE_BUCKETS 17
|
||||
@@ -181,6 +182,11 @@ static struct {
|
||||
.hash_fn = ast_event_hash_devstate_change,
|
||||
.cache_args = { AST_EVENT_IE_DEVICE, AST_EVENT_IE_EID, },
|
||||
},
|
||||
[AST_EVENT_PRESENCE_STATE] = {
|
||||
.hash_fn = ast_event_hash_presence_state_change,
|
||||
.cache_args = { AST_EVENT_IE_PRESENCE_STATE, },
|
||||
},
|
||||
|
||||
};
|
||||
|
||||
/*!
|
||||
@@ -1587,6 +1593,22 @@ static int ast_event_hash_devstate_change(const void *obj, const int flags)
|
||||
return ast_str_hash(ast_event_get_ie_str(event, AST_EVENT_IE_DEVICE));
|
||||
}
|
||||
|
||||
/*!
|
||||
* \internal
|
||||
* \brief Hash function for AST_EVENT_PRESENCE_STATE
|
||||
*
|
||||
* \param[in] obj an ast_event
|
||||
* \param[in] flags unused
|
||||
*
|
||||
* \return hash value
|
||||
*/
|
||||
static int ast_event_hash_presence_state_change(const void *obj, const int flags)
|
||||
{
|
||||
const struct ast_event *event = obj;
|
||||
|
||||
return ast_str_hash(ast_event_get_ie_str(event, AST_EVENT_IE_PRESENCE_PROVIDER));
|
||||
}
|
||||
|
||||
static int ast_event_hash(const void *obj, const int flags)
|
||||
{
|
||||
const struct ast_event_ref *event_ref;
|
||||
|
||||
Reference in New Issue
Block a user