| errno.h | | errno.h | |
|
| /* $Id: errno.h 2506 2009-03-12 18:11:37Z bennylp $ */ | | /* $Id: errno.h 2992 2009-11-09 04:09:13Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 25 | | skipping to change at line 25 | |
| * | | * | |
| * You should have received a copy of the GNU General Public License | | * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, write to the Free Software | | * along with this program; if not, write to the Free Software | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| */ | | */ | |
| #ifndef __PJ_ERRNO_H__ | | #ifndef __PJ_ERRNO_H__ | |
| #define __PJ_ERRNO_H__ | | #define __PJ_ERRNO_H__ | |
| | | | |
| /** | | /** | |
| * @file errno.h | | * @file errno.h | |
|
| * @brief PJLIB Error Codes | | * @brief PJLIB Error Subsystem | |
| */ | | */ | |
| #include <pj/types.h> | | #include <pj/types.h> | |
| #include <pj/compat/errno.h> | | #include <pj/compat/errno.h> | |
|
| | | #include <stdarg.h> | |
| | | | |
| PJ_BEGIN_DECL | | PJ_BEGIN_DECL | |
| | | | |
| /** | | /** | |
|
| * @defgroup pj_errno Error Codes | | * @defgroup pj_errno Error Subsystem | |
| * @{ | | * @{ | |
| * | | * | |
|
| * In PJLIB, error/status codes from operating system are translated | | * The PJLIB Error Subsystem is a framework to unify all error codes | |
| * into PJLIB error namespace, and stored in @a pj_status_t. All functions | | * produced by all components into a single error space, and provide | |
| * that work with @a pj_status_t expect to get PJLIB error code instead | | * uniform set of APIs to access them. With this framework, any error | |
| * of native codes. | | * codes are encoded as pj_status_t value. The framework is extensible, | |
| | | * application may register new error spaces to be recognized by | |
| | | * the framework. | |
| * | | * | |
| * @section pj_errno_retval Return Values | | * @section pj_errno_retval Return Values | |
| * | | * | |
| * All functions that returns @a pj_status_t returns @a PJ_SUCCESS if the | | * All functions that returns @a pj_status_t returns @a PJ_SUCCESS if the | |
| * operation was completed successfully, or non-zero value to indicate | | * operation was completed successfully, or non-zero value to indicate | |
| * error. If the error came from operating system, then the native error | | * error. If the error came from operating system, then the native error | |
| * code is translated/folded into PJLIB's error namespace by using | | * code is translated/folded into PJLIB's error namespace by using | |
| * #PJ_STATUS_FROM_OS() macro. The function will do this automatically | | * #PJ_STATUS_FROM_OS() macro. The function will do this automatically | |
| * before returning the error to caller. | | * before returning the error to caller. | |
| * | | * | |
|
| * @section pj_errno_errmsg Error Message | | * @section err_services Retrieving and Displaying Error Messages | |
| * | | * | |
|
| * To get the error message corresponding to a particular code, use functio | | * The framework provides the following APIs to retrieve and/or display | |
| n | | * error messages: | |
| * #pj_strerror(). This function expects error code in PJLIB error namespac | | | |
| e, | | | |
| * not the native error code. Application can pass the value from the | | | |
| * following sources to this function: | | | |
| * - #pj_get_os_error() | | | |
| * - #pj_get_netos_error() | | | |
| * - any return value from function returning @a pj_status_t. | | | |
| * | | * | |
|
| * Application MUST NOT pass native error code (such as error code from | | * - #pj_strerror(): this is the base API to retrieve error string | |
| | | * description for the specified pj_status_t error code. | |
| | | * | |
| | | * - #PJ_PERROR() macro: use this macro similar to PJ_LOG to format | |
| | | * an error message and display them to the log | |
| | | * | |
| | | * - #pj_perror(): this function is similar to PJ_PERROR() but unlike | |
| | | * #PJ_PERROR(), this function will always be included in the | |
| | | * link process. Due to this reason, prefer to use #PJ_PERROR() | |
| | | * if the application is concerned about the executable size. | |
| | | * | |
| | | * Application MUST NOT pass native error codes (such as error code from | |
| * functions like GetLastError() or errno) to PJLIB functions expecting | | * functions like GetLastError() or errno) to PJLIB functions expecting | |
| * @a pj_status_t. | | * @a pj_status_t. | |
| * | | * | |
|
| | | * @section err_extending Extending the Error Space | |
| | | * | |
| | | * Application may register new error space to be recognized by the | |
| | | * framework by using #pj_register_strerror(). Use the range started | |
| | | * from PJ_ERRNO_START_USER to avoid conflict with existing error | |
| | | * spaces. | |
| | | * | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * Guidelines on error message length. | | * Guidelines on error message length. | |
| */ | | */ | |
| #define PJ_ERR_MSG_SIZE 80 | | #define PJ_ERR_MSG_SIZE 80 | |
| | | | |
| /** | | /** | |
|
| | | * Buffer for title string of #PJ_PERROR(). | |
| | | */ | |
| | | #ifndef PJ_PERROR_TITLE_BUF_SIZE | |
| | | # define PJ_PERROR_TITLE_BUF_SIZE 120 | |
| | | #endif | |
| | | | |
| | | /** | |
| * Get the last platform error/status, folded into pj_status_t. | | * Get the last platform error/status, folded into pj_status_t. | |
| * @return OS dependent error code, folded into pj_status_t. | | * @return OS dependent error code, folded into pj_status_t. | |
| * @remark This function gets errno, or calls GetLastError() function a
nd | | * @remark This function gets errno, or calls GetLastError() function a
nd | |
| * convert the code into pj_status_t with PJ_STATUS_FROM_OS. Do | | * convert the code into pj_status_t with PJ_STATUS_FROM_OS. Do | |
| * not call this for socket functions! | | * not call this for socket functions! | |
| * @see pj_get_netos_error() | | * @see pj_get_netos_error() | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_get_os_error(void); | | PJ_DECL(pj_status_t) pj_get_os_error(void); | |
| | | | |
| /** | | /** | |
| | | | |
| skipping to change at line 114 | | skipping to change at line 137 | |
| * @param buf Buffer to hold the error message string. | | * @param buf Buffer to hold the error message string. | |
| * @param bufsize Size of the buffer. | | * @param bufsize Size of the buffer. | |
| * | | * | |
| * @return The error message as NULL terminated string, | | * @return The error message as NULL terminated string, | |
| * wrapped with pj_str_t. | | * wrapped with pj_str_t. | |
| */ | | */ | |
| PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode, | | PJ_DECL(pj_str_t) pj_strerror( pj_status_t statcode, | |
| char *buf, pj_size_t bufsize); | | char *buf, pj_size_t bufsize); | |
| | | | |
| /** | | /** | |
|
| | | * A utility macro to print error message pertaining to the specified error | |
| | | * code to the log. This macro will construct the error message title | |
| | | * according to the 'title_fmt' argument, and add the error string pertaini | |
| | | ng | |
| | | * to the error code after the title string. A colon (':') will be added | |
| | | * automatically between the title and the error string. | |
| | | * | |
| | | * This function is similar to pj_perror() function, but has the advantage | |
| | | * that the function call can be omitted from the link process if the | |
| | | * log level argument is below PJ_LOG_MAX_LEVEL threshold. | |
| | | * | |
| | | * Note that the title string constructed from the title_fmt will be built | |
| | | on | |
| | | * a string buffer which size is PJ_PERROR_TITLE_BUF_SIZE, which normally i | |
| | | s | |
| | | * allocated from the stack. By default this buffer size is small (around | |
| | | * 120 characters). Application MUST ensure that the constructed title stri | |
| | | ng | |
| | | * will not exceed this limit, since not all platforms support truncating | |
| | | * the string. | |
| | | * | |
| | | * @see pj_perror() | |
| | | * | |
| | | * @param level The logging verbosity level, valid values are 0- | |
| | | 6. Lower | |
| | | * number indicates higher importance, with level zero | |
| | | * indicates fatal error. Only numeral argument is | |
| | | * permitted (e.g. not variable). | |
| | | * @param arg Enclosed 'printf' like arguments, with the following | |
| | | * arguments: | |
| | | * - the sender (NULL terminated string), | |
| | | * - the error code (pj_status_t) | |
| | | * - the format string (title_fmt), and | |
| | | * - optional variable number of arguments suitable for th | |
| | | e | |
| | | * format string. | |
| | | * | |
| | | * Sample: | |
| | | * \verbatim | |
| | | PJ_PERROR(2, (__FILE__, PJ_EBUSY, "Error making %s", "coffee")); | |
| | | \endverbatim | |
| | | * @hideinitializer | |
| | | */ | |
| | | #define PJ_PERROR(level,arg) do { \ | |
| | | pj_perror_wrapper_##level(arg); \ | |
| | | } while (0) | |
| | | | |
| | | /** | |
| | | * A utility function to print error message pertaining to the specified er | |
| | | ror | |
| | | * code to the log. This function will construct the error message title | |
| | | * according to the 'title_fmt' argument, and add the error string pertaini | |
| | | ng | |
| | | * to the error code after the title string. A colon (':') will be added | |
| | | * automatically between the title and the error string. | |
| | | * | |
| | | * Unlike the PJ_PERROR() macro, this function takes the \a log_level argum | |
| | | ent | |
| | | * as a normal argument, unlike in PJ_PERROR() where a numeral value must b | |
| | | e | |
| | | * given. However this function will always be linked to the executable, | |
| | | * unlike PJ_PERROR() which can be omitted when the level is below the | |
| | | * PJ_LOG_MAX_LEVEL. | |
| | | * | |
| | | * Note that the title string constructed from the title_fmt will be built | |
| | | on | |
| | | * a string buffer which size is PJ_PERROR_TITLE_BUF_SIZE, which normally i | |
| | | s | |
| | | * allocated from the stack. By default this buffer size is small (around | |
| | | * 120 characters). Application MUST ensure that the constructed title stri | |
| | | ng | |
| | | * will not exceed this limit, since not all platforms support truncating | |
| | | * the string. | |
| | | * | |
| | | * @see PJ_PERROR() | |
| | | */ | |
| | | PJ_DECL(void) pj_perror(int log_level, const char *sender, pj_status_t stat | |
| | | us, | |
| | | const char *title_fmt, ...); | |
| | | | |
| | | /** | |
| * Type of callback to be specified in #pj_register_strerror() | | * Type of callback to be specified in #pj_register_strerror() | |
| * | | * | |
| * @param e The error code to lookup. | | * @param e The error code to lookup. | |
| * @param msg Buffer to store the error message. | | * @param msg Buffer to store the error message. | |
| * @param max Length of the buffer. | | * @param max Length of the buffer. | |
| * | | * | |
| * @return The error string. | | * @return The error string. | |
| */ | | */ | |
| typedef pj_str_t (*pj_error_callback)(pj_status_t e, char *msg, pj_size_t m
ax); | | typedef pj_str_t (*pj_error_callback)(pj_status_t e, char *msg, pj_size_t m
ax); | |
| | | | |
| | | | |
| skipping to change at line 377 | | skipping to change at line 467 | |
| * - PJMEDIA_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE) | | * - PJMEDIA_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE) | |
| * - PJSIP_SIMPLE_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*2
) | | * - PJSIP_SIMPLE_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*2
) | |
| * - PJLIB_UTIL_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*3
) | | * - PJLIB_UTIL_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*3
) | |
| * - PJNATH_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*4
) | | * - PJNATH_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*4
) | |
| * - PJMEDIA_AUDIODEV_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SI
ZE*5) | | * - PJMEDIA_AUDIODEV_ERRNO_START (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SI
ZE*5) | |
| */ | | */ | |
| | | | |
| /* Internal */ | | /* Internal */ | |
| void pj_errno_clear_handlers(void); | | void pj_errno_clear_handlers(void); | |
| | | | |
|
| | | /****** Internal for PJ_PERROR *******/ | |
| | | | |
| | | /** | |
| | | * @def pj_perror_wrapper_1(arg) | |
| | | * Internal function to write log with verbosity 1. Will evaluate to | |
| | | * empty expression if PJ_LOG_MAX_LEVEL is below 1. | |
| | | * @param arg Log expression. | |
| | | */ | |
| | | #if PJ_LOG_MAX_LEVEL >= 1 | |
| | | #define pj_perror_wrapper_1(arg) pj_perror_1 arg | |
| | | /** Internal function. */ | |
| | | PJ_DECL(void) pj_perror_1(const char *sender, pj_status_t status, | |
| | | const char *title_fmt, ...); | |
| | | #else | |
| | | #define pj_perror_wrapper_1(arg) | |
| | | #endif | |
| | | | |
| | | /** | |
| | | * @def pj_perror_wrapper_2(arg) | |
| | | * Internal function to write log with verbosity 2. Will evaluate to | |
| | | * empty expression if PJ_LOG_MAX_LEVEL is below 2. | |
| | | * @param arg Log expression. | |
| | | */ | |
| | | #if PJ_LOG_MAX_LEVEL >= 2 | |
| | | #define pj_perror_wrapper_2(arg) pj_perror_2 arg | |
| | | /** Internal function. */ | |
| | | PJ_DECL(void) pj_perror_2(const char *sender, pj_status_t status, | |
| | | const char *title_fmt, ...); | |
| | | #else | |
| | | #define pj_perror_wrapper_2(arg) | |
| | | #endif | |
| | | | |
| | | /** | |
| | | * @def pj_perror_wrapper_3(arg) | |
| | | * Internal function to write log with verbosity 3. Will evaluate to | |
| | | * empty expression if PJ_LOG_MAX_LEVEL is below 3. | |
| | | * @param arg Log expression. | |
| | | */ | |
| | | #if PJ_LOG_MAX_LEVEL >= 3 | |
| | | #define pj_perror_wrapper_3(arg) pj_perror_3 arg | |
| | | /** Internal function. */ | |
| | | PJ_DECL(void) pj_perror_3(const char *sender, pj_status_t status, | |
| | | const char *title_fmt, ...); | |
| | | #else | |
| | | #define pj_perror_wrapper_3(arg) | |
| | | #endif | |
| | | | |
| | | /** | |
| | | * @def pj_perror_wrapper_4(arg) | |
| | | * Internal function to write log with verbosity 4. Will evaluate to | |
| | | * empty expression if PJ_LOG_MAX_LEVEL is below 4. | |
| | | * @param arg Log expression. | |
| | | */ | |
| | | #if PJ_LOG_MAX_LEVEL >= 4 | |
| | | #define pj_perror_wrapper_4(arg) pj_perror_4 arg | |
| | | /** Internal function. */ | |
| | | PJ_DECL(void) pj_perror_4(const char *sender, pj_status_t status, | |
| | | const char *title_fmt, ...); | |
| | | #else | |
| | | #define pj_perror_wrapper_4(arg) | |
| | | #endif | |
| | | | |
| | | /** | |
| | | * @def pj_perror_wrapper_5(arg) | |
| | | * Internal function to write log with verbosity 5. Will evaluate to | |
| | | * empty expression if PJ_LOG_MAX_LEVEL is below 5. | |
| | | * @param arg Log expression. | |
| | | */ | |
| | | #if PJ_LOG_MAX_LEVEL >= 5 | |
| | | #define pj_perror_wrapper_5(arg) pj_perror_5 arg | |
| | | /** Internal function. */ | |
| | | PJ_DECL(void) pj_perror_5(const char *sender, pj_status_t status, | |
| | | const char *title_fmt, ...); | |
| | | #else | |
| | | #define pj_perror_wrapper_5(arg) | |
| | | #endif | |
| | | | |
| | | /** | |
| | | * @def pj_perror_wrapper_6(arg) | |
| | | * Internal function to write log with verbosity 6. Will evaluate to | |
| | | * empty expression if PJ_LOG_MAX_LEVEL is below 6. | |
| | | * @param arg Log expression. | |
| | | */ | |
| | | #if PJ_LOG_MAX_LEVEL >= 6 | |
| | | #define pj_perror_wrapper_6(arg) pj_perror_6 arg | |
| | | /** Internal function. */ | |
| | | PJ_DECL(void) pj_perror_6(const char *sender, pj_status_t status, | |
| | | const char *title_fmt, ...); | |
| | | #else | |
| | | #define pj_perror_wrapper_6(arg) | |
| | | #endif | |
| | | | |
| PJ_END_DECL | | PJ_END_DECL | |
| | | | |
| #endif /* __PJ_ERRNO_H__ */ | | #endif /* __PJ_ERRNO_H__ */ | |
| | | | |
End of changes. 12 change blocks. |
| 18 lines changed or deleted | | 212 lines changed or added | |
|
| ice_strans.h | | ice_strans.h | |
|
| /* $Id: ice_strans.h 2724 2009-05-29 13:04:03Z bennylp $ */ | | /* $Id: ice_strans.h 2966 2009-10-25 09:02:07Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 270 | | skipping to change at line 270 | |
| */ | | */ | |
| pj_uint16_t port; | | pj_uint16_t port; | |
| | | | |
| } stun; | | } stun; | |
| | | | |
| /** | | /** | |
| * TURN specific settings. | | * TURN specific settings. | |
| */ | | */ | |
| struct { | | struct { | |
| /** | | /** | |
|
| | | * Optional TURN socket settings. The default values will be | |
| | | * initialized by #pj_turn_sock_cfg_default(). This contains | |
| | | * settings such as QoS. | |
| | | */ | |
| | | pj_turn_sock_cfg cfg; | |
| | | | |
| | | /** | |
| * Specify the TURN server domain or hostname or IP address. | | * Specify the TURN server domain or hostname or IP address. | |
| * If DNS SRV resolution is required, application must fill | | * If DNS SRV resolution is required, application must fill | |
| * in this setting with the domain name of the TURN server | | * in this setting with the domain name of the TURN server | |
| * and set the resolver instance in the \a resolver field. | | * and set the resolver instance in the \a resolver field. | |
| * Otherwise if the \a resolver setting is not set, this | | * Otherwise if the \a resolver setting is not set, this | |
| * field will be resolved with hostname resolution and in | | * field will be resolved with hostname resolution and in | |
| * this case the \a port field must be set. | | * this case the \a port field must be set. | |
| * | | * | |
| * The \a port field should also be set even when DNS SRV | | * The \a port field should also be set even when DNS SRV | |
| * resolution is used, in case the DNS SRV resolution fails. | | * resolution is used, in case the DNS SRV resolution fails. | |
| | | | |
| skipping to change at line 323 | | skipping to change at line 330 | |
| pj_stun_auth_cred auth_cred; | | pj_stun_auth_cred auth_cred; | |
| | | | |
| /** | | /** | |
| * Optional TURN Allocate parameter. The default value will be | | * Optional TURN Allocate parameter. The default value will be | |
| * initialized by #pj_turn_alloc_param_default(). | | * initialized by #pj_turn_alloc_param_default(). | |
| */ | | */ | |
| pj_turn_alloc_param alloc_param; | | pj_turn_alloc_param alloc_param; | |
| | | | |
| } turn; | | } turn; | |
| | | | |
|
| | | /** | |
| | | * Component specific settings, which will override the settings in | |
| | | * the STUN and TURN settings above. For example, setting the QoS | |
| | | * parameters here allows the application to have different QoS | |
| | | * traffic type for RTP and RTCP component. | |
| | | */ | |
| | | struct { | |
| | | /** | |
| | | * QoS traffic type to be set on this transport. When application | |
| | | * wants to apply QoS tagging to the transport, it's preferable to | |
| | | * set this field rather than \a qos_param fields since this is | |
| | | * more portable. | |
| | | * | |
| | | * Default value is PJ_QOS_TYPE_BEST_EFFORT. | |
| | | */ | |
| | | pj_qos_type qos_type; | |
| | | | |
| | | /** | |
| | | * Set the low level QoS parameters to the transport. This is a | |
| | | * lower level operation than setting the \a qos_type field and | |
| | | * may not be supported on all platforms. | |
| | | * | |
| | | * By default all settings in this structure are disabled. | |
| | | */ | |
| | | pj_qos_params qos_params; | |
| | | | |
| | | } comp[PJ_ICE_MAX_COMP]; | |
| | | | |
| } pj_ice_strans_cfg; | | } pj_ice_strans_cfg; | |
| | | | |
| /** | | /** | |
|
| | | * ICE stream transport's state. | |
| | | */ | |
| | | typedef enum pj_ice_strans_state | |
| | | { | |
| | | /** | |
| | | * ICE stream transport is not created. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_NULL, | |
| | | | |
| | | /** | |
| | | * ICE candidate gathering process is in progress. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_INIT, | |
| | | | |
| | | /** | |
| | | * ICE stream transport initialization/candidate gathering process is | |
| | | * complete, ICE session may be created on this stream transport. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_READY, | |
| | | | |
| | | /** | |
| | | * New session has been created and the session is ready. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_SESS_READY, | |
| | | | |
| | | /** | |
| | | * ICE negotiation is in progress. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_NEGO, | |
| | | | |
| | | /** | |
| | | * ICE negotiation has completed successfully and media is ready | |
| | | * to be used. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_RUNNING, | |
| | | | |
| | | /** | |
| | | * ICE negotiation has completed with failure. | |
| | | */ | |
| | | PJ_ICE_STRANS_STATE_FAILED | |
| | | | |
| | | } pj_ice_strans_state; | |
| | | | |
| | | /** | |
| * Initialize ICE transport configuration with default values. | | * Initialize ICE transport configuration with default values. | |
| * | | * | |
| * @param cfg The configuration to be initialized. | | * @param cfg The configuration to be initialized. | |
| */ | | */ | |
| PJ_DECL(void) pj_ice_strans_cfg_default(pj_ice_strans_cfg *cfg); | | PJ_DECL(void) pj_ice_strans_cfg_default(pj_ice_strans_cfg *cfg); | |
| | | | |
| /** | | /** | |
| * Copy configuration. | | * Copy configuration. | |
| * | | * | |
| * @param pool Pool. | | * @param pool Pool. | |
| | | | |
| skipping to change at line 367 | | skipping to change at line 446 | |
| * successfully. | | * successfully. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_ice_strans_create(const char *name, | | PJ_DECL(pj_status_t) pj_ice_strans_create(const char *name, | |
| const pj_ice_strans_cfg *cfg, | | const pj_ice_strans_cfg *cfg, | |
| unsigned comp_cnt, | | unsigned comp_cnt, | |
| void *user_data, | | void *user_data, | |
| const pj_ice_strans_cb *cb, | | const pj_ice_strans_cb *cb, | |
| pj_ice_strans **p_ice_st); | | pj_ice_strans **p_ice_st); | |
| | | | |
| /** | | /** | |
|
| | | * Get ICE session state. | |
| | | * | |
| | | * @param ice_st The ICE stream transport. | |
| | | * | |
| | | * @return ICE session state. | |
| | | */ | |
| | | PJ_DECL(pj_ice_strans_state) pj_ice_strans_get_state(pj_ice_strans *ice_st) | |
| | | ; | |
| | | | |
| | | /** | |
| | | * Get string representation of ICE state. | |
| | | * | |
| | | * @param state ICE stream transport state. | |
| | | * | |
| | | * @return String. | |
| | | */ | |
| | | PJ_DECL(const char*) pj_ice_strans_state_name(pj_ice_strans_state state); | |
| | | | |
| | | /** | |
| * Destroy the ICE stream transport. This will destroy the ICE session | | * Destroy the ICE stream transport. This will destroy the ICE session | |
| * inside the ICE stream transport, close all sockets and release all | | * inside the ICE stream transport, close all sockets and release all | |
| * other resources. | | * other resources. | |
| * | | * | |
| * @param ice_st The ICE stream transport. | | * @param ice_st The ICE stream transport. | |
| * | | * | |
| * @return PJ_SUCCESS, or the appropriate error code. | | * @return PJ_SUCCESS, or the appropriate error code. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_ice_strans_destroy(pj_ice_strans *ice_st); | | PJ_DECL(pj_status_t) pj_ice_strans_destroy(pj_ice_strans *ice_st); | |
| | | | |
| | | | |
End of changes. 5 change blocks. |
| 1 lines changed or deleted | | 99 lines changed or added | |
|
| os_win32.h | | os_win32.h | |
|
| /* $Id: os_win32.h 2394 2008-12-23 17:27:53Z bennylp $ */ | | /* $Id: os_win32.h 3002 2009-11-10 04:30:46Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 44 | | skipping to change at line 44 | |
| #endif | | #endif | |
| | | | |
| #define PJ_HAS_ARPA_INET_H 0 | | #define PJ_HAS_ARPA_INET_H 0 | |
| #define PJ_HAS_ASSERT_H 1 | | #define PJ_HAS_ASSERT_H 1 | |
| #define PJ_HAS_CTYPE_H 1 | | #define PJ_HAS_CTYPE_H 1 | |
| #define PJ_HAS_ERRNO_H 0 /* Must be zero, otherwise errno_tes
t() fails. */ | | #define PJ_HAS_ERRNO_H 0 /* Must be zero, otherwise errno_tes
t() fails. */ | |
| #define PJ_HAS_LINUX_SOCKET_H 0 | | #define PJ_HAS_LINUX_SOCKET_H 0 | |
| #define PJ_HAS_MALLOC_H 1 | | #define PJ_HAS_MALLOC_H 1 | |
| #define PJ_HAS_NETDB_H 0 | | #define PJ_HAS_NETDB_H 0 | |
| #define PJ_HAS_NETINET_IN_H 0 | | #define PJ_HAS_NETINET_IN_H 0 | |
|
| | | #define PJ_HAS_NETINET_TCP_H 0 | |
| #define PJ_HAS_SETJMP_H 1 | | #define PJ_HAS_SETJMP_H 1 | |
| #define PJ_HAS_STDARG_H 1 | | #define PJ_HAS_STDARG_H 1 | |
| #define PJ_HAS_STDDEF_H 1 | | #define PJ_HAS_STDDEF_H 1 | |
| #undef PJ_HAS_STDINT_H | | #undef PJ_HAS_STDINT_H | |
| #define PJ_HAS_STDIO_H 1 | | #define PJ_HAS_STDIO_H 1 | |
| #define PJ_HAS_STDLIB_H 1 | | #define PJ_HAS_STDLIB_H 1 | |
| #define PJ_HAS_STRING_H 1 | | #define PJ_HAS_STRING_H 1 | |
| #define PJ_HAS_SYS_IOCTL_H 0 | | #define PJ_HAS_SYS_IOCTL_H 0 | |
| #define PJ_HAS_SYS_SELECT_H 0 | | #define PJ_HAS_SYS_SELECT_H 0 | |
| #define PJ_HAS_SYS_SOCKET_H 0 | | #define PJ_HAS_SYS_SOCKET_H 0 | |
| | | | |
| skipping to change at line 113 | | skipping to change at line 114 | |
| /* Default threading is enabled, unless it's overridden. */ | | /* Default threading is enabled, unless it's overridden. */ | |
| #ifndef PJ_HAS_THREADS | | #ifndef PJ_HAS_THREADS | |
| # define PJ_HAS_THREADS (1) | | # define PJ_HAS_THREADS (1) | |
| #endif | | #endif | |
| | | | |
| #define PJ_HAS_HIGH_RES_TIMER 1 | | #define PJ_HAS_HIGH_RES_TIMER 1 | |
| #define PJ_HAS_MALLOC 1 | | #define PJ_HAS_MALLOC 1 | |
| #ifndef PJ_OS_HAS_CHECK_STACK | | #ifndef PJ_OS_HAS_CHECK_STACK | |
| # define PJ_OS_HAS_CHECK_STACK 1 | | # define PJ_OS_HAS_CHECK_STACK 1 | |
| #endif | | #endif | |
|
| #define PJ_NATIVE_STRING_IS_UNICODE 0 | | | |
| | | #ifdef UNICODE | |
| | | # define PJ_NATIVE_STRING_IS_UNICODE 1 | |
| | | #else | |
| | | # define PJ_NATIVE_STRING_IS_UNICODE 0 | |
| | | #endif | |
| | | | |
| #define PJ_ATOMIC_VALUE_TYPE long | | #define PJ_ATOMIC_VALUE_TYPE long | |
| | | | |
| /* If 1, use Read/Write mutex emulation for platforms that don't support it
*/ | | /* If 1, use Read/Write mutex emulation for platforms that don't support it
*/ | |
| #define PJ_EMULATE_RWMUTEX 1 | | #define PJ_EMULATE_RWMUTEX 1 | |
| | | | |
| /* If 1, pj_thread_create() should enforce the stack size when creating | | /* If 1, pj_thread_create() should enforce the stack size when creating | |
| * threads. | | * threads. | |
| * Default: 0 (let OS decide the thread's stack size). | | * Default: 0 (let OS decide the thread's stack size). | |
| */ | | */ | |
| | | | |
End of changes. 3 change blocks. |
| 2 lines changed or deleted | | 8 lines changed or added | |
|
| pjsua.h | | pjsua.h | |
|
| /* $Id: pjsua.h 2864 2009-08-12 11:03:23Z bennylp $ */ | | /* $Id: pjsua.h 3021 2009-11-20 23:33:07Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 371 | | skipping to change at line 371 | |
| * | | * | |
| * @param pool Pool to use. | | * @param pool Pool to use. | |
| * @param dst Destination config. | | * @param dst Destination config. | |
| * @param src Source config. | | * @param src Source config. | |
| */ | | */ | |
| PJ_DECL(void) pjsua_logging_config_dup(pj_pool_t *pool, | | PJ_DECL(void) pjsua_logging_config_dup(pj_pool_t *pool, | |
| pjsua_logging_config *dst, | | pjsua_logging_config *dst, | |
| const pjsua_logging_config *src); | | const pjsua_logging_config *src); | |
| | | | |
| /** | | /** | |
|
| | | * Structure to be passed on MWI callback. | |
| | | */ | |
| | | typedef struct pjsua_mwi_info | |
| | | { | |
| | | pjsip_evsub *evsub; /**< Event subscription session, for | |
| | | reference. */ | |
| | | pjsip_rx_data *rdata; /**< The received NOTIFY request. */ | |
| | | } pjsua_mwi_info; | |
| | | | |
| | | /** | |
| * This structure describes application callback to receive various event | | * This structure describes application callback to receive various event | |
| * notification from PJSUA-API. All of these callbacks are OPTIONAL, | | * notification from PJSUA-API. All of these callbacks are OPTIONAL, | |
| * although definitely application would want to implement some of | | * although definitely application would want to implement some of | |
| * the important callbacks (such as \a on_incoming_call). | | * the important callbacks (such as \a on_incoming_call). | |
| */ | | */ | |
| typedef struct pjsua_callback | | typedef struct pjsua_callback | |
| { | | { | |
| /** | | /** | |
| * Notify application when invite state has changed. | | * Notify application when invite state has changed. | |
| * Application may then query the call info to get the | | * Application may then query the call info to get the | |
| | | | |
| skipping to change at line 811 | | skipping to change at line 821 | |
| * no decision can be made immediately (for example | | * no decision can be made immediately (for example | |
| * to request confirmation from user). Application | | * to request confirmation from user). Application | |
| * then MUST call #pjsua_call_process_redirect() | | * then MUST call #pjsua_call_process_redirect() | |
| * to either accept or reject the redirection upon | | * to either accept or reject the redirection upon | |
| * getting user decision. | | * getting user decision. | |
| */ | | */ | |
| pjsip_redirect_op (*on_call_redirected)(pjsua_call_id call_id, | | pjsip_redirect_op (*on_call_redirected)(pjsua_call_id call_id, | |
| const pjsip_uri *target, | | const pjsip_uri *target, | |
| const pjsip_event *e); | | const pjsip_event *e); | |
| | | | |
|
| | | /** | |
| | | * This callback is called when a NOTIFY request for message summary / | |
| | | * message waiting indication is received. | |
| | | * | |
| | | * @param acc_id The account ID. | |
| | | * @param mwi_info Structure containing details of the event, | |
| | | * including the received NOTIFY request in the | |
| | | * \a rdata field. | |
| | | */ | |
| | | void (*on_mwi_info)(pjsua_acc_id acc_id, pjsua_mwi_info *mwi_info); | |
| | | | |
| } pjsua_callback; | | } pjsua_callback; | |
| | | | |
| /** | | /** | |
| * This structure describes the settings to control the API and | | * This structure describes the settings to control the API and | |
| * user agent behavior, and can be specified when calling #pjsua_init(). | | * user agent behavior, and can be specified when calling #pjsua_init(). | |
| * Before setting the values, application must call #pjsua_config_default() | | * Before setting the values, application must call #pjsua_config_default() | |
| * to initialize this structure with the default values. | | * to initialize this structure with the default values. | |
| */ | | */ | |
| typedef struct pjsua_config | | typedef struct pjsua_config | |
| { | | { | |
| | | | |
| skipping to change at line 967 | | skipping to change at line 988 | |
| /** | | /** | |
| * Specify whether support for Session Timers should be required by | | * Specify whether support for Session Timers should be required by | |
| * default. Note that this setting can be further customized in account | | * default. Note that this setting can be further customized in account | |
| * configuration (#pjsua_acc_config). | | * configuration (#pjsua_acc_config). | |
| * | | * | |
| * Default: PJ_FALSE | | * Default: PJ_FALSE | |
| */ | | */ | |
| pj_bool_t require_timer; | | pj_bool_t require_timer; | |
| | | | |
| /** | | /** | |
|
| | | * Handle unsolicited NOTIFY requests containing message waiting | |
| | | * indication (MWI) info. Unsolicited MWI is incoming NOTIFY requests | |
| | | * which are not requested by client with SUBSCRIBE request. | |
| | | * | |
| | | * If this is enabled, the library will respond 200/OK to the NOTIFY | |
| | | * request and forward the request to \a on_mwi_info() callback. | |
| | | * | |
| | | * See also \a mwi_enabled field #on pjsua_acc_config. | |
| | | * | |
| | | * Default: PJ_TRUE | |
| | | * | |
| | | */ | |
| | | pj_bool_t enable_unsolicited_mwi; | |
| | | | |
| | | /** | |
| * Specify Session Timer settings, see #pjsip_timer_setting. | | * Specify Session Timer settings, see #pjsip_timer_setting. | |
| * Note that this setting can be further customized in account | | * Note that this setting can be further customized in account | |
| * configuration (#pjsua_acc_config). | | * configuration (#pjsua_acc_config). | |
| */ | | */ | |
| pjsip_timer_setting timer_setting; | | pjsip_timer_setting timer_setting; | |
| | | | |
| /** | | /** | |
| * Number of credentials in the credential array. | | * Number of credentials in the credential array. | |
| */ | | */ | |
| unsigned cred_count; | | unsigned cred_count; | |
| | | | |
| skipping to change at line 1363 | | skipping to change at line 1399 | |
| * This is a utility function to verify that valid SIP url is given. If the | | * This is a utility function to verify that valid SIP url is given. If the | |
| * URL is valid, PJ_SUCCESS will be returned. | | * URL is valid, PJ_SUCCESS will be returned. | |
| * | | * | |
| * @param url The URL, as NULL terminated string. | | * @param url The URL, as NULL terminated string. | |
| * | | * | |
| * @return PJ_SUCCESS on success, or the appropriate error code
. | | * @return PJ_SUCCESS on success, or the appropriate error code
. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsua_verify_sip_url(const char *url); | | PJ_DECL(pj_status_t) pjsua_verify_sip_url(const char *url); | |
| | | | |
| /** | | /** | |
|
| | | * Schedule a timer entry. Note that the timer callback may be executed | |
| | | * by different thread, depending on whether worker thread is enabled or | |
| | | * not. | |
| | | * | |
| | | * @param entry Timer heap entry. | |
| | | * @param delay The interval to expire. | |
| | | * | |
| | | * @return PJ_SUCCESS on success, or the appropriate error code | |
| | | . | |
| | | * | |
| | | * @see pjsip_endpt_schedule_timer() | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pjsua_schedule_timer(pj_timer_entry *entry, | |
| | | const pj_time_val *delay); | |
| | | | |
| | | /** | |
| | | * Cancel the previously scheduled timer. | |
| | | * | |
| | | * @param entry Timer heap entry. | |
| | | * | |
| | | * @see pjsip_endpt_cancel_timer() | |
| | | */ | |
| | | PJ_DECL(void) pjsua_cancel_timer(pj_timer_entry *entry); | |
| | | | |
| | | /** | |
| * This is a utility function to display error message for the specified | | * This is a utility function to display error message for the specified | |
| * error code. The error message will be sent to the log. | | * error code. The error message will be sent to the log. | |
| * | | * | |
| * @param sender The log sender field. | | * @param sender The log sender field. | |
| * @param title Message title for the error. | | * @param title Message title for the error. | |
| * @param status Status code. | | * @param status Status code. | |
| */ | | */ | |
| PJ_DECL(void) pjsua_perror(const char *sender, const char *title, | | PJ_DECL(void) pjsua_perror(const char *sender, const char *title, | |
| pj_status_t status); | | pj_status_t status); | |
| | | | |
| | | | |
| skipping to change at line 1452 | | skipping to change at line 1512 | |
| */ | | */ | |
| pj_str_t bound_addr; | | pj_str_t bound_addr; | |
| | | | |
| /** | | /** | |
| * This specifies TLS settings for TLS transport. It is only be used | | * This specifies TLS settings for TLS transport. It is only be used | |
| * when this transport config is being used to create a SIP TLS | | * when this transport config is being used to create a SIP TLS | |
| * transport. | | * transport. | |
| */ | | */ | |
| pjsip_tls_setting tls_setting; | | pjsip_tls_setting tls_setting; | |
| | | | |
|
| | | /** | |
| | | * QoS traffic type to be set on this transport. When application wants | |
| | | * to apply QoS tagging to the transport, it's preferable to set this | |
| | | * field rather than \a qos_param fields since this is more portable. | |
| | | * | |
| | | * Default is QoS not set. | |
| | | */ | |
| | | pj_qos_type qos_type; | |
| | | | |
| | | /** | |
| | | * Set the low level QoS parameters to the transport. This is a lower | |
| | | * level operation than setting the \a qos_type field and may not be | |
| | | * supported on all platforms. | |
| | | * | |
| | | * Default is QoS not set. | |
| | | */ | |
| | | pj_qos_params qos_params; | |
| | | | |
| } pjsua_transport_config; | | } pjsua_transport_config; | |
| | | | |
| /** | | /** | |
| * Call this function to initialize UDP config with default values. | | * Call this function to initialize UDP config with default values. | |
| * | | * | |
| * @param cfg The UDP config to be initialized. | | * @param cfg The UDP config to be initialized. | |
| */ | | */ | |
| PJ_DECL(void) pjsua_transport_config_default(pjsua_transport_config *cfg); | | PJ_DECL(void) pjsua_transport_config_default(pjsua_transport_config *cfg); | |
| | | | |
| /** | | /** | |
| | | | |
| skipping to change at line 1671 | | skipping to change at line 1749 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * Default registration interval. | | * Default registration interval. | |
| */ | | */ | |
| #ifndef PJSUA_REG_INTERVAL | | #ifndef PJSUA_REG_INTERVAL | |
| # define PJSUA_REG_INTERVAL 300 | | # define PJSUA_REG_INTERVAL 300 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
|
| | | * Default maximum time to wait for account unregistration transactions to | |
| | | * complete during library shutdown sequence. | |
| | | * | |
| | | * Default: 4000 (4 seconds) | |
| | | */ | |
| | | #ifndef PJSUA_UNREG_TIMEOUT | |
| | | # define PJSUA_UNREG_TIMEOUT 4000 | |
| | | #endif | |
| | | | |
| | | /** | |
| * Default PUBLISH expiration | | * Default PUBLISH expiration | |
| */ | | */ | |
| #ifndef PJSUA_PUBLISH_EXPIRATION | | #ifndef PJSUA_PUBLISH_EXPIRATION | |
| # define PJSUA_PUBLISH_EXPIRATION PJSIP_PUBC_EXPIRATION_NOT_SPECIFIED | | # define PJSUA_PUBLISH_EXPIRATION PJSIP_PUBC_EXPIRATION_NOT_SPECIFIED | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * Default account priority. | | * Default account priority. | |
| */ | | */ | |
| #ifndef PJSUA_DEFAULT_ACC_PRIORITY | | #ifndef PJSUA_DEFAULT_ACC_PRIORITY | |
| | | | |
| skipping to change at line 1694 | | skipping to change at line 1782 | |
| /** | | /** | |
| * This macro specifies the URI scheme to use in Contact header | | * This macro specifies the URI scheme to use in Contact header | |
| * when secure transport such as TLS is used. Application can specify | | * when secure transport such as TLS is used. Application can specify | |
| * either "sip" or "sips". | | * either "sip" or "sips". | |
| */ | | */ | |
| #ifndef PJSUA_SECURE_SCHEME | | #ifndef PJSUA_SECURE_SCHEME | |
| # define PJSUA_SECURE_SCHEME "sip" | | # define PJSUA_SECURE_SCHEME "sip" | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
|
| | | * Maximum time to wait for unpublication transaction(s) to complete | |
| | | * during shutdown process, before sending unregistration. The library | |
| | | * tries to wait for the unpublication (un-PUBLISH) to complete before | |
| | | * sending REGISTER request to unregister the account, during library | |
| | | * shutdown process. If the value is set too short, it is possible that | |
| | | * the unregistration is sent before unpublication completes, causing | |
| | | * unpublication request to fail. | |
| | | * | |
| | | * Default: 2000 (2 seconds) | |
| | | */ | |
| | | #ifndef PJSUA_UNPUBLISH_MAX_WAIT_TIME_MSEC | |
| | | # define PJSUA_UNPUBLISH_MAX_WAIT_TIME_MSEC 2000 | |
| | | #endif | |
| | | | |
| | | /** | |
| * This structure describes account configuration to be specified when | | * This structure describes account configuration to be specified when | |
| * adding a new account with #pjsua_acc_add(). Application MUST initialize | | * adding a new account with #pjsua_acc_add(). Application MUST initialize | |
| * this structure first by calling #pjsua_acc_config_default(). | | * this structure first by calling #pjsua_acc_config_default(). | |
| */ | | */ | |
| typedef struct pjsua_acc_config | | typedef struct pjsua_acc_config | |
| { | | { | |
| /** | | /** | |
| * Arbitrary user data to be associated with the newly created account. | | * Arbitrary user data to be associated with the newly created account. | |
| * Application may set this later with #pjsua_acc_set_user_data() and | | * Application may set this later with #pjsua_acc_set_user_data() and | |
| * retrieve it with #pjsua_acc_get_user_data(). | | * retrieve it with #pjsua_acc_get_user_data(). | |
| | | | |
| skipping to change at line 1732 | | skipping to change at line 1835 | |
| /** | | /** | |
| * This is the URL to be put in the request URI for the registration, | | * This is the URL to be put in the request URI for the registration, | |
| * and will look something like "sip:serviceprovider". | | * and will look something like "sip:serviceprovider". | |
| * | | * | |
| * This field should be specified if registration is desired. If the | | * This field should be specified if registration is desired. If the | |
| * value is empty, no account registration will be performed. | | * value is empty, no account registration will be performed. | |
| */ | | */ | |
| pj_str_t reg_uri; | | pj_str_t reg_uri; | |
| | | | |
| /** | | /** | |
|
| | | * Subscribe to message waiting indication events (RFC 3842). | |
| | | * | |
| | | * See also \a enable_unsolicited_mwi field on #pjsua_config. | |
| | | * | |
| | | * Default: no | |
| | | */ | |
| | | pj_bool_t mwi_enabled; | |
| | | | |
| | | /** | |
| * If this flag is set, the presence information of this account will | | * If this flag is set, the presence information of this account will | |
| * be PUBLISH-ed to the server where the account belongs. | | * be PUBLISH-ed to the server where the account belongs. | |
| * | | * | |
| * Default: PJ_FALSE | | * Default: PJ_FALSE | |
| */ | | */ | |
| pj_bool_t publish_enabled; | | pj_bool_t publish_enabled; | |
| | | | |
| /** | | /** | |
|
| | | * Event publication options. | |
| | | */ | |
| | | pjsip_publishc_opt publish_opt; | |
| | | | |
| | | /** | |
| | | * Maximum time to wait for unpublication transaction(s) to complete | |
| | | * during shutdown process, before sending unregistration. The library | |
| | | * tries to wait for the unpublication (un-PUBLISH) to complete before | |
| | | * sending REGISTER request to unregister the account, during library | |
| | | * shutdown process. If the value is set too short, it is possible that | |
| | | * the unregistration is sent before unpublication completes, causing | |
| | | * unpublication request to fail. | |
| | | * | |
| | | * Default: PJSUA_UNPUBLISH_MAX_WAIT_TIME_MSEC | |
| | | */ | |
| | | unsigned unpublish_max_wait_time_msec; | |
| | | | |
| | | /** | |
| * Authentication preference. | | * Authentication preference. | |
| */ | | */ | |
| pjsip_auth_clt_pref auth_pref; | | pjsip_auth_clt_pref auth_pref; | |
| | | | |
| /** | | /** | |
| * Optional PIDF tuple ID for outgoing PUBLISH and NOTIFY. If this valu
e | | * Optional PIDF tuple ID for outgoing PUBLISH and NOTIFY. If this valu
e | |
| * is not specified, a random string will be used. | | * is not specified, a random string will be used. | |
| */ | | */ | |
| pj_str_t pidf_tuple_id; | | pj_str_t pidf_tuple_id; | |
| | | | |
| | | | |
| skipping to change at line 1829 | | skipping to change at line 1959 | |
| */ | | */ | |
| pj_str_t proxy[PJSUA_ACC_MAX_PROXIES]; | | pj_str_t proxy[PJSUA_ACC_MAX_PROXIES]; | |
| | | | |
| /** | | /** | |
| * Optional interval for registration, in seconds. If the value is zero
, | | * Optional interval for registration, in seconds. If the value is zero
, | |
| * default interval will be used (PJSUA_REG_INTERVAL, 300 seconds). | | * default interval will be used (PJSUA_REG_INTERVAL, 300 seconds). | |
| */ | | */ | |
| unsigned reg_timeout; | | unsigned reg_timeout; | |
| | | | |
| /** | | /** | |
|
| | | * Specify the maximum time to wait for unregistration requests to | |
| | | * complete during library shutdown sequence. | |
| | | * | |
| | | * Default: PJSUA_UNREG_TIMEOUT | |
| | | */ | |
| | | unsigned unreg_timeout; | |
| | | | |
| | | /** | |
| * Number of credentials in the credential array. | | * Number of credentials in the credential array. | |
| */ | | */ | |
| unsigned cred_count; | | unsigned cred_count; | |
| | | | |
| /** | | /** | |
| * Array of credentials. If registration is desired, normally there sho
uld | | * Array of credentials. If registration is desired, normally there sho
uld | |
| * be at least one credential specified, to successfully authenticate | | * be at least one credential specified, to successfully authenticate | |
| * against the service provider. More credentials can be specified, for | | * against the service provider. More credentials can be specified, for | |
| * example when the requests are expected to be challenged by the | | * example when the requests are expected to be challenged by the | |
| * proxies in the route set. | | * proxies in the route set. | |
| | | | |
| skipping to change at line 2854 | | skipping to change at line 2992 | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * Max buddies in buddy list. | | * Max buddies in buddy list. | |
| */ | | */ | |
| #ifndef PJSUA_MAX_BUDDIES | | #ifndef PJSUA_MAX_BUDDIES | |
| # define PJSUA_MAX_BUDDIES 256 | | # define PJSUA_MAX_BUDDIES 256 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
|
| * This specifies how long the library should retry resending SUBSCRIBE | | * This specifies how long the library should wait before retrying failed | |
| * if the previous SUBSCRIBE failed. This also controls the duration | | * SUBSCRIBE request, and there is no rule to automatically resubscribe | |
| * before failed PUBLISH request will be retried. | | * (for example, no "retry-after" parameter in Subscription-State header). | |
| | | * | |
| | | * This also controls the duration before failed PUBLISH request will be | |
| | | * retried. | |
| * | | * | |
| * Default: 300 seconds | | * Default: 300 seconds | |
| */ | | */ | |
| #ifndef PJSUA_PRES_TIMER | | #ifndef PJSUA_PRES_TIMER | |
| # define PJSUA_PRES_TIMER 300 | | # define PJSUA_PRES_TIMER 300 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * This structure describes buddy configuration when adding a buddy to | | * This structure describes buddy configuration when adding a buddy to | |
| * the buddy list with #pjsua_buddy_add(). Application MUST initialize | | * the buddy list with #pjsua_buddy_add(). Application MUST initialize | |
| | | | |
| skipping to change at line 2967 | | skipping to change at line 3108 | |
| * specified in \a sub_term_reason. | | * specified in \a sub_term_reason. | |
| */ | | */ | |
| pjsip_evsub_state sub_state; | | pjsip_evsub_state sub_state; | |
| | | | |
| /** | | /** | |
| * String representation of subscription state. | | * String representation of subscription state. | |
| */ | | */ | |
| const char *sub_state_name; | | const char *sub_state_name; | |
| | | | |
| /** | | /** | |
|
| * Specifies the last presence subscription terminatino reason. If | | * Specifies the last presence subscription termination code. This woul | |
| | | d | |
| | | * return the last status of the SUBSCRIBE request. If the subscription | |
| | | * is terminated with NOTIFY by the server, this value will be set to | |
| | | * 200, and subscription termination reason will be given in the | |
| | | * \a sub_term_reason field. | |
| | | */ | |
| | | unsigned sub_term_code; | |
| | | | |
| | | /** | |
| | | * Specifies the last presence subscription termination reason. If | |
| * presence subscription is currently active, the value will be empty. | | * presence subscription is currently active, the value will be empty. | |
| */ | | */ | |
| pj_str_t sub_term_reason; | | pj_str_t sub_term_reason; | |
| | | | |
| /** | | /** | |
| * Extended RPID information about the person. | | * Extended RPID information about the person. | |
| */ | | */ | |
| pjrpid_element rpid; | | pjrpid_element rpid; | |
| | | | |
| /** | | /** | |
| | | | |
End of changes. 13 change blocks. |
| 5 lines changed or deleted | | 157 lines changed or added | |
|
| pjsua_internal.h | | pjsua_internal.h | |
|
| /* $Id: pjsua_internal.h 2874 2009-08-13 15:55:47Z bennylp $ */ | | /* $Id: pjsua_internal.h 2968 2009-10-26 11:21:37Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 85 | | skipping to change at line 85 | |
| bit 0/LSB : sequence flag | | bit 0/LSB : sequence flag | |
| bit 1 : timestamp flag
*/ | | bit 1 : timestamp flag
*/ | |
| int conf_slot; /**< Slot # in conference bridge
. */ | | int conf_slot; /**< Slot # in conference bridge
. */ | |
| pjsip_evsub *xfer_sub; /**< Xfer server subscription, i
f this | | pjsip_evsub *xfer_sub; /**< Xfer server subscription, i
f this | |
| call was triggered by xfer.
*/ | | call was triggered by xfer.
*/ | |
| pjmedia_transport *med_tp; /**< Current media transport.
*/ | | pjmedia_transport *med_tp; /**< Current media transport.
*/ | |
| pj_status_t med_tp_ready;/**< Media transport status.
*/ | | pj_status_t med_tp_ready;/**< Media transport status.
*/ | |
| pjmedia_transport *med_orig; /**< Original media transport
*/ | | pjmedia_transport *med_orig; /**< Original media transport
*/ | |
| pj_bool_t med_tp_auto_del; /**< May delete media transport
*/ | | pj_bool_t med_tp_auto_del; /**< May delete media transport
*/ | |
| pjsua_med_tp_st med_tp_st; /**< Media transport state
*/ | | pjsua_med_tp_st med_tp_st; /**< Media transport state
*/ | |
|
| | | pj_sockaddr med_rtp_addr; /**< Current RTP source addre | |
| | | ss | |
| | | (used to update ICE default | |
| | | address) | |
| | | */ | |
| pj_stun_nat_type rem_nat_type; /**< NAT type of remote endpoint.
*/ | | pj_stun_nat_type rem_nat_type; /**< NAT type of remote endpoint.
*/ | |
| pjmedia_srtp_use rem_srtp_use; /**< Remote's SRTP usage policy.
*/ | | pjmedia_srtp_use rem_srtp_use; /**< Remote's SRTP usage policy.
*/ | |
| | | | |
| char last_text_buf_[128]; /**< Buffer for last_text.
*/ | | char last_text_buf_[128]; /**< Buffer for last_text.
*/ | |
| | | | |
| } pjsua_call; | | } pjsua_call; | |
| | | | |
| /** | | /** | |
| * Server presence subscription list head. | | * Server presence subscription list head. | |
| */ | | */ | |
| | | | |
| skipping to change at line 142 | | skipping to change at line 145 | |
| | | | |
| unsigned cred_cnt; /**< Number of credentials. */ | | unsigned cred_cnt; /**< Number of credentials. */ | |
| pjsip_cred_info cred[PJSUA_ACC_MAX_PROXIES]; /**< Complete creds. */ | | pjsip_cred_info cred[PJSUA_ACC_MAX_PROXIES]; /**< Complete creds. */ | |
| | | | |
| pj_bool_t online_status; /**< Our online status. */ | | pj_bool_t online_status; /**< Our online status. */ | |
| pjrpid_element rpid; /**< RPID element information. */ | | pjrpid_element rpid; /**< RPID element information. */ | |
| pjsua_srv_pres pres_srv_list; /**< Server subscription list. */ | | pjsua_srv_pres pres_srv_list; /**< Server subscription list. */ | |
| pjsip_publishc *publish_sess; /**< Client publication session. */ | | pjsip_publishc *publish_sess; /**< Client publication session. */ | |
| pj_bool_t publish_state; /**< Last published online status */ | | pj_bool_t publish_state; /**< Last published online status */ | |
| | | | |
|
| | | pjsip_evsub *mwi_sub; /**< MWI client subscription | |
| | | */ | |
| | | pjsip_dialog *mwi_dlg; /**< Dialog for MWI sub. */ | |
| } pjsua_acc; | | } pjsua_acc; | |
| | | | |
| /** | | /** | |
| *Transport. | | *Transport. | |
| */ | | */ | |
| typedef struct pjsua_transport_data | | typedef struct pjsua_transport_data | |
| { | | { | |
| int index; | | int index; | |
| pjsip_transport_type_e type; | | pjsip_transport_type_e type; | |
| pjsip_host_port local_name; | | pjsip_host_port local_name; | |
| | | | |
| skipping to change at line 181 | | skipping to change at line 186 | |
| void *user_data; /**< Application data. */ | | void *user_data; /**< Application data. */ | |
| pj_str_t uri; /**< Buddy URI. */ | | pj_str_t uri; /**< Buddy URI. */ | |
| pj_str_t contact; /**< Contact learned from subscrp. */ | | pj_str_t contact; /**< Contact learned from subscrp. */ | |
| pj_str_t name; /**< Buddy name. */ | | pj_str_t name; /**< Buddy name. */ | |
| pj_str_t display; /**< Buddy display name. */ | | pj_str_t display; /**< Buddy display name. */ | |
| pj_str_t host; /**< Buddy host. */ | | pj_str_t host; /**< Buddy host. */ | |
| unsigned port; /**< Buddy port. */ | | unsigned port; /**< Buddy port. */ | |
| pj_bool_t monitor; /**< Should we monitor? */ | | pj_bool_t monitor; /**< Should we monitor? */ | |
| pjsip_dialog *dlg; /**< The underlying dialog. */ | | pjsip_dialog *dlg; /**< The underlying dialog. */ | |
| pjsip_evsub *sub; /**< Buddy presence subscription
*/ | | pjsip_evsub *sub; /**< Buddy presence subscription
*/ | |
|
| | | unsigned term_code; /**< Subscription termination code */ | |
| pj_str_t term_reason;/**< Subscription termination reason */ | | pj_str_t term_reason;/**< Subscription termination reason */ | |
| pjsip_pres_status status; /**< Buddy presence status. */ | | pjsip_pres_status status; /**< Buddy presence status. */ | |
|
| | | pj_timer_entry timer; /**< Resubscription timer */ | |
| } pjsua_buddy; | | } pjsua_buddy; | |
| | | | |
| /** | | /** | |
| * File player/recorder data. | | * File player/recorder data. | |
| */ | | */ | |
| typedef struct pjsua_file_data | | typedef struct pjsua_file_data | |
| { | | { | |
| pj_bool_t type; /* 0=player, 1=playlist */ | | pj_bool_t type; /* 0=player, 1=playlist */ | |
| pjmedia_port *port; | | pjmedia_port *port; | |
| pj_pool_t *pool; | | pj_pool_t *pool; | |
| | | | |
| skipping to change at line 437 | | skipping to change at line 443 | |
| * Terminate server subscription for the account | | * Terminate server subscription for the account | |
| */ | | */ | |
| void pjsua_pres_delete_acc(int acc_id); | | void pjsua_pres_delete_acc(int acc_id); | |
| | | | |
| /** | | /** | |
| * Init IM module handler to handle incoming MESSAGE outside dialog. | | * Init IM module handler to handle incoming MESSAGE outside dialog. | |
| */ | | */ | |
| pj_status_t pjsua_im_init(void); | | pj_status_t pjsua_im_init(void); | |
| | | | |
| /** | | /** | |
|
| | | * Start MWI subscription | |
| | | */ | |
| | | void pjsua_start_mwi(pjsua_acc *acc); | |
| | | | |
| | | /** | |
| * Init call subsystem. | | * Init call subsystem. | |
| */ | | */ | |
| pj_status_t pjsua_call_subsys_init(const pjsua_config *cfg); | | pj_status_t pjsua_call_subsys_init(const pjsua_config *cfg); | |
| | | | |
| /** | | /** | |
| * Start call subsystem. | | * Start call subsystem. | |
| */ | | */ | |
| pj_status_t pjsua_call_subsys_start(void); | | pj_status_t pjsua_call_subsys_start(void); | |
| | | | |
| /** | | /** | |
| | | | |
End of changes. 6 change blocks. |
| 2 lines changed or deleted | | 16 lines changed or added | |
|
| publish.h | | publish.h | |
|
| /* $Id: publish.h 2661 2009-04-28 22:19:49Z bennylp $ */ | | /* $Id: publish.h 2940 2009-10-12 07:44:14Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 63 | | skipping to change at line 63 | |
| */ | | */ | |
| | | | |
| /** Expiration not specified. */ | | /** Expiration not specified. */ | |
| #define PJSIP_PUBC_EXPIRATION_NOT_SPECIFIED ((pj_uint32_t)0xFFFFFFFFUL) | | #define PJSIP_PUBC_EXPIRATION_NOT_SPECIFIED ((pj_uint32_t)0xFFFFFFFFUL) | |
| | | | |
| /** | | /** | |
| * Opaque declaration for client side event publication session. | | * Opaque declaration for client side event publication session. | |
| */ | | */ | |
| typedef struct pjsip_publishc pjsip_publishc; | | typedef struct pjsip_publishc pjsip_publishc; | |
| | | | |
|
| | | /** | |
| | | * Client publication options. Application should initialize this structure | |
| | | * with its default values by calling #pjsip_publishc_opt_default() | |
| | | */ | |
| | | typedef struct pjsip_publishc_opt | |
| | | { | |
| | | /** | |
| | | * Specify whether the client publication session should queue the | |
| | | * PUBLISH request should there be another PUBLISH transaction still | |
| | | * pending. If this is set to false, the client will return error | |
| | | * on the PUBLISH request if there is another PUBLISH transaction still | |
| | | * in progress. | |
| | | * | |
| | | * Default: PJSIP_PUBLISHC_QUEUE_REQUEST | |
| | | */ | |
| | | pj_bool_t queue_request; | |
| | | | |
| | | } pjsip_publishc_opt; | |
| | | | |
| /** Structure to hold parameters when calling application's callback. | | /** Structure to hold parameters when calling application's callback. | |
| * The application's callback is called when the client publication proces
s | | * The application's callback is called when the client publication proces
s | |
| * has finished. | | * has finished. | |
| */ | | */ | |
| struct pjsip_publishc_cbparam | | struct pjsip_publishc_cbparam | |
| { | | { | |
| pjsip_publishc *pubc; /**< Client publication structure.
*/ | | pjsip_publishc *pubc; /**< Client publication structure.
*/ | |
| void *token; /**< Arbitrary token.
*/ | | void *token; /**< Arbitrary token.
*/ | |
| pj_status_t status; /**< Error status.
*/ | | pj_status_t status; /**< Error status.
*/ | |
| int code; /**< SIP status code received.
*/ | | int code; /**< SIP status code received.
*/ | |
| | | | |
| skipping to change at line 84 | | skipping to change at line 103 | |
| pjsip_rx_data *rdata; /**< The complete received response.
*/ | | pjsip_rx_data *rdata; /**< The complete received response.
*/ | |
| int expiration;/**< Next expiration interval. I
f the | | int expiration;/**< Next expiration interval. I
f the | |
| value is -1, it means the session | | value is -1, it means the session | |
| will not renew itself.
*/ | | will not renew itself.
*/ | |
| }; | | }; | |
| | | | |
| /** Type declaration for callback to receive publication result. */ | | /** Type declaration for callback to receive publication result. */ | |
| typedef void pjsip_publishc_cb(struct pjsip_publishc_cbparam *param); | | typedef void pjsip_publishc_cb(struct pjsip_publishc_cbparam *param); | |
| | | | |
| /** | | /** | |
|
| | | * Initialize client publication session option with default values. | |
| | | * | |
| | | * @param opt The option. | |
| | | */ | |
| | | PJ_DECL(void) pjsip_publishc_opt_default(pjsip_publishc_opt *opt); | |
| | | | |
| | | /** | |
| * Initialize client publication module. | | * Initialize client publication module. | |
| * | | * | |
| * @param endpt SIP endpoint. | | * @param endpt SIP endpoint. | |
| * | | * | |
| * @return PJ_SUCCESS on success. | | * @return PJ_SUCCESS on success. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_publishc_init_module(pjsip_endpoint *endpt); | | PJ_DECL(pj_status_t) pjsip_publishc_init_module(pjsip_endpoint *endpt); | |
| | | | |
| /** | | /** | |
| * Create client publication structure. | | * Create client publication structure. | |
| * | | * | |
| * @param endpt Endpoint, used to allocate pool from. | | * @param endpt Endpoint, used to allocate pool from. | |
|
| * @param options Option flags. | | * @param opt Options, or NULL to specify default options. | |
| * @param token Opaque data to be associated with the client pub
lication. | | * @param token Opaque data to be associated with the client pub
lication. | |
| * @param cb Pointer to callback function to receive publication stat
us. | | * @param cb Pointer to callback function to receive publication stat
us. | |
| * @param p_pubc Pointer to receive client publication structure. | | * @param p_pubc Pointer to receive client publication structure. | |
| * | | * | |
| * @return PJ_SUCCESS on success. | | * @return PJ_SUCCESS on success. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_publishc_create( pjsip_endpoint *endpt, | | PJ_DECL(pj_status_t) pjsip_publishc_create( pjsip_endpoint *endpt, | |
|
| unsigned options, | | const pjsip_publishc_opt *opt, | |
| void *token, | | void *token, | |
| pjsip_publishc_cb *cb, | | pjsip_publishc_cb *cb, | |
| pjsip_publishc **p_pubc); | | pjsip_publishc **p_pubc); | |
| | | | |
| /** | | /** | |
| * Destroy client publication structure. If a publication transaction is | | * Destroy client publication structure. If a publication transaction is | |
| * in progress, then the structure will be deleted only after a final respo
nse | | * in progress, then the structure will be deleted only after a final respo
nse | |
| * has been received, and in this case, the callback won't be called. | | * has been received, and in this case, the callback won't be called. | |
| * | | * | |
| * @param pubc The client publication structure. | | * @param pubc The client publication structure. | |
| | | | |
| skipping to change at line 253 | | skipping to change at line 279 | |
| * @return PU_SUCCESS on successfull. | | * @return PU_SUCCESS on successfull. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_publishc_update_expires(pjsip_publishc *pubc, | | PJ_DECL(pj_status_t) pjsip_publishc_update_expires(pjsip_publishc *pubc, | |
| pj_uint32_t expires ); | | pj_uint32_t expires ); | |
| | | | |
| /** | | /** | |
| * Sends outgoing PUBLISH request. The process will complete asynchronously
, | | * Sends outgoing PUBLISH request. The process will complete asynchronously
, | |
| * and application will be notified via the callback when the process | | * and application will be notified via the callback when the process | |
| * completes. | | * completes. | |
| * | | * | |
|
| | | * If the session has another PUBLISH request outstanding, the behavior | |
| | | * depends on whether request queueing is enabled in the session (this was | |
| | | * set by setting \a queue_request field of #pjsip_publishc_opt to true | |
| | | * when calling #pjsip_publishc_create(). Default is true). If request | |
| | | * queueing is enabled, the request will be queued and the function will | |
| | | * return PJ_EPENDING. One the outstanding request is complete, the queued | |
| | | * request will be sent automatically. If request queueing is disabled, the | |
| | | * function will reject the request and return PJ_EBUSY. | |
| | | * | |
| * @param pubc The client publication structure. | | * @param pubc The client publication structure. | |
| * @param tdata Transmit data. | | * @param tdata Transmit data. | |
| * | | * | |
|
| * @return PJ_SUCCESS on success. | | * @return - PJ_SUCCESS on success, or | |
| | | * - PJ_EPENDING if request is queued, or | |
| | | * - PJ_EBUSY if request is rejected because another PUBLIS | |
| | | H | |
| | | * request is in progress, or | |
| | | * - other status code to indicate the error. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_publishc_send(pjsip_publishc *pubc, | | PJ_DECL(pj_status_t) pjsip_publishc_send(pjsip_publishc *pubc, | |
| pjsip_tx_data *tdata); | | pjsip_tx_data *tdata); | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| | | | |
End of changes. 7 change blocks. |
| 4 lines changed or deleted | | 44 lines changed or added | |
|
| sip_config.h | | sip_config.h | |
|
| /* $Id: sip_config.h 2859 2009-08-11 16:26:20Z nanang $ */ | | /* $Id: sip_config.h 3019 2009-11-20 04:18:27Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 210 | | skipping to change at line 210 | |
| */ | | */ | |
| #ifndef PJSIP_MAX_URL_SIZE | | #ifndef PJSIP_MAX_URL_SIZE | |
| # define PJSIP_MAX_URL_SIZE 256 | | # define PJSIP_MAX_URL_SIZE 256 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * Specify maximum number of modules. | | * Specify maximum number of modules. | |
| * This mainly affects the size of mod_data array in various components. | | * This mainly affects the size of mod_data array in various components. | |
| */ | | */ | |
| #ifndef PJSIP_MAX_MODULE | | #ifndef PJSIP_MAX_MODULE | |
|
| # define PJSIP_MAX_MODULE 16 | | # define PJSIP_MAX_MODULE 32 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * Maximum packet length. We set it more than MTU since a SIP PDU | | * Maximum packet length. We set it more than MTU since a SIP PDU | |
| * containing presence information can be quite large (>1500). | | * containing presence information can be quite large (>1500). | |
| */ | | */ | |
| #ifndef PJSIP_MAX_PKT_LEN | | #ifndef PJSIP_MAX_PKT_LEN | |
| # define PJSIP_MAX_PKT_LEN 2000 | | # define PJSIP_MAX_PKT_LEN 2000 | |
| #endif | | #endif | |
| | | | |
| | | | |
| skipping to change at line 490 | | skipping to change at line 490 | |
| * @see PJSIP_HAS_RESOLVER | | * @see PJSIP_HAS_RESOLVER | |
| */ | | */ | |
| #ifndef PJSIP_MAX_RESOLVED_ADDRESSES | | #ifndef PJSIP_MAX_RESOLVED_ADDRESSES | |
| # define PJSIP_MAX_RESOLVED_ADDRESSES 8 | | # define PJSIP_MAX_RESOLVED_ADDRESSES 8 | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * Enable TLS SIP transport support. For most systems this means that | | * Enable TLS SIP transport support. For most systems this means that | |
| * OpenSSL must be installed. | | * OpenSSL must be installed. | |
| * | | * | |
|
| * Default: 0 (for now) | | * Default: follow PJ_HAS_SSL_SOCK setting, which is 0 (disabled) by defaul
t. | |
| */ | | */ | |
| #ifndef PJSIP_HAS_TLS_TRANSPORT | | #ifndef PJSIP_HAS_TLS_TRANSPORT | |
|
| # define PJSIP_HAS_TLS_TRANSPORT 0 | | # define PJSIP_HAS_TLS_TRANSPORT PJ_HAS_SSL_SOCK | |
| #endif | | #endif | |
| | | | |
| /** | | /** | |
| * The TLS pending incoming connection backlog number to be set in accept()
. | | * The TLS pending incoming connection backlog number to be set in accept()
. | |
| * | | * | |
| * Default: 5 | | * Default: 5 | |
| * | | * | |
| * @see PJSIP_TCP_TRANSPORT_BACKLOG | | * @see PJSIP_TCP_TRANSPORT_BACKLOG | |
| */ | | */ | |
| #ifndef PJSIP_TLS_TRANSPORT_BACKLOG | | #ifndef PJSIP_TLS_TRANSPORT_BACKLOG | |
| | | | |
| skipping to change at line 855 | | skipping to change at line 855 | |
| * seconds. As specified in RFC 4028 Section 4, this value must not be | | * seconds. As specified in RFC 4028 Section 4, this value must not be | |
| * less than the absolute minimum for the Session-Expires header field | | * less than the absolute minimum for the Session-Expires header field | |
| * 90 seconds, and the recommended value is 1800 seconds. | | * 90 seconds, and the recommended value is 1800 seconds. | |
| * | | * | |
| * Default: 1800 seconds | | * Default: 1800 seconds | |
| */ | | */ | |
| #ifndef PJSIP_SESS_TIMER_DEF_SE | | #ifndef PJSIP_SESS_TIMER_DEF_SE | |
| # define PJSIP_SESS_TIMER_DEF_SE 1800 | | # define PJSIP_SESS_TIMER_DEF_SE 1800 | |
| #endif | | #endif | |
| | | | |
|
| | | /** | |
| | | * Specify whether the client publication session should queue the | |
| | | * PUBLISH request should there be another PUBLISH transaction still | |
| | | * pending. If this is set to false, the client will return error | |
| | | * on the PUBLISH request if there is another PUBLISH transaction still | |
| | | * in progress. | |
| | | * | |
| | | * Default: 1 (yes) | |
| | | */ | |
| | | #ifndef PJSIP_PUBLISHC_QUEUE_REQUEST | |
| | | # define PJSIP_PUBLISHC_QUEUE_REQUEST 1 | |
| | | #endif | |
| | | | |
| PJ_END_DECL | | PJ_END_DECL | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| #include <pj/config.h> | | #include <pj/config.h> | |
| | | | |
| #endif /* __PJSIP_SIP_CONFIG_H__ */ | | #endif /* __PJSIP_SIP_CONFIG_H__ */ | |
| | | | |
End of changes. 5 change blocks. |
| 4 lines changed or deleted | | 17 lines changed or added | |
|
| sip_transport.h | | sip_transport.h | |
|
| /* $Id: sip_transport.h 2724 2009-05-29 13:04:03Z bennylp $ */ | | /* $Id: sip_transport.h 2985 2009-11-04 13:17:31Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 30 | |
| #ifndef __PJSIP_SIP_TRANSPORT_H__ | | #ifndef __PJSIP_SIP_TRANSPORT_H__ | |
| #define __PJSIP_SIP_TRANSPORT_H__ | | #define __PJSIP_SIP_TRANSPORT_H__ | |
| | | | |
| /** | | /** | |
| * @file sip_transport.h | | * @file sip_transport.h | |
| * @brief SIP Transport | | * @brief SIP Transport | |
| */ | | */ | |
| | | | |
| #include <pjsip/sip_msg.h> | | #include <pjsip/sip_msg.h> | |
| #include <pjsip/sip_parser.h> | | #include <pjsip/sip_parser.h> | |
|
| | | #include <pjsip/sip_resolve.h> | |
| #include <pj/sock.h> | | #include <pj/sock.h> | |
| #include <pj/list.h> | | #include <pj/list.h> | |
| #include <pj/ioqueue.h> | | #include <pj/ioqueue.h> | |
| #include <pj/timer.h> | | #include <pj/timer.h> | |
| | | | |
| PJ_BEGIN_DECL | | PJ_BEGIN_DECL | |
| | | | |
| /** | | /** | |
| * @defgroup PJSIP_TRANSPORT Transport | | * @defgroup PJSIP_TRANSPORT Transport | |
| * @ingroup PJSIP_CORE | | * @ingroup PJSIP_CORE | |
| | | | |
| skipping to change at line 376 | | skipping to change at line 377 | |
| | | | |
| /** The first record-route header. */ | | /** The first record-route header. */ | |
| pjsip_rr_hdr *record_route; | | pjsip_rr_hdr *record_route; | |
| | | | |
| /** Content-type header. */ | | /** Content-type header. */ | |
| pjsip_ctype_hdr *ctype; | | pjsip_ctype_hdr *ctype; | |
| | | | |
| /** Content-length header. */ | | /** Content-length header. */ | |
| pjsip_clen_hdr *clen; | | pjsip_clen_hdr *clen; | |
| | | | |
|
| /** The first Require header. */ | | /** "Require" header containing aggregates of all Require | |
| | | * headers found in the message, or NULL. | |
| | | */ | |
| pjsip_require_hdr *require; | | pjsip_require_hdr *require; | |
| | | | |
|
| | | /** "Supported" header containing aggregates of all Supported | |
| | | * headers found in the message, or NULL. | |
| | | */ | |
| | | pjsip_supported_hdr *supported; | |
| | | | |
| /** The list of error generated by the parser when parsing | | /** The list of error generated by the parser when parsing | |
| this message. | | this message. | |
| */ | | */ | |
| pjsip_parser_err_report parse_err; | | pjsip_parser_err_report parse_err; | |
| | | | |
| } msg_info; | | } msg_info; | |
| | | | |
| /** | | /** | |
| * endpt_info is initialized by endpoint after this buffer reaches | | * endpt_info is initialized by endpoint after this buffer reaches | |
| * endpoint. | | * endpoint. | |
| | | | |
| skipping to change at line 511 | | skipping to change at line 519 | |
| | | | |
| /** Being processed by transport? */ | | /** Being processed by transport? */ | |
| int is_pending; | | int is_pending; | |
| | | | |
| /** Transport manager internal. */ | | /** Transport manager internal. */ | |
| void *token; | | void *token; | |
| | | | |
| /** Callback to be called when this tx_data has been transmitted. */ | | /** Callback to be called when this tx_data has been transmitted. */ | |
| void (*cb)(void*, pjsip_tx_data*, pj_ssize_t); | | void (*cb)(void*, pjsip_tx_data*, pj_ssize_t); | |
| | | | |
|
| | | /** Destination information, to be used to determine the network addres | |
| | | s | |
| | | * of the message. For a request, this information is initialized whe | |
| | | n | |
| | | * the request is sent with #pjsip_endpt_send_request_stateless() and | |
| | | * network address is resolved. For CANCEL request, this information | |
| | | * will be copied from the original INVITE to make sure that the CANCE | |
| | | L | |
| | | * request goes to the same physical network address as the INVITE | |
| | | * request. | |
| | | */ | |
| | | struct | |
| | | { | |
| | | /** Server addresses resolved. | |
| | | */ | |
| | | pjsip_server_addresses addr; | |
| | | | |
| | | /** Current server address being tried. | |
| | | */ | |
| | | unsigned cur_addr; | |
| | | | |
| | | } dest_info; | |
| | | | |
| /** Transport information, only valid during on_tx_request() and | | /** Transport information, only valid during on_tx_request() and | |
| * on_tx_response() callback. | | * on_tx_response() callback. | |
| */ | | */ | |
| struct | | struct | |
| { | | { | |
| pjsip_transport *transport; /**< Transport being used. */ | | pjsip_transport *transport; /**< Transport being used. */ | |
| pj_sockaddr dst_addr; /**< Destination address. */ | | pj_sockaddr dst_addr; /**< Destination address. */ | |
| int dst_addr_len; /**< Length of address. */ | | int dst_addr_len; /**< Length of address. */ | |
| char dst_name[PJ_INET6_ADDRSTRLEN]; /**< Destination
address. */ | | char dst_name[PJ_INET6_ADDRSTRLEN]; /**< Destination
address. */ | |
| int dst_port; /**< Destination port. */ | | int dst_port; /**< Destination port. */ | |
| | | | |
End of changes. 5 change blocks. |
| 2 lines changed or deleted | | 33 lines changed or added | |
|
| sip_transport_tcp.h | | sip_transport_tcp.h | |
|
| /* $Id: sip_transport_tcp.h 2394 2008-12-23 17:27:53Z bennylp $ */ | | /* $Id: sip_transport_tcp.h 2966 2009-10-25 09:02:07Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 29 | | skipping to change at line 29 | |
| */ | | */ | |
| #ifndef __PJSIP_TRANSPORT_TCP_H__ | | #ifndef __PJSIP_TRANSPORT_TCP_H__ | |
| #define __PJSIP_TRANSPORT_TCP_H__ | | #define __PJSIP_TRANSPORT_TCP_H__ | |
| | | | |
| /** | | /** | |
| * @file sip_transport_tcp.h | | * @file sip_transport_tcp.h | |
| * @brief SIP TCP Transport. | | * @brief SIP TCP Transport. | |
| */ | | */ | |
| | | | |
| #include <pjsip/sip_transport.h> | | #include <pjsip/sip_transport.h> | |
|
| | | #include <pj/sock_qos.h> | |
| | | | |
| /* Only declare the API if PJ_HAS_TCP is true */ | | /* Only declare the API if PJ_HAS_TCP is true */ | |
| #if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 | | #if defined(PJ_HAS_TCP) && PJ_HAS_TCP!=0 | |
| | | | |
| PJ_BEGIN_DECL | | PJ_BEGIN_DECL | |
| | | | |
| /** | | /** | |
| * @defgroup PJSIP_TRANSPORT_TCP TCP Transport | | * @defgroup PJSIP_TRANSPORT_TCP TCP Transport | |
| * @ingroup PJSIP_TRANSPORT | | * @ingroup PJSIP_TRANSPORT | |
| * @brief API to create and register TCP transport. | | * @brief API to create and register TCP transport. | |
| * @{ | | * @{ | |
| * The functions below are used to create TCP transport and register | | * The functions below are used to create TCP transport and register | |
| * the transport to the framework. | | * the transport to the framework. | |
| */ | | */ | |
| | | | |
| /** | | /** | |
|
| | | * Settings to be specified when creating the TCP transport. Application | |
| | | * should initialize this structure with its default values by calling | |
| | | * pjsip_tcp_transport_cfg_default(). | |
| | | */ | |
| | | typedef struct pjsip_tcp_transport_cfg | |
| | | { | |
| | | /** | |
| | | * Address family to use. Valid values are pj_AF_INET() and | |
| | | * pj_AF_INET6(). Default is pj_AF_INET(). | |
| | | */ | |
| | | int af; | |
| | | | |
| | | /** | |
| | | * Optional address to bind the socket to. Default is to bind to | |
| | | * PJ_INADDR_ANY and to any available port. | |
| | | */ | |
| | | pj_sockaddr bind_addr; | |
| | | | |
| | | /** | |
| | | * Optional published address, which is the address to be | |
| | | * advertised as the address of this SIP transport. | |
| | | * By default the bound address will be used as the published address. | |
| | | */ | |
| | | pjsip_host_port addr_name; | |
| | | | |
| | | /** | |
| | | * Number of simultaneous asynchronous accept() operations to be | |
| | | * supported. It is recommended that the number here corresponds to | |
| | | * the number of processors in the system (or the number of SIP | |
| | | * worker threads). | |
| | | * | |
| | | * Default: 1 | |
| | | */ | |
| | | unsigned async_cnt; | |
| | | | |
| | | /** | |
| | | * QoS traffic type to be set on this transport. When application wants | |
| | | * to apply QoS tagging to the transport, it's preferable to set this | |
| | | * field rather than \a qos_param fields since this is more portable. | |
| | | * | |
| | | * Default is QoS not set. | |
| | | */ | |
| | | pj_qos_type qos_type; | |
| | | | |
| | | /** | |
| | | * Set the low level QoS parameters to the transport. This is a lower | |
| | | * level operation than setting the \a qos_type field and may not be | |
| | | * supported on all platforms. | |
| | | * | |
| | | * Default is QoS not set. | |
| | | */ | |
| | | pj_qos_params qos_params; | |
| | | | |
| | | } pjsip_tcp_transport_cfg; | |
| | | | |
| | | /** | |
| | | * Initialize pjsip_tcp_transport_cfg structure with default values for | |
| | | * the specifed address family. | |
| | | * | |
| | | * @param cfg The structure to initialize. | |
| | | * @param af Address family to be used. | |
| | | */ | |
| | | PJ_DECL(void) pjsip_tcp_transport_cfg_default(pjsip_tcp_transport_cfg *cfg, | |
| | | int af); | |
| | | | |
| | | /** | |
| * Register support for SIP TCP transport by creating TCP listener on | | * Register support for SIP TCP transport by creating TCP listener on | |
| * the specified address and port. This function will create an | | * the specified address and port. This function will create an | |
| * instance of SIP TCP transport factory and register it to the | | * instance of SIP TCP transport factory and register it to the | |
| * transport manager. | | * transport manager. | |
| * | | * | |
| * @param endpt The SIP endpoint. | | * @param endpt The SIP endpoint. | |
| * @param local Optional local address to bind, or specify t
he | | * @param local Optional local address to bind, or specify t
he | |
| * address to bind the server socket to. Both IP | | * address to bind the server socket to. Both IP | |
| * interface address and port fields are optional. | | * interface address and port fields are optional. | |
| * If IP interface address is not specified, socket | | * If IP interface address is not specified, socket | |
| | | | |
| skipping to change at line 109 | | skipping to change at line 176 | |
| * @return PJ_SUCCESS when the transport has been successfully | | * @return PJ_SUCCESS when the transport has been successfully | |
| * started and registered to transport manager, or | | * started and registered to transport manager, or | |
| * the appropriate error code. | | * the appropriate error code. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pjsip_tcp_transport_start2(pjsip_endpoint *endpt, | | PJ_DECL(pj_status_t) pjsip_tcp_transport_start2(pjsip_endpoint *endpt, | |
| const pj_sockaddr_in *local, | | const pj_sockaddr_in *local, | |
| const pjsip_host_port *a_nam
e, | | const pjsip_host_port *a_nam
e, | |
| unsigned async_cnt, | | unsigned async_cnt, | |
| pjsip_tpfactory **p_factory)
; | | pjsip_tpfactory **p_factory)
; | |
| | | | |
|
| | | /** | |
| | | * Another variant of #pjsip_tcp_transport_start(). | |
| | | * | |
| | | * @param endpt The SIP endpoint. | |
| | | * @param cfg TCP transport settings. Application should initializ | |
| | | e | |
| | | * this setting with #pjsip_tcp_transport_cfg_default() | |
| | | . | |
| | | * @param p_factory Optional pointer to receive the instance of the | |
| | | * SIP TCP transport factory just created. | |
| | | * | |
| | | * @return PJ_SUCCESS when the transport has been successfully | |
| | | * started and registered to transport manager, or | |
| | | * the appropriate error code. | |
| | | */ | |
| | | PJ_DECL(pj_status_t) pjsip_tcp_transport_start3( | |
| | | pjsip_endpoint *endpt, | |
| | | const pjsip_tcp_transport_cfg *cfg, | |
| | | pjsip_tpfactory **p_factory | |
| | | ); | |
| | | | |
| PJ_END_DECL | | PJ_END_DECL | |
| | | | |
| /** | | /** | |
| * @} | | * @} | |
| */ | | */ | |
| | | | |
| #endif /* PJ_HAS_TCP */ | | #endif /* PJ_HAS_TCP */ | |
| | | | |
| #endif /* __PJSIP_TRANSPORT_TCP_H__ */ | | #endif /* __PJSIP_TRANSPORT_TCP_H__ */ | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 89 lines changed or added | |
|
| sip_transport_tls.h | | sip_transport_tls.h | |
|
| /* $Id: sip_transport_tls.h 2394 2008-12-23 17:27:53Z bennylp $ */ | | /* $Id: sip_transport_tls.h 2998 2009-11-09 08:51:34Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 30 | | skipping to change at line 30 | |
| #ifndef __PJSIP_TRANSPORT_TLS_H__ | | #ifndef __PJSIP_TRANSPORT_TLS_H__ | |
| #define __PJSIP_TRANSPORT_TLS_H__ | | #define __PJSIP_TRANSPORT_TLS_H__ | |
| | | | |
| /** | | /** | |
| * @file sip_transport_tls.h | | * @file sip_transport_tls.h | |
| * @brief SIP TLS Transport. | | * @brief SIP TLS Transport. | |
| */ | | */ | |
| | | | |
| #include <pjsip/sip_transport.h> | | #include <pjsip/sip_transport.h> | |
| #include <pj/string.h> | | #include <pj/string.h> | |
|
| | | #include <pj/sock_qos.h> | |
| | | | |
| PJ_BEGIN_DECL | | PJ_BEGIN_DECL | |
| | | | |
| /** | | /** | |
| * @defgroup PJSIP_TRANSPORT_TLS TLS Transport | | * @defgroup PJSIP_TRANSPORT_TLS TLS Transport | |
| * @ingroup PJSIP_TRANSPORT | | * @ingroup PJSIP_TRANSPORT | |
| * @brief API to create and register TLS transport. | | * @brief API to create and register TLS transport. | |
| * @{ | | * @{ | |
| * The functions below are used to create TLS transport and register | | * The functions below are used to create TLS transport and register | |
| * the transport to the framework. | | * the transport to the framework. | |
| | | | |
| skipping to change at line 159 | | skipping to change at line 160 | |
| */ | | */ | |
| pj_bool_t require_client_cert; | | pj_bool_t require_client_cert; | |
| | | | |
| /** | | /** | |
| * TLS negotiation timeout to be applied for both outgoing and | | * TLS negotiation timeout to be applied for both outgoing and | |
| * incoming connection. If both sec and msec member is set to zero, | | * incoming connection. If both sec and msec member is set to zero, | |
| * the SSL negotiation doesn't have a timeout. | | * the SSL negotiation doesn't have a timeout. | |
| */ | | */ | |
| pj_time_val timeout; | | pj_time_val timeout; | |
| | | | |
|
| | | /** | |
| | | * QoS traffic type to be set on this transport. When application wants | |
| | | * to apply QoS tagging to the transport, it's preferable to set this | |
| | | * field rather than \a qos_param fields since this is more portable. | |
| | | * | |
| | | * Default value is PJ_QOS_TYPE_BEST_EFFORT. | |
| | | */ | |
| | | pj_qos_type qos_type; | |
| | | | |
| | | /** | |
| | | * Set the low level QoS parameters to the transport. This is a lower | |
| | | * level operation than setting the \a qos_type field and may not be | |
| | | * supported on all platforms. | |
| | | * | |
| | | * By default all settings in this structure are disabled. | |
| | | */ | |
| | | pj_qos_params qos_params; | |
| | | | |
| | | /** | |
| | | * Specify if the transport should ignore any errors when setting the Q | |
| | | oS | |
| | | * traffic type/parameters. | |
| | | * | |
| | | * Default: PJ_TRUE | |
| | | */ | |
| | | pj_bool_t qos_ignore_error; | |
| | | | |
| } pjsip_tls_setting; | | } pjsip_tls_setting; | |
| | | | |
| /** | | /** | |
| * Initialize TLS setting with default values. | | * Initialize TLS setting with default values. | |
| * | | * | |
| * @param tls_opt The TLS setting to be initialized. | | * @param tls_opt The TLS setting to be initialized. | |
| */ | | */ | |
| PJ_INLINE(void) pjsip_tls_setting_default(pjsip_tls_setting *tls_opt) | | PJ_INLINE(void) pjsip_tls_setting_default(pjsip_tls_setting *tls_opt) | |
| { | | { | |
| pj_memset(tls_opt, 0, sizeof(*tls_opt)); | | pj_memset(tls_opt, 0, sizeof(*tls_opt)); | |
|
| | | tls_opt->qos_type = PJ_QOS_TYPE_BEST_EFFORT; | |
| | | tls_opt->qos_ignore_error = PJ_TRUE; | |
| } | | } | |
| | | | |
| /** | | /** | |
| * Copy TLS setting. | | * Copy TLS setting. | |
| * | | * | |
| * @param pool The pool to duplicate strings etc. | | * @param pool The pool to duplicate strings etc. | |
| * @param dst Destination structure. | | * @param dst Destination structure. | |
| * @param src Source structure. | | * @param src Source structure. | |
| */ | | */ | |
| PJ_INLINE(void) pjsip_tls_setting_copy(pj_pool_t *pool, | | PJ_INLINE(void) pjsip_tls_setting_copy(pj_pool_t *pool, | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 31 lines changed or added | |
|
| sock.h | | sock.h | |
|
| /* $Id: sock.h 2863 2009-08-12 10:56:06Z bennylp $ */ | | /* $Id: sock.h 2966 2009-10-25 09:02:07Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 285 | | skipping to change at line 285 | |
| | | | |
| /** Socket type. @see pj_SO_TYPE() */ | | /** Socket type. @see pj_SO_TYPE() */ | |
| extern const pj_uint16_t PJ_SO_TYPE; | | extern const pj_uint16_t PJ_SO_TYPE; | |
| | | | |
| /** Buffer size for receive. @see pj_SO_RCVBUF() */ | | /** Buffer size for receive. @see pj_SO_RCVBUF() */ | |
| extern const pj_uint16_t PJ_SO_RCVBUF; | | extern const pj_uint16_t PJ_SO_RCVBUF; | |
| | | | |
| /** Buffer size for send. @see pj_SO_SNDBUF() */ | | /** Buffer size for send. @see pj_SO_SNDBUF() */ | |
| extern const pj_uint16_t PJ_SO_SNDBUF; | | extern const pj_uint16_t PJ_SO_SNDBUF; | |
| | | | |
|
| | | /** Disables the Nagle algorithm for send coalescing. @see pj_TCP_NODELAY * | |
| | | / | |
| | | extern const pj_uint16_t PJ_TCP_NODELAY; | |
| | | | |
| | | /** Allows the socket to be bound to an address that is already in use. | |
| | | * @see pj_SO_REUSEADDR */ | |
| | | extern const pj_uint16_t PJ_SO_REUSEADDR; | |
| | | | |
| | | /** Set the protocol-defined priority for all packets to be sent on socket. | |
| | | */ | |
| | | extern const pj_uint16_t PJ_SO_PRIORITY; | |
| | | | |
| /** IP multicast interface. @see pj_IP_MULTICAST_IF() */ | | /** IP multicast interface. @see pj_IP_MULTICAST_IF() */ | |
| extern const pj_uint16_t PJ_IP_MULTICAST_IF; | | extern const pj_uint16_t PJ_IP_MULTICAST_IF; | |
| | | | |
| /** IP multicast ttl. @see pj_IP_MULTICAST_TTL() */ | | /** IP multicast ttl. @see pj_IP_MULTICAST_TTL() */ | |
| extern const pj_uint16_t PJ_IP_MULTICAST_TTL; | | extern const pj_uint16_t PJ_IP_MULTICAST_TTL; | |
| | | | |
| /** IP multicast loopback. @see pj_IP_MULTICAST_LOOP() */ | | /** IP multicast loopback. @see pj_IP_MULTICAST_LOOP() */ | |
| extern const pj_uint16_t PJ_IP_MULTICAST_LOOP; | | extern const pj_uint16_t PJ_IP_MULTICAST_LOOP; | |
| | | | |
| /** Add an IP group membership. @see pj_IP_ADD_MEMBERSHIP() */ | | /** Add an IP group membership. @see pj_IP_ADD_MEMBERSHIP() */ | |
| | | | |
| skipping to change at line 310 | | skipping to change at line 321 | |
| #if defined(PJ_DLL) | | #if defined(PJ_DLL) | |
| /** Get #PJ_SO_TYPE constant */ | | /** Get #PJ_SO_TYPE constant */ | |
| PJ_DECL(pj_uint16_t) pj_SO_TYPE(void); | | PJ_DECL(pj_uint16_t) pj_SO_TYPE(void); | |
| | | | |
| /** Get #PJ_SO_RCVBUF constant */ | | /** Get #PJ_SO_RCVBUF constant */ | |
| PJ_DECL(pj_uint16_t) pj_SO_RCVBUF(void); | | PJ_DECL(pj_uint16_t) pj_SO_RCVBUF(void); | |
| | | | |
| /** Get #PJ_SO_SNDBUF constant */ | | /** Get #PJ_SO_SNDBUF constant */ | |
| PJ_DECL(pj_uint16_t) pj_SO_SNDBUF(void); | | PJ_DECL(pj_uint16_t) pj_SO_SNDBUF(void); | |
| | | | |
|
| | | /** Get #PJ_TCP_NODELAY constant */ | |
| | | PJ_DECL(pj_uint16_t) pj_TCP_NODELAY(void); | |
| | | | |
| | | /** Get #PJ_SO_REUSEADDR constant */ | |
| | | PJ_DECL(pj_uint16_t) pj_SO_REUSEADDR(void); | |
| | | | |
| | | /** Get #PJ_SO_PRIORITY constant */ | |
| | | PJ_DECL(pj_uint16_t) pj_SO_PRIORITY(void); | |
| | | | |
| /** Get #PJ_IP_MULTICAST_IF constant */ | | /** Get #PJ_IP_MULTICAST_IF constant */ | |
| PJ_DECL(pj_uint16_t) pj_IP_MULTICAST_IF(void); | | PJ_DECL(pj_uint16_t) pj_IP_MULTICAST_IF(void); | |
| | | | |
| /** Get #PJ_IP_MULTICAST_TTL constant */ | | /** Get #PJ_IP_MULTICAST_TTL constant */ | |
| PJ_DECL(pj_uint16_t) pj_IP_MULTICAST_TTL(void); | | PJ_DECL(pj_uint16_t) pj_IP_MULTICAST_TTL(void); | |
| | | | |
| /** Get #PJ_IP_MULTICAST_LOOP constant */ | | /** Get #PJ_IP_MULTICAST_LOOP constant */ | |
| PJ_DECL(pj_uint16_t) pj_IP_MULTICAST_LOOP(void); | | PJ_DECL(pj_uint16_t) pj_IP_MULTICAST_LOOP(void); | |
| | | | |
| /** Get #PJ_IP_ADD_MEMBERSHIP constant */ | | /** Get #PJ_IP_ADD_MEMBERSHIP constant */ | |
| | | | |
| skipping to change at line 334 | | skipping to change at line 354 | |
| #else | | #else | |
| /** Get #PJ_SO_TYPE constant */ | | /** Get #PJ_SO_TYPE constant */ | |
| # define pj_SO_TYPE() PJ_SO_TYPE | | # define pj_SO_TYPE() PJ_SO_TYPE | |
| | | | |
| /** Get #PJ_SO_RCVBUF constant */ | | /** Get #PJ_SO_RCVBUF constant */ | |
| # define pj_SO_RCVBUF() PJ_SO_RCVBUF | | # define pj_SO_RCVBUF() PJ_SO_RCVBUF | |
| | | | |
| /** Get #PJ_SO_SNDBUF constant */ | | /** Get #PJ_SO_SNDBUF constant */ | |
| # define pj_SO_SNDBUF() PJ_SO_SNDBUF | | # define pj_SO_SNDBUF() PJ_SO_SNDBUF | |
| | | | |
|
| | | /** Get #PJ_TCP_NODELAY constant */ | |
| | | # define pj_TCP_NODELAY() PJ_TCP_NODELAY | |
| | | | |
| | | /** Get #PJ_SO_REUSEADDR constant */ | |
| | | # define pj_SO_REUSEADDR() PJ_SO_REUSEADDR | |
| | | | |
| | | /** Get #PJ_SO_PRIORITY constant */ | |
| | | # define pj_SO_PRIORITY() PJ_SO_PRIORITY | |
| | | | |
| /** Get #PJ_IP_MULTICAST_IF constant */ | | /** Get #PJ_IP_MULTICAST_IF constant */ | |
| # define pj_IP_MULTICAST_IF() PJ_IP_MULTICAST_IF | | # define pj_IP_MULTICAST_IF() PJ_IP_MULTICAST_IF | |
| | | | |
| /** Get #PJ_IP_MULTICAST_TTL constant */ | | /** Get #PJ_IP_MULTICAST_TTL constant */ | |
| # define pj_IP_MULTICAST_TTL() PJ_IP_MULTICAST_TTL | | # define pj_IP_MULTICAST_TTL() PJ_IP_MULTICAST_TTL | |
| | | | |
| /** Get #PJ_IP_MULTICAST_LOOP constant */ | | /** Get #PJ_IP_MULTICAST_LOOP constant */ | |
| # define pj_IP_MULTICAST_LOOP() PJ_IP_MULTICAST_LOOP | | # define pj_IP_MULTICAST_LOOP() PJ_IP_MULTICAST_LOOP | |
| | | | |
| /** Get #PJ_IP_ADD_MEMBERSHIP constant */ | | /** Get #PJ_IP_ADD_MEMBERSHIP constant */ | |
| | | | |
End of changes. 4 change blocks. |
| 1 lines changed or deleted | | 31 lines changed or added | |
|
| turn_sock.h | | turn_sock.h | |
|
| /* $Id: turn_sock.h 2642 2009-04-22 17:20:24Z bennylp $ */ | | /* $Id: turn_sock.h 2966 2009-10-25 09:02:07Z bennylp $ */ | |
| /* | | /* | |
| * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | | * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com) | |
| * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | | * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org> | |
| * | | * | |
| * This program is free software; you can redistribute it and/or modify | | * This program is free software; you can redistribute it and/or modify | |
| * it under the terms of the GNU General Public License as published by | | * it under the terms of the GNU General Public License as published by | |
| * the Free Software Foundation; either version 2 of the License, or | | * the Free Software Foundation; either version 2 of the License, or | |
| * (at your option) any later version. | | * (at your option) any later version. | |
| * | | * | |
| * This program is distributed in the hope that it will be useful, | | * This program is distributed in the hope that it will be useful, | |
| | | | |
| skipping to change at line 28 | | skipping to change at line 28 | |
| * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US
A | |
| */ | | */ | |
| #ifndef __PJNATH_TURN_SOCK_H__ | | #ifndef __PJNATH_TURN_SOCK_H__ | |
| #define __PJNATH_TURN_SOCK_H__ | | #define __PJNATH_TURN_SOCK_H__ | |
| | | | |
| /** | | /** | |
| * @file turn_sock.h | | * @file turn_sock.h | |
| * @brief TURN relay using UDP client as transport protocol | | * @brief TURN relay using UDP client as transport protocol | |
| */ | | */ | |
| #include <pjnath/turn_session.h> | | #include <pjnath/turn_session.h> | |
|
| | | #include <pj/sock_qos.h> | |
| | | | |
| PJ_BEGIN_DECL | | PJ_BEGIN_DECL | |
| | | | |
| /* ************************************************************************
**/ | | /* ************************************************************************
**/ | |
| /** | | /** | |
| @addtogroup PJNATH_TURN_SOCK | | @addtogroup PJNATH_TURN_SOCK | |
| @{ | | @{ | |
| | | | |
| This is a ready to use object for relaying application data via a TURN serv
er, | | This is a ready to use object for relaying application data via a TURN serv
er, | |
| by managing all the operations in \ref turn_op_sec. | | by managing all the operations in \ref turn_op_sec. | |
| | | | |
| skipping to change at line 100 | | skipping to change at line 101 | |
| * @param old_state Previous state. | | * @param old_state Previous state. | |
| * @param new_state Current state. | | * @param new_state Current state. | |
| */ | | */ | |
| void (*on_state)(pj_turn_sock *turn_sock, | | void (*on_state)(pj_turn_sock *turn_sock, | |
| pj_turn_state_t old_state, | | pj_turn_state_t old_state, | |
| pj_turn_state_t new_state); | | pj_turn_state_t new_state); | |
| | | | |
| } pj_turn_sock_cb; | | } pj_turn_sock_cb; | |
| | | | |
| /** | | /** | |
|
| | | * This structure describes options that can be specified when creating | |
| | | * the TURN socket. Application should call #pj_turn_sock_cfg_default() | |
| | | * to initialize this structure with its default values before using it. | |
| | | */ | |
| | | typedef struct pj_turn_sock_cfg | |
| | | { | |
| | | /** | |
| | | * QoS traffic type to be set on this transport. When application wants | |
| | | * to apply QoS tagging to the transport, it's preferable to set this | |
| | | * field rather than \a qos_param fields since this is more portable. | |
| | | * | |
| | | * Default value is PJ_QOS_TYPE_BEST_EFFORT. | |
| | | */ | |
| | | pj_qos_type qos_type; | |
| | | | |
| | | /** | |
| | | * Set the low level QoS parameters to the transport. This is a lower | |
| | | * level operation than setting the \a qos_type field and may not be | |
| | | * supported on all platforms. | |
| | | * | |
| | | * By default all settings in this structure are not set. | |
| | | */ | |
| | | pj_qos_params qos_params; | |
| | | | |
| | | /** | |
| | | * Specify if STUN socket should ignore any errors when setting the QoS | |
| | | * traffic type/parameters. | |
| | | * | |
| | | * Default: PJ_TRUE | |
| | | */ | |
| | | pj_bool_t qos_ignore_error; | |
| | | | |
| | | } pj_turn_sock_cfg; | |
| | | | |
| | | /** | |
| | | * Initialize pj_turn_sock_cfg structure with default values. | |
| | | */ | |
| | | PJ_DECL(void) pj_turn_sock_cfg_default(pj_turn_sock_cfg *cfg); | |
| | | | |
| | | /** | |
| * Create a TURN transport instance with the specified address family and | | * Create a TURN transport instance with the specified address family and | |
| * connection type. Once TURN transport instance is created, application | | * connection type. Once TURN transport instance is created, application | |
| * must call pj_turn_sock_alloc() to allocate a relay address in the TURN | | * must call pj_turn_sock_alloc() to allocate a relay address in the TURN | |
| * server. | | * server. | |
| * | | * | |
| * @param cfg The STUN configuration which contains among other | | * @param cfg The STUN configuration which contains among other | |
| * things the ioqueue and timer heap instance for | | * things the ioqueue and timer heap instance for | |
| * the operation of this transport. | | * the operation of this transport. | |
| * @param af Address family of the client connection. Currently | | * @param af Address family of the client connection. Currently | |
| * pj_AF_INET() and pj_AF_INET6() are supported. | | * pj_AF_INET() and pj_AF_INET6() are supported. | |
| * @param conn_type Connection type to the TURN server. Both TCP and | | * @param conn_type Connection type to the TURN server. Both TCP and | |
| * UDP are supported. | | * UDP are supported. | |
| * @param cb Callback to receive events from the TURN transport. | | * @param cb Callback to receive events from the TURN transport. | |
|
| * @param options Option flags, currently this value must be zero. | | * @param setting Optional settings to be specified to the transport. | |
| | | * If this parameter is NULL, default values will be | |
| | | * used. | |
| * @param user_data Arbitrary application data to be associated with | | * @param user_data Arbitrary application data to be associated with | |
| * this transport. | | * this transport. | |
| * @param p_turn_sock Pointer to receive the created instance of the | | * @param p_turn_sock Pointer to receive the created instance of the | |
| * TURN transport. | | * TURN transport. | |
| * | | * | |
| * @return PJ_SUCCESS if the operation has been successful, | | * @return PJ_SUCCESS if the operation has been successful, | |
| * or the appropriate error code on failure. | | * or the appropriate error code on failure. | |
| */ | | */ | |
| PJ_DECL(pj_status_t) pj_turn_sock_create(pj_stun_config *cfg, | | PJ_DECL(pj_status_t) pj_turn_sock_create(pj_stun_config *cfg, | |
| int af, | | int af, | |
| pj_turn_tp_type conn_type, | | pj_turn_tp_type conn_type, | |
| const pj_turn_sock_cb *cb, | | const pj_turn_sock_cb *cb, | |
|
| unsigned options, | | const pj_turn_sock_cfg *setting, | |
| void *user_data, | | void *user_data, | |
| pj_turn_sock **p_turn_sock); | | pj_turn_sock **p_turn_sock); | |
| | | | |
| /** | | /** | |
| * Destroy the TURN transport instance. This will gracefully close the | | * Destroy the TURN transport instance. This will gracefully close the | |
| * connection between the client and the TURN server. Although this | | * connection between the client and the TURN server. Although this | |
| * function will return immediately, the TURN socket deletion may continue | | * function will return immediately, the TURN socket deletion may continue | |
| * in the background and the application may still get state changes | | * in the background and the application may still get state changes | |
| * notifications from this transport. | | * notifications from this transport. | |
| * | | * | |
| | | | |
End of changes. 5 change blocks. |
| 3 lines changed or deleted | | 46 lines changed or added | |
|