res_pjsip: Add 100rel option "peer_supported".

This patch adds a new option to the 100rel parameter for pjsip
endpoints called "peer_supported". When an endpoint with this option
receives an incoming request and the request indicated support for the
100rel extension, then Asterisk will send 1xx responses reliably. If
the request did not indicate 100rel support, Asterisk sends 1xx
responses normally.

ASTERISK-30158

Change-Id: Id6d95ffa8f00dab118e0b386146e99f254f287ad
This commit is contained in:
Maximilian Fridrich
2022-07-26 15:40:26 +02:00
committed by Michael Bradeen
parent 2043234cf4
commit 492c93861c
6 changed files with 134 additions and 7 deletions

View File

@@ -449,6 +449,20 @@ struct ast_sip_contact_wrapper {
struct ast_sip_contact *contact;
};
/*!
* \brief 100rel modes for SIP endpoints
*/
enum ast_sip_100rel_mode {
/*! Do not support 100rel. (no) */
AST_SIP_100REL_UNSUPPORTED = 0,
/*! As UAC, indicate 100rel support in Supported header. (yes) */
AST_SIP_100REL_SUPPORTED,
/*! As UAS, send 1xx responses reliably, if the UAC indicated its support. Otherwise same as AST_SIP_100REL_SUPPORTED. (peer_supported) */
AST_SIP_100REL_PEER_SUPPORTED,
/*! Require the use of 100rel. (required) */
AST_SIP_100REL_REQUIRED,
};
/*!
* \brief DTMF modes for SIP endpoints
*/
@@ -981,6 +995,8 @@ struct ast_sip_endpoint {
AST_STRING_FIELD_EXTENDED(geoloc_incoming_call_profile);
/*! The name of the geoloc profile to apply when Asterisk sends a call to this endpoint */
AST_STRING_FIELD_EXTENDED(geoloc_outgoing_call_profile);
/*! 100rel mode to use with this endpoint */
enum ast_sip_100rel_mode rel100;
};
/*! URI parameter for symmetric transport */