* 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.