summaryrefslogtreecommitdiff
path: root/res
AgeCommit message (Collapse)Author
2018-03-21Merge "rtp: Add REMB RTP property and set it on PJSIP video RTP."Jenkins2
2018-03-20Merge "BuildSystem: Remove unused dependency on libltdl."Joshua Colp
2018-03-19Merge "loader: Convert reload_classes to built-in modules."Jenkins2
2018-03-19rtp: Add REMB RTP property and set it on PJSIP video RTP.Joshua Colp
This change adds a property to RTP instances to indicate that REMB support is enabled and that sending/receiving should be passed through. This also enables it on video RTP instances in PJSIP if WebRTC support is enabled. Finally the goog-remb extension is added to the SDP using the rtcp-fb attribute to indicate our support for it. Details about REMB can be found on the draft document for it: https://tools.ietf.org/html/draft-alvestrand-rmcat-remb-03 Change-Id: I1902dda1c0882bd1a0d71b2f120684b44b97e789
2018-03-17BuildSystem: Remove unused dependency on libltdl.Alexander Traud
Asterisk does not need the development package of libltdl, because it does not use any symbol of -lltdl directly. Instead, it uses the runtime package via the shared library -lodbc. On the supported platforms, that shared library declares its dependency on -lltdl correctly, otherwise AST_EXT_LIB_CHECK would have failed. ASTERISK-27745 Change-Id: Icd315809b8e7978203431f3afb66240dd3a040ba
2018-03-14res_pjsip_rfc3326.c: Account for more than one 'Reason' headerRoss Beer
ASTERISK-27741 Change-Id: I0aa59a54735c6d20b95c54db1bd095dbf93e7adf
2018-03-14Merge "res_srtp: Add support for libsrtp2.x on openSUSE."Joshua Colp
2018-03-14loader: Convert reload_classes to built-in modules.Corey Farrell
* acl (named_acl.c) * cdr * cel * ccss * dnsmgr * dsp * enum * extconfig (config.c) * features * http * indications * logger * manager * plc * sounds * udptl These modules are now loaded at appropriate time by the module loader. Unlike loadable modules these use AST_MODULE_LOAD_FAILURE on error so the module loader will abort startup on failure of these modules. Some of these modules are still initialized or shutdown from outside the module loader. logger.c is initialized very early and shutdown very late, manager.c is initialized by the module loader but is shutdown by the Asterisk core (too much uses it without holding references). Change-Id: I371a9a45064f20026c492623ea8062d02a1ab97f
2018-03-13Merge "core: Remove ABI effects of MALLOC_DEBUG."Jenkins2
2018-03-12Merge "Replace direct checks of option_debug with DEBUG_ATLEAST macro."Jenkins2
2018-03-12Merge "Complete deprecating legacy modules."Jenkins2
2018-03-12Merge "res_pjsip_session: properly handle SDP from a forked call with early ↵Jenkins2
media"
2018-03-12Merge "BuildSystem: Depend not implicitly but explicitly on external libraries."Jenkins2
2018-03-12res_srtp: Add support for libsrtp2.x on openSUSE.Alexander Traud
Since ASTERISK-27253, no symbols from the header srtp2/crypto_types.h are used anymore. Therefore, its include statement can be removed. This allows to compile Asterisk on platforms which do not offer this private header, like openSUSE. ASTERISK-27733 Change-Id: I25c5cb8fa966043d1506ebef449e5a724412b4b6
2018-03-09Merge "res_http_post: Enable GMime in NetBSD."Jenkins2
2018-03-08Complete deprecating legacy modules.Richard Mudgett
The menuselect comment was updated to deprecate these modules but the AST_MODULE_INFO block at the end of file was missed. ASTERISK-27671 Change-Id: I63070b5c4d4f08af010c6034acd4793c1bcef839
2018-03-07Replace direct checks of option_debug with DEBUG_ATLEAST macro.Corey Farrell
Checking option_debug directly is incorrect as it ignores file/module specific debug settings. This system-wide change replaces nearly all direct checks for option_debug with the DEBUG_ATLEAST macro. Change-Id: Ic342d4799a945dbc40ac085ac142681094a4ebf0
2018-03-07res_pjsip_rfc3326: Order of 'Reason' headers break many endpointsRoss Beer
ASTERISK-27554 Change-Id: If61c7faab7d2fa1031c056ed6268fe928e2391cf
2018-03-06res_pjsip_session: properly handle SDP from a forked call with early medialvl
In handle_negotiated_sdp(), use session->active_media_state when session->pending_media_state is empty. The 200's SDP should be fed into handle_negotiated_sdp_session_media() together with the already negotiated state, which is now in session->active_media_state instead. Only if both the session's pending and active media are empty should handle_negotiated_sdp() abort. ASTERISK-27441 Change-Id: If0d5150ffe6f38d8a854831fef37942258d4629c
2018-03-06BuildSystem: Depend not implicitly but explicitly on external libraries.Alexander Traud
ASTERISK-27722 Change-Id: Ie7b8c30d86cb00a54d6ac4e09e6f28f42d2bd52c
2018-03-05res_http_post: Enable GMime in NetBSD.Alexander Traud
ASTERISK-27719 Change-Id: I230c5f9f316b2e9465c093c13580f72ebbaf67a7
2018-03-05Merge "pjproject: Add cache_pools debugging option."Jenkins2
2018-03-01core: Remove ABI effects of MALLOC_DEBUG.Richard Mudgett
This allows asterisk to be compiled with MALLOC_DEBUG to load modules built without MALLOC_DEBUG. Now pre-compiled third-party modules will still work regardless of MALLOC_DEBUG being enabled or not. Change-Id: Ic07ad80b2c2df894db984cf27b16a69383ce0e10
2018-03-01Merge "res_pjsip_refer.c: Fix attended transfer race condition crash."Jenkins2
2018-02-28pjproject: Add cache_pools debugging option.Richard Mudgett
The pool cache gets in the way of finding use after free errors of memory pool contents. Tools like valgrind and MALLOC_DEBUG don't know when a pool is released because it gets put into the cache instead of being freed. * Added the "cache_pools" option to pjproject.conf. Disabling the option helps track down pool content mismanagement when using valgrind or MALLOC_DEBUG. The cache gets in the way of determining if the pool contents are used after free and who freed it. To disable the pool caching simply disable the cache_pools option in pjproject.conf and restart Asterisk. Sample pjproject.conf setting: [startup] cache_pools=no * Made current users of the caching pool factory initialization and destruction calls call common routines to create and destroy cached pools. ASTERISK-27704 Change-Id: I64d5befbaeed2532f93aa027a51eb52347d2b828
2018-02-23Add extended properties to rtp_engine for RTP retransmission support.Ben Ford
A couple of additional properties are needed in rtp_engine to enable support for packet retransmission: AST_RTP_PROPERTY_RETRANS_RECV and AST_RTP_PROPERTY_RETRANS_SEND. These will both be enabled automatically if an endpoint has the webrtc option enabled. While this adds no functionality currently, it will serve as a building block for future changes for RTP retransmission support. For more information, refer to the wiki page: https://wiki.asterisk.org/wiki/display/AST/WebRTC+User+Experience+Improvements Change-Id: Ic598acd042a045f9d10e5bdccb66f4efc9e587cc
2018-02-23Merge "res_rtp_asterisk: Fix ICE candidate nomination"George Joseph
2018-02-22res_pjsip_refer.c: Fix attended transfer race condition crash.Richard Mudgett
The transferrer's session channel was destroyed by the transferrer's serializer thread in a race condition with the transfer target's serializer thread during an attended transfer. The transfer target's serializer was attempting to clean up a deferred end status on behalf of the transferrer's channel when it should have passed the action to the transferrer's serializer. When the transfer target's serializer lost the race then both threads wind up trying to end the transferrer's session. * Push the ast_sip_session_end_if_deferred() call onto the transferrer's serializer to avoid a race condition that results in a crash. The session_end() function that could be called by ast_sip_session_end_if_deferred() really must be executed by the transferrer's serializer to avoid this kind of crash. ASTERISK-27568 Change-Id: Iacda724e7cb24d7520e49b2fd7e504aa398d7238
2018-02-21Merge "AST-2018-006: Properly handle WebSocket frames with 0 length payload."Kevin Harwell
2018-02-21Merge "AST-2018-005: res_pjsip_transport_management: Move to core"George Joseph
2018-02-21Merge "AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)"George Joseph
2018-02-21Merge "AST-2018-005: Add a check for NULL tdata in ast_sip_failover_request"George Joseph
2018-02-21AST-2018-006: Properly handle WebSocket frames with 0 length payload.Sean Bright
In ast_websocket_read() we were not adequately checking that the payload_len was non-zero before passing it to ws_safe_read(). Calling ws_safe_read with a len argument of 0 will result in a busy loop until the underlying socket is closed. ASTERISK-27658 #close Change-Id: I9d59f83bc563f711df1a6197c57de473f6b0663a
2018-02-21AST-2018-005: res_pjsip_transport_management: Move to coreGeorge Joseph
Since res_pjsip_transport_management provides several attack mitigation features, its functionality moved to res_pjsip and this module has been removed. This way the features will always be available if res_pjsip is loaded. ASTERISK-27618 Reported By: Sandro Gauci Change-Id: I21a2d33d9dda001452ea040d350d7a075f9acf0d
2018-02-21AST-2018-005: Fix tdata leaks when calling pjsip_endpt_send_response(2)George Joseph
pjsip_distributor: authenticate() creates a tdata and uses it to send a challenge or failure response. When pjsip_endpt_send_response2() succeeds, it automatically decrements the tdata ref count but when it fails, it doesn't. Since we weren't checking for a return status, we weren't decrementing the count ourselves on error and were therefore leaking tdatas. res_pjsip_session: session_reinvite_on_rx_request wasn't decrementing the ref count if an error happened while sending a 491 response. pre_session_setup wasn't decrementing the ref count if while sending an error after a pjsip_inv_verify_request failure. res_pjsip: ast_sip_send_response wasn't decrementing the ref count on error. ASTERISK-27618 Reported By: Sandro Gauci Change-Id: Iab33a6c7b6fba96148ed465b690ba8534ac961bf
2018-02-21AST-2018-005: Add a check for NULL tdata in ast_sip_failover_requestGeorge Joseph
It was discovered that there are some corner cases where a pjsip tsx might have no last_tx so calling ast_sip_failover_request with a NULL last_tx as its tdata would cause a crash. ASTERISK-27618 Reported By: Sandro Gauci Change-Id: Ic2b63f6d4ae617c4c19dcdec2a7a6156b54fd15b
2018-02-21AST-2018-004: Restrict the number of Accept headers in a SUBSCRIBE.Joshua Colp
When receiving a SUBSCRIBE request the Accept headers from it are stored locally. This operation has a fixed limit of 32 Accept headers but this limit was not enforced. As a result it was possible for memory outside of the allocated space to get written to resulting in a crash. This change enforces the limit so only 32 Accept headers are processed. ASTERISK-27640 Reported By: Sandro Gauci Change-Id: I99a814b10b554b13a6021ccf41111e5bc95e7301
2018-02-20Merge "res_http_websocket: Don't leak memory on read failure"Jenkins2
2018-02-19Merge "res_pjsip_header_funcs: Various cleanups"Jenkins2
2018-02-19Merge "res_pjsip: Use pjsip_sip_uri.user_param instead of other_param"Jenkins2
2018-02-19res_rtp_asterisk: Fix ICE candidate nominationThomas Guebels
If the ICE role is not set right away, we might have a role conflict that stays undetected and ICE finishing with successful tests and no candidate nominated. This was introduced by ASTERISK-27088. To avoid this, we set the role as soon as before but only if the ICE state permits it: still checking and not yet nominating candidates or completed. ASTERISK-27646 Change-Id: I5dbc69ad63cacbb067922850fbb113d479bd729c
2018-02-19res_http_websocket: Don't leak memory on read failureSean Bright
Change-Id: Ic449ea832bc81a1671c0e910c5fbe8c683e3da89
2018-02-19Merge "Deprecate legacy modules."Jenkins2
2018-02-18res_pjsip_header_funcs: Various cleanupsSean Bright
* Prefer strcasecmp() over stricmp() * Use a list with no lock since we never actually lock * Minor cleanups to error messages Change-Id: I8446f44795ee8f3072e1c1f9193c6912dfc0c42b
2018-02-16res_pjsip: Endpoint destruction does not free DTLS configurationSean Bright
ASTERISK-27679 #close Reported by: Mak Dee Change-Id: I89a2783a11be0763bf123d1619ed176b6225cf42
2018-02-16res_calendar: Specialized calendars depend on symbols of general calendar.Alexander Traud
ASTERISK-27680 Change-Id: Ifb77912e424fe3710a025c18526fada673ec0b79
2018-02-15res_pjsip: Use pjsip_sip_uri.user_param instead of other_paramSean Bright
There is a dedicated slot in the pjsip_sip_uri for the 'user' parameter, so use that instead of adding to the list of generic URI parameters. Change-Id: I0a0ce8a60ecee27489735bf56fd707719d8c2ed6
2018-02-13Deprecate legacy modules.Corey Farrell
* app_fax (replaced by res_fax). * res_config_sqlite (replaced by res_config_sqlite3). * res_monitor (replaced by app_mixmonitor). This is related to ASTERISK~23657 but does not resolve that ticket. Resolving that ticket would require complete removal of res_monitor. ASTERISK-27671 #close Change-Id: I16a3edd61fc1abd4a7b2e9357693ed663f62dd49
2018-02-06Merge "endpoint identifiers: Some code cleanup."Jenkins2
2018-02-05Merge "res_pjsip/config_domain_aliases.c: Add check for missing domain."Jenkins2