Floor control is a means to manage joint or exclusive access to shared resources in a (multiparty) conferencing environment. It enables applications or users to gain safe and mutually exclusive or non-exclusive input access to the shared object or resource. The "Floor" is an individual temporary access or manipulation permission for a specific shared resource (or group of resources) RFC 4376. Floor control is an optional procedure; where "shall" is used it is meant that this is basic required functionality within the feature.
The MRF shall support the Floor Control function, including: the "conference policy" related to Floor control and the communication between the Floor control functional entities (the Floor Participant, the Floor Chair and the Floor Control Server).
1)
The MRF shall support the following Floor control policy related to Floor control:
Whether the Floor control is in use or not.
The algorithm to be used in granting the Floor.
The following algorithms shall be supported:
FCFS (First Come First Served)
The following algorithms may be supported:
Chair-Controlled
The maximum number of users who can hold the Floor at the same time.
To assign and modify the Floor Chair, if the Floor is Chair-controlled.
The MRF may support the following:
Announcements/tones from network for indicating when a user gets and looses the hold of the Floor (note: announcement may also be text or indication in video)
2)
The MRF, acting as FCS, shall support the communication with the Floor Participants and the Floor Chairs according to the BFCP protocol as described in RFC 4582 , providing:
Communication between Floor Participant and FCS such that the participant shall be able to request/ modify /release a Floor for the Floor Participant himself or a third-party Floor Participant;
Communication between Floor Chair and FCS such that the Chair shall be able to receive Floor requests and to grant/ reject/ revoke the Floor requests.
Figure 5.14.4.1.1 shows a Floor Participant requesting the Floor to obtain the right to talk during a conference. The UE#1 is a Floor Participant, the Floor of the "right to talk" is Chair-controlled and the UE#2 is the Floor Chair of the conference.
Conference session with UE#1 & UE#2 established
The UE#1 and UE#2 are participants of an existing conference. The BFCP connections between the participant and the MRF need to be established before the BFCP communication.
Figure 5.14.4.2.1 shows a Floor Participant requesting to release the Floor to give up the right to talk during a conference. The UE#1 is a Floor Participant and owns the Floor of the "right to talk", the Floor is Chair-controlled and the UE#2 is the Floor Chair of the conference.
Conference session with UE#1 & UE#2 established
The UE#1 and UE#2 are participants of an existing conference. The BFCP connections between the participant and the MRF need to be established before the BFCP communication.
The MRFC shall indicate to the MRFP the Floor Control Policy:
The algorithm to be used in granting the Floor.
The FCFS algorithm shall be supported.
The Chair-controlled algorithm may be supported.
The maximum number of users who can hold the same Floor at the same time.
To assign and modify the Floor Chair, if the Floor is Chair-controlled.
The Floor media type shall be audio, video or a combination of one or more media type.
The association between Floors and resources.
The MRFP shall maintain the state of the Floor(s), including which Floors exists, which terminations hold which Floors, and which termination is the Floor Chair, if the floor is Chair-controlled.
The MRFC may request the MRFP to establish a BFCP connection between the MRFP (FCS) and the Client (via Floor control Client Termination).
The MRFP shall support the communication with a Floor Participant such that the participant may request/ modify /release a Floor for the Floor Participant himself or a third-party Floor Participant according to the BFCP protocol [20].
The MRFP may support the communication with Floor Chair such that the Chair shall be able to receive Floor requests and to grant/ reject/ revoke the Floor according to the BFCP protocol [20].
The MRFP shall (if requested by the MRFC) report to the MRFC any requests to change the Floor holding status. The MRFC shall indicate to the MRFP to modify the Client's access right to the media according to the changes in Floor status.
The MRFC may request the MRFP to play tones (according to clause 5.1) or announcements (according to clause 5.2) for indicating when a Client gains or loses a Floor.
A MRFC/MRFP may support Multimedia Telephony using Explicit Congestion Notification see RFC 3168, and may act as an ECN endpoint to enable ECN with a local ECN-capable terminal within a local network that properly handles ECN-marked packets.
This requires that the MRFC performs the following:
support SDP ability to negotiate ECN as described in TS 26.114.
This requires the MRFP to be capable of enabling end-to-end rate adaptation due to congestion between the local Multimedia Telephony terminal and the MRFP by performing the following towards the local Multimedia Telephony terminal:
trigger rate adaptation request towards the Multimedia Telephony terminal when receiving incoming IMS media flow IP packets marked with ECN-CE;
perform media adaptation (e.g. reduce media bit-rate) towards the Multimedia Telephony terminal when receiving from the latter an adaptation request;
if requested by the MRFC, provide notification and an ECN failure event if ECN errors or packet losses occur.
The Multimedia Priority Service (MPS) is specified in TS 22.153. The MRFC and MRFP may support the priority treatment of a call/session identified as an MPS call/session. If MPS is supported then upon receipt of the MPS priority information in the call control signalling:
The MRFC shall recognise the call/session as having priority.
The MRFC shall send the Priority information for a context to the MRFP to enable the priority treatment described below related to the MRFP.
The MRFC shall apply priority handling to H.248 transactions related to priority calls/sessions when network resources are congested, e.g., preferential treatment in any queues or buffers.
If the H.248 control association utilises a transport with the possibility for prioritisation, the MRFC may apply priority using the appropriate prioritisation procedures.
If the MPS Priority service requires a specific MPS DSCP setting, the MRFC shall configure the MRFP to apply a specific MPS DSCP marking to the user data transport packets to indicate that the packets are of a higher priority than those for normal calls.
If the MRFP receives an indication to apply a specific MPS DSCP marking to the user data transport packets, it shall apply this DSCP marking to the IP headers.
When the MRFC marks a Context with Priority information, the MRFP may use the Priority information for selecting resources for the media and signaling transport with priority. The following actions may be taken by the MRFP if it has reached a congested state:
seize priority reserved resources; or
if resources are completely congested, indicate that in a Command Response error code.
The MRFC and the MRFP may support the Coordination of Video Orientation (CVO) as defined in TS 26.114.
Upon receipt of an SDP offer containing the RTP header extension attribute(s) "a=extmap" as defined in RFC 5285 and if the "a=extmap" attribute indicates the CVO URN(s) (i.e. the CVO URN for a 2 bit granularity of rotation and/or the CVO URN for a higher granularity of rotation) as defined in TS 26.114, then:
if the MRFC and the MRFP support the CVO feature, the MRFC shall:
include an "extended RTP header for CVO" information element when seizing resources in the MRFP to indicate the MRFP that it shall allow the RTP header extension for CVO to pass; and
select exactly one of the CVO related "a=extmap" attribute from the SDP offer and include the "a=extmap" attribute indicating selected CVO URN in the SDP answer that will be sent within the SIP signalling; or
if the MRFP does not support the CVO feature the MRFC shall send the SDP answer without any CVO related "a=extmap" attribute within the SIP signalling.
When the MRFC selects one of the CVO related "a=extmap" attribute(s) from the SDP offer the MRFC shall take into consideration which CVO variant it has negotiated for CVO for other call leg(s) in the session.
If the MRFC and MRFP support the CVO feature then before sending an SDP offer, the MRFC shall:
determine based on the local policy and the CVO negotiation results on other call legs if, and with which granularity to offer CVO; and
if the MRFC determines to offer CVO:
the MRFC shall include the "extended RTP header for CVO" information element when seizing resources in the MRFP to indicate the MRFP that it shall allow the RTP header extension for CVO to pass; and
the MRFC shall include the CVO related "a=extmap" attribute in the SDP offer it sends within the SIP signalling.
If the MRFP does not support the CVO feature, the MRFC shall send the SDP offer without any CVO related "a=extmap" attribute within the SIP signalling.
If the MRFP supports the CVO feature and has been instructed to pass on the extended RTP header for CVO as described above then:
if the MRFP does not apply video transcoding, it shall pass any received RTP CVO header extension to succeeding RTP streams; or
if the MRFP applies video transcoding, it shall keep the video orientation unchanged during the transcoding and copy the received RTP CVO header extension into the succeeding RTP streams after transcoding the associated group of packets.
The MRFC and the MRFP may support the generic image attributes to negotiate the image size for sending and receiving video as required by TS 26.114.
If the MRFP and the MRFC support the negotiation of the image size and the MRFC receives an SDP offer with the media-level SDP image attribute(s) "a=imageattr", as defined in RFC 6236, and if the received image sizes are supported by the MRFP then the MRFC shall:
include the generic image attribute parameters for the send and receive directions when seizing or modifying resources in the MRFP; and
include the SDP image attribute "a=imageattr" indicating the supported image sizes in the SDP answer on the Mr interface.
When sending the SDP body with image attribute(s) on the Mr interface the MRFC shall include in the "a=imageattr":
"recv" keyword and corresponding image sizes which the MRFP supports in the receiving direction; and
"send" keyword and corresponding image sizes which the MRFP supports in the sending direction.
If the MRFP and the MRFC support the negotiation of the image size and the MRFC sends an SDP offer for subsequent call leg in a conference, the MRFC should include the SDP image attribute(s) "a=imageattr", with image sizes as supported by the MRFP and negotiated at other call legs in the session.
If the MRFC receives an SDP answer containing the SDP image attribute "a=imageattr", it shall modify resources in the MRFP if needed by indicating the supported image sizes within the generic image attribute parameter.
If the MRFC supports the negotiation of the image size and if the MRFC sends on the Mr interface the SDP body (offer or answer) it shall adjust the image sizes to be the same for the call legs in the session.
If the MRFP does not support the negotiation of the image size the MRFC shall send on the Mr interface the SDP body (offer or answer) without any image attribute "a=imageattr".
If the MRFP is configured with different image sizes on the receive direction of one termination and the send direction of another interconnected termination, then it shall adjust the frame sizes accordingly when forwarding video media streams and use the image size as described in TS 26.114 when sending media.
The MRFC and the MRFP may support Interactive Connectivity Establishment defined in RFC 8445 and RFC 8839, and TS 24.229 for NAT traversal as required by TS 23.228. The present clause describes the requirements for MRFC and MRFP when the ICE procedures are supported.
Support of full ICE functionality is optional, but if ICE is supported, the MRFC and MRFP shall at least support ICE lite as specified in RFC 8445.
The MRFC and MRFP shall only use host candidates as local ICE candidates.
If ICE is supported, the MRFC shall perform separate ICE negotiation and procedures independentantly on each call leg (e.g. with each conference participant). Furthermore, the MRFC may be configured to apply ICE procedures only towards the access network side.
When the MRFC detects no ICE parameters in the received SDP, it shall not configure the MRFP to apply any ICE and STUN related procedures toward the call leg from where the SDP has been received.
Any MRFC supporting ICE shall advertise its support of incoming STUN continuity check procedures. An MRFC supporting full ICE procedures shall in addition advertise its support for originating STUN connectivity check procedures.
If the MRFP does not indicate the support of STUN procedures, or if the MRFC is configured not to apply ICE toward a call leg, the MRFC shall not configure the MRFP to apply STUN procedures.
If the MRFC is configured to use ICE lite, or supports only ICE lite, or controls an MRFP that only support ICE lite, the procedures in the present clause apply.
If the MRFC receives an initial SDP offer with ICE candidate information but no "a=ice-lite" attribute, the MRFC:
shall request the MRFP for each media line where it decides to use ICE to reserve an ICE host candidate and provide its address information and a related ICE user name fragment and password;
shall configure the MRFP to act as STUN server at the host candidate address, i.e. to answer STUN connectivity checks;
may provide received remote ICE candidates and the received related ICE user name fragment and password to the MRFP;
if an "a=ice-options" attribute with the value "ice2" was present in the received SDP offer, shall include the "a=ice-options" attribute with the value "ice2" in the SDP answer;
shall include the host candidate and related ICE user name fragment and password received from the MRFP in the SDP answer; and
shall include the "a=ice-lite" attribute in the SDP answer.
If the MRFC receives SDP offer with ICE candidate information and an "a=ice-lite" attribute, the MRFC shall not apply ICE towards that call leg and not include any ICE related SDP attributes in the SDP answer.
If the MRFC sends an SDP offer towards a call leg where ICE is to be applied, the MRFC:
shall request the MRFP to reserve a host candidate for each media line where it decides to use ICE and provide its address information, user name fragment and password;
shall configure the MRFP to act as STUN server at the host candidate address, i.e. to answer STUN connectivity checks;
shall include the "a=ice-options" attribute with the value "ice2" in the SDP offer;
shall include the host candidate provided by the MRFP and related ICE user name fragment and password in the SDP offer; and
shall include the "a=ice-lite" attribute in the SDP offer.
If the MRFC then receives an SDP answer with candidate information from the call leg where ICE is to be applied, the MRFC may provide received remote ICE candidates and the received related ICE user name fragment and password to the MRFP.
After the initial SDP offer-answer exchange, the MRFC can receive a new offer from the peer that includes updated address and port information in the SDP "c=" line, "m=" line, or "a=rtcp" line SDP attributes. If the ICE user name fragment and password in the SDP offer differ from the ones received in the previous SDP (i.e. the peer restarts ICE), the MRFC shall apply the same procedures as for the initial SDP offer.
When receiving a request for a host candidate for a media line, the MRFP shall allocate one host candidate for that media line and send it to the MRFC within the reply. The IP address and port shall be the same as indicated separately as Local IP Resources. The MRFP shall also indicate that it supports ICE lite in the reply.
When receiving a request for an ICE user name fragment and password, the MRFP shall generate an ICE user name fragment and password and send it to the MRFC within the reply. The MRFP shall store the password and user name fragment to be able to authenticate incoming STUN binding request according to Section 7.2 of RFC 8445.
When receiving a request to act as STUN server, the MRFP shall be prepared to answer STUN binding request according to Section 7.2 of RFC 8445. Once a STUN binding request with the "USE-CANDIDATE" flag has been received, the MRFP may send media towards the source of the binding request.
If the MRFC supports and is configured to use full ICE, and controls an MRFP that supports full ICE, the procedures in the present clause apply.
If the MRFC receives an initial SDP offer with ICE candidate information, the MRFC:
shall request the MRFP for each media line where it decides to use ICE to reserve an ICE host candidate and provide its address information and a related ICE user name fragment and password;
shall request the MRFP to provide the desired pacing value for connectivity checks (Ta timer value);
shall configure the MRFP to act as STUN server at the host candidate address, i.e. to answer STUN connectivity checks;
shall provide received remote ICE candidates and the received related ICE user name fragment and password to the MRFP;
shall provide the remote pacing value to the MRFP as follows:
if the "a=ice-pacing" attribute was present in the received SDP answer, the received pacing value; or
otherwise the default pacing value of 50 ms;
if an "a=ice-options" attribute with the value "ice2" was present in the received SDP offer, shall include the "a=ice-options" attribute with the value "ice2" in the SDP answer;
shall include the "a=ice-pacing" attribute with the pacing value provided by the MRFP in the SDP answer;
shall include the host candidate and related ICE user name fragment and password received from the MRFP in the SDP answer;
shall determine the role of the MRFC in ICE (controlling or controlled) according to Section 6.1.1 of RFC 8445;
shall configure the MRFP to perform connectivity checks in accordance with the determined ICE role;
shall configure the MRFP to report connectivity check results; and
shall configure the MRFP to report a new peer reflexive candidate if discovered during the connectivity check.
If the MRFC sends an SDP offer towards a call leg where ICE is to be applied, the MRFC:
shall request the MRFP to reserve a host candidate for each media line were it decides to use ICE and provide its address information, ICE user name fragment and password;
shall request the MRFP to provide the pacing value for connectivity checks;
shall configure the MRFP to act as STUN server at the host candidate address, i.e. to answer STUN connectivity checks;
shall include the "a=ice-options" attribute with the value "ice2" in the SDP offer;
shall include the "a=ice-pacing" attribute with the pacing value provided by the MRFP in the SDP offer; and
shall include the host candidate provided by the MRFP and related ICE user name fragment and password in the SDP offer.
If the MRFC then receives an SDP answer with candidate information from the call leg where ICE is to be applied, the MRFC:
shall provide received remote ICE candidates and the received related ICE user name fragment and password to the MRFP;
shall provide the remote pacing value to the MRFP as follows:
if the "a=ice-pacing" attribute was present in the received SDP answer, the received pacing value; or
otherwise the default pacing value of 50 ms;
shall determine the role of the MRFC in ICE (controlling or controlled) according to Section 6.1.1 of RFC 8445;
shall configure the MRFP to perform connectivity checks in accordance with the determined ICE role;
shall configure the MRFP to report connectivity check results; and
shall configure the MRFP to report a new peer reflexive candidate if discovered during the connectivity check.
When the MRFC is informed by the MRFP about new peer reflexive candidate(s) discovered by the connectivity checks, it shall configure the MRFP to perform additional connectivity checks for those candidates,
When the MRFC is informed by the MRFP about successful candidate pairs determined by the connectivity checks, the MRFC shall send a new SDP offer to its peer with contents according to Section 4.4.1 of RFC 8839 if it has the controlling role and the highest-priority candidate pair differs from the default candidates in previous SDP.
After the initial SDP offer-answer exchange, the MRFC can receive a new offer from the peer that includes updated address and port information in the SDP "c=" line, "m=" line, or "a=rtcp" line SDP attributes. If the ICE user name fragment and password in the SDP offer differ from the ones received in the previous SDP (i.e. the peer restarts ICE), the MRFC shall apply the same procedures as for the initial SDP offer.
When receiving a request for a host candidate for a media line, the MRFP shall allocate one host candidate for that media line and send it to the MRFC within the reply. The IP address and port shall be the same as indicated separately as Local IP Resources.
When receiving a request to provide a desired pacing value for connectivity checks (Ta timer value), the MRFP shall calculate Ta timer value based on the characteristics of the associated data or shall use the default value of 50 ms and provide it as desired Ta timer value. The MRFP shall compare the own desired Ta timer value with the Ta timer value provided by the MRFC and shall use the higher value for connectivity checks (as specified in RFC 8445).
When receiving a request for an ICE user name fragment and password, the MRFP shall generate an ICE user name fragment and password and send it to the MRFC within the reply. The MRFP shall store the password and user name fragment to be able to authenticate incoming STUN binding request according to Section 7.3 of RFC 8445.
When receiving a request to act as STUN server, the MRFP shall be prepared to answer STUN binding request according to Section 7.3 of RFC 8445. Once a STUN binding request with the "USE-CANDIDATE" flag has been received, the MRFP may send media towards the source of the binding request.
When receiving a request to perform connectivity checks and to report connectivity check results, the IMS AGW: