summaryrefslogtreecommitdiff
path: root/pjsip/src/pjsua-lib/pjsua_core.c
AgeCommit message (Collapse)Author
2013-02-27Re #1563: Backported to 1.xLiong Sauw Ming
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4389 74dad513-b988-da41-8d7b-12977e46ad98
2013-02-27Re #1550: backported to 1.xNanang Izzuddin
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4382 74dad513-b988-da41-8d7b-12977e46ad98
2012-05-11Fix #1507: Added TLS support in pjsua_transport_get_info().Nanang Izzuddin
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@4119 74dad513-b988-da41-8d7b-12977e46ad98
2011-11-02More #1415: added protection when calling log, otherwise assertion will be ↵Benny Prijono
raised git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3883 74dad513-b988-da41-8d7b-12977e46ad98
2011-11-02Fixed #1415: Handle potential crash if joining worker thread fails in ↵Benny Prijono
pjsua_destroy() git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3882 74dad513-b988-da41-8d7b-12977e46ad98
2011-10-28Fixed #1407: Deadlock in initial resolution of STUN serverBenny Prijono
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3873 74dad513-b988-da41-8d7b-12977e46ad98
2011-10-19Renamed enum names to comply with the spec in ticket (re #1216)Benny Prijono
git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3830 74dad513-b988-da41-8d7b-12977e46ad98
2011-10-19Fixed #1216: New pjsua_destroy2() API to allow shutting down the library ↵Benny Prijono
without sending any outgoing messages git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3829 74dad513-b988-da41-8d7b-12977e46ad98
2011-06-22Closed #1313 (Account option to disable registration when account is added) ↵Benny Prijono
and closed #1314 (New callback to notify application when registration or unregistration has been initiated). Thanks Tony Jago Million for the patch git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3594 74dad513-b988-da41-8d7b-12977e46ad98
2011-05-05Re #1250: Updated the year in all copyright texts with 2011!Nanang Izzuddin
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3553 74dad513-b988-da41-8d7b-12977e46ad98
2011-03-15Fixed #1205: Configurable delay before registration refresh setting in ↵Liong Sauw Ming
pjsua_acc_config git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3441 74dad513-b988-da41-8d7b-12977e46ad98
2011-03-01Fix #1203: iPhone OS background mode detectionLiong Sauw Ming
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3429 74dad513-b988-da41-8d7b-12977e46ad98
2011-02-28Initial implementation for re #1202 (PJILB System Information API) for ↵Benny Prijono
Linux/Unix git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3423 74dad513-b988-da41-8d7b-12977e46ad98
2011-02-11Re #1161: Support for adding custom presence subscription headers.Liong Sauw Ming
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3412 74dad513-b988-da41-8d7b-12977e46ad98
2010-11-16Implemented SIP outbound (closed #1020)Benny Prijono
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3366 74dad513-b988-da41-8d7b-12977e46ad98
2010-10-01Closed #1142 (Account based configuration to specify if "c=0.0.0.0" method ↵Benny Prijono
should be used when putting call on hold): - use PJSUA_CALL_HOLD_TYPE_DEFAULT to specify default global call hold type - use pjsua_acc_config.call_hold_type to specify call hold type for the account - call hold type can also be set on per call basis by changing the call_hold_type in the call structure (requires inclusion of <pjsua-lib/pjsua_internal.h> git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3330 74dad513-b988-da41-8d7b-12977e46ad98
2010-09-28Close #1137: added field reg_hdr_list into pjsua_acc_config to specify ↵Nanang Izzuddin
custom headers for REGISTER requests of the account. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3326 74dad513-b988-da41-8d7b-12977e46ad98
2010-09-28Closed #1139 (Support for tel: URI in PJSUA-LIB):Benny Prijono
- added new PJSUA API: pjsua_verify_url() which can be used for tel: URI - modified and tested according to spec - added new PJSIP error code, PJSIP_ENOROUTESET, to indicate that route set is needed to send to tel: URI - added couple of unit tests (we can't cover the whole tel: URI scenario yet) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3323 74dad513-b988-da41-8d7b-12977e46ad98
2010-09-20Closed #1129:Nanang Izzuddin
- Added run-time configuration for activating/deactivating stream keep-alive (non-codec-VAD mechanism), also added this config to account settings. - Fixed bug wrong session info pointer "si" in pjsua_media_channel_update() when call audio index is not zero. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3313 74dad513-b988-da41-8d7b-12977e46ad98
2010-09-07Re #1120:Nanang Izzuddin
- Added enum pjsua_sip_timer_use for session timer usage types, containing: inactive, optional, required, always - Replaced require_timer (boolean) with above enum in global and account config setting. - Updated pjsua app --use-timer option accordingly. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3305 74dad513-b988-da41-8d7b-12977e46ad98
2010-08-06Misc (re #1068): fix compile errors/warnings on Symbian S60 5th ed.Nanang Izzuddin
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3255 74dad513-b988-da41-8d7b-12977e46ad98
2010-08-01Implemented core multipart support and support in the invite session (re #1070)Benny Prijono
- incoming multipart message will be handled automatically - for testing, enable HAVE_MULTIPART_TEST in pjsua_app.c git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3243 74dad513-b988-da41-8d7b-12977e46ad98
2010-06-22Fixed #1095 (New option to control the Route headers in REGISTER request). ↵Benny Prijono
Details: - added new account config setting: reg_use_proxy. This contains bitmask values to indicate whether outbound proxies and account proxies are to be added in the REGISTER request. Default value is to add both. - added new pjsua cmdline option to control this: --reg-use-proxy - miscellaneous minor fixes in other pjsua cmdline arguments git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3216 74dad513-b988-da41-8d7b-12977e46ad98
2010-06-20Fixed #1086 (New option to update the Contact URI in a single REGISTER ↵Benny Prijono
request): added contact_rewrite_method account config to control this. Default is to use the new mechanism, i.e. the single REGISTER method. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3213 74dad513-b988-da41-8d7b-12977e46ad98
2010-05-13Re #1069:Nanang Izzuddin
- Added new approach of SRTP optional mode in pjsua-lib by duplicating SDP media line for secured and unsecured version of media transport. - Integrated this feature into pjsua app, it is activated via --use-srtp=3 param. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3172 74dad513-b988-da41-8d7b-12977e46ad98
2010-04-14Ticket #1056:Nanang Izzuddin
- Added functions to set/unset transport state notification callback on specific transport. - Updated transaction to immediately terminate the transactions when their transport gets disconnected. - Minor update: renamed function pjsip_tpmgr_set/get_status_cb() to pjsip_tpmgr_set/get_state_cb(). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3138 74dad513-b988-da41-8d7b-12977e46ad98
2010-03-30Ticket #1044:Nanang Izzuddin
- Added initial version of automatic re-registration after registration failure and automatic call disconnection after re-registration attempt fails. - Published auto re-registration setting to pjsua app. - Updated pjsip_regc_send() to retrieve the transport earlier (was only in tsx_callback()). - Fixed TCP and TLS transport to prevent transport deletion in transport disconnection callback. - Fixed wrong keep-alive settings used by TLS transport (was using TCP keep-alive settings). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3128 74dad513-b988-da41-8d7b-12977e46ad98
2010-03-10More #1032 (new SIP TCP/TLS transport callback):Benny Prijono
- PJSUA-LIB transport callback, if installed, will call the previously registered callback, to allow multiple transport callbacks to be installed - there seem to be a bug with the use of "pjsip_tp_state_callback" everywhere (the "pjsip_tp_state_callback" type is pointer, but most variables of this type are declared to pointer too) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3119 74dad513-b988-da41-8d7b-12977e46ad98
2010-02-24Ticket #1032:Nanang Izzuddin
- Initial version of server domain name verification: - Updated SSL certificate info, especially identities info - Updated verification mechanism as in the specifications in ticket desc. - Added server domain name info in pjsip_tx_data. - Added alternative API for acquiring transport and creating transport of transport factory to include pjsip_tx_data param. - Server identity match criteria: - full host name match - wild card not accepted - if identity is URI, it must be SIP/SIPS URI - Initial version of transport state notifications: - Added new API to set transport state callback in PJSIP and PJSUA. - Defined states: connected/disconnected, accepted/rejected, verification errors. - Minors: - Updated SSL socket test: dump verification result, test of requiring client cert, and few minors. - Updated test cert to include subjectAltName extensions. - Added SSL certificate dump function. - Updated max number of socket async operations in Symbian sample apps (RSocketServ::Connect()) to 32 (was default 8). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3106 74dad513-b988-da41-8d7b-12977e46ad98
2009-11-20More ticket #982 (MWI): support for Asterisk unsolicited MWI requests:Benny Prijono
- undo r3019 which put unsolicited MWI support in pjsua app only - put the unsolicited MWI support in PJSUA-LIB instead - unsolicited MWI is by default enabled - on_mwi_info() callback will be called just as the solicited MWI version git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3021 74dad513-b988-da41-8d7b-12977e46ad98
2009-11-11Misc (#951): undo r3012, and silently adjust max_calls to PJSUA_MAX_CALLS ↵Benny Prijono
instead if it is greater git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3013 74dad513-b988-da41-8d7b-12977e46ad98
2009-11-11Misc (#951): check when app specifies max_calls that is greater than ↵Benny Prijono
PJSUA_MAX_CALLS (thanks Robbie Hanson for the report) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@3012 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-26Implement ticket #982: Support for SIP Message Summary/Message Waiting ↵Benny Prijono
Indication (MWI, RFC 3842) - PJSIP-SIMPLE: - implement MWI - PJSUA-LIB: - added "mwi_enabled" flag in account config - added "on_mwi_info" callback - pjsua app: - added "--mwi" option to enable MWI on account - added simple callback to log the NOTIFY message - other: - added SIPp scenario files to simulate UAS side - build: - added MWI support on VS6, VS2005, MMP, and Makefile git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2968 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-25Initial commit for ticket #950: QoS support:Benny Prijono
- implementation: - PJLIB (sock_qos*.*) - added QoS support in: - SIP UDP transport, - SIP TCP transport, - media UDP transport (done in pjsua-lib), - pjnath ICE stream transport, - pjnath STUN socket, - pjnath TURN client - added QoS options in pjsua-lib: - QoS fields in pjsua_transport_config - added "--set-qos" parameter in pjsua Notes: - QoS in TLS transport is not yet implemented, waiting for #957 - build ok on VS6, VS2005 (multiple targets), Carbide, and Mingw - no run-time testing yet git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2966 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-20Initial commit for ticket #937: Revamping of presence management to make it ↵Benny Prijono
more efficient Presence enhancements: - finer grained buddy lock object, instead of using global PJSUA-LIB's mutex - individual resubscription timer for buddies and also add random delay interval so that resubscriptions don't happen simultaneously (may hog processing and bandwidth). - in general reduced the use of global PJSUA-LIB's mutex for more efficiency - added last termination code in buddy info - use the RPID note's text for buddy's offline status rather than the default "offline" status, if available - resubscribe automatically on several termination causes as explained in the ticket (still untested) General enhancements: - added pjsua_schedule_timer() and pjsua_cancel_timer() APIs git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2956 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-15Misc (#951): pool that is used to add missing ";lr" parameter in the Route ↵Benny Prijono
URI is not destroyed in PJSUA-LIB, causing potential memory leak git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2949 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-14Ticket #970: More gracefull PJSUA-LIB shutdown sequence. Enhancements:Benny Prijono
- wait for unregistration to complete (or a preconfigured delay expires) - new account config field to set the maximum delay to wait for unregistration - rejects incoming requests (INVITE, SUBSCRIBE, and OPTIONS) when shutdown is in progress git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2943 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-13Ticket #364: Upon unregistration, (un)REGISTER should be sent only after ↵Benny Prijono
(un)PUBLISH has completed successfully - wait for unpublication to complete or some delay expires, before sending unregistration - added unpublish_max_wait_time_msec field in account config to control how long to wait git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2942 74dad513-b988-da41-8d7b-12977e46ad98
2009-10-12Ticket #411: Cannot update account presence's status while previous PUBLISH ↵Benny Prijono
is in progress (thanks Olivier Beytrison for the report) - enable request queueing. If PUBLISH is to be sent while another one is still in progress, queue the request and send it later when the ongoing request completes - this behavior is controlled by new pjsip_publishc_opt structure to control session's options - default behavior is to queue the request git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2940 74dad513-b988-da41-8d7b-12977e46ad98
2009-08-17Ticket #866: Fixed compile error caused by implicit conversion from void* in ↵Nanang Izzuddin
test_stun_on_status(). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2895 74dad513-b988-da41-8d7b-12977e46ad98
2009-08-17Ticket #945: Account config may not get initialized with default values if ↵Benny Prijono
pjsua_acc_config_default() is called before pjsua_init() - added call to pjsua_config_default() in init_data(), so the global config is now initialized in pjsua_create() git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2887 74dad513-b988-da41-8d7b-12977e46ad98
2009-08-12Ticket #933: Incoming OPTIONS may trigger assertion if it arrives when ↵Benny Prijono
PJSUA-LIB is being shutdown (thanks Johan Lantz for the report) - destroy the media subsystem after busy_sleep(1000) in the shutdown sequence - also handle the case when OPTIONS arrives just when PJSUA-LIB is being initialized and media transport is not ready (in this case just reply OPTIONS without message body) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2871 74dad513-b988-da41-8d7b-12977e46ad98
2009-08-12Ticket #866: Allow application to specify more than one STUN servers for ↵Benny Prijono
more robustness, and continue application startup if STUN resolution fails PJSUA-LIB: - New fields in pjsua_config to specify more than one STUN servers (the stun_srv_cnt and stun_srv array) - The existing stun_host and stun_domain fields are deprecated, but backward compatibility is maintained. If stun_srv_cnt is zero, the library will import the entries from stun_host and stun_domain - The library will now resolve the STUN server entries one by one and test it before using it - New auxiliary API pjsua_resolve_stun_servers() to perform resolution and test against array of STUN servers pjsua application: - The "stun-srv" command line options can now be specified more than once git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2864 74dad513-b988-da41-8d7b-12977e46ad98
2009-08-11Ticket #833:Nanang Izzuddin
- Renamed pjsip_timer_default_setting() to pjsip_timer_setting_default(). - Updated session timer settings in pjsua-lib as whole session timer setting struct (pyhton version remains using se & min_se). - Added output param SIP status code in pjsip_timer_process_resp() and pjsip_timer_process_req() to specify the corresponding SIP status code when function returning non-PJ_SUCCESS. - Fixed print header functions in sip_timer.c to have buffer check. - Added PJSIP_SESS_TIMER_DEF_SE setting to specify the default value of session timer interval. - Fixed role reference of the refresher, it is transaction role, not dialog role. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2859 74dad513-b988-da41-8d7b-12977e46ad98
2009-08-11Ticket #833:Nanang Izzuddin
- Initial version of Session Timers (RFC 4028). - Added new options in pjsua app to configure Session Timers settings. - Added python tests for Session Timers. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2858 74dad513-b988-da41-8d7b-12977e46ad98
2009-06-04More ticket #878 (New PJLIB API to parse socket address string):Benny Prijono
- updated PJSUA-LIB to use the new API git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2744 74dad513-b988-da41-8d7b-12977e46ad98
2009-05-29Integration of Sipit24 branch, many tickets involved:Benny Prijono
- #793: AMR encoder should regard 'mode-set' param specified by remote decoder. - #831: Automatically switch to TCP transport when sending large request - #832: Support for outbound proxy setting without using Route header - #849: Modify conference audio switch behavior in connecting ports. - #850: Remove 'Require=replaces' param in 'Refer-To' header (in call transfer with replaces). - #851: Support for regular nomination in ICE - #852: --ip-addr support for IPv6 for media transport in pjsua - #854: Adding SOFTWARE attribute in all outgoing requests may cause compatibility problem with older STUN server (thanks Alexei Kuznetsov for the report) - #855: Bug in digit map frequencies for DTMF digits (thanks FCCH for the report) - #856: Put back the ICE candidate priority values according to the default values in the draft-mmusic-ice - #857: Support for ICE keep-alive with Binding indication - #858: Do not authenticate STUN 438 response - #859: AMR-WB format param in the SDP is not negotiated correctly. - #867: Return error instead of asserting when PJSUA-LIB fails to open log file git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2724 74dad513-b988-da41-8d7b-12977e46ad98
2009-05-07Ticket #827: Option in PJSUA-LIB logging config to append existing log file ↵Benny Prijono
(thanks Robert Cichielo for the suggestion) git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2686 74dad513-b988-da41-8d7b-12977e46ad98
2009-03-12(Major) Task #737 and #738: integration of APS-Direct and Audiodev from ↵Benny Prijono
aps-direct branch to trunk. git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2506 74dad513-b988-da41-8d7b-12977e46ad98
2009-03-02Ticket #732:Nanang Izzuddin
- Added new Symbian specific API in PJLIB, pj_symbianos_set_connection_status(), to let PJLIB knows the connection status. - Added connection status checks before Symbian socket operations. - Added loop limiter in Symbian busy_sleep() to avoid the possibility of infinite loop. - Added sample of connection monitor in Symbian sample application (ua.cpp). git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@2481 74dad513-b988-da41-8d7b-12977e46ad98