* Add group lock to media transport
* Also add group lock to SRTP-DTLS
* Put lock protection to avoid race condition between destroy() & dtls_on_recv()
* 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()
* - 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.
- Fix assertion when DTLS tries to attach transport, but the ICE transport's source RTP address hasn't been updated.
- Fix DTLS transport attachment in dtls_media_start() which misses rtcp-mux checking, causing rtcp-mux to be disabled.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5852 74dad513-b988-da41-8d7b-12977e46ad98
- Updated DTLS-SRTP to ignore stray packet after DTLS nego has been completed.
- Added few debugging logs.
- Fixed false SSL error.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5847 74dad513-b988-da41-8d7b-12977e46ad98
- For better interoperability, check remote support for DTLS-SRTP by inspecting SDP a=fingerprint availability instead of UDP/TLS/SRTP/SAVP.
- Bailout DTLS-SRTP when SDP a=fingerprint is not available.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5823 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed memory leak due to not destroyed DTLS-SRTP keying (when it is not active).
- DTLS-SRTP must not destroy itself, keying destroy must be initiated by SRTP.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5794 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed DTLS-SRTP issues with AEAD_AES_256_GCM crypto, e.g: material buffer length too short, silly mistake of missing comma in PJSIP-OpenSSL crypto map.
- Fixed SRTP error PJMEDIA_SRTP_ESDPREQCRYPTO when crypto count is set to zero and SRTP is in mandatory mode.
- Fixed SRTP transport attach where stream RTP/RTCP reception callbacks may be overriden by DTLS-SRTP.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5781 74dad513-b988-da41-8d7b-12977e46ad98
- Added new APIs:
* PJMEDIA: pjmedia_srtp_enum_crypto(), pjmedia_srtp_enum_keying()
* PJSUA: pjsua_config.srtp_opt, pjsua_acc_config.srtp_opt, pjsua_srtp_opt_default()
* PJSUA2: AccountMediaConfig::srtpOpt, Endpoint::srtpCryptoEnum()
- Deprecated PJSUA callback on_create_media_transport_srtp() (not removed yet, just warnings).
- Slightly refactored SRTP code:
* Fixed potential issue with on_create_media_transport_srtp(), some PJSUA internal values in pjmedia_srtp_setting may be overridden by app.
* Fixed few issues in SRTP and keying mechanism, e.g: premature local SDP modification (it should be done after verification).
* Potential minor backward compatibility issue: default value of pjmedia_srtp_setting.crypto_count is now zero, previously it was initialized with all crypto via pjmedia_srtp_setting_default(), actually zero and all cryptos in this setting semantically are the same.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5755 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed crash in media transport when application calls detach() while the transport only implements detach2().
- Avoid assertion in UDP media transport when calling detach() without previously calling attach().
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5750 74dad513-b988-da41-8d7b-12977e46ad98
- Fixed re-INVITE scenario: always generate SRTP attr in SDP re-offer/answer as both offerer/answerer (as long as SRTP is not disabled of course), currently it does not generate SRTP attr if active session does not use SRTP.
- Fixed bug in retrieving video stream info from SDP that caused DTLS transport (UDP/TLS/RTP/SAVP) getting rejected.
- Added pjsua app param '--srtp-keying=0/1' to choose SRTP keying to be used in the outgoing offer (0=SDES (default), 1=DTLS-SRTP).
- Few minors, e.g: adding transport_srtp_dtls/sdes.c to pjmedia MSVC2015 project.
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@5746 74dad513-b988-da41-8d7b-12977e46ad98