audiodev.h   audiodev.h 
/* $Id: audiodev.h 2506 2009-03-12 18:11:37Z bennylp $ */ /* $Id: audiodev.h 3174 2010-05-17 12:51:06Z ming $ */
/* /*
* 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 201 skipping to change at line 201
*/ */
typedef enum pjmedia_aud_dev_route typedef enum pjmedia_aud_dev_route
{ {
/** Default route. */ /** Default route. */
PJMEDIA_AUD_DEV_ROUTE_DEFAULT = 0, PJMEDIA_AUD_DEV_ROUTE_DEFAULT = 0,
/** Route to loudspeaker */ /** Route to loudspeaker */
PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER = 1, PJMEDIA_AUD_DEV_ROUTE_LOUDSPEAKER = 1,
/** Route to earpiece */ /** Route to earpiece */
PJMEDIA_AUD_DEV_ROUTE_EARPIECE = 2 PJMEDIA_AUD_DEV_ROUTE_EARPIECE = 2,
/** Route to paired Bluetooth device */
PJMEDIA_AUD_DEV_ROUTE_BLUETOOTH = 4
} pjmedia_aud_dev_route; } pjmedia_aud_dev_route;
/** /**
* Device information structure returned by #pjmedia_aud_dev_get_info(). * Device information structure returned by #pjmedia_aud_dev_get_info().
*/ */
typedef struct pjmedia_aud_dev_info typedef struct pjmedia_aud_dev_info
{ {
/** /**
* The device name * The device name
skipping to change at line 424 skipping to change at line 427
pj_bool_t cng_enabled; pj_bool_t cng_enabled;
} pjmedia_aud_param; } pjmedia_aud_param;
/** Forward declaration for pjmedia_aud_stream */ /** Forward declaration for pjmedia_aud_stream */
typedef struct pjmedia_aud_stream pjmedia_aud_stream; typedef struct pjmedia_aud_stream pjmedia_aud_stream;
/** Forward declaration for audio device factory */ /** Forward declaration for audio device factory */
typedef struct pjmedia_aud_dev_factory pjmedia_aud_dev_factory; typedef struct pjmedia_aud_dev_factory pjmedia_aud_dev_factory;
/* typedef for factory creation function */
typedef pjmedia_aud_dev_factory*
(*pjmedia_aud_dev_factory_create_func_ptr)(pj_pool_factory*);
/** /**
* Get string info for the specified capability. * Get string info for the specified capability.
* *
* @param cap The capability ID. * @param cap The capability ID.
* @param p_desc Optional pointer which will be filled with longer * @param p_desc Optional pointer which will be filled with longer
* description about the capability. * description about the capability.
* *
* @return Capability name. * @return Capability name.
*/ */
PJ_DECL(const char*) pjmedia_aud_dev_cap_name(pjmedia_aud_dev_cap cap, PJ_DECL(const char*) pjmedia_aud_dev_cap_name(pjmedia_aud_dev_cap cap,
skipping to change at line 501 skipping to change at line 508
* registered in the audio subsystem. Note that currently opened audio stre ams * registered in the audio subsystem. Note that currently opened audio stre ams
* may or may not be closed, depending on the implementation of the audio * may or may not be closed, depending on the implementation of the audio
* device factories. * device factories.
* *
* @return PJ_SUCCESS on successful operation or the appropriat e * @return PJ_SUCCESS on successful operation or the appropriat e
* error code. * error code.
*/ */
PJ_DECL(pj_status_t) pjmedia_aud_subsys_shutdown(void); PJ_DECL(pj_status_t) pjmedia_aud_subsys_shutdown(void);
/** /**
* Register a supported audio device factory to the audio subsystem. This
* function can only be called after calling #pjmedia_aud_subsys_init().
*
* @param adf The audio device factory.
*
* @return PJ_SUCCESS on successful operation or the appropriat
e
* error code.
*/
PJ_DECL(pj_status_t)
pjmedia_aud_register_factory(pjmedia_aud_dev_factory_create_func_ptr adf);
/**
* Unregister an audio device factory from the audio subsystem. This
* function can only be called after calling #pjmedia_aud_subsys_init().
* Devices from this factory will be unlisted. If a device from this factor
y
* is currently in use, then the behavior is undefined.
*
* @param adf The audio device factory.
*
* @return PJ_SUCCESS on successful operation or the appropriat
e
* error code.
*/
PJ_DECL(pj_status_t)
pjmedia_aud_unregister_factory(pjmedia_aud_dev_factory_create_func_ptr adf)
;
/**
* Get the number of sound devices installed in the system. * Get the number of sound devices installed in the system.
* *
* @return The number of sound devices installed in the system. * @return The number of sound devices installed in the system.
*/ */
PJ_DECL(unsigned) pjmedia_aud_dev_count(void); PJ_DECL(unsigned) pjmedia_aud_dev_count(void);
/** /**
* Get device information. * Get device information.
* *
* @param id The audio device ID. * @param id The audio device ID.
 End of changes. 4 change blocks. 
2 lines changed or deleted 39 lines changed or added


 codec.h   codec.h 
/* $Id: codec.h 3146 2010-04-26 13:57:28Z nanang $ */ /* $Id: codec.h 3199 2010-06-07 05:23:56Z 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 196 skipping to change at line 196
/** /**
* Standard RTP static payload types, as defined by RFC 3551. * Standard RTP static payload types, as defined by RFC 3551.
* The header file <pjmedia-codec/types.h> also declares dynamic payload * The header file <pjmedia-codec/types.h> also declares dynamic payload
* type numbers that are used by PJMEDIA when advertising the capability * type numbers that are used by PJMEDIA when advertising the capability
* for example in SDP message. * for example in SDP message.
*/ */
enum pjmedia_rtp_pt enum pjmedia_rtp_pt
{ {
PJMEDIA_RTP_PT_PCMU = 0, /**< audio PCMU */ PJMEDIA_RTP_PT_PCMU = 0, /**< audio PCMU */
PJMEDIA_RTP_PT_G721 = 2, /**< audio G721 (old def for G726-32) */
PJMEDIA_RTP_PT_GSM = 3, /**< audio GSM */ PJMEDIA_RTP_PT_GSM = 3, /**< audio GSM */
PJMEDIA_RTP_PT_G723 = 4, /**< audio G723 */ PJMEDIA_RTP_PT_G723 = 4, /**< audio G723 */
PJMEDIA_RTP_PT_DVI4_8K = 5, /**< audio DVI4 8KHz */ PJMEDIA_RTP_PT_DVI4_8K = 5, /**< audio DVI4 8KHz */
PJMEDIA_RTP_PT_DVI4_16K = 6, /**< audio DVI4 16Khz */ PJMEDIA_RTP_PT_DVI4_16K = 6, /**< audio DVI4 16Khz */
PJMEDIA_RTP_PT_LPC = 7, /**< audio LPC */ PJMEDIA_RTP_PT_LPC = 7, /**< audio LPC */
PJMEDIA_RTP_PT_PCMA = 8, /**< audio PCMA */ PJMEDIA_RTP_PT_PCMA = 8, /**< audio PCMA */
PJMEDIA_RTP_PT_G722 = 9, /**< audio G722 */ PJMEDIA_RTP_PT_G722 = 9, /**< audio G722 */
PJMEDIA_RTP_PT_L16_2 = 10, /**< audio 16bit linear 44.1KHz stereo */ PJMEDIA_RTP_PT_L16_2 = 10, /**< audio 16bit linear 44.1KHz stereo */
PJMEDIA_RTP_PT_L16_1 = 11, /**< audio 16bit linear 44.1KHz mono */ PJMEDIA_RTP_PT_L16_1 = 11, /**< audio 16bit linear 44.1KHz mono */
PJMEDIA_RTP_PT_QCELP = 12, /**< audio QCELP */ PJMEDIA_RTP_PT_QCELP = 12, /**< audio QCELP */
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 config.h   config.h 
/* $Id: config.h 3066 2010-01-20 19:42:46Z bennylp $ */ /* $Id: config.h 3182 2010-05-19 06:07: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 382 skipping to change at line 382
#ifndef PJ_LOG_MAX_LEVEL #ifndef PJ_LOG_MAX_LEVEL
# define PJ_LOG_MAX_LEVEL 5 # define PJ_LOG_MAX_LEVEL 5
#endif #endif
/** /**
* Maximum message size that can be sent to output device for each call * Maximum message size that can be sent to output device for each call
* to PJ_LOG(). If the message size is longer than this value, it will be c ut. * to PJ_LOG(). If the message size is longer than this value, it will be c ut.
* This may affect the stack usage, depending whether PJ_LOG_USE_STACK_BUFF ER * This may affect the stack usage, depending whether PJ_LOG_USE_STACK_BUFF ER
* flag is set. * flag is set.
* *
* Default: 2000 * Default: 4000
*/ */
#ifndef PJ_LOG_MAX_SIZE #ifndef PJ_LOG_MAX_SIZE
# define PJ_LOG_MAX_SIZE 2000 # define PJ_LOG_MAX_SIZE 4000
#endif #endif
/** /**
* Log buffer. * Log buffer.
* Does the log get the buffer from the stack? (default is yes). * Does the log get the buffer from the stack? (default is yes).
* If the value is set to NO, then the buffer will be taken from static * If the value is set to NO, then the buffer will be taken from static
* buffer, which in this case will make the log function non-reentrant. * buffer, which in this case will make the log function non-reentrant.
* *
* Default: 1 * Default: 1
*/ */
 End of changes. 3 change blocks. 
3 lines changed or deleted 3 lines changed or added


 config_site_sample.h   config_site_sample.h 
skipping to change at line 171 skipping to change at line 171
*/ */
#define PJMEDIA_SOUND_BUFFER_COUNT 32 #define PJMEDIA_SOUND_BUFFER_COUNT 32
/* /*
* PJSIP settings. * PJSIP settings.
*/ */
/* Disable safe module access, since we don't use multithreading */ /* Disable safe module access, since we don't use multithreading */
#define PJSIP_SAFE_MODULE 0 #define PJSIP_SAFE_MODULE 0
/* Increase allowable packet size, just in case */ /* Use large enough packet size */
#define PJSIP_MAX_PKT_LEN 2000 #define PJSIP_MAX_PKT_LEN 2000
/* Symbian has problem with too many large blocks */ /* Symbian has problem with too many large blocks */
#define PJSIP_POOL_LEN_ENDPT 1000 #define PJSIP_POOL_LEN_ENDPT 1000
#define PJSIP_POOL_INC_ENDPT 1000 #define PJSIP_POOL_INC_ENDPT 1000
#define PJSIP_POOL_RDATA_LEN 2000 #define PJSIP_POOL_RDATA_LEN 2000
#define PJSIP_POOL_RDATA_INC 2000 #define PJSIP_POOL_RDATA_INC 2000
#define PJSIP_POOL_LEN_TDATA 2000 #define PJSIP_POOL_LEN_TDATA 2000
#define PJSIP_POOL_INC_TDATA 512 #define PJSIP_POOL_INC_TDATA 512
#define PJSIP_POOL_LEN_UA 2000 #define PJSIP_POOL_LEN_UA 2000
skipping to change at line 292 skipping to change at line 292
/* Only PCMA and PCMU are supported by WMME-direct */ /* Only PCMA and PCMU are supported by WMME-direct */
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMU 1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_PCMA 1
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_AMR 0
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_G729 0
#define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0 #define PJMEDIA_HAS_PASSTHROUGH_CODEC_ILBC 0
#endif #endif
/* /*
* iPhone sample settings.
*/
#if PJ_CONFIG_IPHONE
/*
* PJLIB settings.
*/
/* Disable floating point support */
#define PJ_HAS_FLOATING_POINT 0
/*
* PJMEDIA settings
*/
/* We have our own native CoreAudio backend */
#define PJMEDIA_AUDIO_DEV_HAS_PORTAUDIO 0
#define PJMEDIA_AUDIO_DEV_HAS_WMME 0
#define PJMEDIA_AUDIO_DEV_HAS_COREAUDIO 1
/* The CoreAudio backend has built-in echo canceller! */
#define PJMEDIA_HAS_SPEEX_AEC 0
/* Disable some codecs */
#define PJMEDIA_HAS_L16_CODEC 0
#define PJMEDIA_HAS_ILBC_CODEC 0
#define PJMEDIA_HAS_G722_CODEC 0
/* Fine tune Speex's default settings for best performance/quality */
#define PJMEDIA_CODEC_SPEEX_DEFAULT_QUALITY 5
/*
* PJSIP settings.
*/
/* Increase allowable packet size, just in case */
//#define PJSIP_MAX_PKT_LEN 2000
/*
* PJSUA settings.
*/
/* Default codec quality, previously was set to 5, however it is now
* set to 4 to make sure pjsua instantiates resampler with small filter
.
*/
#define PJSUA_DEFAULT_CODEC_QUALITY 4
/* Set maximum number of dialog/transaction/calls to minimum */
#define PJSIP_MAX_TSX_COUNT 31
#define PJSIP_MAX_DIALOG_COUNT 31
#define PJSUA_MAX_CALLS 4
/* Other pjsua settings */
#define PJSUA_MAX_ACC 4
#define PJSUA_MAX_PLAYERS 4
#define PJSUA_MAX_RECORDERS 4
#define PJSUA_MAX_CONF_PORTS (PJSUA_MAX_CALLS+2*PJSUA_MAX
_PLAYERS)
#define PJSUA_MAX_BUDDIES 32
#endif
/*
* Minimum size * Minimum size
*/ */
#ifdef PJ_CONFIG_MINIMAL_SIZE #ifdef PJ_CONFIG_MINIMAL_SIZE
# undef PJ_OS_HAS_CHECK_STACK # undef PJ_OS_HAS_CHECK_STACK
# define PJ_OS_HAS_CHECK_STACK 0 # define PJ_OS_HAS_CHECK_STACK 0
# define PJ_LOG_MAX_LEVEL 0 # define PJ_LOG_MAX_LEVEL 0
# define PJ_ENABLE_EXTRA_CHECK 0 # define PJ_ENABLE_EXTRA_CHECK 0
# define PJ_HAS_ERROR_STRING 0 # define PJ_HAS_ERROR_STRING 0
# undef PJ_IOQUEUE_MAX_HANDLES # undef PJ_IOQUEUE_MAX_HANDLES
 End of changes. 2 change blocks. 
1 lines changed or deleted 64 lines changed or added


 g722.h   g722.h 
/* $Id: g722.h 3083 2010-01-29 15:51:09Z nanang $ */ /* $Id: g722.h 3202 2010-06-11 13:38:42Z 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 78 skipping to change at line 78
PJ_DECL(pj_status_t) pjmedia_codec_g722_init(pjmedia_endpt *endpt); PJ_DECL(pj_status_t) pjmedia_codec_g722_init(pjmedia_endpt *endpt);
/** /**
* Unregister G.722 codec factory from pjmedia endpoint and cleanup * Unregister G.722 codec factory from pjmedia endpoint and cleanup
* resources allocated by the factory. * resources allocated by the factory.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_codec_g722_deinit(void); PJ_DECL(pj_status_t) pjmedia_codec_g722_deinit(void);
/**
* Set the G.722 codec encoder and decoder level adjustment.
* If the value is non-zero, then PCM input samples to the encoder will
* be shifted right by this value, and similarly PCM output samples from
* the decoder will be shifted left by this value.
*
* Default value is PJMEDIA_G722_DEFAULT_PCM_SHIFT.
*
* @param val The value
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_codec_g722_set_pcm_shift(unsigned val);
PJ_END_DECL PJ_END_DECL
/** /**
* @} * @}
*/ */
#endif /* __PJMEDIA_CODEC_G722_H__ */ #endif /* __PJMEDIA_CODEC_G722_H__ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 15 lines changed or added


 g7221.h   g7221.h 
/* $Id: g7221.h 3083 2010-01-29 15:51:09Z nanang $ */ /* $Id: g7221.h 3263 2010-08-11 07:18:08Z 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 131 skipping to change at line 131
PJ_DECL(pj_status_t) pjmedia_codec_g7221_set_mode(unsigned sample_rate, PJ_DECL(pj_status_t) pjmedia_codec_g7221_set_mode(unsigned sample_rate,
unsigned bitrate, unsigned bitrate,
pj_bool_t enabled); pj_bool_t enabled);
/** /**
* Set the G.722.1 codec encoder and decoder level adjustment. * Set the G.722.1 codec encoder and decoder level adjustment.
* If the value is non-zero, then PCM input samples to the encoder will * If the value is non-zero, then PCM input samples to the encoder will
* be shifted right by this value, and similarly PCM output samples from * be shifted right by this value, and similarly PCM output samples from
* the decoder will be shifted left by this value. * the decoder will be shifted left by this value.
* *
* \note
* This function is also applicable for G722.1 implementation with IPP
* back-end.
*
* Default value is PJMEDIA_G7221_DEFAULT_PCM_SHIFT. * Default value is PJMEDIA_G7221_DEFAULT_PCM_SHIFT.
* *
* @param val The value * @param val The value
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_codec_g7221_set_pcm_shift(int val); PJ_DECL(pj_status_t) pjmedia_codec_g7221_set_pcm_shift(int val);
/** /**
* Unregister G.722.1 codecs factory from pjmedia endpoint. * Unregister G.722.1 codecs factory from pjmedia endpoint.
 End of changes. 2 change blocks. 
1 lines changed or deleted 5 lines changed or added


 http_client.h   http_client.h 
/* $Id: http_client.h 3089 2010-02-05 16:03:29Z ming $ */ /* $Id: http_client.h 3227 2010-06-29 13:43:05Z ming $ */
/* /*
* Copyright (C) 2008-2010 Teluu Inc. (http://www.teluu.com) * Copyright (C) 2008-2010 Teluu Inc. (http://www.teluu.com)
* *
* 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,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
skipping to change at line 217 skipping to change at line 217
/** /**
* This callback is called when the HTTP request is completed. * This callback is called when the HTTP request is completed.
* If the callback on_data_read() is specified, the variable * If the callback on_data_read() is specified, the variable
* response->data will be set to NULL, otherwise it will * response->data will be set to NULL, otherwise it will
* contain the complete data. Response data is allocated from * contain the complete data. Response data is allocated from
* pj_http_req's internal memory pool so the data remain valid * pj_http_req's internal memory pool so the data remain valid
* as long as pj_http_req is not destroyed and application does * as long as pj_http_req is not destroyed and application does
* not start a new request. * not start a new request.
* *
* If no longer required, application may choose to destroy
* pj_http_req immediately by calling #pj_http_req_destroy() inside
* the callback.
*
* @param http_req The http request. * @param http_req The http request.
* @param status The status of the request operation. PJ_SUCCESS * @param status The status of the request operation. PJ_SUCCESS
* if the operation completed successfully * if the operation completed successfully
* (connection-wise). To check the server's * (connection-wise). To check the server's
* status-code response to the HTTP request, * status-code response to the HTTP request,
* application should check resp->status_code instead. * application should check resp->status_code instead.
* @param resp The response of the corresponding request. If * @param resp The response of the corresponding request. If
* the status argument is non-PJ_SUCCESS, this * the status argument is non-PJ_SUCCESS, this
* argument will be set to NULL. * argument will be set to NULL.
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 5 lines changed or added


 ice_strans.h   ice_strans.h 
/* $Id: ice_strans.h 3028 2009-12-08 13:11:25Z bennylp $ */ /* $Id: ice_strans.h 3212 2010-06-19 12:35:33Z 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 123 skipping to change at line 123
/** Forward declaration for ICE stream transport. */ /** Forward declaration for ICE stream transport. */
typedef struct pj_ice_strans pj_ice_strans; typedef struct pj_ice_strans pj_ice_strans;
/** Transport operation types to be reported on \a on_status() callback */ /** Transport operation types to be reported on \a on_status() callback */
typedef enum pj_ice_strans_op typedef enum pj_ice_strans_op
{ {
/** Initialization (candidate gathering) */ /** Initialization (candidate gathering) */
PJ_ICE_STRANS_OP_INIT, PJ_ICE_STRANS_OP_INIT,
/** Negotiation */ /** Negotiation */
PJ_ICE_STRANS_OP_NEGOTIATION PJ_ICE_STRANS_OP_NEGOTIATION,
/** This operatino is used to report failure in keep-alive operation.
* Currently it is only used to report TURN Refresh failure.
*/
PJ_ICE_STRANS_OP_KEEP_ALIVE
} pj_ice_strans_op; } pj_ice_strans_op;
/** /**
* This structure contains callbacks that will be called by the * This structure contains callbacks that will be called by the
* ICE stream transport. * ICE stream transport.
*/ */
typedef struct pj_ice_strans_cb typedef struct pj_ice_strans_cb
{ {
/** /**
skipping to change at line 152 skipping to change at line 157
* @param src_addr Source address of the packet. * @param src_addr Source address of the packet.
* @param src_addr_len Length of the source address. * @param src_addr_len Length of the source address.
*/ */
void (*on_rx_data)(pj_ice_strans *ice_st, void (*on_rx_data)(pj_ice_strans *ice_st,
unsigned comp_id, unsigned comp_id,
void *pkt, pj_size_t size, void *pkt, pj_size_t size,
const pj_sockaddr_t *src_addr, const pj_sockaddr_t *src_addr,
unsigned src_addr_len); unsigned src_addr_len);
/** /**
* Callback to report status. * Callback to report status of various ICE operations.
* *
* @param ice_st The ICE stream transport. * @param ice_st The ICE stream transport.
* @param op The operation * @param op The operation which status is being reported.
* @param status Operation status. * @param status Operation status.
*/ */
void (*on_ice_complete)(pj_ice_strans *ice_st, void (*on_ice_complete)(pj_ice_strans *ice_st,
pj_ice_strans_op op, pj_ice_strans_op op,
pj_status_t status); pj_status_t status);
} pj_ice_strans_cb; } pj_ice_strans_cb;
/** /**
* This structure describes ICE stream transport configuration. Application * This structure describes ICE stream transport configuration. Application
 End of changes. 4 change blocks. 
4 lines changed or deleted 9 lines changed or added


 ipp_codecs.h   ipp_codecs.h 
/* $Id: ipp_codecs.h 3083 2010-01-29 15:51:09Z nanang $ */ /* $Id: ipp_codecs.h 3263 2010-08-11 07:18:08Z 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,
 End of changes. 1 change blocks. 
1 lines changed or deleted 1 lines changed or added


 master_port.h   master_port.h 
/* $Id: master_port.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: master_port.h 3214 2010-06-21 09:10:44Z 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 103 skipping to change at line 103
/** /**
* Stop the media flow. * Stop the media flow.
* *
* @param m The master port. * @param m The master port.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_master_port_stop(pjmedia_master_port *m); PJ_DECL(pj_status_t) pjmedia_master_port_stop(pjmedia_master_port *m);
/** /**
* Poll the master port clock and execute the callback when the clock tick
has
* elapsed. This operation is only valid if the master port is created with
* #PJMEDIA_CLOCK_NO_ASYNC flag.
*
* @param m The master port.
* @param wait If non-zero, then the function will block until
* a clock tick elapsed and callback has been calle
d.
* @param ts Optional argument to receive the current
* timestamp.
*
* @return Non-zero if clock tick has elapsed, or FALSE if
* the function returns before a clock tick has
* elapsed.
*/
PJ_DECL(pj_bool_t) pjmedia_master_port_wait(pjmedia_master_port *m,
pj_bool_t wait,
pj_timestamp *ts);
/**
* Change the upstream port. Note that application is responsible to destro y * Change the upstream port. Note that application is responsible to destro y
* current upstream port (the one that is going to be replaced with the * current upstream port (the one that is going to be replaced with the
* new port). * new port).
* *
* @param m The master port. * @param m The master port.
* @param port Port to be used for upstream port. * @param port Port to be used for upstream port.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_master_port_set_uport(pjmedia_master_port *m, PJ_DECL(pj_status_t) pjmedia_master_port_set_uport(pjmedia_master_port *m,
 End of changes. 2 change blocks. 
1 lines changed or deleted 22 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 3059 2010-01-13 21:28:06Z bennylp $ */ /* $Id: os_auto.h.in 3240 2010-07-23 04:27:32Z ming $ */
/* /*
* 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 173 skipping to change at line 173
/* Unicode? */ /* Unicode? */
#define PJ_NATIVE_STRING_IS_UNICODE 0 #define PJ_NATIVE_STRING_IS_UNICODE 0
/* Pool alignment in bytes */ /* Pool alignment in bytes */
#define PJ_POOL_ALIGNMENT 4 #define PJ_POOL_ALIGNMENT 4
/* The type of atomic variable value: */ /* The type of atomic variable value: */
#define PJ_ATOMIC_VALUE_TYPE long #define PJ_ATOMIC_VALUE_TYPE long
/* Append ".local" suffix to the system's hostname? */
#if defined(PJ_DARWINOS) && PJ_DARWINOS!=0
# include "TargetConditionals.h"
# if TARGET_OS_IPHONE
# include "Availability.h"
# ifdef __IPHONE_4_0
# define PJ_GETHOSTNAME_APPEND_LOCAL_SUFFIX 1
# endif
# endif
#endif
/* 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 0 #define PJ_EMULATE_RWMUTEX 0
/* 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).
*/ */
#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.
 End of changes. 2 change blocks. 
1 lines changed or deleted 12 lines changed or added


 os_auto.h.in   os_auto.h.in 
/* $Id: os_auto.h.in 3059 2010-01-13 21:28:06Z bennylp $ */ /* $Id: os_auto.h.in 3240 2010-07-23 04:27:32Z ming $ */
/* /*
* 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 172 skipping to change at line 172
/* Unicode? */ /* Unicode? */
#undef PJ_NATIVE_STRING_IS_UNICODE #undef PJ_NATIVE_STRING_IS_UNICODE
/* Pool alignment in bytes */ /* Pool alignment in bytes */
#undef PJ_POOL_ALIGNMENT #undef PJ_POOL_ALIGNMENT
/* The type of atomic variable value: */ /* The type of atomic variable value: */
#undef PJ_ATOMIC_VALUE_TYPE #undef PJ_ATOMIC_VALUE_TYPE
/* Append ".local" suffix to the system's hostname? */
#if defined(PJ_DARWINOS) && PJ_DARWINOS!=0
# include "TargetConditionals.h"
# if TARGET_OS_IPHONE
# include "Availability.h"
# ifdef __IPHONE_4_0
# define PJ_GETHOSTNAME_APPEND_LOCAL_SUFFIX 1
# endif
# endif
#endif
/* 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 */
#undef PJ_EMULATE_RWMUTEX #undef PJ_EMULATE_RWMUTEX
/* 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).
*/ */
#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.
 End of changes. 2 change blocks. 
1 lines changed or deleted 12 lines changed or added


 pjsip.h   pjsip.h 
/* $Id: pjsip.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: pjsip.h 3243 2010-08-01 09:48:51Z 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 __PJSIP_H__ #define __PJSIP_H__
/* Base types. */ /* Base types. */
#include <pjsip/sip_types.h> #include <pjsip/sip_types.h>
#include <pjsip/sip_errno.h> #include <pjsip/sip_errno.h>
/* Messaging and parsing. */ /* Messaging and parsing. */
#include <pjsip/sip_uri.h> #include <pjsip/sip_uri.h>
#include <pjsip/sip_tel_uri.h> #include <pjsip/sip_tel_uri.h>
#include <pjsip/sip_msg.h> #include <pjsip/sip_msg.h>
#include <pjsip/sip_multipart.h>
#include <pjsip/sip_parser.h> #include <pjsip/sip_parser.h>
/* Core */ /* Core */
#include <pjsip/sip_event.h> #include <pjsip/sip_event.h>
#include <pjsip/sip_module.h> #include <pjsip/sip_module.h>
#include <pjsip/sip_endpoint.h> #include <pjsip/sip_endpoint.h>
#include <pjsip/sip_util.h> #include <pjsip/sip_util.h>
/* Transport layer */ /* Transport layer */
#include <pjsip/sip_transport.h> #include <pjsip/sip_transport.h>
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added


 pjsua_internal.h   pjsua_internal.h 
/* $Id: pjsua_internal.h 3144 2010-04-20 14:36:38Z nanang $ */ /* $Id: pjsua_internal.h 3216 2010-06-22 06:02: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 93 skipping to change at line 93
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 pj_sockaddr med_rtp_addr; /**< Current RTP source addre ss
(used to update ICE default (used to update ICE default
address) */ 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. */
struct {
pj_timer_entry reinv_timer;/**< Reinvite retry timer.
*/
pjmedia_sdp_session *new_sdp;/**< The new SDP offer.
*/
} lock_codec; /**< Data for codec locking when answer
contains multiple codecs.
*/
} pjsua_call; } pjsua_call;
/** /**
* Server presence subscription list head. * Server presence subscription list head.
*/ */
struct pjsua_srv_pres struct pjsua_srv_pres
{ {
PJ_DECL_LIST_MEMBER(struct pjsua_srv_pres); PJ_DECL_LIST_MEMBER(struct pjsua_srv_pres);
pjsip_evsub *sub; /**< The evsub. */ pjsip_evsub *sub; /**< The evsub. */
char *remote; /**< Remote URI. */ char *remote; /**< Remote URI. */
skipping to change at line 275 skipping to change at line 281
pj_sockaddr stun_srv; /**< Resolved STUN server addres s */ pj_sockaddr stun_srv; /**< Resolved STUN server addres s */
pj_status_t stun_status; /**< STUN server status. */ pj_status_t stun_status; /**< STUN server status. */
pjsua_stun_resolve stun_res; /**< List of pending STUN resolution*/ pjsua_stun_resolve stun_res; /**< List of pending STUN resolution*/
pj_dns_resolver *resolver; /**< DNS resolver. */ pj_dns_resolver *resolver; /**< DNS resolver. */
/* Detected NAT type */ /* Detected NAT type */
pj_stun_nat_type nat_type; /**< NAT type. */ pj_stun_nat_type nat_type; /**< NAT type. */
pj_status_t nat_status; /**< Detection status. */ pj_status_t nat_status; /**< Detection status. */
pj_bool_t nat_in_progress; /**< Detection in progress */ pj_bool_t nat_in_progress; /**< Detection in progress */
/* List of outbound proxies: */
pjsip_route_hdr outbound_proxy;
/* Account: */ /* Account: */
unsigned acc_cnt; /**< Number of accounts. */ unsigned acc_cnt; /**< Number of accounts. */
pjsua_acc_id default_acc; /**< Default account ID */ pjsua_acc_id default_acc; /**< Default account ID */
pjsua_acc acc[PJSUA_MAX_ACC]; /**< Account array. */ pjsua_acc acc[PJSUA_MAX_ACC]; /**< Account array. */
pjsua_acc_id acc_ids[PJSUA_MAX_ACC]; /**< Acc sorted by prio*/ pjsua_acc_id acc_ids[PJSUA_MAX_ACC]; /**< Acc sorted by prio*/
/* Calls: */ /* Calls: */
pjsua_config ua_cfg; /**< UA config. */ pjsua_config ua_cfg; /**< UA config. */
unsigned call_cnt; /**< Call counter. */ unsigned call_cnt; /**< Call counter. */
pjsua_call calls[PJSUA_MAX_CALLS];/**< Calls array. */ pjsua_call calls[PJSUA_MAX_CALLS];/**< Calls array. */
 End of changes. 3 change blocks. 
1 lines changed or deleted 13 lines changed or added


 rtcp.h   rtcp.h 
/* $Id: rtcp.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: rtcp.h 3239 2010-07-15 14:45:47Z 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 208 skipping to change at line 208
{ {
pj_time_val start; /**< Time when session was creat ed */ pj_time_val start; /**< Time when session was creat ed */
pjmedia_rtcp_stream_stat tx; /**< Encoder stream statistics. */ pjmedia_rtcp_stream_stat tx; /**< Encoder stream statistics. */
pjmedia_rtcp_stream_stat rx; /**< Decoder stream statistics. */ pjmedia_rtcp_stream_stat rx; /**< Decoder stream statistics. */
pj_math_stat rtt; /**< Round trip delay statistic(in usec) */ pj_math_stat rtt; /**< Round trip delay statistic(in usec) */
pj_uint32_t rtp_tx_last_ts; /**< Last TX RTP timest amp. */ pj_uint32_t rtp_tx_last_ts; /**< Last TX RTP timest amp. */
pj_uint16_t rtp_tx_last_seq;/**< Last TX RTP sequen ce. */ pj_uint16_t rtp_tx_last_seq;/**< Last TX RTP sequen ce. */
#if defined(PJMEDIA_RTCP_STAT_HAS_IPDV) && PJMEDIA_RTCP_STAT_HAS_IPDV!=0
pj_math_stat rx_ipdv;/**< Statistics of IP packet delay
variation in receiving direction
(in usec).
*/
#endif
#if defined(PJMEDIA_RTCP_STAT_HAS_RAW_JITTER) && PJMEDIA_RTCP_STAT_HAS_RAW_
JITTER!=0
pj_math_stat rx_raw_jitter;/**< Statistic of raw jitter in
receiving direction
(in usec).
*/
#endif
}; };
/** /**
* @see pjmedia_rtcp_stat * @see pjmedia_rtcp_stat
*/ */
typedef struct pjmedia_rtcp_stat pjmedia_rtcp_stat; typedef struct pjmedia_rtcp_stat pjmedia_rtcp_stat;
/** /**
* RTCP session is used to monitor the RTP session of one endpoint. There * RTCP session is used to monitor the RTP session of one endpoint. There
* should only be one RTCP session for a bidirectional RTP streams. * should only be one RTCP session for a bidirectional RTP streams.
skipping to change at line 238 skipping to change at line 250
unsigned clock_rate; /**< Clock rate of the stream */ unsigned clock_rate; /**< Clock rate of the stream */
unsigned pkt_size; /**< Avg pkt size, in samples. */ unsigned pkt_size; /**< Avg pkt size, in samples. */
pj_uint32_t received; /**< # pkt received */ pj_uint32_t received; /**< # pkt received */
pj_uint32_t exp_prior; /**< # pkt expected at last interval*/ pj_uint32_t exp_prior; /**< # pkt expected at last interval*/
pj_uint32_t rx_prior; /**< # pkt received at last interval*/ pj_uint32_t rx_prior; /**< # pkt received at last interval*/
pj_int32_t transit; /**< Rel transit time for prev pkt */ pj_int32_t transit; /**< Rel transit time for prev pkt */
pj_uint32_t jitter; /**< Scaled jitter */ pj_uint32_t jitter; /**< Scaled jitter */
pj_time_val tv_base; /**< Base time, in seconds. */ pj_time_val tv_base; /**< Base time, in seconds. */
pj_timestamp ts_base; /**< Base system timestamp. */ pj_timestamp ts_base; /**< Base system timestamp. */
pj_timestamp ts_freq; /**< System timestamp frequency. */ pj_timestamp ts_freq; /**< System timestamp frequency. */
pj_uint32_t rtp_ts_base;/**< Base RTP timestamp. */
pj_uint32_t rx_lsr; /**< NTP ts in last SR recei ved */ pj_uint32_t rx_lsr; /**< NTP ts in last SR recei ved */
pj_timestamp rx_lsr_time;/**< Time when last SR is received */ pj_timestamp rx_lsr_time;/**< Time when last SR is received */
pj_uint32_t peer_ssrc; /**< Peer SSRC */ pj_uint32_t peer_ssrc; /**< Peer SSRC */
pjmedia_rtcp_stat stat; /**< Bidirectional stream stat. */ pjmedia_rtcp_stat stat; /**< Bidirectional stream stat. */
#if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) #if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0)
/** /**
* Specify whether RTCP XR processing is enabled on this session. * Specify whether RTCP XR processing is enabled on this session.
skipping to change at line 265 skipping to change at line 278
pjmedia_rtcp_xr_session xr_session; pjmedia_rtcp_xr_session xr_session;
#endif #endif
}; };
/** /**
* @see pjmedia_rtcp_session * @see pjmedia_rtcp_session
*/ */
typedef struct pjmedia_rtcp_session pjmedia_rtcp_session; typedef struct pjmedia_rtcp_session pjmedia_rtcp_session;
/** /**
* RTCP session settings.
*/
typedef struct pjmedia_rtcp_session_setting
{
char *name; /**< RTCP session name. */
unsigned clock_rate; /**< Sequence. */
unsigned samples_per_frame; /**< Timestamp. */
pj_uint32_t ssrc; /**< Sender SSRC.
*/
pj_uint32_t rtp_ts_base; /**< Base RTP timestamp.
*/
} pjmedia_rtcp_session_setting;
/**
* Initialize RTCP session setting.
*
* @param settings The RTCP session setting to be initialized.
*/
PJ_DECL(void) pjmedia_rtcp_session_setting_default(
pjmedia_rtcp_session_setting *settings);
/**
* Initialize bidirectional RTCP statistics.
*
* @param stat The bidirectional RTCP statistics.
*/
PJ_DECL(void) pjmedia_rtcp_init_stat(pjmedia_rtcp_stat *stat);
/**
* Initialize RTCP session. * Initialize RTCP session.
* *
* @param session The session * @param session The session
* @param name Optional name to identify the session (for * @param name Optional name to identify the session (for
* logging purpose). * logging purpose).
* @param clock_rate Codec clock rate in samples per second. * @param clock_rate Codec clock rate in samples per second.
* @param samples_per_frame Average number of samples per frame. * @param samples_per_frame Average number of samples per frame.
* @param ssrc The SSRC used in to identify the session. * @param ssrc The SSRC used in to identify the session.
*/ */
PJ_DECL(void) pjmedia_rtcp_init( pjmedia_rtcp_session *session, PJ_DECL(void) pjmedia_rtcp_init( pjmedia_rtcp_session *session,
char *name, char *name,
unsigned clock_rate, unsigned clock_rate,
unsigned samples_per_frame, unsigned samples_per_frame,
pj_uint32_t ssrc ); pj_uint32_t ssrc );
/** /**
* Initialize RTCP session.
*
* @param session The session
* @param settings The RTCP session settings.
*/
PJ_DECL(void) pjmedia_rtcp_init2(pjmedia_rtcp_session *session,
const pjmedia_rtcp_session_setting *setting
s);
/**
* Utility function to retrieve current NTP timestamp. * Utility function to retrieve current NTP timestamp.
* *
* @param sess RTCP session. * @param sess RTCP session.
* @param ntp NTP record. * @param ntp NTP record.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_rtcp_get_ntp_time(const pjmedia_rtcp_session * sess, PJ_DECL(pj_status_t) pjmedia_rtcp_get_ntp_time(const pjmedia_rtcp_session * sess,
pjmedia_rtcp_ntp_rec *ntp); pjmedia_rtcp_ntp_rec *ntp);
 End of changes. 5 change blocks. 
1 lines changed or deleted 56 lines changed or added


 sdp.h   sdp.h 
/* $Id: sdp.h 2995 2009-11-09 05:18:12Z bennylp $ */ /* $Id: sdp.h 3198 2010-06-04 13:41:34Z 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 505 skipping to change at line 505
* Deactivate SDP media. * Deactivate SDP media.
* *
* @param m The SDP media to deactivate. * @param m The SDP media to deactivate.
* *
* @return PJ_SUCCESS when SDP media successfully deactivated, * @return PJ_SUCCESS when SDP media successfully deactivated,
* otherwise appropriate status code returned. * otherwise appropriate status code returned.
*/ */
PJ_DECL(pj_status_t) pjmedia_sdp_media_deactivate(pj_pool_t *pool, PJ_DECL(pj_status_t) pjmedia_sdp_media_deactivate(pj_pool_t *pool,
pjmedia_sdp_media *m); pjmedia_sdp_media *m);
/**
* Clone SDP media description and deactivate the new SDP media.
*
* @param rhs The SDP media to clone.
*
* @return New media descrption with deactivated indication.
*/
PJ_DECL(pjmedia_sdp_media*) pjmedia_sdp_media_clone_deactivate(
pj_pool_t *pool,
const pjmedia_sdp_media *rhs
);
/* ************************************************************************ ** /* ************************************************************************ **
* SDP SESSION DESCRIPTION * SDP SESSION DESCRIPTION
************************************************************************** ** ************************************************************************** **
*/ */
/** /**
* This structure describes SDP session description. A SDP session descript or * This structure describes SDP session description. A SDP session descript or
* contains complete information about a session, and normally is exchanged * contains complete information about a session, and normally is exchanged
* with remote media peer using signaling protocol such as SIP. * with remote media peer using signaling protocol such as SIP.
*/ */
 End of changes. 2 change blocks. 
1 lines changed or deleted 13 lines changed or added


 sdp_neg.h   sdp_neg.h 
/* $Id: sdp_neg.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: sdp_neg.h 3217 2010-06-23 12:21:20Z 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 610 skipping to change at line 610
* remote). * remote).
* *
* @param neg The negotiator. * @param neg The negotiator.
* *
* @return PJ_TRUE if it is local is answering an offer, PJ_FAL SE * @return PJ_TRUE if it is local is answering an offer, PJ_FAL SE
* if remote has answered local offer. * if remote has answered local offer.
*/ */
PJ_DECL(pj_bool_t) pjmedia_sdp_neg_has_local_answer(pjmedia_sdp_neg *neg); PJ_DECL(pj_bool_t) pjmedia_sdp_neg_has_local_answer(pjmedia_sdp_neg *neg);
/** /**
* Cancel previously sent offer, and move negotiator state back to * Cancel any pending offer, whether the offer is initiated by local or
* previous stable state (PJMEDIA_SDP_NEG_STATE_DONE). The negotiator * remote, and move negotiator state back to previous stable state
* must be in PJMEDIA_SDP_NEG_STATE_LOCAL_OFFER state. * (PJMEDIA_SDP_NEG_STATE_DONE). The negotiator must be in
* PJMEDIA_SDP_NEG_STATE_LOCAL_OFFER or PJMEDIA_SDP_NEG_STATE_REMOTE_OFFER
* state.
* *
* @param neg The negotiator. * @param neg The negotiator.
* *
* @return PJ_SUCCESS or the appropriate error code. * @return PJ_SUCCESS or the appropriate error code.
*/ */
PJ_DECL(pj_status_t) pjmedia_sdp_neg_cancel_offer(pjmedia_sdp_neg *neg); PJ_DECL(pj_status_t) pjmedia_sdp_neg_cancel_offer(pjmedia_sdp_neg *neg);
/** /**
* Negotiate local and remote answer. Before calling this function, the * Negotiate local and remote answer. Before calling this function, the
* SDP negotiator must be in PJMEDIA_SDP_NEG_STATE_WAIT_NEGO state. * SDP negotiator must be in PJMEDIA_SDP_NEG_STATE_WAIT_NEGO state.
 End of changes. 2 change blocks. 
4 lines changed or deleted 6 lines changed or added


 session.h   session.h 
/* $Id: session.h 2844 2009-07-29 12:14:21Z bennylp $ */ /* $Id: session.h 3237 2010-07-15 10:18:59Z 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 273 skipping to change at line 273
* @param session The media session. * @param session The media session.
* @param index Stream index. * @param index Stream index.
* @param stat Stream statistic. * @param stat Stream statistic.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_session_get_stream_stat(pjmedia_session *sessi on, PJ_DECL(pj_status_t) pjmedia_session_get_stream_stat(pjmedia_session *sessi on,
unsigned index, unsigned index,
pjmedia_rtcp_stat *stat ); pjmedia_rtcp_stat *stat );
/**
* Reset session statistics.
*
* @param session The media session.
* @param index Stream index.
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_session_reset_stream_stat(pjmedia_session *ses
sion,
unsigned index);
#if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) #if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0)
/** /**
* Get extended session statistics. The extended statistic shows reports * Get extended session statistics. The extended statistic shows reports
* from RTCP XR, such as per interval statistics summary (packet count, * from RTCP XR, such as per interval statistics summary (packet count,
* packet lost, jitter, etc), VoIP metrics (delay, quality, etc) * packet lost, jitter, etc), VoIP metrics (delay, quality, etc)
* *
* @param session The media session. * @param session The media session.
* @param index Stream index. * @param index Stream index.
* @param stat_xr Stream extended statistics. * @param stat_xr Stream extended statistics.
* *
 End of changes. 2 change blocks. 
1 lines changed or deleted 13 lines changed or added


 sip_config.h   sip_config.h 
/* $Id: sip_config.h 3019 2009-11-20 04:18:27Z bennylp $ */ /* $Id: sip_config.h 3182 2010-05-19 06:07: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 218 skipping to change at line 218
*/ */
#ifndef PJSIP_MAX_MODULE #ifndef PJSIP_MAX_MODULE
# define PJSIP_MAX_MODULE 32 # 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 4000
#endif #endif
/** /**
* RFC 3261 section 18.1.1: * RFC 3261 section 18.1.1:
* If a request is within 200 bytes of the path MTU, or if it is larger * If a request is within 200 bytes of the path MTU, or if it is larger
* than 1300 bytes and the path MTU is unknown, the request MUST be sent * than 1300 bytes and the path MTU is unknown, the request MUST be sent
* using an RFC 2914 [43] congestion controlled transport protocol, such * using an RFC 2914 [43] congestion controlled transport protocol, such
* as TCP. * as TCP.
* *
* Disable the behavior of automatic switching to TCP whenever UDP packet * Disable the behavior of automatic switching to TCP whenever UDP packet
 End of changes. 2 change blocks. 
2 lines changed or deleted 2 lines changed or added


 sip_dialog.h   sip_dialog.h 
/* $Id: sip_dialog.h 3068 2010-01-21 10:04:26Z bennylp $ */ /* $Id: sip_dialog.h 3196 2010-06-03 10:41:32Z 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 88 skipping to change at line 88
typedef enum pjsip_dialog_state typedef enum pjsip_dialog_state
{ {
/** Dialog is not established. */ /** Dialog is not established. */
PJSIP_DIALOG_STATE_NULL, PJSIP_DIALOG_STATE_NULL,
/** Dialog has been established (probably early) */ /** Dialog has been established (probably early) */
PJSIP_DIALOG_STATE_ESTABLISHED PJSIP_DIALOG_STATE_ESTABLISHED
} pjsip_dialog_state; } pjsip_dialog_state;
/** /**
* Dialog capability status.
*/
typedef enum pjsip_dialog_cap_status
{
/** Capability is unsupported. */
PJSIP_DIALOG_CAP_UNSUPPORTED = 0,
/** Capability is supported */
PJSIP_DIALOG_CAP_SUPPORTED = 1,
/**
* Unknown capability status. This is usually because we lack the
* capability info which is retrieved from capability header specified
* in the dialog messages.
*/
PJSIP_DIALOG_CAP_UNKNOWN = 2
} pjsip_dialog_cap_status;
/**
* This structure describes the dialog structure. Application MUST NOT * This structure describes the dialog structure. Application MUST NOT
* try to SET the values here directly, but instead it MUST use the * try to SET the values here directly, but instead it MUST use the
* appropriate dialog API. The dialog declaration only needs to be made * appropriate dialog API. The dialog declaration only needs to be made
* visible because other PJSIP modules need to see it (e.g. INVITE session, * visible because other PJSIP modules need to see it (e.g. INVITE session,
* the event framework, etc.). * the event framework, etc.).
* *
* Application MAY READ the dialog contents directly after it acquires * Application MAY READ the dialog contents directly after it acquires
* dialog lock. * dialog lock.
* *
* To acquire dialog lock, use #pjsip_dlg_inc_lock(), and to release it, * To acquire dialog lock, use #pjsip_dlg_inc_lock(), and to release it,
skipping to change at line 125 skipping to change at line 144
/** The dialog set which this dialog belongs (opaque type). */ /** The dialog set which this dialog belongs (opaque type). */
void *dlg_set; void *dlg_set;
/* Dialog's session properties. */ /* Dialog's session properties. */
pjsip_dialog_state state; /**< Dialog state. */ pjsip_dialog_state state; /**< Dialog state. */
pjsip_uri *target; /**< Current target. */ pjsip_uri *target; /**< Current target. */
pjsip_target_set target_set; /**< Target set, for UAC only. */ pjsip_target_set target_set; /**< Target set, for UAC only. */
pjsip_hdr inv_hdr; /**< Headers from hparam in dest URL */ pjsip_hdr inv_hdr; /**< Headers from hparam in dest URL */
pjsip_dlg_party local; /**< Local party info. */ pjsip_dlg_party local; /**< Local party info. */
pjsip_dlg_party remote; /**< Remote party info. */ pjsip_dlg_party remote; /**< Remote party info. */
pjsip_hdr rem_cap_hdr;/**< List of remote capability header. */
pjsip_role_e role; /**< Initial role. */ pjsip_role_e role; /**< Initial role. */
pj_bool_t uac_has_2xx;/**< UAC has received 2xx response? */ pj_bool_t uac_has_2xx;/**< UAC has received 2xx response? */
pj_bool_t secure; /**< Use secure transport? */ pj_bool_t secure; /**< Use secure transport? */
pj_bool_t add_allow; /**< Add Allow header in requests? */ pj_bool_t add_allow; /**< Add Allow header in requests? */
pjsip_cid_hdr *call_id; /**< Call-ID header. */ pjsip_cid_hdr *call_id; /**< Call-ID header. */
pjsip_route_hdr route_set; /**< Route set. */ pjsip_route_hdr route_set; /**< Route set. */
pj_bool_t route_set_frozen; /**< Route set has been set. */ pj_bool_t route_set_frozen; /**< Route set has been set. */
pjsip_auth_clt_sess auth_sess; /**< Client authentication sessi on. */ pjsip_auth_clt_sess auth_sess; /**< Client authentication sessi on. */
/** Session counter. */ /** Session counter. */
skipping to change at line 595 skipping to change at line 615
* sent. * sent.
*/ */
PJ_DECL(pj_status_t) pjsip_dlg_respond( pjsip_dialog *dlg, PJ_DECL(pj_status_t) pjsip_dlg_respond( pjsip_dialog *dlg,
pjsip_rx_data *rdata, pjsip_rx_data *rdata,
int st_code, int st_code,
const pj_str_t *st_text, const pj_str_t *st_text,
const pjsip_hdr *hdr_list, const pjsip_hdr *hdr_list,
const pjsip_msg_body *body ); const pjsip_msg_body *body );
/** /**
* Check if remote peer have the specified capability as published
* in the dialog messages from remote peer.
*
* Notes:
* - The capability \a token lookup will apply exact match, but not
* case-sensitive, for example: <tt>"text/html"</tt> will not match
* <tt>"text / html"</tt> (notice the spaces).
*
* @param dlg The dialog.
* @param htype The header type to be checked, which value may b
e:
* - PJSIP_H_ACCEPT
* - PJSIP_H_ALLOW
* - PJSIP_H_SUPPORTED
* @param hname If htype specifies PJSIP_H_OTHER, then the heade
r name
* must be supplied in this argument. Otherwise the value
* must be set to NULL.
* @param token The capability token to check. For example, if \
a htype
* is PJSIP_H_ALLOW, then \a token specifies the method
* names; if \a htype is PJSIP_H_SUPPORTED, then \a token
* specifies the extension names such as "100rel".
*
* @return PJSIP_DIALOG_CAP_SUPPORTED if the specified capability
* is explicitly supported, see @pjsip_dialog_cap_status
* for more info.
*/
PJ_DECL(pjsip_dialog_cap_status) pjsip_dlg_remote_has_cap(
pjsip_dialog *dlg,
int htype,
const pj_str_t *hname,
const pj_str_t *token);
/**
* Get the specified capability header from the remote capability headers
* stored in the dialog.
*
* @param dlg The dialog.
* @param htype The header type to be retrieved, which value may
be:
* - PJSIP_H_ACCEPT
* - PJSIP_H_ALLOW
* - PJSIP_H_SUPPORTED
* @param hname If htype specifies PJSIP_H_OTHER, then the heade
r name
* must be supplied in this argument. Otherwise the value
* must be set to NULL.
*
* @return The appropriate header, or NULL if the header is not
* available.
*/
PJ_DECL(const pjsip_hdr*) pjsip_dlg_get_remote_cap_hdr(pjsip_dialog *dlg,
int htype,
const pj_str_t *hname
);
/**
* Set remote capability from a SIP header containing array of capability
* tags/values.
*
* @param dlg The dialog.
* @param cap_hdr The SIP header.
*
* @return PJ_SUCCESS when successful, otherwise the appropriate
* error code will be returned.
*/
PJ_DECL(pj_status_t) pjsip_dlg_set_remote_cap_hdr(
pjsip_dialog *dlg,
const pjsip_generic_array_hdr *cap_hdr);
/**
* Remove a remote capability header.
*
* @param dlg The dialog.
* @param htype The header type to be removed, which value may b
e:
* - PJSIP_H_ACCEPT
* - PJSIP_H_ALLOW
* - PJSIP_H_SUPPORTED
* @param hname If htype specifies PJSIP_H_OTHER, then the heade
r name
* must be supplied in this argument. Otherwise the value
* must be set to NULL.
*
* @return PJ_SUCCESS when successful, otherwise the appropriate
* error code will be returned.
*/
PJ_DECL(pj_status_t) pjsip_dlg_remove_remote_cap_hdr(pjsip_dialog *dlg,
int htype,
const pj_str_t *hname);
/**
* Update remote capabilities from a received message. The header types
* to be updated from the message will only be \a PJSIP_H_ACCEPT,
* \a PJSIP_H_ALLOW, and \a PJSIP_H_SUPPORTED.
*
* @param dlg The dialog.
* @param msg The received message.
* @param strict If this is set to PJ_TRUE, any header types missing
* from the message will cause removal of existing
* header types in the capability list. Otherwise, the
* capability list will not be modified when any header
* type is missing.
*
* @return PJ_SUCCESS when successful, otherwise the appropriate
* error code will be returned.
*/
PJ_DECL(pj_status_t) pjsip_dlg_update_remote_cap(pjsip_dialog *dlg,
const pjsip_msg *msg,
pj_bool_t strict);
/**
* @} * @}
*/ */
/* /*
* Internal (called by sip_ua_layer.c) * Internal (called by sip_ua_layer.c)
*/ */
/* Receives transaction event (called by user_agent module) */ /* Receives transaction event (called by user_agent module) */
void pjsip_dlg_on_tsx_state( pjsip_dialog *dlg, void pjsip_dlg_on_tsx_state( pjsip_dialog *dlg,
pjsip_transaction *tsx, pjsip_transaction *tsx,
 End of changes. 4 change blocks. 
1 lines changed or deleted 134 lines changed or added


 sip_inv.h   sip_inv.h 
/* $Id: sip_inv.h 2869 2009-08-12 17:53:47Z bennylp $ */ /* $Id: sip_inv.h 3243 2010-08-01 09:48:51Z 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 293 skipping to change at line 293
/** /**
* Indicate support for UPDATE method. This is automatically implied * Indicate support for UPDATE method. This is automatically implied
* when creating outgoing dialog. After the dialog is established, * when creating outgoing dialog. After the dialog is established,
* the options member of #pjsip_inv_session shows whether peer supports * the options member of #pjsip_inv_session shows whether peer supports
* this method as well. * this method as well.
*/ */
PJSIP_INV_SUPPORT_UPDATE = 4, PJSIP_INV_SUPPORT_UPDATE = 4,
/** /**
* Indicate support for ICE
*/
PJSIP_INV_SUPPORT_ICE = 8,
/**
* Require ICE support.
*/
PJSIP_INV_REQUIRE_ICE = 16,
/**
* Require reliable provisional response extension. * Require reliable provisional response extension.
*/ */
PJSIP_INV_REQUIRE_100REL = 32, PJSIP_INV_REQUIRE_100REL = 32,
/** /**
* Require session timer extension. * Require session timer extension.
*/ */
PJSIP_INV_REQUIRE_TIMER = 64, PJSIP_INV_REQUIRE_TIMER = 64,
/** /**
* Session timer extension will always be used even when peer doesn't * Session timer extension will always be used even when peer doesn't
* support/want session timer. * support/want session timer.
*/ */
PJSIP_INV_ALWAYS_USE_TIMER = 128, PJSIP_INV_ALWAYS_USE_TIMER = 128
}; };
/* Forward declaration of Session Timers */ /* Forward declaration of Session Timers */
struct pjsip_timer; struct pjsip_timer;
/** /**
* This structure describes the invite session. * This structure describes the invite session.
* *
* Note regarding the invite session's pools. The inv_sess used to have * Note regarding the invite session's pools. The inv_sess used to have
skipping to change at line 368 skipping to change at line 378
pjsip_transaction *invite_tsx; /**< 1st invite tsx. */ pjsip_transaction *invite_tsx; /**< 1st invite tsx. */
pjsip_tx_data *invite_req; /**< Saved invite req */ pjsip_tx_data *invite_req; /**< Saved invite req */
pjsip_tx_data *last_answer; /**< Last INVITE resp. */ pjsip_tx_data *last_answer; /**< Last INVITE resp. */
pjsip_tx_data *last_ack; /**< Last ACK request */ pjsip_tx_data *last_ack; /**< Last ACK request */
pj_int32_t last_ack_cseq; /**< CSeq of last ACK */ pj_int32_t last_ack_cseq; /**< CSeq of last ACK */
void *mod_data[PJSIP_MAX_MODULE];/**< Modules data. */ void *mod_data[PJSIP_MAX_MODULE];/**< Modules data. */
struct pjsip_timer *timer; /**< Session Timers. */ struct pjsip_timer *timer; /**< Session Timers. */
}; };
/** /**
* This structure represents SDP information in a pjsip_rx_data. Applicatio
n
* retrieve this information by calling #pjsip_rdata_get_sdp_info(). This
* mechanism supports multipart message body.
*/
typedef struct pjsip_rdata_sdp_info
{
/**
* Pointer and length of the text body in the incoming message. If
* the pointer is NULL, it means the message does not contain SDP
* body.
*/
pj_str_t body;
/**
* This will contain non-zero if an invalid SDP body is found in the
* message.
*/
pj_status_t sdp_err;
/**
* A parsed and validated SDP body.
*/
pjmedia_sdp_session *sdp;
} pjsip_rdata_sdp_info;
/**
* Initialize the invite usage module and register it to the endpoint. * Initialize the invite usage module and register it to the endpoint.
* The callback argument contains pointer to functions to be called on * The callback argument contains pointer to functions to be called on
* occurences of events in invite sessions. * occurences of events in invite sessions.
* *
* @param endpt The endpoint instance. * @param endpt The endpoint instance.
* @param cb Callback structure. * @param cb Callback structure.
* *
* @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) pjsip_inv_usage_init(pjsip_endpoint *endpt, PJ_DECL(pj_status_t) pjsip_inv_usage_init(pjsip_endpoint *endpt,
skipping to change at line 841 skipping to change at line 878
* @param sdp SDP session to be put in the SIP message body. * @param sdp SDP session to be put in the SIP message body.
* @param p_body Pointer to receive SIP message body containing * @param p_body Pointer to receive SIP message body containing
* the SDP session. * the SDP session.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjsip_create_sdp_body(pj_pool_t *pool, PJ_DECL(pj_status_t) pjsip_create_sdp_body(pj_pool_t *pool,
pjmedia_sdp_session *sdp, pjmedia_sdp_session *sdp,
pjsip_msg_body **p_body); pjsip_msg_body **p_body);
/**
* Retrieve SDP information from an incoming message. Application should
* prefer to use this function rather than parsing the SDP manually since
* this function supports multipart message body.
*
* This function will only parse the SDP once, the first time it is called
* on the same message. Subsequent call on the same message will just pick
* up the already parsed SDP from the message.
*
* @param rdata The incoming message.
*
* @return The SDP info.
*/
PJ_DECL(pjsip_rdata_sdp_info*) pjsip_rdata_get_sdp_info(pjsip_rx_data *rdat
a);
PJ_END_DECL PJ_END_DECL
/** /**
* @} * @}
*/ */
#endif /* __SIP_INVITE_SESSION_H__ */ #endif /* __SIP_INVITE_SESSION_H__ */
 End of changes. 5 change blocks. 
2 lines changed or deleted 56 lines changed or added


 sip_msg.h   sip_msg.h 
/* $Id: sip_msg.h 2968 2009-10-26 11:21:37Z bennylp $ */ /* $Id: sip_msg.h 3241 2010-08-01 09:24:58Z 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 457 skipping to change at line 457
PJSIP_SC_MESSAGE_TOO_LARGE = 513, PJSIP_SC_MESSAGE_TOO_LARGE = 513,
PJSIP_SC_PRECONDITION_FAILURE = 580, PJSIP_SC_PRECONDITION_FAILURE = 580,
PJSIP_SC_BUSY_EVERYWHERE = 600, PJSIP_SC_BUSY_EVERYWHERE = 600,
PJSIP_SC_DECLINE = 603, PJSIP_SC_DECLINE = 603,
PJSIP_SC_DOES_NOT_EXIST_ANYWHERE = 604, PJSIP_SC_DOES_NOT_EXIST_ANYWHERE = 604,
PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE = 606, PJSIP_SC_NOT_ACCEPTABLE_ANYWHERE = 606,
PJSIP_SC_TSX_TIMEOUT = PJSIP_SC_REQUEST_TIMEOUT, PJSIP_SC_TSX_TIMEOUT = PJSIP_SC_REQUEST_TIMEOUT,
/*PJSIP_SC_TSX_RESOLVE_ERROR = 702,*/ /*PJSIP_SC_TSX_RESOLVE_ERROR = 702,*/
PJSIP_SC_TSX_TRANSPORT_ERROR = PJSIP_SC_SERVICE_UNAVAILABLE PJSIP_SC_TSX_TRANSPORT_ERROR = PJSIP_SC_SERVICE_UNAVAILABLE,
/* This is not an actual status code, but rather a constant
* to force GCC to use 32bit to represent this enum, since
* we have a code in PJSUA-LIB that assigns an integer
* to this enum (see pjsua_acc_get_info() function).
*/
PJSIP_SC__force_32bit = 0x7FFFFFFF
} pjsip_status_code; } pjsip_status_code;
/** /**
* Get the default status text for the status code. * Get the default status text for the status code.
* *
* @param status_code SIP Status Code * @param status_code SIP Status Code
* *
* @return textual message for the status code. * @return textual message for the status code.
*/ */
skipping to change at line 500 skipping to change at line 507
*/ */
/** /**
* This structure describes SIP media type, as used for example in * This structure describes SIP media type, as used for example in
* 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). */ pjsip_param param; /**< Media type parameters */
} pjsip_media_type; } pjsip_media_type;
/** /**
* Initialize the media type with the specified type and subtype string.
*
* @param mt The media type.
* @param type Optionally specify the media type.
* @param subtype Optionally specify the media subtype.
*/
PJ_DECL(void) pjsip_media_type_init(pjsip_media_type *mt,
pj_str_t *type,
pj_str_t *subtype);
/**
* Initialize the media type with the specified type and subtype string.
*
* @param mt The media type.
* @param type Optionally specify the media type.
* @param subtype Optionally specify the media subtype.
*/
PJ_DECL(void) pjsip_media_type_init2(pjsip_media_type *mt,
char *type,
char *subtype);
/**
* Compare two media types.
*
* @param mt1 The first media type.
* @param mt2 The second media type.
*
* @return Zero if both media types are equal, -1 if mt1 < mt2,
* 1 if mt1 > mt2.
*/
PJ_DECL(int) pjsip_media_type_cmp(const pjsip_media_type *mt1,
const pjsip_media_type *mt2);
/**
* Copy SIP media type to another. * Copy SIP media type to another.
* *
* @param pool Pool to duplicate strings. * @param pool Pool to duplicate strings.
* @param dst Destination structure. * @param dst Destination structure.
* @param src Source structure. * @param src Source structure.
*/ */
PJ_DECL(void) pjsip_media_type_cp(pj_pool_t *pool, PJ_DECL(void) pjsip_media_type_cp(pj_pool_t *pool,
pjsip_media_type *dst, pjsip_media_type *dst,
const pjsip_media_type *src); const pjsip_media_type *src);
/** /**
* Print media type to the specified buffer.
*
* @param buf Destination buffer.
* @param len Length of the buffer.
* @param mt The media type to be printed.
*
* @return The number of characters printed to the buffer, or -
1
* if there's not enough space in the buffer.
*/
PJ_DECL(int) pjsip_media_type_print(char *buf, unsigned len,
const pjsip_media_type *mt);
/**
* @} * @}
*/ */
/* ************************************************************************ **/ /* ************************************************************************ **/
/** /**
* @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. 5 change blocks. 
3 lines changed or deleted 58 lines changed or added


 sip_parser.h   sip_parser.h 
/* $Id: sip_parser.h 2660 2009-04-28 19:38:43Z nanang $ */ /* $Id: sip_parser.h 3243 2010-08-01 09:48:51Z 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 275 skipping to change at line 275
* @param line Header content, which must be NULL terminated. * @param line Header content, which must be NULL terminated.
* @param size The length of the string (not counting NULL terminat or, * @param size The length of the string (not counting NULL terminat or,
* if any). * if any).
* @param parsed_len If the value is not NULL, then upon return the funct ion * @param parsed_len If the value is not NULL, then upon return the funct ion
* will fill the pointer with the length of the string * will fill the pointer with the length of the string
* that has been parsed. This is usefull for two purpos es, * that has been parsed. This is usefull for two purpos es,
* one is when the string may contain more than one hea der * one is when the string may contain more than one hea der
* lines, and two when an error happen the value can * lines, and two when an error happen the value can
* pinpoint the location of the error in the buffer. * pinpoint the location of the error in the buffer.
* *
* @return The instance of the header if parsing was successful l, * @return The instance of the header if parsing was successful ,
* or otherwise a NULL pointer will be returned. * or otherwise a NULL pointer will be returned.
*/ */
PJ_DECL(void*) pjsip_parse_hdr( pj_pool_t *pool, const pj_str_t *hname, PJ_DECL(void*) pjsip_parse_hdr( pj_pool_t *pool, const pj_str_t *hname,
char *line, pj_size_t size, char *line, pj_size_t size,
int *parsed_len); int *parsed_len);
/** /**
* Parse header line(s). Multiple headers can be parsed by this function. * Parse header line(s). Multiple headers can be parsed by this function.
* When there are multiple headers, the headers MUST be separated by either * When there are multiple headers, the headers MUST be separated by either
* a newline (as in SIP message) or ampersand mark (as in URI). This separa tor * a newline (as in SIP message) or ampersand mark (as in URI). This separa tor
* however is optional for the last header. * is optional for the last header.
* *
* @param pool the pool. * @param pool The pool.
* @param input the input text to parse, which must be NULL * @param input The input text to parse, which must be NULL
terminated. terminated.
* @param size the text length. * @param size The text length.
* @param hlist the header list to store the parsed headers. * @param hlist The header list to store the parsed headers.
* This list must have been initialized before calling * This list must have been initialized before calling
* this function. * this function.
* @param options Specify 1 here to make parsing stop when error is
* encountered when parsing the header. Otherwise the
* error is silently ignored and parsing resumes to the
* next line.
* @return zero if successfull, or -1 if error is encountered. * @return zero if successfull, or -1 if error is encountered.
* Upon error, the \a hlist argument MAY contain * Upon error, the \a hlist argument MAY contain
* successfully parsed headers. * successfully parsed headers.
*/ */
PJ_DECL(pj_status_t) pjsip_parse_headers( pj_pool_t *pool, PJ_DECL(pj_status_t) pjsip_parse_headers( pj_pool_t *pool, char *input,
char *input, pj_size_t size, pj_size_t size, pjsip_hdr *hlist,
pj_list *hlist ); unsigned options);
/** /**
* @} * @}
*/ */
#ifdef _MSC_VER #ifdef _MSC_VER
# pragma warning(push) # pragma warning(push)
# pragma warning(disable:4510) // default constructor could not be genera ted # pragma warning(disable:4510) // default constructor could not be genera ted
# pragma warning(disable:4512) // assignment operator could not be genera ted # pragma warning(disable:4512) // assignment operator could not be genera ted
# pragma warning(disable:4610) // user defined constructor required # pragma warning(disable:4610) // user defined constructor required
 End of changes. 6 change blocks. 
11 lines changed or deleted 15 lines changed or added


 sip_uri.h   sip_uri.h 
/* $Id: sip_uri.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: sip_uri.h 3242 2010-08-01 09:26: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 67 skipping to change at line 67
/** /**
* Find the specified parameter name in the list. The name will be compared * Find the specified parameter name in the list. The name will be compared
* in case-insensitive comparison. * in case-insensitive comparison.
* *
* @param param_list List of parameters to find. * @param param_list List of parameters to find.
* @param name Parameter/header name to find. * @param name Parameter/header name to find.
* *
* @return The parameter if found, or NULL. * @return The parameter if found, or NULL.
*/ */
PJ_DECL(pjsip_param*) pjsip_param_find( pjsip_param *param_list, PJ_DECL(pjsip_param*) pjsip_param_find( const pjsip_param *param_list,
const pj_str_t *name ); const pj_str_t *name );
/** /**
* Find the specified parameter name in the list. The name will be compared * Alias for pjsip_param_find()
* in case-insensitive comparison. */
PJ_INLINE(pjsip_param*) pjsip_param_cfind(const pjsip_param *param_list,
const pj_str_t *name)
{
return pjsip_param_find(param_list, name);
}
/**
* Compare two parameter lists.
* *
* @param param_list List of parameters to find. * @param param_list1 First parameter list.
* @param name Parameter/header name to find. * @param param_list2 Second parameter list.
* @param ig_nf If set to 1, do not compare parameters that
only
* appear in one of the list.
* *
* @return The parameter if found, or NULL. * @return Zero if the parameter list are equal, non-zero
* otherwise.
*/ */
PJ_DECL(const pjsip_param*) pjsip_param_cfind(const pjsip_param *param_list PJ_DECL(int) pjsip_param_cmp(const pjsip_param *param_list1,
, const pjsip_param *param_list2,
const pj_str_t *name ); pj_bool_t ig_nf);
/** /**
* Duplicate the parameters. * Duplicate the parameters.
* *
* @param pool Pool to allocate memory from. * @param pool Pool to allocate memory from.
* @param dst_list Destination list. * @param dst_list Destination list.
* @param src_list Source list. * @param src_list Source list.
*/ */
PJ_DECL(void) pjsip_param_clone(pj_pool_t *pool, pjsip_param *dst_list, PJ_DECL(void) pjsip_param_clone(pj_pool_t *pool, pjsip_param *dst_list,
const pjsip_param *src_list); const pjsip_param *src_list);
 End of changes. 6 change blocks. 
10 lines changed or deleted 22 lines changed or added


 stream.h   stream.h 
/* $Id: stream.h 2844 2009-07-29 12:14:21Z bennylp $ */ /* $Id: stream.h 3237 2010-07-15 10:18:59Z 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 220 skipping to change at line 220
* #pjmedia_stream_get_stat_jbuf() * #pjmedia_stream_get_stat_jbuf()
* *
* @param stream The media stream. * @param stream The media stream.
* @param stat Media stream statistics. * @param stat Media stream statistics.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_stream_get_stat( const pjmedia_stream *stream, PJ_DECL(pj_status_t) pjmedia_stream_get_stat( const pjmedia_stream *stream,
pjmedia_rtcp_stat *stat); pjmedia_rtcp_stat *stat);
/**
* Reset the stream statistics.
*
* @param stream The media stream.
*
* @return PJ_SUCCESS on success.
*/
PJ_DECL(pj_status_t) pjmedia_stream_reset_stat(pjmedia_stream *stream);
#if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0) #if defined(PJMEDIA_HAS_RTCP_XR) && (PJMEDIA_HAS_RTCP_XR != 0)
/** /**
* Get the stream extended report statistics (RTCP XR). * Get the stream extended report statistics (RTCP XR).
* *
* @param stream The media stream. * @param stream The media stream.
* @param stat Media stream extended report statistics. * @param stat Media stream extended report statistics.
* *
* @return PJ_SUCCESS on success. * @return PJ_SUCCESS on success.
*/ */
PJ_DECL(pj_status_t) pjmedia_stream_get_stat_xr( const pjmedia_stream *stre am, PJ_DECL(pj_status_t) pjmedia_stream_get_stat_xr( const pjmedia_stream *stre am,
 End of changes. 2 change blocks. 
1 lines changed or deleted 10 lines changed or added


 stun_simple.h   stun_simple.h 
/* $Id: stun_simple.h 2394 2008-12-23 17:27:53Z bennylp $ */ /* $Id: stun_simple.h 3235 2010-07-06 08:11:04Z 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 61 skipping to change at line 61
PJSTUN_ATTR_MAPPED_ADDR = 1, PJSTUN_ATTR_MAPPED_ADDR = 1,
PJSTUN_ATTR_RESPONSE_ADDR, PJSTUN_ATTR_RESPONSE_ADDR,
PJSTUN_ATTR_CHANGE_REQUEST, PJSTUN_ATTR_CHANGE_REQUEST,
PJSTUN_ATTR_SOURCE_ADDR, PJSTUN_ATTR_SOURCE_ADDR,
PJSTUN_ATTR_CHANGED_ADDR, PJSTUN_ATTR_CHANGED_ADDR,
PJSTUN_ATTR_USERNAME, PJSTUN_ATTR_USERNAME,
PJSTUN_ATTR_PASSWORD, PJSTUN_ATTR_PASSWORD,
PJSTUN_ATTR_MESSAGE_INTEGRITY, PJSTUN_ATTR_MESSAGE_INTEGRITY,
PJSTUN_ATTR_ERROR_CODE, PJSTUN_ATTR_ERROR_CODE,
PJSTUN_ATTR_UNKNOWN_ATTRIBUTES, PJSTUN_ATTR_UNKNOWN_ATTRIBUTES,
PJSTUN_ATTR_REFLECTED_FORM PJSTUN_ATTR_REFLECTED_FROM,
PJSTUN_ATTR_XOR_MAPPED_ADDR = 0x0020
} pjstun_attr_type; } pjstun_attr_type;
/* /*
* This structre describes STUN message header. * This structre describes STUN message header.
*/ */
typedef struct pjstun_msg_hdr typedef struct pjstun_msg_hdr
{ {
pj_uint16_t type; pj_uint16_t type;
pj_uint16_t length; pj_uint16_t length;
pj_uint32_t tsx[4]; pj_uint32_t tsx[4];
 End of changes. 2 change blocks. 
2 lines changed or deleted 3 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/