* Suppress compile warnings
* Disable ioqueue stress test on VS2005 due to compile errors on structure data initialization (using C99 way, while VS2005 does not seem to support it).
* Option to use SIP UPDATE for refreshing calls in IP change
* Updated docs
* Add AccountIpChangeConfig.reinvUseUpdate in PJSUA2
* Add logs for debugging and display menu 'I' for IP change in pjsua app (the IP change action was already there just hidden).
The execinfo.h header is GNU specific and is not available with musl.
Gentoo Issue: https://bugs.gentoo.org/867343
Co-authored-by: jimying <yingqw.js@gmail.com>
* Don't set media state to active when SDP contains "a=inactive" attribute
* Implement alternative 2
* Handle release hold using PJSUA_CALL_SET_MEDIA_DIR
* Revert "Handle release hold using PJSUA_CALL_SET_MEDIA_DIR"
This reverts commit 63b4d43ec7.
* Revert "Implement alternative 2"
This reverts commit 08fbd7dd32.
* Implement suggestion
* Implement changes in #1899 for video
With changing accounts, memory of obsolete account gets re-used for
new one, be sure tp_type does not keep random type of whatever
account-setup was using the memory beforehand.
* Improve robustness of sample apps. Fixing crash in aviplay
* Changes in documentation
* Add first pjsua2 hello world sample (from PJSUA2 guide)
* Fix doxygen documentation for docs.pjsip.org v2
* Add make clean-doc target
* Replace Trac ticket URL with GitHub issues URL
* Remove pjsip-book because the correct one is in pjproject_docs
Warning: potential backward incompatibility issue, previously the replacing call can use any account (selected using pjsua_acc_find_for_incoming() and app may override via callback), now it is forced to use the same account.
* Use PJ_ASSERT_RETURN on pjsip_auth_create_digest
* Use PJ_ASSERT_RETURN on pjsua_init_tpselector()
* Fix incorrect check.
* Add return value to pjsip_auth_create_digest() and pjsip_auth_create_digestSHA256()
* Modification based on comments.
* Suppressed various compilation warnings
* Fixed CodeQL warning
* Fixed build warning on Android and Linux
* Fix build warning on Visual Studio
* Update target Android SDK version to 29 (for pjsua2 & app), to avoid gradle error: 'Google Play requires that apps target API level 29 or higher'.
* Add support for Camera2 API to ipjsua android app.
* Fix assertion on Win32 app (MSVC2005) because ICE transport info size is 160 bytes while the allocated buffer is just 144 bytes.
* Enable python unit test on windows for github actions.
* Avoid assertion in pjsua test caused by double calling of pjsua_conf_remove_port()
* Update pjsip_ua_unregister_dlg():
- update the hash key if the dialog being unregistered is used as hash key.
- add an assertion check to make sure that the dlg_set to be removed is valid (can be found in the hash table).
* Change hash key string comparison method.
* Release wav player and recorder pool on pjsua_destroy2()
* Modification based on comments
* Modification based on comments
* modification based on comments
* Added pjsip_tsx_set_timers to change timers at runtime
Added new function pjsip_tsx_set_timers in sip_transaction.c
which allows to change session timers during runtime.
It also allows to change timer values independently,
currently all timers are set at various ratios from
t1 during init. This was required for server which could
change timeout configuration on runtime, but could be
usable in other projects.
* Add synchronization of timer values in pjsip_cfg().
Add synchronization of timer values to pjsip_cfg() and another
function to (re)synchronize timer values from pjsip_cfg(),
`pjsip_tsx_initialize_timer_values()`.
`pjsip_tsx_set_timers` now accepts zeroed arguments to mean
that it should not change that timer value.
Added the following APIs:
pjsip_multipart_find_part_by_header()
pjsip_multipart_find_part_by_header_str()
pjsip_multipart_find_part_by_cid_str()
pjsip_multipart_find_part_by_cid_uri()
* Fix issues in updating media dir to NONE in the middle of a call
* Update PJSUA2 CallSetting::mediaDir declaration for SWIG. Note: adding SWIG template for MediaDirVector as vector of pjmedia_dir enum causes some error: SWIG treats enum as int, so vector of pjmedia_dir will be wrapped as vector of int, as there is already IntVector, SWIG rejects duplicated vector of int.
* Add support to ARM64 configuration for win32 build
* Add changes notes to webrtc and webrtc_aec3 third party sources
* Remove reference to libwebrtc_aec3 from libpjproject. Add reference it manually if libwebrtc_aec3 is needed.
* Fix build error on Release configuration.
- Add new APIs to update/refresh video conference bridge port: `pjmedia_vid_conf_update_port(), pjsua_vid_conf_update_port(), VideoMedia::update()`.
- Use the new API in PJSUA-LIB to update renderer & stream decoder in format changed event.
* - Avoid SSL socket parent/listener getting destroyed during handshake by increasing parent's reference count.
- Add missing SSL socket close when the newly accepted SSL socket is discarded in SIP TLS transport.
* - Fix silly mistake: accepted active socket created without group lock in SSL socket.
- Replace assertion with normal validation check of SSL socket instance in OpenSSL verification callback (verify_cb()) to avoid crash, e.g: if somehow race condition with SSL socket destroy happens or OpenSSL application data index somehow gets corrupted.
- Add fullscreen mode PJMEDIA_VID_DEV_FULLSCREEN_DESKTOP (no video mode change), which is mapped to SDL_WINDOW_FULLSCREEN_DESKTOP.
- Fix resizing while in full-screen.
- Update PJSUA, PJSUA2 & pjsua app, e.g: fullscreen setting was boolean (fullscreen enabled/disabled), now it is enum: disabled, fullscreen, or fullscreen desktop.
* Avoid deadlock when restarting SIP UDP transport due to holding pjsua
lock.
* Add callback to lock/unlock any lock held when waiting for the read spin loop finish.
* Use simpler approach by unlocking before restarting UDP transport.
* Add doc to pjsip_udp_transport_restart() and pjsip_udp_transport_restart2() of the possibility of deadlock.
- Improve trickling state management (fix no SIP INFO when initial INVITE responded immediately with 200, strayed SIP INFO after trickling is done, etc).
- Fix issues when rtcp-mux is enabled.
- Allow process incoming SIP INFO before receiving remote SDP.
- Use regular ICE on re-INVITE (with reinit media flag).
- Avoid calling pj_ice_strans_get_running_comp_cnt() for loop condition.
- Fix bug in pjnath-test: TURN server set wrong peer channel number.
- Added timer for end-of-candidate indication from remote & don't flag ice-mismatch if remote uses default address in trickle ICE
* Implement android AMediaCodec AVC/VPX codec.
* - Change "anmed" to "and_media" prefix for clearity.
- Check if encoder/decoder exists before enabling codec.
* Fix bug on enum info.
* Add support to AMRNB and AMRWB audio codec.
* Modification based on comments.
* - move VPX packetizer from codec implementation.
* - Remove unwanted changes.
- Fix bug on vpx (VP9) packetize method.
* - New method to initialize vpx packetizer config.
- Don't use pt as codec id.
* add compiler option to prioritze using software or hardware codec.
* add documentation related to packetization mode for H264.
* fix some potential compile error.
* Specify video codec PT to support #2656.
* Add option to always use VPIO on coreaudio dev.
* Revert "Add option to always use VPIO on coreaudio dev."
This reverts commit 55d6da5b4b.
* Allow EC to be enabled when sound device is opened on speaker only mode.
* Modify assertion to allow ec to be set on playback only mode.
- Allow <note> element in <tuple> set in pjsip_pres_status.info[0].rpid.note without having RPID element in presence message body.
- Fix wrong parent node for finding note element in get_tuple_note().
- Update docs: fix typo, etc.
* Handle race condition between transport_idle_callback() and pjsip_tpmgr_acquire_transport2().
* Add transport destroy state check as additional of transport shutdown state check
* send keep alive when stream is started.
* modification based on comments.
* Add documentation.
* Modification based on comments.
* Grouped configuration.
Also updated docs:
- on_send_ack(): explicitly mention that ACK request must be created using pjsip_inv_create_ack().
- pjsip_inv_create_ack(): SDP answer to be set using pjsip_inv_set_sdp_answer(), was pjsip_create_sdp_body().
Make several pool sizes settable via compile time macro settings. This can be used to deal with memory fragmentation issues in long running applications that encounter temporary high loads.
* Possible leak tdata when receiving 200 OK response after the invite
session was destroyed.
* Add comments linking the PR to the changes.
* Add safety check.
* Fix possible leaked tdata when ACK is not sent due to timeout.
* - Allow demote SRTP call to RTP when using re-INVITE with
PJSUA_CALL_REINIT_MEDIA
- DTLS renegotiation when receiving re-INVITE with modified media
transport address
* Revert DTLS_DEBUG to 0.
* modification based on comments.
* modified comment.
* Some targets residing in `OBJDIRS` are missing a dependency on that directory, which results in a race condition, causing build to fail sometimes due to the directory not existing when running parallel builds.
* The `PJSUA_LIB` variable is not defined anywhere, resulting in an empty value, and no correct dependency on the pjsua shared library for `pjsua2`. The correct variable seems to be `PJSUA_LIB_LIB`, defined at the start of this same `Makefile`.
* pjsua-test:
- Update pjsua-test module call: wait ICE update before checking media
- Attempt to fix all failed tests by sipp module: changed SIPp port from 6000 to 50070 (port used by recvfrom module)
- Update call module: confirm codec priority after change, fix DTLS-SRTP expect may race with state CONFIRMED
- Add timeout check in telnet-ing to pjsua
- ICE nego may race with call state CONFIRMED, so mod call better just sleep instead of expecting 'ICE nego success'.
* Other unit tests:
- Print stack trace on crash on Linux and DarwinOS via SIGSEGV signal handler.
- Update resolver test: print log on callback error, replace assertion checks with error return, fix comments, sleep periods, fix received packet count may be > 1 if server ignore the request (for example when the test machine experiencing high CPU load).
- Update ccpp.yml: add -g for jobs with unit-tests.
- More lenient on tsx retransmission count check in pjsip-test.
- Update tsx_uac/s_test.c: allow retransmission timing diff from 150 to 500ms to accommodate possible CPU spike on some test machines.
* pjsip: Add new status phrases
Taken from various (newer) SIP RFC's.
* psjip: Make status phrases match the RFC's
Replace homebrew phrases with the standard phrases from the SIP RFC's.
* pjsip: Add new status codes to pjsip_status_code enum
* Update symbols.i
* Fix indentation of symbols.i
Co-authored-by: sauwming <ming@teluu.com>