mirror of
https://github.com/asterisk/asterisk.git
synced 2026-05-28 21:47:24 +00:00
Background here: http://lists.digium.com/pipermail/asterisk-dev/2016-January/075266.html From CHANGES: * To help insure that Asterisk is compiled and run with the same known version of pjproject, a new option (--with-pjproject-bundled) has been added to ./configure. When specified, the version of pjproject specified in third-party/versions.mak will be downloaded and configured. When you make Asterisk, the build process will also automatically build pjproject and Asterisk will be statically linked to it. Once a particular version of pjproject is configured and built, it won't be configured or built again unless you run a 'make distclean'. To facilitate testing, when 'make install' is run, the pjsua and pjsystest utilities and the pjproject python bindings will be installed in ASTDATADIR/third-party/pjproject. The default behavior remains building with the shared pjproject installation, if any. Building: All you have to do is include the --with-pjproject-bundled option on the ./configure command line (and remove any existing --with-pjproject option if specified). Everything else is automatic. Behind the scenes: The top-level Makefile was modified to include 'third-party' in the list of MOD_SUBDIRS. The third-party directory was created to contain any third party packages that may be needed in the future. Its Makefile automatically iterates over any subdirectories passing on targets. The third-party/pjproject directory was created to house the pjproject source distribution. Its Makefile contains targets to download, patch configure, generate dependencies, compile libs, apps and python bindings, sanitized build.mak and generate a symbols list. When bootstrap.sh is run, it automatically includes the configure.m4 file in third-party/pjproject. This file has a macro to download and conifgure pjproject and get and set PJPROJECT_INCLUDE, PJPROJECT_DIR and PJPROJECT_BUNDLED. It also tests for the capabilities like PJ_TRANSACTION_GRP_LOCK by parsing preprocessor output as opposed to trying to compile. Of course, bootstrap.sh is only run once and the configure file is incldued in the patch. When configure is run with the new options, the macro in configure.m4 triggers the download, patch, conifgure and tests. No compilation is performed at this time. The downloaded tarball is cached in /tmp so it doesn't get downloaded again on a distclean. When make is run in the top-level Asterisk source directory, it will automatically descend all the subdirectories in third_party just as it does for addons, apps, etc. The top-level Makefile makes sure that the 'third-party' is built before 'main' so that dependencies from the other directories are built first. When main does build, a new shared library (libasteriskpj) is created that links statically to the pjproject .a files and exports all their symbols. The asterisk binary links to that, just as it does with libasteriskssl. When Asterisk is installed, the pjsua and pjsystest apps, and the pjproject python bindings are installed in ASTDATADIR/third-party/pjproject. This will facilitate testing, including running the testsuite which will be updated to check that directory for the pjsua module ahead of the system python library. Modules should continue to depend on pjproject if they use pjproject APIs directly. They should not care about the implementation. No changes to any res_pjsip modules were made. Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
124 lines
4.2 KiB
C
124 lines
4.2 KiB
C
/*
|
|
* Prototypes for public functions only of internal interest,
|
|
* normally not used by modules.
|
|
* What goes here are typically *_init() routines.
|
|
*/
|
|
|
|
/*! \file
|
|
*
|
|
* \brief
|
|
* Prototypes for public functions only of internal interest,
|
|
*
|
|
*/
|
|
|
|
|
|
#ifndef _ASTERISK__PRIVATE_H
|
|
#define _ASTERISK__PRIVATE_H
|
|
|
|
int load_modules(unsigned int); /*!< Provided by loader.c */
|
|
int load_pbx(void); /*!< Provided by pbx.c */
|
|
int load_pbx_builtins(void); /*!< Provided by pbx_builtins.c */
|
|
int load_pbx_functions_cli(void); /*!< Provided by pbx_functions.c */
|
|
int load_pbx_variables(void); /*!< Provided by pbx_variables.c */
|
|
int load_pbx_switch(void); /*!< Provided by pbx_switch.c */
|
|
int load_pbx_app(void); /*!< Provided by pbx_app.c */
|
|
int load_pbx_hangup_handler(void); /*!< Provided by pbx_hangup_handler.c */
|
|
int init_logger(void); /*!< Provided by logger.c */
|
|
void close_logger(void); /*!< Provided by logger.c */
|
|
void logger_queue_start(void); /*!< Provided by logger.c */
|
|
void clean_time_zones(void); /*!< Provided by localtime.c */
|
|
int ast_term_init(void); /*!< Provided by term.c */
|
|
int astdb_init(void); /*!< Provided by db.c */
|
|
void ast_channels_init(void); /*!< Provided by channel.c */
|
|
void ast_builtins_init(void); /*!< Provided by cli.c */
|
|
int ast_cli_perms_init(int reload); /*!< Provided by cli.c */
|
|
int dnsmgr_init(void); /*!< Provided by dnsmgr.c */
|
|
void dnsmgr_start_refresh(void); /*!< Provided by dnsmgr.c */
|
|
int dnsmgr_reload(void); /*!< Provided by dnsmgr.c */
|
|
void threadstorage_init(void); /*!< Provided by threadstorage.c */
|
|
int ast_device_state_engine_init(void); /*!< Provided by devicestate.c */
|
|
int astobj2_init(void); /*!< Provided by astobj2.c */
|
|
int ast_file_init(void); /*!< Provided by file.c */
|
|
int ast_features_init(void); /*!< Provided by features.c */
|
|
void ast_autoservice_init(void); /*!< Provided by autoservice.c */
|
|
int ast_data_init(void); /*!< Provided by data.c */
|
|
int ast_http_init(void); /*!< Provided by http.c */
|
|
int ast_http_reload(void); /*!< Provided by http.c */
|
|
int ast_tps_init(void); /*!< Provided by taskprocessor.c */
|
|
int ast_timing_init(void); /*!< Provided by timing.c */
|
|
int ast_indications_init(void); /*!< Provided by indications.c */
|
|
int ast_indications_reload(void);/*!< Provided by indications.c */
|
|
void ast_stun_init(void); /*!< Provided by stun.c */
|
|
int ast_cel_engine_init(void); /*!< Provided by cel.c */
|
|
int ast_cel_engine_reload(void); /*!< Provided by cel.c */
|
|
int ast_ssl_init(void); /*!< Provided by ssl.c */
|
|
int ast_pj_init(void); /*!< Provided by libasteriskpj.c */
|
|
int ast_test_init(void); /*!< Provided by test.c */
|
|
int ast_msg_init(void); /*!< Provided by message.c */
|
|
void ast_msg_shutdown(void); /*!< Provided by message.c */
|
|
int aco_init(void); /*!< Provided by config_options.c */
|
|
|
|
/*!
|
|
* \brief Initialize the bridging system.
|
|
* \since 12.0.0
|
|
*
|
|
* \retval 0 on success.
|
|
* \retval -1 on error.
|
|
*/
|
|
int ast_bridging_init(void);
|
|
|
|
/*!
|
|
* \brief Initialize the local proxy channel.
|
|
* \since 12.0.0
|
|
*
|
|
* \retval 0 on success.
|
|
* \retval -1 on error.
|
|
*/
|
|
int ast_local_init(void);
|
|
|
|
/*!
|
|
* \brief Process reload requests received during startup.
|
|
*
|
|
* This function requests that the loader execute the pending reload requests
|
|
* that were queued during server startup.
|
|
*
|
|
* \note This function will do nothing if the server has not completely started
|
|
* up. Once called, the reload queue is emptied, and further invocations
|
|
* will have no affect.
|
|
*/
|
|
void ast_process_pending_reloads(void);
|
|
|
|
/*! \brief Load XML documentation. Provided by xmldoc.c
|
|
* \retval 1 on error.
|
|
* \retval 0 on success.
|
|
*/
|
|
int ast_xmldoc_load_documentation(void);
|
|
|
|
/*!
|
|
* \brief Reload genericplc configuration value from codecs.conf
|
|
*
|
|
* Implementation is in main/channel.c
|
|
*/
|
|
int ast_plc_reload(void);
|
|
|
|
/*! \brief initializes the rtp engine arrays */
|
|
int ast_rtp_engine_init(void);
|
|
|
|
/*!
|
|
* \brief initializes the rtp engine arrays
|
|
* \since 12.0.0
|
|
*/
|
|
int ast_parking_stasis_init(void);
|
|
|
|
/*! \brief initialize the sounds index */
|
|
int ast_sounds_index_init(void);
|
|
|
|
/*!
|
|
* \brief Endpoint support initialization.
|
|
* \return 0 on success.
|
|
* \return Non-zero on error.
|
|
*/
|
|
int ast_endpoint_init(void);
|
|
|
|
#endif /* _ASTERISK__PRIVATE_H */
|