|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
/*
|
|
|
|
|
* res_pjsip.h
|
|
|
|
|
* res_pjsip_private.h
|
|
|
|
|
*
|
|
|
|
|
* Created on: Jan 25, 2013
|
|
|
|
|
* Author: mjordan
|
|
|
|
@ -8,6 +8,12 @@
|
|
|
|
|
#ifndef RES_PJSIP_PRIVATE_H_
|
|
|
|
|
#define RES_PJSIP_PRIVATE_H_
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \todo XXX Functions prototyped in this file that begin with "ast_sip_"
|
|
|
|
|
* need to be renamed so res_pjsip.so does not export the names outside
|
|
|
|
|
* of the module.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include "asterisk/module.h"
|
|
|
|
|
#include "asterisk/compat.h"
|
|
|
|
|
|
|
|
|
@ -15,21 +21,154 @@ struct ao2_container;
|
|
|
|
|
struct ast_threadpool_options;
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize the configuration for res_pjsip
|
|
|
|
|
*/
|
|
|
|
|
int ast_res_pjsip_initialize_configuration(const struct ast_module_info *ast_module_info);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Annihilate the configuration objects
|
|
|
|
|
*/
|
|
|
|
|
void ast_res_pjsip_destroy_configuration(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Reload the configuration
|
|
|
|
|
*/
|
|
|
|
|
int ast_res_pjsip_reload_configuration(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize transport support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_sorcery_transport(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy transport support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_destroy_sorcery_transport(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize qualify support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_sorcery_qualify(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize location support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_sorcery_location(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy location support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_destroy_sorcery_location(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize domain aliases support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_sorcery_domain_alias(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize authentication support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_sorcery_auth(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy authentication support on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_destroy_sorcery_auth(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize the distributor module
|
|
|
|
|
*
|
|
|
|
|
* The distributor module is responsible for taking an incoming
|
|
|
|
|
* SIP message and placing it into the threadpool. Once in the threadpool,
|
|
|
|
|
* the distributor will perform endpoint lookups and authentication, and
|
|
|
|
|
* then distribute the message up the stack to any further modules.
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 Failure
|
|
|
|
|
* \retval 0 Success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_distributor(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destruct the distributor module.
|
|
|
|
|
*
|
|
|
|
|
* Unregisters pjsip modules and cleans up any allocated resources.
|
|
|
|
|
*/
|
|
|
|
|
void ast_sip_destroy_distributor(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize global type on a sorcery instance
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_sorcery_global(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy global type on a sorcery instance
|
|
|
|
|
* \since 13.3.0
|
|
|
|
|
*
|
|
|
|
|
* \retval -1 failure
|
|
|
|
|
* \retval 0 success
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_destroy_sorcery_global(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize global headers support
|
|
|
|
|
*
|
|
|
|
|
* \return Nothing
|
|
|
|
|
*/
|
|
|
|
|
void ast_sip_initialize_global_headers(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy global headers support
|
|
|
|
|
*
|
|
|
|
|
* \return Nothing
|
|
|
|
|
*/
|
|
|
|
|
void ast_sip_destroy_global_headers(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize OPTIONS request handling.
|
|
|
|
|
*
|
|
|
|
|
* XXX This currently includes qualifying peers. It shouldn't.
|
|
|
|
@ -44,6 +183,7 @@ int ast_res_pjsip_reload_configuration(void);
|
|
|
|
|
int ast_res_pjsip_init_options_handling(int reload);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize transport storage for contacts.
|
|
|
|
|
*
|
|
|
|
|
* \retval 0 on success
|
|
|
|
@ -52,6 +192,7 @@ int ast_res_pjsip_init_options_handling(int reload);
|
|
|
|
|
int ast_res_pjsip_init_contact_transports(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize outbound authentication support
|
|
|
|
|
*
|
|
|
|
|
* \retval 0 Success
|
|
|
|
@ -60,6 +201,7 @@ int ast_res_pjsip_init_contact_transports(void);
|
|
|
|
|
int internal_sip_initialize_outbound_authentication(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy outbound authentication support
|
|
|
|
|
*
|
|
|
|
|
* \retval 0 Success
|
|
|
|
@ -68,6 +210,7 @@ int internal_sip_initialize_outbound_authentication(void);
|
|
|
|
|
void internal_sip_destroy_outbound_authentication(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize system configuration
|
|
|
|
|
*
|
|
|
|
|
* \retval 0 Success
|
|
|
|
@ -76,16 +219,19 @@ void internal_sip_destroy_outbound_authentication(void);
|
|
|
|
|
int ast_sip_initialize_system(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Destroy system configuration
|
|
|
|
|
*/
|
|
|
|
|
void ast_sip_destroy_system(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize nameserver configuration
|
|
|
|
|
*/
|
|
|
|
|
void ast_sip_initialize_dns(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Initialize global configuration
|
|
|
|
|
*
|
|
|
|
|
* \retval 0 Success
|
|
|
|
@ -94,16 +240,19 @@ void ast_sip_initialize_dns(void);
|
|
|
|
|
int ast_sip_initialize_global(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Clean up res_pjsip options handling
|
|
|
|
|
*/
|
|
|
|
|
void ast_res_pjsip_cleanup_options_handling(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Get threadpool options
|
|
|
|
|
*/
|
|
|
|
|
void sip_get_threadpool_options(struct ast_threadpool_options *threadpool_options);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Retrieve the name of the default outbound endpoint.
|
|
|
|
|
*
|
|
|
|
|
* \note This returns a memory allocated copy of the name that
|
|
|
|
@ -115,28 +264,33 @@ void sip_get_threadpool_options(struct ast_threadpool_options *threadpool_option
|
|
|
|
|
char *ast_sip_global_default_outbound_endpoint(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Functions for initializing and destroying the CLI.
|
|
|
|
|
*/
|
|
|
|
|
int ast_sip_initialize_cli(void);
|
|
|
|
|
void ast_sip_destroy_cli(void);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal \brief Used by res_pjsip.so to register a service without adding a self reference
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Used by res_pjsip.so to register a service without adding a self reference
|
|
|
|
|
*/
|
|
|
|
|
int internal_sip_register_service(pjsip_module *module);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal \brief Used by res_pjsip.so to unregister a service without removing a self reference
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Used by res_pjsip.so to unregister a service without removing a self reference
|
|
|
|
|
*/
|
|
|
|
|
int internal_sip_unregister_service(pjsip_module *module);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal \brief Used by res_pjsip.so to register an endpoint formatter without adding a self reference
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Used by res_pjsip.so to register an endpoint formatter without adding a self reference
|
|
|
|
|
*/
|
|
|
|
|
void internal_sip_register_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
|
|
|
|
|
|
|
|
|
|
/*!
|
|
|
|
|
* \internal \brief Used by res_pjsip.so to unregister a endpoint formatter without removing a self reference
|
|
|
|
|
* \internal
|
|
|
|
|
* \brief Used by res_pjsip.so to unregister a endpoint formatter without removing a self reference
|
|
|
|
|
*/
|
|
|
|
|
int internal_sip_unregister_endpoint_formatter(struct ast_sip_endpoint_formatter *obj);
|
|
|
|
|
|
|
|
|
|