SIP_Templates: Allow passing Require,Security-client,Supported fields to REGISTER templates

These fields are used in IMS.

Change-Id: I20a0df5633db8c0e7732659c1316b85e63317afc
This commit is contained in:
Pau Espin 2024-05-10 20:30:16 +02:00
parent 89d8c952b9
commit 73f6a314df
1 changed files with 73 additions and 2 deletions

View File

@ -197,6 +197,28 @@ template (value) Expires ts_Expires(template (value) DeltaSec deltaSec := "7200"
deltaSec := deltaSec
}
// [20.32]
template (value) Require ts_Require(template (value) OptionTag_List optionsTags := {}) := {
fieldName := REQUIRE_E,
optionsTags := optionsTags
}
template (present) Require tr_Require(template (present) OptionTag_List optionsTags := ?) := {
fieldName := REQUIRE_E,
optionsTags := optionsTags
}
// [20.37]
template (value) Supported ts_Supported(template (value) OptionTag_List optionsTags := {}) := {
fieldName := SUPPORTED_E,
optionsTags := optionsTags
}
template (present) Supported tr_Supported(template (present) OptionTag_List optionsTags := ?) := {
fieldName := SUPPORTED_E,
optionsTags := optionsTags
}
template (value) SipAddr ts_SipAddr(template (value) HostPort host_port,
template (omit) UserInfo user_info := omit,
template (omit) charstring displayName := omit,
@ -442,6 +464,31 @@ ts_WwwAuthenticate(template (value) Challenge_list challenge) := {
challenge := challenge
}
// RFC3329
template (present) Security_client
tr_Security_client(template (present) Security_mechanism_list sec_mechanism_list := ?) := {
fieldName := SECURITY_CLIENT_E,
sec_mechanism_list := sec_mechanism_list
}
template (value) Security_client
ts_Security_client(template (value) Security_mechanism_list sec_mechanism_list) := {
fieldName := SECURITY_CLIENT_E,
sec_mechanism_list := sec_mechanism_list
}
template (present) Security_mechanism
tr_Security_mechanism(template (present) charstring name := ?,
template SemicolonParam_List params := *) := {
mechanism_name := name,
mechanism_params := params
}
template (value) Security_mechanism
ts_Security_mechanism(template (value) charstring name,
template (omit) SemicolonParam_List params := omit) := {
mechanism_name := name,
mechanism_params := params
}
template (value) MessageHeader ts_SIP_msgHeader_empty := c_SIP_msgHeader_empty;
template (value) MessageHeader
ts_SIP_msgh_std(template (value) CallidString call_id,
@ -455,6 +502,9 @@ ts_SIP_msgh_std(template (value) CallidString call_id,
template (omit)Authorization authorization := omit,
template (value) Method_List allow_methods := c_SIP_defaultMethods,
template (omit) Expires expires := omit,
template (omit) Require require := omit,
template (omit) Security_client security_client := omit,
template (omit) Supported supported := omit,
template (omit) WwwAuthenticate wwwAuthenticate := omit
) modifies ts_SIP_msgHeader_empty := {
allow := {
@ -479,6 +529,9 @@ ts_SIP_msgh_std(template (value) CallidString call_id,
addressField := from_addr.addr,
fromParams := from_addr.params
},
require := require,
security_client := security_client,
supported := supported,
toField := {
fieldName := TO_E,
addressField := to_addr.addr,
@ -520,6 +573,9 @@ tr_SIP_msgh_std(template CallidString call_id,
template integer seq_nr := ?,
template Method_List allow_methods := *,
template Expires expires := *,
template Require require := *,
template Security_client security_client := *,
template Supported supported := *,
template WwwAuthenticate wwwAuthenticate := *
) modifies t_SIP_msgHeader_any := {
allow := tr_AllowMethods(allow_methods),
@ -540,6 +596,9 @@ tr_SIP_msgh_std(template CallidString call_id,
addressField := from_addr.addr,
fromParams := from_addr.params
},
require := require,
security_client := security_client,
supported := supported,
toField := {
fieldName := TO_E,
addressField := to_addr.addr,
@ -561,13 +620,19 @@ ts_SIP_REGISTER(template (value) SipUrl sip_url_host_port,
template (omit) Contact contact,
template (omit) Expires expires,
template (omit) Authorization authorization := omit,
template (omit) Require require := omit,
template (omit) Security_client security_client := omit,
template (omit) Supported supported := omit,
template (omit) charstring body := omit) := {
requestLine := ts_SIP_ReqLine(REGISTER_E, sip_url_host_port),
msgHeader := ts_SIP_msgh_std(call_id, from_addr, to_addr, contact,
"REGISTER", seq_nr, via,
f_ContentTypeOrOmit(ts_CT_SDP, body),
authorization := authorization,
expires := expires),
expires := expires,
require := require,
security_client := security_client,
supported := supported),
messageBody := body,
payload := omit
}
@ -580,11 +645,17 @@ tr_SIP_REGISTER(template (present) SipUrl sip_url_host_port := ?,
template integer seq_nr := *,
template Contact contact := *,
template Expires expires := *,
template Require require := *,
template Security_client security_client := *,
template Supported supported := *,
template charstring body := *) := {
requestLine := tr_SIP_ReqLine(REGISTER_E, sip_url_host_port),
msgHeader := tr_SIP_msgh_std(call_id, from_addr, to_addr, contact,
via, "REGISTER", *, seq_nr,
expires := expires),
expires := expires,
require := require,
security_client := security_client,
supported := supported),
messageBody := body,
payload := omit
}