Plaque It!
Sponsored by: Flash of Genius |
[0001] The invention relates to a Megaco protocol used between a media gateway (MG) and an external controller, called a media gateway controller (MGC), and particularly to implementing voice telephony using IP (Internet Protocol) called VoIP (voice over IP) in situations, where terminals are connected to a service utilizing the VoIP via a low capacity IP packet data network.
[0002] Megaco (defined identically in IETF RFC3015 and ITU-T H.248) is a device control protocol assigning data stream resources between decomposed user and control planes in telecommunications/data systems. In other words, Megaco defines a general framework for a physically decomposed media gateway, where the intelligence of the gateway is in a master node called the media gateway controller (MGC) and the actual switching and media transfer are performed in one or more slave nodes called the media gateway(s) or multimedia gateway(s). Herein the term media gateway is used. Megaco is used between the media gateway and the MGC for resource reservations, connection settings, media transformation settings, signal/event indications and processing, quality of service (QoS) settings, sending statistics information and signaling control.
[0003] Megaco is used, for example, in situations a call is established between two terminals, one using VoIP connections and the other being connected to the Public Switch Telephone Network (PSTN). Megaco is used also when enhanced voice handling, such as three party calls or conference calls, is provided by VoIP. Megaco can also be used in situations where one user, i.e. one terminal, is a member of several different calls, i.e. there may be several media streams targeted at one user.
[0004] As long as the user is connected to the system utilizing the Megaco, the user is connected to a media gateway controlled by a media gateway controller. At least when a call is established or released, the media gateway and the media gateway controller exchange information. The media gateway controller may identify call events, the encounter of which requires instructions to be sent from the media gateway controller to the media gateway. There are situations, when similar kinds of instructions apply to all calls made to or by the user (and thus the terminal), i.e. similar kinds of instructions apply to similar kinds of events.
[0005] Such instructions may relate to selecting which one(s) of the media streams to forward to the terminal when there are several media streams targeted at the terminal, but the user (and thus the terminal) needs to receive only one or only some of the media streams at a time. Another example is a situation where inband information is added in the media gateway. However, since the intelligence is in the MGC, and thus the instructions are in the MGC, and there is no mechanism to transfer the user's common instructions from the media gateway controller to the media gateway, the media gateway informs the MGC about every event relating to a packet and/or its media stream to which such instructions may apply and the MGC commands the media gateway to act according to an instruction, if any. This requires continuous message exchange between the MGC and the media gateway, causing unnecessary load and delays.
[0006] An object of the present invention is thus to provide a method and an apparatus for implementing the method so as to solve the above problem. The objects of the invention are achieved by a method and an arrangement which are characterized by what is stated in the independent claims. The preferred embodiments of the invention are disclosed in the dependent claims.
[0007] The invention is based on the idea of creating in the media gateway a user termination associated with the user and not relating to any specific call and directing all media streams via the user termination. The user termination is created preferably during terminal logging to the system and maintained preferably as long as the terminal stays logged on the system. Since the user termination is non-call-specific, part of the intelligence in the media gateway controller can be transferred to the user termination and applied to all of the user's media streams. The transferred intelligence, i.e. the instructions may relate to downlink filtering and scanning, inserting additional information to the uplink media stream or generating downlink inband information in specific cases or any combination thereof.
[0008] An advantage of the method and arrangement of the invention is that it provides means to transfer some intelligence to the media gate way so that it can independently perform functions without requesting instructions from the MGC. Thus unnecessary load and delays are avoided and yet the media gateway is maintained rather simple and the main intelligence and control are maintained in the MGC.
[0009] In the following the invention will be described in greater detail by means of preferred embodiments with reference to the attached [accompanying] drawings, in which
[0010]
[0011]
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
[0019] The media gateway controller MGC is the part of the gateway which commands the media gateway to connect and release the connections. In other words, the MGC performs the control plane functions and comprises the intelligence. The media gateway controller may, for example, be controlled by a so called soft switch or a SIP (Session Inititiation Protocol) proxy via which the actual signaling is routed, part of the soft switch or the SIP proxy, or it may be a network node via which the signaling is routed. Depending on how the MGC is implemented, it may be involved in signaling and may co-operate with other signaling protocols, such as SIP or it can receive control information with some protocol, such as Parlay API or SOAP (Simple Object Access Protocol, defined by the World Wide Web Consortium W3C). The media gateway controller according to the invention is described in more detail below with the connection model and with FIGS.
[0020] The media gateway MG converts media provided in one type of network to the format required in another type of network, e.g. between circuit switched networks and IP-based packet networks and is involved in traffic distribution of the IP layer, i.e. performs the user plane functions. The media gateway according to the invention is described in more detail below with the connection model and with FIGS.
[0021] The user equipment UE, i.e. the terminal, is normally a phone, either a mobile phone or a fixed phone, but it can be any entity connected to a network
[0022] Connection Model of the Megaco
[0023] For the sake of clarity the connection model of
[0024] The main abstractions are terminations T1, T2, T3, T4, and contexts 2, 2′, 2″. A termination is a logical entity that sources and/or sinks one or more media streams. The media stream parameters and bearer parameters are encapsulated within the termination. The termination can be considered as a call resource or a call leg. Examples of prior art terminations are PCM (pulse code modulation) timeslot for speech, RTP (real-time transport protocol) connection, ATM virtual connection. A context is an association between a collection of terminations that describes the topology (who hears/sees whom) and the media mixing and/or switching parameters if more than two terminations are involved in the same association. The context can be considered as a call or a session, and it may comprise several terminations. The maximum number of terminations in a context is a media-gateway-specific property. Media gateways that support only point-to-point connectivity may allow at most two terminations per one context. Media gateways that support multipoint conferences or group calls (term explained in more detail below) may allow three or more terminations per one context.
[0025] Priority values can be used by the MGC in order to provide the MG with information about certain precedence handling for a context, and an indicator for an emergency call is also provided to allow preference handling. The protocol provides commands for manipulating the logical entities of its connection model, contexts and terminations. Typical commands are add (adds a termination to a context), modify (modifies the properties of a termination), subtract (removes termination from a context) and notify (the media gateway notifies the MGC about certain events, such as off-hook, DTMF tone detection).
[0026] Megaco protocol provides packages with which properties not included in the base protocol can be defined so that the interoperability between the media gateway controller and the media gateway is achieved. Packages allow terminations to have optional properties, events, signals and statistics implemented by the media gateway. Such options are grouped in packages, and a termination realizes a set of such packages.
[0027] The Megaco connection model according to the invention comprises a user termination UT via which all media streams to and/or from the terminal are transferred. The context 2″, in which the user termination is, bears no significance to the invention. In the exemplary embodiment of the invention there is only one user termination UT for each user who is logged on the system, but the invention is not limited to this particular solution. In some other embodiments of the invention there may be one user termination for the downlink media streams and another user termination for the uplink media streams, for example. The intelligence is transferred from the media gateway controller to the user termination by sending parameters and their values in Megaco messages, as described in detail below with
[0028] The UT contains at least some identification information as a parameter. In the exemplary embodiment of the invention the identification information is the IP address of the user's terminal. In the exemplary embodiment of the invention, the IP address of the user's terminal is the combining factor to the other terminations associated with the user. If the terminal has more than one IP address, all the IP addresses used are preferably parameters in the user's UT. In other embodiments, some other identification information, such as a timeslot for a PCM link, an ATM virtual path identifier or an ATM virtual channel identifier, may be used instead of the IP address or with it.
[0029] The UT may also contain uplink insertion parameter/s which define what is added to the media stream originated from the terminal. For example, some identification of the user may be added.
[0030] The UT may also contain downlink insertion parameters or a parameter, which define what is added to the media stream transferred to the user. For example, some identification of the media stream originating from a VoIP service may be added.
[0031] The UT may also contain downlink filtering parameters or a parameter, which define the way the media gateway can decide which one of the media streams is passed to the user. For example, the filtering parameter(s) may indicate priority settings between the media streams or a fixed selection. With priority settings the user can set those groups in which he is an active member in the order of priority. If there are overlapping speech items (term described in more detail below) of different groups to be forwarded to the user, the UT forwards the one with the highest priority and the rest are not forwarded. With fixed selection the user can set one group to be the one, the speech items of which will be forwarded by the UT and speech items of other groups will not be forwarded (regardless of priorities and whether or not they are overlapping).
[0032] The UT may also contain other controlling parameters, such as media stream management timer values, media stream header compressing mode and user's rights concerning the VoIP services.
[0033] The parameters and their values are determined on the basis of the user's selections and his fixed settings, such as rights defined in the system for the user. The user may select some parameters during a log on, and/or change/select them during group attachment, by selecting a group, by giving priority settings etc.
[0034] When the UT is created and parameters are passed to the media gateway, the media gateway may independently, i.e. without requesting instructions from the media gateway controller, pass only one media stream through in the downlink according to the parameters of the UT, insert additional information to the media stream in the uplink and/or downlink according to the parameters, and/or generate inband information in the downlink, for example. The inband information may be a simple flag, which is interpreted by the terminal, or it may be a real sample of media stream, such as a voice beep, for example. The media gateway may also perform other actions defined by the parameters of the UT.
[0035] The user termination is preferably created during the user logging on the system, especially if the user session or a call is initiated by using RTP, which is the case in the PMRoC described below. However, it is possible that the user termination is created only in response to a first call made to or from the user terminal. After being created, the user termination is preferably maintained as long as the user stays logged on the system. However, the user termination may be maintained only as long as the user is involved in a call or is an active member of a group.
[0036] The UT according to the invention is preferably defined by using a set of Megaco protocol packages, at least as long as it is not included in the base protocol.
[0037] The dashed lines in
[0038] The present invention is applicable to any digital communications systems which utilize the Megaco protocol. The invention is especially preferably applicable to communications systems disclosed in U.S. patent application Ser. No. 09/835,867, the system being called PMROC, i.e. PMR-over-cellular, where Megaco is used by control plane elements to control RTP routing in user plane elements in systems. The system is also called PoC, i.e. Push-to-talk over Cellular. In the following, the preferred embodiment of the invention will be described by means of the above-mentioned system without limiting the invention to this particular system. The IP voice communication method used in the exemplary embodiment of the invention is the Voice over IP (VoIP), but the invention is not limited to this particular method. The features disclosed in U.S. patent application Ser. No. 09/835,867 and needed to understand the implementation of the present invention are discussed briefly below with
[0039] PMROC
[0040] Professional mobile radio or private mobile radio (PMR) systems are dedicated radio systems developed primarily for professional and governmental users, such as the police, military forces, oil plants, etc. PMR services have been offered via dedicated PMR networks built with dedicated PMR technologies. This market is divided between several technologies—analog, digital, conventional and trunked—none of which has a dominating role. TETRA (Terrestrial Trunked Radio) is a standard defined by ETSI (European Telecommunications Standards Institute) for digital PMR systems.
[0041] One special feature offered by the PMR systems is group communication. The term “group”, as used herein, refers to any logical group of three or more users intended to participate in the same group communication, e.g. call. The groups are created logically, i.e. special group communication information maintained on the network side associates specific user with a particular group communication group.
[0042] Voice traffic in a group, as seen by the users, consists of speech items (i.e. talkspurts) of more or less continuous speech coming from a specific user to one or more recipients. In the following speech items are used to illustrate items of all possible media streams.
[0043]
[0044] In
[0045] The CPS
[0046] However, since the PMR management requirements can be divided into group and user specific ones, two kinds of media gateway controllers MGC, i.e. CPS servers, are defined in one embodiment of the invention, as illustrated in
[0047] Referring again to
[0048] Input checking: to identify and authenticate the traffic source (optionally the mnemonics in the leader RTP packet, which will be discussed below, have to be processed here). Input checking may also include actions to perform and support security procedures.
[0049] Input filtering: to manage that only one talker talks in a group at a time (i.e. grants a speech item), and optionally to give priority to higher priority voice items.
[0050] Multiplication: after the filtering process, the media gateway MG has to check the active members of the group to which the traffic is destined and generate from the incoming packet a “downlink” packet for each active member.
[0051] Scanning filtering: to select from the multiple incoming traffic streams destined to the same user the one which has to be forwarded to his recipient according to the user's scanning settings.
[0052] Again, since input filtering and multiplication are group specific processes, while input checking and scanning filtering are user specific, the following two kinds of media gateways, i.e. application bridges, have been defined in one embodiment of the invention, as illustrated in
[0053] Firstly, a Group—User Plane Function G-UPF
[0054] The User—User Plane Function U-UPF
[0055] As for the Control Plane elements, this logical splitting does not necessarily require a physical separation between the G-UPF and the U-UPF implementations, and thus they may be located in the same computer.
[0056] The U-CPF
[0057] The SIP protocol defines signaling messages for call control, user location and registration, and these have been used in the preferred embodiment of the PMROC solution to handle the specific PMR communications and the relative participating users (establishment, joining and tear down of a call session, user's log on to PMROC services, user's profile negotiation, etc).
[0058] For each PMROC communication, a SIP session is established and managed by the MGC, i.e. the CPS handling it (G-CPF
[0059] All the user's outgoing and incoming traffic has to go through the U-UPF
[0060] In the downlink, the traffic is then distributed to the destination users' media gateways U-UPFs
[0061] Each user termination in the U-UPF may contain in addition to the user equipment's IP address also user's URL (uniform resource locator), user's default mnemonic for one-to-one calls, flags indicating the user's right for URL presentation restriction, group selection information, group-SSRC and/or group-mnemonic for each group the user is attached to. In PMRoC the URL is used also as an identifier in charging records, i.e. in CDRs. A mnemonic can be compared to a nickname and referred to as an identity shown to another party (other parties) of the call. If the URL presentation restriction is on, the UT takes care that the user's URL is not shown to another party (other parties), but the mnemonic is. The group-SSRC is used as a user's identifier between the U-UPF and G-UPF.
[0062] This PMRoC solution is access independent, which means that it can run on top of GSM, WCDMA, WLAN or equivalent technologies as long as these are able to support the always-on VoIP bearers. The IP layer's audio distribution uses standard VoIP mechanisms (such as the RTP), while specific Internet protocols or interfaces will be used to connect supplementary network entities, such as Subscriber and Group Management Function (SGMF)
[0063] Additionally, an SGMF
[0064] SOAP or a similar protocol can be used in the interface between U-CPF
[0065] The user equipment UE, or mobile station, has a PMROC application on a user layer on top of the standard protocol stack used in the specific mobile communications system. The SIP and RTP protocols employ the underlying TCP, UDP and IP protocols which further employ the physical layer resources, such as the radio resources. Additionally, a WAP stack may be employed to access the WAP pages on the group management server.
[0066] Creation of User Termination in PMROC
[0067] Before the user can start to use PMROC services he has to register himself with his media gateway controller, i.e. U-CPF in
[0068] Referring to
[0069] When the U-CPF receives the registration message with authentication response from the user's UE, it authenticates the user. If the user passes the authentication (as is the case in the example of
[0070] The message may be as follows (parameter values are purely imaginary in all messages described here):
Message { Version = x IP6Address { address = U-UPF's address portNumber = 2944} Transaction = 10002 contextID = $ { Add { TerminationID = $ MediaDescriptor { LocalControlDescriptor { reserveValue = NOT USED reserveGroup = NOT USED User/TermIP = 1.1.0.1 User/RTPhead = 0x1 User/HeartbeatInt = 5 User/UserURL = my User/UserMne = mee User/RiVR = yes}}}}}}
[0071] In this example (and in the following examples) it is assumed that packages are used and the media gateway recognizes that this add command relates to the user termination on the basis of the parameters. However, in some other embodiment it is possible that the add command contains indication or indications, such as a flag, on the basis of which the media gateway recognizes that the message relates to the user termination.
[0072] The user-termination-specific parameters of this message, defined in the package(s), are indicated by the word ‘User’ before the parameter. In this exemplary message the user-termination-specific parameters are an IP address of the user's terminal (TermIP), an RTP header mode (RTPhead), a heartbeat interval (HeartbeatInt), the user's URL (UserURL), the user's mnemonic for one-to-one calls (UserMne) and the user's rights to block URL visibility in one-to-one calls (RiVR). When creating the user termination, the media gateway controller U-CPF also asks for a termination identifier value for the UT (TerminationID) and a context identifier value (Context id) by using standard Megaco wildcard mechanism. The wildcard in Megaco is $. Other parameters in the message (and in the add command) are standard Megaco parameters or based on standard Megaco parameters and thus need not be explained here. The parameter values for user termination specific parameters are based on the user's access rights and other fixed settings and/or parameters in message
[0073] After receiving message
[0074] The acknowledgement message typically contains the requested information and message
Message { Version = x IP6Address { address = U-CPF's address portNumber = 2944} Reply = 10002{ contextID = 10002 { TerminationID = A4444 }}}
[0075] After receiving message
[0076] The user has to send all his user plane traffic to the U-UPF assigned to him by his U-CPF, and in case the traffic is destined to a group then the specific port number associated by the U-UPF with the group is used for traffic identification purposes. Thus, all the user plane traffic, i.e. all media streams, passes the user termination in the U-UPF.
[0077] Modification of the UT in PMROC
[0078] Parameters of UT may be added or removed or their values may be changed. Parameter settings of the UT will be changed when someone is calling the user, the user logs on although he was not logged off or the user changes his scanning settings or group selections, for example.
[0079]
Message { Version = x IP6Address { address = U-UPF's address portNumber = 2944} Transaction = 10003 { contextID = 2001 { Modify { TerminationID = A4444 MediaDescriptor { LocalControlDescriptor { reserveValue = NOT USED reserveGroup = NOT USED User/TermIP = 1.1.0.1 User/RTPhead = 0x1 User/HeartbeatInt = 5 User/UserURL = my User/UserMne = mee User/RiVR = yes User/GrSel = 08}}}}}}
[0080] In this message one new user termination specific parameter (compared to message
[0081] If the user wants to join a group, message
Message { Version = x IP6Address { address = U-UPF's address portNumber = 2944} Transaction = 10003 { contextID = 2001 { Modify { TerminationID = A4444 MediaDescriptor { LocalControlDescriptor { reserveValue = NOT USED reserveGroup = NOT USED GroupAttU/AttGr = 08 GroupAttU/GrURL = groupy GroupAttU/UserSSRC = 0 GroupAttU/UserMne = fellow GroupAttU/VRAc = no GroupAttU/GrType = 0x1}}}}}}
[0082] In this message a group attachment package for users is used and the parameters are indicated by the ‘GroupAttU’. On the basis of the indication the media gateway knows that these parameters affect the user termination. The parameters are an identifier of the attached group (AttGr), which may be a context identifier of the context which holds terminations for the group, an URL of the group (GrURL), the user's SSRC in the group (UserSSRC), the user's mnemonic in the group (UserMne), an indication whether or not the URL visibility is active in the group (VRAc) and a group type (GrType). The group type may be a normal group (0×1) or an ad hoc group, for example.
[0083] If the user wants to select or deselect a group, message
Message { Version = x IP6Address { address = U-UPF's address portNumber = 2944} Transaction = 10003 { contextID = 2001 { Modify { TerminationID = A4444 MediaDescriptor { LocalControlDescriptor { reserveValue = NOT USED reserveGroup = NOT USED User/GrSel = 06}}}}}}
[0084] The U-UPF modifies, at point
[0085] As can be seen, the parameters in the Modify command depends on what the user or the operator wants to change and thus the parameters in the UT are not limited to the ones described herein.
[0086] Filtering
[0087] The ability to belong to many groups creates a situation where there can be simultaneous media streams targeted to the user. However, only one of the media streams is played to the user. In order not to send media streams in vain to the user's terminal, filtering function is implemented in the network. More precisely, the filtering function may be implemented by the user termination according to the invention.
[0088] In the basic mode, the mobile user selects one group for communication. He will then hear all traffic in that group (unless he is engaged in an individual call) and can also himself talk in the group. The user can easily switch to another group.
[0089] The user can also operate in multiple groups virtually at the same time, by using a method called scanning. The user selects multiple groups and assigns these with priorities. He then hears traffic from one group at the time, but traffic from a more important group will interrupt other traffic. One of the groups remains the selected group, and any speech transmission by the user is made to the selected group. The user can switch scanning on and off. The list of scanned groups with priorities can be edited by the user. Group selection and other settings can also be performed remotely.
[0090] In order to ensure conversation continuity (i.e. to ensure that a listener receives a coherent series of transmissions), the U.S. patent application Ser. No. 09/835,867 discloses that a specific timer (or timers) is provided in the media gateway. The timer is set in the media gateway to a predetermined “pause period” corresponding maximum period of time between two consecutive media stream packets in the selected media stream, when the media stream is selected. When the timer is implemented with the user termination it is also possible to ensure that a speech coming from a specific user is not interrupted even when an overriding speech item arrives, unless the parameters in the user termination instruct on the contrary. By the parameters of the user termination there is no need to request the length of the “pause period” every time a new media stream is selected. It is even possible to have different “pause periods” in the UT for different media streams.
[0091]
[0092] Referring to
[0093] If the scanning is on (step
[0094] If the scaning is off (step
[0095] If the speech item A is an item of a one-to-one call (step
[0096] In an embodiment in which speech coming from a specific user is not interrupted when an overriding speech item arrives, it is checked in response to receiving the speech item A (step
[0097] Adding Inband Information
[0098] There are situations where it is convenient for the user to receive some information from the system. One example of such a situation is, that the user requests a service to which he has no access rights. Another example is a call set up delay experienced by the caller which may be shortened by the user equipment giving an audible indication to the user to start speaking. There are several points at which the permission to speak can be given. One suitable point is after the uplink radio bearer has been allocated and after the first RTP message (so called Leader packet, non-voice) has been sent to the RAN. Notice that the downlink status is not known at this point. In case of call failure because of a missing B party or missing radio bearers in the downlink direction or a failure of a call authorization check, the user gets an indication of a call failure. The indication to speak could be alternatively given after the media gateway MG gives an acknowledgement of, for example, having processed the first RTP packet or even of the B party having acknowledged the header packet.
[0099]
[0100] Adding Downlink Information
[0101] By means of the user termination it is possible to add information to media streams or to a media stream targeted at the user without requesting additional information from the media gateway controller. One example of such information is some identification of the service the media streams originates from. This information may be played or showed to the user when the speech item is received in the user equipment.
[0102]
[0103] With the parameters in the user termination, different kinds of rules to be applied to different kinds of downlink media streams may be defined. For example, with different parameters and their different values it is easy to define that in one-to-one calls downlink information on the speaker is added to the very first speech item, in group A media streams downlink information on the speaker is added to each speech item, in group B media streams downlink information on the speaker is added to the first speech item of a new speaker, i.e. after the speaking turn has changed and no downlink information is added to group C media streams.
[0104] When the information is added in the user termination, it is not transferred unnecessarily in the whole network. This also gives the possibility to customize services, information may be added only to those users who want it by giving different parameter values during service provisioning.
[0105] The adding of downlink information is preferably performed after the filtering process.
[0106] Adding Uplink Information
[0107] By means of the user termination it is also possible that information is added to media streams or to a media stream originated from the user without requesting additional information from the media gateway controller. One example of such information is whether user's mnemonic and/or URL are added to the media stream.
[0108]
[0109] With the parameters in the user termination, different kinds of rules to be applied to different kinds of uplink media streams may be defined. For example, with different parameters and their different values it is easy to define that both the URL and mnemonic are added to speech items of group A and only the URL is added to speech items of group B.
[0110] The signaling messages and steps in FIGS.
[0111] The above embodiments of the invention are only examples, and in order to have new embodiments according to the invention the features described in the embodiments can be combined in a different manner than what is described above.
[0112] Although the invention has been described above with the PMRoC system it is obvious for one skilled in the art that the invention can be implemented with every system utilizing the Megaco protocol.
[0113] It will be obvious to a person skilled in the art that, as the technology advances, the inventive concept can be implemented in various ways. The invention and its embodiments are not limited to the examples described above but may vary within the scope of the claims.