res_pjsip_publish_asterisk: Add support for exchanging device and mailbox state using SIP.

This module uses the inbound and outbound PUBLISH support to exchange device and mailbox
state between Asterisk instances. Each instance is configured to publish to the other and
requires no intermediary server. The functionality provided is similar to the XMPP and
Corosync support.

Review: https://reviewboard.asterisk.org/r/3780/


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@420315 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Joshua Colp
2014-08-07 14:37:26 +00:00
parent ece78c6991
commit a8829490b6
4 changed files with 1096 additions and 15 deletions

View File

@@ -58,9 +58,10 @@ struct ast_sip_publish_handler {
*
* \param endpoint The endpoint from whom the PUBLISH arrived.
* \param resource The resource whose state is being published.
* \param event_configuration The name of the event type configuration to use for this resource.
* \return Response code for the incoming PUBLISH
*/
int (*new_publication)(struct ast_sip_endpoint *endpoint, const char *resource);
int (*new_publication)(struct ast_sip_endpoint *endpoint, const char *resource, const char *event_configuration);
/*!
* \brief Called when a publication has reached its expiration.
*/
@@ -98,6 +99,22 @@ struct ast_sip_publish_handler {
*/
struct ast_sip_endpoint *ast_sip_publication_get_endpoint(struct ast_sip_publication *pub);
/*!
* \brief Given a publication, get the resource the publication is to
*
* \param pub The publication
* \return The resource
*/
const char *ast_sip_publication_get_resource(const struct ast_sip_publication *pub);
/*!
* \brief Given a publication, get the configuration name for the event type in use
*
* \param pub The publication
* \return The configuration name
*/
const char *ast_sip_publication_get_event_configuration(const struct ast_sip_publication *pub);
/*!
* \brief Register a publish handler
*