pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37325?usp=email )
Change subject: asterisk: IMS: Expect P-Early-Media supported in MO INVITE ......................................................................
asterisk: IMS: Expect P-Early-Media supported in MO INVITE
Change-Id: I21f2c84b50be9b16fc45fa1fe72af40d715ee883 --- M asterisk/IMS_ConnectionHandler.ttcn M library/SIP_Templates.ttcn 2 files changed, 31 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/25/37325/1
diff --git a/asterisk/IMS_ConnectionHandler.ttcn b/asterisk/IMS_ConnectionHandler.ttcn index 1305e1d..51f96ea 100644 --- a/asterisk/IMS_ConnectionHandler.ttcn +++ b/asterisk/IMS_ConnectionHandler.ttcn @@ -1413,6 +1413,7 @@ tr_Via_from(f_tr_HostPort(g_pars.subscr.remote_sip_host, g_pars.subscr.ipsec_remote_port_s)), ?, accept := tr_Accept(superset(tr_AcceptBody("application/sdp"), tr_AcceptBody("application/3gpp-ims+xml"))), + p_early_media := tr_P_Early_Media(superset("supported")), supported := tr_Supported(superset("timer")), body := ?); var charstring sip_expect_str := log2str(exp_req); @@ -1516,6 +1517,7 @@ g_pars.subscr.cp.to_addr, invite_via, g_pars.subscr.cp.sip_seq_nr, + p_early_media := ts_P_Early_Media({"recvonly"}), rseq := ts_RSeq(1), body := tx_sdp); SIP.send(tx_resp); diff --git a/library/SIP_Templates.ttcn b/library/SIP_Templates.ttcn index bfb3655..3d2112c 100644 --- a/library/SIP_Templates.ttcn +++ b/library/SIP_Templates.ttcn @@ -325,6 +325,16 @@ p_assoc_uris := p_assoc_uris }
+// RFC5009 +template (present) P_Early_Media tr_P_Early_Media(template Em_param_List em_param_list := *) := { + fieldName := P_EARLY_MEDIA_E, + em_param_list := em_param_list +} +template (value) P_Early_Media ts_P_Early_Media(template (omit) Em_param_List em_param_list := omit) := { + fieldName := P_EARLY_MEDIA_E, + em_param_list := em_param_list +} + // [RFC6050] template (present) P_Preferred_Service tr_P_Preferred_Service(template (present) Service_ID_List p_ps := ?) := { fieldName := P_PREFERRED_SERVICE_E, @@ -738,6 +748,7 @@ template (omit) MinExpires minExpires := omit, template (omit) Min_SE min_SE := omit, template (omit) P_Associated_Uri p_associated_uri := omit, + template (omit) P_Early_Media p_early_media := omit, template (omit) RAck rack := omit, template (omit) Require require := omit, template (omit) RSeq rseq := omit, @@ -769,6 +780,7 @@ minExpires := minExpires, min_SE := min_SE, p_associated_uri := p_associated_uri, + p_Early_Media := p_early_media, rack := rack, require := require, rseq := rseq, @@ -799,6 +811,7 @@ template Expires expires := *, template Min_SE min_SE := *, template P_Associated_Uri p_associated_uri := *, + template P_Early_Media p_early_media := *, template RAck rack := *, template Require require := *, template RSeq rseq := *, @@ -829,6 +842,7 @@ fromField := from_addr, min_SE := min_SE, p_associated_uri := p_associated_uri, + p_Early_Media := p_early_media, rack := rack, require := require, rseq := rseq, @@ -905,6 +919,7 @@ template (value) Contact contact, integer seq_nr, template (omit) Accept accept := omit, + template (omit) P_Early_Media p_early_media := omit, template (omit) Min_SE min_SE := omit, template (omit) Session_expires session_expires := omit, template (omit) Supported supported := omit, @@ -917,6 +932,7 @@ content_type := f_ContentTypeOrOmit(ts_CT_SDP, body), accept := accept, min_SE := min_SE, + p_early_media := p_early_media, session_expires := session_expires, supported := supported), messageBody := body, @@ -930,6 +946,7 @@ template Via via := tr_Via_from(f_tr_HostPort_opt_defport(?)), template integer seq_nr, template Accept accept := *, + template P_Early_Media p_early_media := *, template Min_SE min_SE := *, template Session_expires session_expires := *, template Supported supported := *, @@ -939,6 +956,7 @@ via, "INVITE", seq_nr, accept := accept, min_SE := min_SE, + p_early_media := p_early_media, session_expires := session_expires), messageBody := body, payload := omit @@ -1185,6 +1203,7 @@ Via via, integer seq_nr, charstring method := "INVITE", + template (omit) P_Early_Media p_early_media := omit, template (omit) Require require := ts_Require({"100rel", "precondition"}), template (omit) RSeq rseq := ts_RSeq(1), template (omit) charstring body := omit) := { @@ -1193,6 +1212,7 @@ via, content_length := f_ContentLength(body), content_type := f_ContentTypeOrOmit(ts_CT_SDP, body), + p_early_media := p_early_media, require := require, rseq := rseq), messageBody := body,