The IMS-ALG and IMS-AGW may support MSRP handling. If they support MSRP handling, they shall apply the procedures as specified in the present clause 5.19.
For WebRTC terminations, MSRP is transferred over data channels. For WebRTC terminations the procedures in the present clause 5.19 shall apply with the modifications described in clause 5.19.6.
The IMS-AGW shall support application-agnostic MSRP handling.
The IMS-AGW may in addition support application-aware MSRP interworking, as described in clause 5.19.5.
between an MSRP client applying RFC 6714 and an MSRP client applying RFC 4975 without extensions by either RFC 6714 or IETF draft-ietf-simple-msrp-sessmatch.
between an MSRP client applying IETF draft-ietf-simple-msrp-sessmatch and an MSRP client applying RFC 4975 without extensions by either RFC 6714 or IETF draft-ietf-simple-msrp-sessmatch.
between an MSRP client applying RFC 6714 and an MSRP client applying IETF draft-ietf-simple-msrp-sessmatch.
between two MSRP clients applying RFC 4975 without extensions by either RFC 6714 or IETF draft-ietf-simple-msrp-sessmatch.
However, to address these scenarios, application aware MSRP interworking can also be applied in other network elements than the IMS-ALG and IMS-AGW, for instance in an CPM Participating Function or CPM Interworking Function as defined in OMA-TS-CPM_Conversation_Function-V2 [46].
The IMS-ALG procedures depend on whether the IMS-AGW applies application-agnostic MSRP interworking or application-aware MSRP interworking, and on the MSRP extensions applied on the interconnected call legs. The support of related procedures in clauses 5.19.2 to 5.19.4 below are all optional, but the IMS-ALG shall support at least one of them.
A peer applying RFC 6714 will include the "a=msrp-cema" SDP attribute in the first SDP offer it sends.
If the "a=msrp-cema" SDP attribute is contained in an SDP offer, the IMS-ALG:
shall ensure that the IMS-AGW performs application agnostic MSRP handling by not configuring the IMS-AGW to apply application-aware MSRP interworking;
shall indicate "TCP" or "TCP/TLS" (if e2ae media security is applied) as transport protocol to the IMS AGW;
shall forward the "a=path" attribute and the "a=msrp-cema" SDP attribute in the SDP offer without modification; and
shall forward the "a=path" SDP attribute in the corresponding SDP answer without modification (even if the "a=msrp-cema" SDP attribute is not contained in the answer).
If the "a=msrp-cema" SDP attribute is not contained in an SDP offer, the IMS ALG shall either apply the procedures in clause 5.19.3 or clause 5.19.4 (if supported).
A peer applying the expired IETF draft-ietf-simple-msrp-sessmatch will not include the "a=msrp-cema" SDP attribute in the SDP it sends, and will only compare the session-id part of the first MSRP URI in the SDP "a=path" attribute with the session-id part of the first MSRP URI in the "To-Path" header field of the first received MSRP packet.
If the "a=msrp-cema" SDP attribute is not contained in an SDP offer, the IMS-ALG:
shall ensure that the IMS-AGW performs application agnostic MSRP handling by not configuring the IMS-AGW to apply application-aware MSRP interworking;
shall indicate "TCP" or "TCP/TLS" (if e2ae media security is applied) as transport protocol to the IMS AGW; and
shall replace the IP address and TCP port in the only entry of the "a=path" SDP attribute in received SDP offer or answer with the IP address and TCP port allocated for the media stream at the IMS-AGW before forwarding the SDP.
shall provide the SDP "a=path" attribute, as received in SIP/SDP signalling, to the IMS AGW as "MSRP Path" with the remote descriptor of the corresponding call leg;
shall ensure that the IMS-AGW performs application aware MSRP interworking by configuring the IMS-AGW to apply application-aware MSRP interworking; and
shall indicate "TCP/MSRP" or "TCP/TLS/MSRP" (if e2ae media security is applied) as transport protocol to the IMS AGW.
If interworking between an MSRP client applying RFC 6714 and an MSRP client applying RFC 4975 without extensions by either RFC 6714 or IETF draft-ietf-simple-msrp-sessmatch needs to be supported, the IMS ALG should:
when receiving an SDP offer including the "a=msrp-cema" SDP attribute, include the "a=msrp-cema" SDP attribute in the SDP answer on that call leg;
when sending an SDP offer, include the "a=msrp-cema" SDP attribute; and
if the "a=msrp-cema" SDP attribute is not contained in a received SDP answer and the SDP c/m-line address information does not match the "a=path" attribute, send a new SDP offer without the "a=msrp-cema" SDP attribute according to RFC 6714 procedures.
The IMS AGW shall apply application-aware MSRP interworking either if being statically configured to do so, or if being instructed from the IMS-ALG. Support of dynamic instructions from the IMS-ALG is optional.
To apply application-aware MSRP interworking, the IMS-AGW:
shall modify the MSRP "To-Path" header field in application (i.e. MSRP) data by replacing the IP address and TCP port of the only entry with the corresponding information in the "MSRP path" provided by the IMS_ALG while retaining the MSRP session ID part of the entry as received in the MSRP "To-Path"; and
shall forward the MSRP data without further modification.
MSRP signalling can be transferred over WebRTC data channels as a data channel sub-protocol using the SDP offer/answer negotiation according to RFC 8873. WebRTC data channels are described in clause 5.20.2. For WebRTC terminations the procedures in clause 5.19 shall apply with the modifications described in the present clause.
Within received SIP/SDP signalling related to a WebRTC termination MSRP contents within a data channel will be marked with the "subprotocol="MSRP"" subfield in the "a=dcmap" SDP attribute according to RFC 8864. The MSRP related "a=msrp-cema", "a=path", "a=accept-types" and "a=setup" SDP attributes will be encapsulated in "a=dcsa" SDP attributes according to RFC 8864. The "a=msrp-cema" can be present or omitted in received SIP/SDP signalling related to a termination where no WebRTC data channel is to be used, but RFC 6714 is always applicable for MSRP within WebRTC data channels and the "a=msrp-cema" shall be present in SIP/SDP signalling related to a WebRTC termination.
When receiving an SDP offer including such MSRP related information in SIP/SDP signalling related to a WebRTC data channel, and forwarding the SDP offer towards a termination where no WebRTC data channel is to be used, the IMS-ALG shall:
describe each MSRP data channel in a separate SDP media line in the SDP offer it forwards;
include "a=msrp-cema", "a=path", "a=accept-types" and "a=setup" SDP attributes received encapsulated in "a=dcsa" SDP attributes in the forwarded SDP offer for the corresponding MSRP media line(s) without the encapsulation; and
execute the procedures in the clause 5.19 as if an "a=msrp-cema" SDP attribute had been received.
execute the procedures in the clause 5.19 as if an "a=msrp-cema" SDP attribute had been received.
When receiving an SDP offer including MSRP related information without an indication of WebRTC data channel usage in SIP/SDP signalling, and forwarding the SDP offer towards a termination where a WebRTC data channel is to be used, the IMS-ALG shall:
describe each received MSRP media line as a separate data channel;
include any received "a=msrp-cema", "a=path", "a=accept-types" and "a=setup" SDP attributes received for the MSRP media line(s) encapsulated in "a=dcsa" SDP attributes in the forwarded SDP offer;
if the "a=msrp-cema" SDP attribute was not received for the MSRP media line(s), include "a=msrp-cema" SDP attribute for the corresponding MSRP media line(s) encapsulated in "a=dcsa" SDP attribute in the forwarded SDP offer;
include an "subprotocol="MSRP"" subfield in a "a=dcmap" SDP attribute; and
not include the "max-retr", "max-time" and "ordered" parameters in the "a=dcmap" SDP attribute.
For terminations with MSRP within a WebRTC data channel, the IMS-ALG shall:
indicate a transport protocol according to clause 5.20.2 to the eIMS-AGW; and
for application aware MSRP interworking:
indicate that MSRP is used within the data channel to the eIMS-AGW; and
provide the SDP "a=path" attribute encapsulated in "a=dcsa" SDP attribute, as received in SIP/SDP signalling, to the eIMS AGW as "Encapsulated MSRP Path" with the remote descriptor of the corresponding call leg.