Abstract:
The invention proposes controlling a media session involving a plurality of media streams within a communications network, wherein the communications network comprises a media resource node ( 106 ) and a media control node controlling ( 102 ) the media resource node, wherein the media control node performs a method of determining that selected media streams out of the plurality of media streams are associated to each other in a media session, transmitting to the media resource node ( 106 ) an instruction to group the selected media streams of the media session, and transmitting to the media resource node ( 106 ) an instruction to prepare for performing an action with respect to the selected media streams. The invention further proposes a corresponding method to be performed in a media resource node ( 106 ), corresponding nodes ( 102, 106 ) and corresponding computer programs.

Description:
TECHNICAL FIELD 
       [0001]    The present invention relates to media handling in multimedia communications networks, and specifically relates to an interaction involving a session control protocol and a media gateway protocol. 
       BACKGROUND 
       [0002]    Modern communication networks often show a “decomposed” or layered architecture, in which the call and session control layer and the media plane layer are handled by different instances that are typically realized as separated physical nodes. Typically the nodes of the call and session control layer are referred to as media gateway controllers and the nodes of the media plane layer are referred to as media gateways. 
         [0003]    A protocol widely used in the control layer for controlling sessions consisting of one or several media streams is the Session Initiation Protocol SIP being specified in the Internet Engineering Task Force document “IETF RFC 3262, Session Initiation Protocol” in the following being referred to as RFC 3262. 
         [0004]    A further protocol defined by the IETF, the Session Description Protocol SDP specified in the IETF document RFC 4566, is used in a variety of networks and communications systems for describing multimedia sessions, e.g. for the purpose of session announcement, session invitation and other forms of multimedia session initiation. Examples of such networks are the IP Multimedia Subsystem—IMS—and the Multimedia Telephony Service—MMTel—. The SDP is thereby used in combination with the SIP in a way that SDP messages or packages are embedded into SIP. 
         [0005]    Since its origins, SDP has evolved with new capabilities to respond to the needs of new applications, as corresponds to a constantly growing use of the protocol. A capability to group different media has been specified for different applications in various IETF documents. By means of media grouping in SDP, a particular relationship between two or more media streams can be indicated. 
         [0006]    The framework for grouping of media is specified in the IETF document RFC 5888 that also specifies specific applications for the use of this capability, and further in the IETF document RFC 4588 titled “The Session Description Protocol (SDP) Grouping Framework”. 
         [0007]    According to the RFC 5888, a plurality of media streams may be grouped together. Depending on the type (semantics) of the grouping, certain actions which would otherwise be handled individually per stream may be required on the complete group of streams. In the following, some examples are given: 
         [0008]    An announcement (video and/or audio) shall be sent simultaneously to two grouped (video and/or audio) media streams 
         [0009]    When several grouped media streams traverse a node, for example a media mixer, the input and output stream end points of the node may have to be connected in such a way that several grouped media streams at one end point are mapped into one single media stream at the other end point. 
         [0010]    Statistics: for some streams that are grouped together according to the “BUNDLE” semantics it may be required to collect statistics (e.g. received octets) for all of them together, rather than for each of them individually. 
         [0011]    Events: for some streams that are grouped together (e.g. using so-called flow Identification, FID, semantics), it may be desired to arm the detection of incoming digits (eDTMF or telephony events) simultaneously in all grouped streams. 
         [0012]    One example for a protocol to be used between the control nodes and the media plane nodes is specified in ITU-T Recommendation H.248.1, titled Gateway Control Protocol (current Version 3), in the following also being referred to as media gateway control protocol or simply as H.248. 
         [0013]    In a decomposed gateway, the actions above are controlled by MGC instructions e.g. instructions according to the H.248 protocol. 
         [0014]    Patent application PCT/EP2011/061462 of the same applicant discloses a method to initiate a media session within a communications network involving a plurality of media streams, wherein the communications network comprises a plurality of media control nodes (media gateway controllers) and a plurality media resource nodes (media gateways) being controlled by each one of the media control nodes. Thereto, a certain media control nodes instructs a media resource node being controlled by that media control nodes to associate or group two or more of the media streams, e.g. a subset of all streams handled by a termination of the media resource node. 
         [0015]    This allows a control layer node (a media gateway controller or MRFC) to instruct a node of the media layer (a media gateway or a MRFP), by means of a corresponding session description, to create appropriate media stream sinks and sources (such logical entities also being referred to as terminations within the H.248 terminology) for handling multiple media streams and grouping corresponding two or more of these media streams. Thus controlling a grouping (or association) of different media streams of multimedia applications like videoconference and so-called telepresence might be accomplished involving a plurality of media gateway controllers and a corresponding plurality of media gateways. 
         [0016]    Example for use cases are:
       Synchronized play out of a video and an audio stream (lip-synchonization, LS) or of an audio stream and its simultaneous translation (LS semantics are defined in RFC 5888).   Use of a redundancy media stream for error protection purposes (the original stream and the redundancy stream may use the FID media grouping semantics, as defined in RFC 4888).   Use of one or more Forward Error Correction streams (the original stream and the forward error correction stream(s) may use the FEC media grouping semantics, as defined in RFC 4756).   The FID semantics may also be used to group multiple audio streams which use different audio codecs. Only one of them is used at a time. The streams with the ones not used remain silent during that time. In another use of the FID semantics, if two of these streams use the same audio codec, a replica of the media is sent is sent in the stream with the same codec (as specified in RFC 5888).   Two or more media streams may use the same source and destination IP addresses and ports. These media grouping semantics is called BUNDLE and is e.g. being specified in the draft-ietf-mmusic-sdp-bundle-negotiation IETF draft.   Multiple video streams with the same content, but with different resolutions may be grouped together with a simulcast media grouping.       
 
         [0023]    However, not always all streams associated to one termination within the gateway are to be grouped. There may be situations wherein only a subset of such media streams shall be grouped. However, current protocols for the control of media gateways do not allow commanding certain actions, such as those previously listed regarding playout of signals, detection of events, collection of statistics, on a stream group when such partial grouping exists. Furthermore, for some grouping semantics the realization of a signal, event or statistics in the group of streams may not be identical to the realization of such signal, event or statistic in every individual stream of the group. In such case, current protocols also do not allow commanding such signal, event or statistics in the group of streams. Furthermore, current protocols do not allow commanding the establishment of certain forms of connectivity if the same grouping is not defined at the other side of the connection, i.e. in the other termination. 
         [0024]    Specifically, H.248 does not allow applying a signal simultaneously to several media streams in a termination unless it is applied to all media streams of the termination. Further, H.248 does not allow arming an event simultaneously in several streams in a termination unless it is armed in all media streams of the termination. There is further no mechanism to combine (aggregate) statistics on several streams in a termination (unless it is done on all streams of the termination). 
         [0025]    There is no mechanism to connect both-way or one-way two or more streams at one side with one single stream at the other side (unless the node applies multiplexing). The mechanism used in H.248 to specify the connectivity between the stream end points is the topology. It may be noticed that H.248 supports the mixer case where several stream end points are connected to each other, normally with both-way topology, but in that case every end point handles the same number of streams. 
       SUMMARY 
       [0026]    It is an object of the present invention to improve a grouping of a plurality of media streams in a decomposed multimedia network comprising a media control layer being separated from a media plane (also being referred to as bearer or connectivity) layer. 
         [0027]    According to an embodiment, a media session within a communications network is initiated and/or controlled involving a plurality of media streams, wherein the communications network comprises a plurality of media control nodes e.g. so-called media gateway controllers, MGC, and a plurality media resource nodes so-called media gateways, MG, being controlled by each one of the media control nodes, wherein one of the media control nodes instructs a media resource node being controlled by that media control nodes to associate or group two or more of the media streams constituting a subset of all streams handled by a termination of the media resource node. 
         [0028]    In an embodiment, the media control node determines that selected media streams out of the plurality of media streams are associated to each other in a media session, and transmits an instruction to group the selected media streams of the media session. 
         [0029]    In a further embodiment, the media control node further transmits an instruction to prepare for performing an action with respect to the selected media streams. 
         [0030]    In a further embodiment, the media control node transmits an instruction to perform the action with respect the selected media streams to the media resource node. Transmission may be performed together or subsequently with the media stream grouping instruction (i.e. during an initialization stage to setup termination/media streams in the media resource node) or during runtime (i.e. a certain time later after the initialization phase has been accomplished). 
         [0031]    In a further embodiment, the instruction to group the selected media streams comprises a list of media stream identifiers, e.g. integer numbers, created at the media resource node. 
         [0032]    In a further embodiment the instruction to prepare for performing an action with respect to the selected media streams comprises a media stream identifier representing the group of selected media streams. 
         [0033]    In an embodiment, a stream representative is specified, that acts as a virtual stream in the sense that if the media gateway controller instructs the media gateway to perform an action with respect to selected media streams; e.g.
       if the MGC orders the MG to play a signal in the stream representative, the signal will be played in all the grouped streams.   if the MGC orders the MG to arm an event on the stream representative, the event will be armed in all the grouped streams   if the MGC orders the MG to collect statistics in the stream representative, the statistics will be collected and aggregated in all grouped streams.   if the MGC orders the MG to establish a certain topology using the stream representative, the topology will affect also all grouped streams. However when the media in each of the grouped streams has to traverse from/to one termination to another termination, depending on the semantics of the grouping, not all streams will necessary traverse. The semantics of the grouping may imply that only one of them is chosen at a time, and this may change dynamically without requiring MGC intervention.       
 
         [0038]    According to embodiments of the invention, telecommunications applications like video conference, telepresence systems, are enabled to perform a grouping in a layered architecture having separate media control and media connectivity layers, e.g. by applying a mapping of information elements of the Session Description Protocol into as mentioned in the introductory section. 
         [0039]    In a further embodiment, in a videoconference scenario, a grouping is performed comprising a high quality video and a standard quality video of the same content to be simultaneously transmitted to the same participant e.g. to suit different capabilities of different receivers of this participant. 
         [0040]    In a further embodiment, a video streaming application sends original media and a replica being grouped in order to increase robustness and/or the quality. 
         [0041]    The present invention also concerns computer programs comprising portions of software codes in order to implement the method as described above when operated by a respective processing unit of a media control node or a media resource node. The computer program can be stored on a computer readable medium. The computer-readable medium can be a permanent or rewritable memory within the user device or the recipient device or located externally. The respective computer program can be also transferred to the respective node for example via a cable or a wireless link as a sequence of signals. 
         [0042]    In the following, detailed embodiments of the present invention shall be described in order to give the skilled person a full and complete understanding. However, these embodiments are illustrative and not intended to be limiting. 
     
    
     
       BRIEF DESCRIPTION OF THE FIGURES 
         [0043]      FIG. 1  shows a principle block diagram comprising nodes being involved in media control being performed e.g. on the basis of SDP and H.248, 
           [0044]      FIG. 2  shows a more detailed block diagram comprising a media resource controller and a media resource point involved in media stream grouping and action, 
           [0045]      FIG. 3  shows a first flow chart for illustrating an exemplary sequence of steps performed by a media resource controller, 
           [0046]      FIG. 4  shows a second flow chart for illustrating an exemplary sequence of steps performed by a media resource point, 
           [0047]      FIG. 5 a   ,  5 . b  show first exemplary instructions transmitted by a media resource controller, and 
           [0048]      FIG. 6 a , 6 b    show further exemplary instructions transmitted by a media resource controller. 
       
    
    
     DETAILED DESCRIPTION 
       [0049]      FIG. 1  shows a principle block diagram of a part of a multimedia communications network, by way of example comprising a first media resource controller (or media gateway controller, MGC)  102 , a second media resource controller  104 , a first resource point (or media gateway, MG)  106  and a second resource point  108 . By way of example, first resource point or MG  106  comprises a first termination T 1 , and second resource point or MG  108  comprises a further termination T 11  that are coupled to each other to form a communication channel  110  within the media layer. By way of example, first media resource controller  102  and second media resource controller  104  communicate by means of above-mentioned SIP protocol and first (second) media resource controller  102  ( 104 ) communicates with first (second) resource point  106  ( 108 ) by means of a protocol according to H.248 enhanced according to embodiments to the invention (also being referred to as enhanced H.248 in the following). 
         [0050]    Each termination T 1  and T 11  may be a media stream sink and/or media stream source that might each be characterized by address(es) (e.g. an IP address), port number(s) and type(s) of media. By way of example, the first media resource controller  102  communicates with the first resource point  106  by sending a command (e.g. “add”) to instruct a creation of the first termination T 1  for handling a plurality of (e.g. three) media streams and receiving a reply associated to the command (e.g. “add reply”). The command may comprise an order to group all the media streams or a subset of the media streams (e.g. two of three media streams). This command might be provided by means of the H.248 protocol. 
         [0051]    Additionally, the first media resource controller  102  may send a corresponding offer (e.g. “SDP offer”) comprising a corresponding session description comprising a description of the plurality of media and the grouping information to the second media resource controller  104 . The second media resource controller  104  might accept the offer by a reply (e.g. “SDP answer”). Corresponding to the communication between the first media resource controller  102  and the first resource point  106 , the second media resource controller  104  generates a command (e.g. “add”) to creating the further first termination T 11  of the second MG  108  on the basis of the SDP offer received from the first media resource controller  102 . 
         [0052]    The first media resource controller  102  may comprise a first H.248 interface (circuit)  1021  for providing an H.248 interface to the first media resource point  106  and a first SDP interface (circuit)  1023  for providing and SDP interface to the second media resource controller  104 . Similarly, the second resource controller  104  comprises corresponding second H.248 and SDP interfaces  1041  and  1041 . 
         [0053]    In the example of  FIG. 1  the second resource controller  104  may further comprise a translation or mapping unit  1042  for performing a mapping of the session description carried by the offer received from another resource controller (e.g. the first media resource controller  102 ). The mapping unit detects the plurality of media and the grouping information from the offer, determines that these (or some of these) media are associated to the corresponding termination T 11  and generates an instruction comprising a media stream description of all involved media (Stream Descriptors) and a grouping information as part of a termination state description associated to the second termination. Thus, according to the example of  FIG. 1 , the mapping performs a translation from the media offer received from the first media resource controller  102  to an instruction to be transmitted to the (second) resource point  108 . 
         [0054]    The grouping instruction each sent from the resource controller (e.g. first or second resource controller  102 ,  104 ) to the respective resource point (e.g. first or second resource point  106 ,  108 ) comprises in indication to group selected media streams into a group. Further, the grouping instruction may comprise a stream representative as discussed above. The stream representative acts as a virtual stream specifying the (real) selected streams handled at the MG that are grouped by way of the commands described above. 
         [0055]    If the resource controller instructs the associated resource point to perform a certain action associated with the stream representative, the resource point will perform the commanded action simultaneously to all grouped streams. Such action may be to play a signal in all the grouped streams. to arm an event in all the grouped streams, to collect statistics and aggregate them in all grouped streams, or to establish a certain topology affecting also all grouped streams. 
         [0056]    When the media in each of the grouped streams has to traverse from/to one termination to another termination, depending on the semantics of the grouping, not all streams will necessary traverse. The semantics of the grouping may imply that only one of them is chosen at a time; this choice may change dynamically without requiring MGC intervention. 
         [0057]    In the following, an example is discussed with both-way or one-way connections between two or more streams in a first termination T 1  to one stream in a second termination T 2  of the first media resource point or MG  102 . 
         [0058]    Thereto,  FIG. 2  illustrates an arrangement comprising the first media resource controller  102 , the first media resource point  106 , a first party, P 1 , (device)  201  and a second party, P 2 , (device)  204 , The media resource controller  102  comprises the first interface  1021  and a first processor  1022 . The media resource controller  102  comprises the first H.248 interface  1021  and a first processor  1022 . The first media resource point  106  comprises a second interface H.248 interface  1061  and a second processor  1062 . Further, the first media resource point  106  comprises the first termination T 1  and the second termination T 2 . The first H.248 interface  1021  is coupled to the second interface H.248 interface  1061 . The first termination T 1  is coupled to the first party  201  or first remote party P 1 , and the second termination T 2  is coupled to the second party  202  or second remote party P 2 . 
         [0059]    In a two party audio call, first termination T 1  shall send and receive (from/to the outside of the context) one audio stream with two payload types, corresponding to two different audio codecs, e.g. Codec 1  and Codec 2 . At a time, the audio shall be encoded either with Codec 1  or with Codec 2 . The remote party P 1  may change the codec dynamically and deliberately. The second termination T 2  may send and receive two audio streams S 1  and S 2 , e.g. grouped with the FID semantics according to RFC 5888. First stream S 1  may use Coded, and second stream S 2  may use Codec 2 . In addition, second termination T 2  may send (but in this example does not receive) third stream S 3  to the outside of the context, by way of example also using Coded. Third media stream S 3  by way of example may also be grouped with the FID semantics to S 1  and S 2 . 
         [0060]    Thereto, according to embodiments of the invention, a topology group representative is sent from the MGC to the MG. In this example, S 1  is chosen as representative identity, as both termination T 1  and T 2  handle S 1  media stream. This command instructs the MG to perform an action on S 1  in response to a further command. Of course, the stream representative may be chosen different to any of the individual streams. 
         [0061]    The further command may comprise an indication to bidirectionally connect S 1  to both terminations T 1  and T 2 ; i.e. the other streams S 2  and S 3  are terminated at Ts in this example. This command may look like (S 1 , T 1 , T 2 , bothway). 
         [0062]    The expected behavior is as follows: 
         [0063]    When first remote party P 1  connected to the first terminal T 1  sends media encoded with Codec 1 , it will be forwarded to S 1  and S 3  in T 2  to the second party P 2  connected to the second terminal T 2 . 
         [0064]    When first remote party P 1  sends media encoded with Codec 2 , it will be forwarded to S 2  in T 2 &#39;s remote party P 2 . 
         [0065]    P 2  will send media encoded either with Coded or with Codec 2 . The media will be received in T 2  and forwarded to T 1 . 
         [0066]    It may be noted that the direction attribute shown in  FIG. 2  corresponds to the end-points in the MG, e.g. to terminations T 1  and T 2 . Thus, S 3  media flows only in direction from T 2  to P 2 . 
         [0067]    The above described topology instruction to describe the connectivity required above (as currently no topology mechanism for such connectivity is existing in H.248; with existing available mechanisms it is possible to command a connection of only S 1  between T 1  and T 2 ). 
         [0068]      FIG. 3  shows an exemplary flow chart illustrating a generation of an SDP offer with a (multimedia) session description in response to grouping capabilities of a controlled media resource point according to  FIG. 1 : 
         [0069]    The first steps S 1 , S 2 , and S 3  may be performed in advance to the sequence described in the steps S 4 -S 5 . 
         [0070]    In the first step S 1 , the (first) media resource controller  102  (or any other node associated to the first media resource controller  102 ) maps the media of a multimedia session to each one H.248 stream descriptor. 
         [0071]    In the second step S 2 , the media resource controller  102  determines, if a media grouping is needed (or recommended) for this multimedia session. 
         [0072]    If yes, in a third step S 3 , the media resource controller  102  generates a grouping instruction to group a plurality of media to be handled by a certain termination of the controlled media resource point, in the following being referred to as the first termination T 1  of the (first) media resource point  106  (e.g. using a termination state property as discussed below) to be sent to the media resource point  106 . 
         [0073]    In a fourth step S 4 , the media resource controller  102  generates an instruction to prepare for an action to be performed at the media resource point  106  on the media streams being grouped together. 
         [0074]    Such instruction may comprise generating a group or stream representative enabling the media resource controller  102  to indicate to the media resource point  106  a virtual media stream of the termination that will represent the media group when requesting events, signals or statistics applicable to all streams of the group. The associated (virtual) stream identity may be different from all stream identities used by any of the termination streams. 
         [0075]    With regards to topology, the media resource controller  102  is enabled to indicate to the media resource point  106  a virtual media stream of the termination that will represent the media group in relation to media streams of other terminations as defined by the corresponding topology descriptor. The associated stream identity may be the same as used in other terminations if a topology relationship has to be established to those terminations. 
         [0076]    In a fifth step S 5 , the first media resource controller  102  transmits to the media resource point an instruction to perform a certain action on the streams identified by the stream representative, e.g. to collect statistics as discussed above. 
         [0077]      FIG. 4  shows an exemplary flow chart illustrating action to be performed in a media resource point  106 : 
         [0078]    In a first step (of this embodiment) S 11 , the media resource point  106  is running a session with multiple streams being grouped as commanded e.g. according to  FIG. 3 . 
         [0079]    In the second step (of this embodiment) S 12 , the media resource point  106  determines, if a media representative is available. 
         [0080]    If yes, in a third step (of this embodiment) S 13 , the media resource point  106  determines, if an action has to be performed on the media group; a corresponding instruction may have been received from the first media resource controller  102 . 
         [0081]    If, yes, in a fourth step (of this embodiment) S 14 , the media resource point  106  performs the corresponding action. 
         [0082]    A solution proposed according to embodiments of the invention comprises a definition of new properties on termination level. The new properties indicate the stream representative, if any, for each of the groupings applicable to the session. One proposed representative is applicable to signals, events and statistics. A further proposed representative may be applicable for topology. A reason to using a different stream number as representative for topology is to facilitate the operations, as for the topology representative, this stream number must exist in the other termination in order to establish a topology relationship. 
         [0083]    Each property may be represented as a list of strings. Each member in the list may correspond to one member of the so-called “Group Semantics” property, listed in the same order. 
         [0084]    Some exemplary properties definitions are listed below:
       Property Name: Group Representative   Property ID: grouprep, (0x0002)   Description: This property allows the MGC to indicate to the MG a virtual media stream of the termination that will represent the media group when requesting events, signals or statistics applicable to all streams of the group The defined stream identity must not be used by any of the termination streams.   Type: Sub-list of integer   Possible values: Stream descriptor identity.   Default: None   Defined in: TerminationState   Characteristics: Read/Write       
 
         [0093]    Stream Representative for Topology:
       Property Name: Topology Group Representative   Property ID: groupreptop, (0x0003)   Description: This property allows the MGC to indicate to the MG a virtual media stream of the termination that will represent the media group in relation to media streams of other terminations as defined by the Topology descriptor. The defined stream identity must be the same as used in other terminations if a topology relationship has to be established to those terminations.   Type: Sub-list of integer   Possible values: Stream descriptor identity.   Default: None   Defined in: TerminationState   Characteristics: Read/Write       
 
         [0102]    In the following an example is given for applying signals, events and/or statistics to the group. Thereto,  FIG. 5 a    shows an exemplary H.248 command wherein a MGC groups two audio media streams with the FID semantics when adding a new termination. By way of example a virtual stream  8  is selected as representative.  FIG. 5 b    shows an exemplary H.248 command sent out by the MGC play the same announcement simultaneously on both audio media streams. 
         [0103]    In the following, an exemplary topology description for the group to be used by the MGC is shown. Thereto,  FIG. 6 . a  shows a media descriptor for the first termination T 1 , and  FIG. 6 . b  shows a media descriptor for the second termination T 2 ; the media descriptors may be included in an “Add” command. 
         [0104]    The topology descriptor may comprise the terminations, directionality and stream identifier: 
         [0105]    Topology {T 1 , T 2 , BW (bothway), ST (stream)=1} 
         [0106]    As discussed above, embodiments of the invention allow the MGC to order a MG to act simultaneously on the media streams of a selected group of streams independently of any adherence to one or different terminations of the MG. In other words, the one termination or the plurality of terminations of the MG may terminate each one or a plurality of media streams belonging to the grouped media streams and may additionally terminate one or a plurality of further media streams not being part of the grouped media streams. 
         [0107]    Such action may be for example to play an audio or video announcement, to detect the reception of in-band digits (DTMF or telephony events), to order a collection and aggregation of statistics in several streams in a MG, for example the number octets received in several streams grouped by the BUNDLE semantics, and or to establish connectivity in a MG between two or more terminations when media grouping applies only at one termination or when different media groupings apply at different terminations.