addr_resolv.h   addr_resolv.h 
/* $Id: addr_resolv.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: addr_resolv.h 2908 2009-08-22 11:18:50Z 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 91 skipping to change at line 91
{ {
char ai_canonname[PJ_MAX_HOSTNAME]; /**< Canonical name for host */ char ai_canonname[PJ_MAX_HOSTNAME]; /**< Canonical name for host */
pj_sockaddr ai_addr; /**< Binary address. */ pj_sockaddr ai_addr; /**< Binary address. */
} pj_addrinfo; } pj_addrinfo;
/** /**
* This function fills the structure of type pj_hostent for a given host na me. * This function fills the structure of type pj_hostent for a given host na me.
* For host resolution function that also works with IPv6, please see * For host resolution function that also works with IPv6, please see
* #pj_getaddrinfo(). * #pj_getaddrinfo().
* *
* @param name Host name, or IPv4 address in standard dot notation. * @param name Host name to resolve. Specifying IPv4 address here
* may fail on some platforms (e.g. Windows)
* @param he The pj_hostent structure to be filled. Note that * @param he The pj_hostent structure to be filled. Note that
* the pointers in this structure points to temporary * the pointers in this structure points to temporary
* variables which value will be reset upon subsequent * variables which value will be reset upon subsequent
* invocation. * invocation.
* *
* @return PJ_SUCCESS, or the appropriate error codes. * @return PJ_SUCCESS, or the appropriate error codes.
*/ */
PJ_DECL(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he) ; PJ_DECL(pj_status_t) pj_gethostbyname(const pj_str_t *name, pj_hostent *he) ;
/** /**
 End of changes. 2 change blocks. 
2 lines changed or deleted 3 lines changed or added


 config.h   config.h 
/* $Id: config.h 2843 2009-07-22 11:12:35Z bennylp $ */ /* $Id: config.h 2970 2009-10-26 15:47:52Z nanang $ */
/* /*
* 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 727 skipping to change at line 727
* functions to compare alnum strings. On some systems, they're faster * functions to compare alnum strings. On some systems, they're faster
* then stricmp/strcasecmp, but they can be slower on other systems. * then stricmp/strcasecmp, but they can be slower on other systems.
* When disabled, pjlib will fallback to stricmp/strnicmp. * When disabled, pjlib will fallback to stricmp/strnicmp.
* *
* Default: 0 * Default: 0
*/ */
#ifndef PJ_HAS_STRICMP_ALNUM #ifndef PJ_HAS_STRICMP_ALNUM
# define PJ_HAS_STRICMP_ALNUM 0 # define PJ_HAS_STRICMP_ALNUM 0
#endif #endif
/*
* Types of QoS backend implementation.
*/
/**
* Dummy QoS backend implementation, will always return error on all
* the APIs.
*/
#define PJ_QOS_DUMMY 1
/** QoS backend based on setsockopt(IP_TOS) */
#define PJ_QOS_BSD 2
/** QoS backend for Windows Mobile 6 */
#define PJ_QOS_WM 3
/** QoS backend for Symbian */
#define PJ_QOS_SYMBIAN 4
/**
* Force the use of some QoS backend API for some platforms.
*/
#ifndef PJ_QOS_IMPLEMENTATION
# if defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE && _WIN32_WCE >= 0x502
/* Windows Mobile 6 or later */
# define PJ_QOS_IMPLEMENTATION PJ_QOS_WM
# endif
#endif
/**
* Enable secure socket. For most platforms, this is implemented using
* OpenSSL, so this will require OpenSSL to be installed. For Symbian
* platform, this is implemented natively using CSecureSocket.
*
* Default: 0 (for now)
*/
#ifndef PJ_HAS_SSL_SOCK
# define PJ_HAS_SSL_SOCK 0
#endif
/** @} */ /** @} */
/******************************************************************** /********************************************************************
* General macros. * General macros.
*/ */
/** /**
* @defgroup pj_dll_target Building Dynamic Link Libraries (DLL/DSO) * @defgroup pj_dll_target Building Dynamic Link Libraries (DLL/DSO)
* @ingroup pj_config * @ingroup pj_config
* @{ * @{
 End of changes. 2 change blocks. 
1 lines changed or deleted 41 lines changed or added


 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_auto.h   os_auto.h 
/* pjlib/include/pj/compat/os_auto.h. Generated from os_auto.h.in by confi gure. */ /* pjlib/include/pj/compat/os_auto.h. Generated from os_auto.h.in by confi gure. */
/* $Id: os_auto.h.in 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: os_auto.h.in 2970 2009-10-26 15:47:52Z nanang $ */
/* /*
* 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 58 skipping to change at line 58
#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 1 #define PJ_HAS_ERRNO_H 1
#define PJ_HAS_FCNTL_H 1 #define PJ_HAS_FCNTL_H 1
#define PJ_HAS_LINUX_SOCKET_H 1 #define PJ_HAS_LINUX_SOCKET_H 1
#define PJ_HAS_MALLOC_H 1 #define PJ_HAS_MALLOC_H 1
#define PJ_HAS_NETDB_H 1 #define PJ_HAS_NETDB_H 1
#define PJ_HAS_NETINET_IN_SYSTM_H 1 #define PJ_HAS_NETINET_IN_SYSTM_H 1
#define PJ_HAS_NETINET_IN_H 1 #define PJ_HAS_NETINET_IN_H 1
#define PJ_HAS_NETINET_IP_H 1 #define PJ_HAS_NETINET_IP_H 1
#define PJ_HAS_NETINET_TCP_H 1
#define PJ_HAS_NET_IF_H 1 #define PJ_HAS_NET_IF_H 1
#define PJ_HAS_IFADDRS_H 1 #define PJ_HAS_IFADDRS_H 1
#define PJ_HAS_SEMAPHORE_H 1 #define PJ_HAS_SEMAPHORE_H 1
#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
#define PJ_HAS_STDIO_H 1 #define PJ_HAS_STDIO_H 1
#define PJ_HAS_STDINT_H 1 #define PJ_HAS_STDINT_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
skipping to change at line 184 skipping to change at line 185
* threads. * threads.
* Default: 0 (let OS decide the thread's stack size). * Default: 0 (let OS decide the thread's stack size).
*/ */
#define PJ_THREAD_SET_STACK_SIZE 0 #define PJ_THREAD_SET_STACK_SIZE 0
/* If 1, pj_thread_create() should allocate stack from the pool supplied. /* If 1, pj_thread_create() should allocate stack from the pool supplied.
* Default: 0 (let OS allocate memory for thread's stack). * Default: 0 (let OS allocate memory for thread's stack).
*/ */
#define PJ_THREAD_ALLOCATE_STACK 0 #define PJ_THREAD_ALLOCATE_STACK 0
/* SSL socket availability. */
#ifndef PJ_HAS_SSL_SOCK
#define PJ_HAS_SSL_SOCK 1
#endif
#endif /* __PJ_COMPAT_OS_AUTO_H__ */ #endif /* __PJ_COMPAT_OS_AUTO_H__ */
 End of changes. 3 change blocks. 
1 lines changed or deleted 7 lines changed or added


 os_auto.h.in   os_auto.h.in 
/* $Id: os_auto.h.in 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: os_auto.h.in 2970 2009-10-26 15:47:52Z nanang $ */
/* /*
* 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 57 skipping to change at line 57
#undef PJ_HAS_ASSERT_H #undef PJ_HAS_ASSERT_H
#undef PJ_HAS_CTYPE_H #undef PJ_HAS_CTYPE_H
#undef PJ_HAS_ERRNO_H #undef PJ_HAS_ERRNO_H
#undef PJ_HAS_FCNTL_H #undef PJ_HAS_FCNTL_H
#undef PJ_HAS_LINUX_SOCKET_H #undef PJ_HAS_LINUX_SOCKET_H
#undef PJ_HAS_MALLOC_H #undef PJ_HAS_MALLOC_H
#undef PJ_HAS_NETDB_H #undef PJ_HAS_NETDB_H
#undef PJ_HAS_NETINET_IN_SYSTM_H #undef PJ_HAS_NETINET_IN_SYSTM_H
#undef PJ_HAS_NETINET_IN_H #undef PJ_HAS_NETINET_IN_H
#undef PJ_HAS_NETINET_IP_H #undef PJ_HAS_NETINET_IP_H
#undef PJ_HAS_NETINET_TCP_H
#undef PJ_HAS_NET_IF_H #undef PJ_HAS_NET_IF_H
#undef PJ_HAS_IFADDRS_H #undef PJ_HAS_IFADDRS_H
#undef PJ_HAS_SEMAPHORE_H #undef PJ_HAS_SEMAPHORE_H
#undef PJ_HAS_SETJMP_H #undef PJ_HAS_SETJMP_H
#undef PJ_HAS_STDARG_H #undef PJ_HAS_STDARG_H
#undef PJ_HAS_STDDEF_H #undef PJ_HAS_STDDEF_H
#undef PJ_HAS_STDIO_H #undef PJ_HAS_STDIO_H
#undef PJ_HAS_STDINT_H #undef PJ_HAS_STDINT_H
#undef PJ_HAS_STDLIB_H #undef PJ_HAS_STDLIB_H
#undef PJ_HAS_STRING_H #undef PJ_HAS_STRING_H
skipping to change at line 183 skipping to change at line 184
* threads. * threads.
* Default: 0 (let OS decide the thread's stack size). * Default: 0 (let OS decide the thread's stack size).
*/ */
#undef PJ_THREAD_SET_STACK_SIZE #undef PJ_THREAD_SET_STACK_SIZE
/* If 1, pj_thread_create() should allocate stack from the pool supplied. /* If 1, pj_thread_create() should allocate stack from the pool supplied.
* Default: 0 (let OS allocate memory for thread's stack). * Default: 0 (let OS allocate memory for thread's stack).
*/ */
#undef PJ_THREAD_ALLOCATE_STACK #undef PJ_THREAD_ALLOCATE_STACK
/* SSL socket availability. */
#ifndef PJ_HAS_SSL_SOCK
#undef PJ_HAS_SSL_SOCK
#endif
#endif /* __PJ_COMPAT_OS_AUTO_H__ */ #endif /* __PJ_COMPAT_OS_AUTO_H__ */
 End of changes. 3 change blocks. 
1 lines changed or deleted 7 lines changed or added


 os_darwinos.h   os_darwinos.h 
/* $Id: os_darwinos.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: os_darwinos.h 2962 2009-10-24 00:00:40Z 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 38 skipping to change at line 38
#define PJ_OS_NAME "darwin" #define PJ_OS_NAME "darwin"
#define PJ_HAS_ARPA_INET_H 1 #define PJ_HAS_ARPA_INET_H 1
#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 1 #define PJ_HAS_ERRNO_H 1
#define PJ_HAS_LINUX_SOCKET_H 0 #define PJ_HAS_LINUX_SOCKET_H 0
#define PJ_HAS_MALLOC_H 0 #define PJ_HAS_MALLOC_H 0
#define PJ_HAS_NETDB_H 1 #define PJ_HAS_NETDB_H 1
#define PJ_HAS_NETINET_IN_H 1 #define PJ_HAS_NETINET_IN_H 1
#define PJ_HAS_NETINET_TCP_H 1
#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
#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 1 #define PJ_HAS_SYS_IOCTL_H 1
#define PJ_HAS_SYS_SELECT_H 1 #define PJ_HAS_SYS_SELECT_H 1
#define PJ_HAS_SYS_SOCKET_H 1 #define PJ_HAS_SYS_SOCKET_H 1
#define PJ_HAS_SYS_TIME_H 1 #define PJ_HAS_SYS_TIME_H 1
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 os_symbian.h   os_symbian.h 
/* $Id: os_symbian.h 2506 2009-03-12 18:11:37Z bennylp $ */ /* $Id: os_symbian.h 2962 2009-10-24 00:00:40Z 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 38 skipping to change at line 38
#define PJ_OS_NAME "symbian" #define PJ_OS_NAME "symbian"
#define PJ_HAS_ARPA_INET_H 1 #define PJ_HAS_ARPA_INET_H 1
#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 1 #define PJ_HAS_ERRNO_H 1
#define PJ_HAS_LINUX_SOCKET_H 0 #define PJ_HAS_LINUX_SOCKET_H 0
#define PJ_HAS_MALLOC_H 0 #define PJ_HAS_MALLOC_H 0
#define PJ_HAS_NETDB_H 1 #define PJ_HAS_NETDB_H 1
#define PJ_HAS_NETINET_IN_H 1 #define PJ_HAS_NETINET_IN_H 1
#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
#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_NO_SNPRINTF 1 #define PJ_HAS_NO_SNPRINTF 1
#define PJ_HAS_SYS_IOCTL_H 1 #define PJ_HAS_SYS_IOCTL_H 1
#define PJ_HAS_SYS_SELECT_H 0 #define PJ_HAS_SYS_SELECT_H 0
#define PJ_HAS_SYS_SOCKET_H 1 #define PJ_HAS_SYS_SOCKET_H 1
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 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


 os_win32_wince.h   os_win32_wince.h 
/* $Id: os_win32_wince.h 2660 2009-04-28 19:38:43Z nanang $ */ /* $Id: os_win32_wince.h 2962 2009-10-24 00:00:40Z 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 43 skipping to change at line 43
//#define _WIN32_WINNT PJ_WIN32_WINNT //#define _WIN32_WINNT PJ_WIN32_WINNT
#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
#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
#define PJ_HAS_SYS_TIME_H 0 #define PJ_HAS_SYS_TIME_H 0
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 pjlib.h   pjlib.h 
/* $Id: pjlib.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: pjlib.h 2970 2009-10-26 15:47:52Z nanang $ */
/* /*
* 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 53 skipping to change at line 53
#include <pj/list.h> #include <pj/list.h>
#include <pj/lock.h> #include <pj/lock.h>
#include <pj/log.h> #include <pj/log.h>
#include <pj/math.h> #include <pj/math.h>
#include <pj/os.h> #include <pj/os.h>
#include <pj/pool.h> #include <pj/pool.h>
#include <pj/pool_buf.h> #include <pj/pool_buf.h>
#include <pj/rand.h> #include <pj/rand.h>
#include <pj/rbtree.h> #include <pj/rbtree.h>
#include <pj/sock.h> #include <pj/sock.h>
#include <pj/sock_qos.h>
#include <pj/sock_select.h> #include <pj/sock_select.h>
#include <pj/ssl_sock.h>
#include <pj/string.h> #include <pj/string.h>
#include <pj/timer.h> #include <pj/timer.h>
#include <pj/unicode.h> #include <pj/unicode.h>
#include <pj/compat/high_precision.h> #include <pj/compat/high_precision.h>
#endif /* __PJLIB_H__ */ #endif /* __PJLIB_H__ */
 End of changes. 3 change blocks. 
1 lines changed or deleted 3 lines changed or added


 pjsip_simple.h   pjsip_simple.h 
/* $Id: pjsip_simple.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: pjsip_simple.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 38 skipping to change at line 38
*/ */
/* /*
* Include this header file to get all functionalities for SIMPLE extension * Include this header file to get all functionalities for SIMPLE extension
* (SIP for Instant Messaging and Presence Leveraging Extension). * (SIP for Instant Messaging and Presence Leveraging Extension).
*/ */
#ifndef __PJSIP_SIMPLE_H__ #ifndef __PJSIP_SIMPLE_H__
#define __PJSIP_SIMPLE_H__ #define __PJSIP_SIMPLE_H__
#include <pjsip-simple/evsub.h> #include <pjsip-simple/evsub.h>
#include <pjsip-simple/evsub_msg.h>
#include <pjsip-simple/iscomposing.h> #include <pjsip-simple/iscomposing.h>
#include <pjsip-simple/mwi.h>
#include <pjsip-simple/presence.h> #include <pjsip-simple/presence.h>
#include <pjsip-simple/pidf.h> #include <pjsip-simple/pidf.h>
#include <pjsip-simple/publish.h> #include <pjsip-simple/publish.h>
#include <pjsip-simple/xpidf.h> #include <pjsip-simple/xpidf.h>
#endif /* __PJSIP_SIMPLE_H__ */ #endif /* __PJSIP_SIMPLE_H__ */
 End of changes. 3 change blocks. 
1 lines changed or deleted 3 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


 sdp.h   sdp.h 
/* $Id: sdp.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: sdp.h 2995 2009-11-09 05:18:12Z 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 619 skipping to change at line 619
* @param option Must be zero for now. * @param option Must be zero for now.
* *
* @return PJ_SUCCESS when both SDPs are equal, or otherwise * @return PJ_SUCCESS when both SDPs are equal, or otherwise
* the status code indicates which part of the session * the status code indicates which part of the session
* descriptors are not equal. * descriptors are not equal.
*/ */
PJ_DECL(pj_status_t) pjmedia_sdp_session_cmp(const pjmedia_sdp_session *sd1 , PJ_DECL(pj_status_t) pjmedia_sdp_session_cmp(const pjmedia_sdp_session *sd1 ,
const pjmedia_sdp_session *sd2, const pjmedia_sdp_session *sd2,
unsigned option); unsigned option);
/**
* Add new attribute to the session descriptor.
*
* @param s The SDP session description.
* @param attr Attribute to add.
*
* @return PJ_SUCCESS or the appropriate error code.
*/
PJ_DECL(pj_status_t) pjmedia_sdp_session_add_attr(pjmedia_sdp_session *m,
pjmedia_sdp_attr *attr);
PJ_END_DECL PJ_END_DECL
/** /**
* @} * @}
*/ */
#endif /* __PJMEDIA_SDP_H__ */ #endif /* __PJMEDIA_SDP_H__ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 12 lines changed or added


 sip_autoconf.h   sip_autoconf.h 
/* pjsip/include/pjsip/sip_autoconf.h. Generated from sip_autoconf.h.in by configure. */ /* pjsip/include/pjsip/sip_autoconf.h. Generated from sip_autoconf.h.in by configure. */
/* $Id: sip_autoconf.h.in 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: sip_autoconf.h.in 2973 2009-10-28 06:09:15Z nanang $ */
/* /*
* 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_AUTOCONF_H__ #ifndef __PJSIP_SIP_AUTOCONF_H__
#define __PJSIP_SIP_AUTOCONF_H__ #define __PJSIP_SIP_AUTOCONF_H__
/** /**
* @file sip_autoconf.h * @file sip_autoconf.h
* @brief Describes operating system specifics (automatically detected by * @brief Describes operating system specifics (automatically detected by
* autoconf) * autoconf)
*/ */
/** /*
* Enable/disable TLS transport, as configured by autoconf. * Enable/disable TLS transport, as configured by autoconf.
* But only do this if user doesn't explicitly configure in pj/config_site. h. * But only do this if user doesn't explicitly configure in pj/config_site. h.
*/ */
#ifndef PJSIP_HAS_TLS_TRANSPORT /* Since 1.5, the default setting will follow PJ_HAS_SSL_SOCK setting. */
#define PJSIP_HAS_TLS_TRANSPORT 1 //#ifndef PJSIP_HAS_TLS_TRANSPORT
#endif //#undef PJSIP_HAS_TLS_TRANSPORT
//#endif
#endif /* __PJSIP_SIP_AUTOCONF_H__ */ #endif /* __PJSIP_SIP_AUTOCONF_H__ */
 End of changes. 3 change blocks. 
5 lines changed or deleted 6 lines changed or added


 sip_autoconf.h.in   sip_autoconf.h.in 
/* $Id: sip_autoconf.h.in 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: sip_autoconf.h.in 2973 2009-10-28 06:09:15Z nanang $ */
/* /*
* 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_SIP_AUTOCONF_H__ #ifndef __PJSIP_SIP_AUTOCONF_H__
#define __PJSIP_SIP_AUTOCONF_H__ #define __PJSIP_SIP_AUTOCONF_H__
/** /**
* @file sip_autoconf.h * @file sip_autoconf.h
* @brief Describes operating system specifics (automatically detected by * @brief Describes operating system specifics (automatically detected by
* autoconf) * autoconf)
*/ */
/** /*
* Enable/disable TLS transport, as configured by autoconf. * Enable/disable TLS transport, as configured by autoconf.
* But only do this if user doesn't explicitly configure in pj/config_site. h. * But only do this if user doesn't explicitly configure in pj/config_site. h.
*/ */
#ifndef PJSIP_HAS_TLS_TRANSPORT /* Since 1.5, the default setting will follow PJ_HAS_SSL_SOCK setting. */
#undef PJSIP_HAS_TLS_TRANSPORT //#ifndef PJSIP_HAS_TLS_TRANSPORT
#endif //#undef PJSIP_HAS_TLS_TRANSPORT
//#endif
#endif /* __PJSIP_SIP_AUTOCONF_H__ */ #endif /* __PJSIP_SIP_AUTOCONF_H__ */
 End of changes. 3 change blocks. 
5 lines changed or deleted 6 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_msg.h   sip_msg.h 
/* $Id: sip_msg.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: sip_msg.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 504 skipping to change at line 504
* Accept and Content-Type header.. * Accept and Content-Type header..
*/ */
typedef struct pjsip_media_type typedef struct pjsip_media_type
{ {
pj_str_t type; /**< Media type. */ pj_str_t type; /**< Media type. */
pj_str_t subtype; /**< Media subtype. */ pj_str_t subtype; /**< Media subtype. */
pj_str_t param; /**< Media type parameters (concatenated). */ pj_str_t param; /**< Media type parameters (concatenated). */
} pjsip_media_type; } pjsip_media_type;
/** /**
* Copy SIP media type to another.
*
* @param pool Pool to duplicate strings.
* @param dst Destination structure.
* @param src Source structure.
*/
PJ_DECL(void) pjsip_media_type_cp(pj_pool_t *pool,
pjsip_media_type *dst,
const pjsip_media_type *src);
/**
* @} * @}
*/ */
/* ************************************************************************ **/ /* ************************************************************************ **/
/** /**
* @addtogroup PJSIP_MSG_BODY Message Body * @addtogroup PJSIP_MSG_BODY Message Body
* @brief SIP message body structures and manipulation. * @brief SIP message body structures and manipulation.
* @ingroup PJSIP_MSG * @ingroup PJSIP_MSG
* @{ * @{
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 12 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


 sip_util.h   sip_util.h 
/* $Id: sip_util.h 2855 2009-08-05 18:41:23Z nanang $ */ /* $Id: sip_util.h 2932 2009-10-09 12:11: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 443 skipping to change at line 443
void *token; void *token;
/** Endpoint instance. /** Endpoint instance.
*/ */
pjsip_endpoint *endpt; pjsip_endpoint *endpt;
/** Transmit data buffer being sent. /** Transmit data buffer being sent.
*/ */
pjsip_tx_data *tdata; pjsip_tx_data *tdata;
/** Server addresses resolved.
*/
pjsip_server_addresses addr;
/** Current server address being tried.
*/
unsigned cur_addr;
/** Current transport being used. /** Current transport being used.
*/ */
pjsip_transport *cur_transport; pjsip_transport *cur_transport;
/** The application callback which was specified when the function /** The application callback which was specified when the function
* #pjsip_endpt_send_request_stateless() was called. * #pjsip_endpt_send_request_stateless() was called.
*/ */
void (*app_cb)(struct pjsip_send_state*, void (*app_cb)(struct pjsip_send_state*,
pj_ssize_t sent, pj_ssize_t sent,
pj_bool_t *cont); pj_bool_t *cont);
 End of changes. 2 change blocks. 
9 lines changed or deleted 1 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


 socket.h   socket.h 
/* $Id: socket.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: socket.h 2962 2009-10-24 00:00:40Z 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 106 skipping to change at line 106
#if defined(PJ_HAS_NETINET_IN_SYSTM_H) && PJ_HAS_NETINET_IN_SYSTM_H != 0 #if defined(PJ_HAS_NETINET_IN_SYSTM_H) && PJ_HAS_NETINET_IN_SYSTM_H != 0
/* Required to include netinet/ip.h in FreeBSD 7.0 */ /* Required to include netinet/ip.h in FreeBSD 7.0 */
# include <netinet/in_systm.h> # include <netinet/in_systm.h>
#endif #endif
#if defined(PJ_HAS_NETINET_IP_H) && PJ_HAS_NETINET_IP_H != 0 #if defined(PJ_HAS_NETINET_IP_H) && PJ_HAS_NETINET_IP_H != 0
/* To pull in IPTOS_* constants */ /* To pull in IPTOS_* constants */
# include <netinet/ip.h> # include <netinet/ip.h>
#endif #endif
#if defined(PJ_HAS_NETINET_TCP_H) && PJ_HAS_NETINET_TCP_H != 0
/* To pull in TCP_NODELAY constants */
# include <netinet/tcp.h>
#endif
#if defined(PJ_HAS_NET_IF_H) && PJ_HAS_NET_IF_H != 0 #if defined(PJ_HAS_NET_IF_H) && PJ_HAS_NET_IF_H != 0
/* For interface enumeration in ip_helper */ /* For interface enumeration in ip_helper */
# include <net/if.h> # include <net/if.h>
#endif #endif
#if defined(PJ_HAS_IFADDRS_H) && PJ_HAS_IFADDRS_H != 0 #if defined(PJ_HAS_IFADDRS_H) && PJ_HAS_IFADDRS_H != 0
/* Interface enum with getifaddrs() which works with IPv6 */ /* Interface enum with getifaddrs() which works with IPv6 */
# include <ifaddrs.h> # include <ifaddrs.h>
#endif #endif
 End of changes. 2 change blocks. 
1 lines changed or deleted 6 lines changed or added


 stun_sock.h   stun_sock.h 
/* $Id: stun_sock.h 2642 2009-04-22 17:20:24Z bennylp $ */ /* $Id: stun_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 31 skipping to change at line 31
#define __PJNATH_STUN_SOCK_H__ #define __PJNATH_STUN_SOCK_H__
/** /**
* @file stun_sock.h * @file stun_sock.h
* @brief STUN aware socket transport * @brief STUN aware socket transport
*/ */
#include <pjnath/stun_config.h> #include <pjnath/stun_config.h>
#include <pjlib-util/resolver.h> #include <pjlib-util/resolver.h>
#include <pj/ioqueue.h> #include <pj/ioqueue.h>
#include <pj/sock.h> #include <pj/sock.h>
#include <pj/sock_qos.h>
PJ_BEGIN_DECL PJ_BEGIN_DECL
/** /**
* @addtogroup PJNATH_STUN_SOCK * @addtogroup PJNATH_STUN_SOCK
* @{ * @{
* *
* The STUN transport provides asynchronous UDP like socket transport * The STUN transport provides asynchronous UDP like socket transport
* with the additional STUN capability. It has the following features: * with the additional STUN capability. It has the following features:
* *
skipping to change at line 244 skipping to change at line 245
pj_sockaddr bound_addr; pj_sockaddr bound_addr;
/** /**
* Specify the STUN keep-alive duration, in seconds. The STUN transport * Specify the STUN keep-alive duration, in seconds. The STUN transport
* does keep-alive by sending STUN Binding request to the STUN server. * does keep-alive by sending STUN Binding request to the STUN server.
* If this value is zero, the PJ_STUN_KEEP_ALIVE_SEC value will be used . * If this value is zero, the PJ_STUN_KEEP_ALIVE_SEC value will be used .
* If the value is negative, it will disable STUN keep-alive. * If the value is negative, it will disable STUN keep-alive.
*/ */
int ka_interval; int ka_interval;
/**
* 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 STUN socket should ignore any errors when setting the QoS
* traffic type/parameters.
*
* Default: PJ_TRUE
*/
pj_bool_t qos_ignore_error;
} pj_stun_sock_cfg; } pj_stun_sock_cfg;
/** /**
* Retrieve the name representing the specified operation. * Retrieve the name representing the specified operation.
*/ */
PJ_DECL(const char*) pj_stun_sock_op_name(pj_stun_sock_op op); PJ_DECL(const char*) pj_stun_sock_op_name(pj_stun_sock_op op);
/** /**
* Initialize the STUN transport setting with its default values. * Initialize the STUN transport setting with its default values.
* *
 End of changes. 3 change blocks. 
1 lines changed or deleted 28 lines changed or added


 transport.h   transport.h 
/* $Id: transport.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: transport.h 2945 2009-10-14 13:13:18Z 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 497 skipping to change at line 497
/** /**
* Remote address where RTP/RTCP originated from. In case this transpor t * Remote address where RTP/RTCP originated from. In case this transpor t
* hasn't ever received packet, the * hasn't ever received packet, the
*/ */
pj_sockaddr src_rtp_name; pj_sockaddr src_rtp_name;
pj_sockaddr src_rtcp_name; pj_sockaddr src_rtcp_name;
/** /**
* Specifies number of transport specific info included. * Specifies number of transport specific info included.
*/ */
int specific_info_cnt; unsigned specific_info_cnt;
/** /**
* Buffer storage of transport specific info. * Buffer storage of transport specific info.
*/ */
pjmedia_transport_specific_info spc_info[PJMEDIA_TRANSPORT_SPECIFIC_INF O_MAXCNT]; pjmedia_transport_specific_info spc_info[PJMEDIA_TRANSPORT_SPECIFIC_INF O_MAXCNT];
}; };
/** /**
* Initialize transport info. * Initialize transport info.
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 transport_ice.h   transport_ice.h 
/* $Id: transport_ice.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: transport_ice.h 2945 2009-10-14 13:13:18Z 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 62 skipping to change at line 62
* @param op The operation * @param op The operation
* @param status Operation status. * @param status Operation status.
*/ */
void (*on_ice_complete)(pjmedia_transport *tp, void (*on_ice_complete)(pjmedia_transport *tp,
pj_ice_strans_op op, pj_ice_strans_op op,
pj_status_t status); pj_status_t status);
} pjmedia_ice_cb; } pjmedia_ice_cb;
/** /**
* This structure specifies ICE transport specific info. This structure
* will be filled in media transport specific info.
*/
typedef struct pjmedia_ice_transport_info
{
/**
* ICE sesion state.
*/
pj_ice_strans_state sess_state;
/**
* Session role.
*/
pj_ice_sess_role role;
/**
* Number of components in the component array. Before ICE negotiation
* is complete, the number represents the number of components of the
* local agent. After ICE negotiation has been completed successfully,
* the number represents the number of common components between local
* and remote agents.
*/
unsigned comp_cnt;
/**
* Array of ICE components. Typically the first element denotes RTP and
* second element denotes RTCP.
*/
struct
{
/**
* Local candidate type.
*/
pj_ice_cand_type lcand_type;
/**
* Remote candidate type.
*/
pj_ice_cand_type rcand_type;
} comp[2];
} pjmedia_ice_transport_info;
/**
* Options that can be specified when creating ICE transport. * Options that can be specified when creating ICE transport.
*/ */
enum pjmedia_transport_ice_options enum pjmedia_transport_ice_options
{ {
/** /**
* Normally when remote doesn't use ICE, the ICE transport will * Normally when remote doesn't use ICE, the ICE transport will
* continuously check the source address of incoming packets to see * continuously check the source address of incoming packets to see
* if it is different than the configured remote address, and switch * if it is different than the configured remote address, and switch
* the remote address to the source address of the packet if they * the remote address to the source address of the packet if they
* are different after several packets are received. * are different after several packets are received.
 End of changes. 2 change blocks. 
1 lines changed or deleted 46 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

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/