TECHNICAL FIELDThis invention relates to the generation of call detail records for telephone calls and other telecommunications services which are provided through gateways enabling interworking between networks using different networking technologies. For example, the invention has utility for monitoring communications coupled by a Media Gateway between a circuit-switched network and an internet-protocol (IP) network, under the control of a Media Gateway Controller (MGC) using the Media Gateway Control Protocol (MGCP) or the MEGACO/Megacop protocol.[0001]
BACKGROUND ARTExisting circuit-switched telecommunications networks, for example the international public switched telephone network (PSTN), are typically configured so that equipment (such as switches) in the transmission or bearer network, which carries user traffic (voice and data signals), is co-located with equipment (such as signalling points) in the associated signalling network, which carries control signals for co-ordinating the operation of the bearer network.[0002]
However, attention is now being directed to the possibility of telecommunications networks comprising distributed telecommunications switches, in which there is a separation of the switching/adaptation functionality from the signalling functionality. Furthermore, consideration is being given to the possibility of connecting dissimilar such networks (i.e. networks relying on different bearer technologies and/or signalling protocols).[0003]
Dissimilar telecommunications networks are typically interconnected via a “gateway” which provides the necessary conversions or adaptations between the bearer traffic and signalling protocol in each of the networks. In such an architecture control devices such as Media Gateway Controllers can be physically remote from the adaptation devices, such as Media Gateways. Media Gateway Controllers (also referred to as call agents or softswitches) can communicate with the Media Gateways they control using protocols such as Simple Gateway Control Protocol (SGCP), Media Gateway Control Protocol (MGCP—IETF RFC 2705), and the Megacop/H.248 protocol currently being defined. Media Gateway Controllers communicate with each other using extensions of current Call Control protocols such as Signalling System No.7 ISDN User Part (SS7 ISUP), Session Initiation Protocol (SIP—IETF RFC 2543), or ITU Recommendation H.323. New protocols may be defined for this interface in the future.[0004]
Protocol monitoring applications, such as tracing across a signalling network the protocol messages associated with a call, or building Call Data Records (CDRs) to summarise the key parameters relating to a call, require the ability to correlate across different protocols, which may refer to a single entity in multiple different, inconsistent ways. It is an object of this invention to facilitate such correlation.[0005]
DISCLOSURE OF INVENTIONAccording to one aspect of this invention there is provided a method of generating a call detail record for a telecommunications call established via a media gateway under the control of a media gateway controller, comprising the steps of:[0006]
detecting messages exchanged between media gateways and at least one media gateway controller;[0007]
locating identification information within the messages;[0008]
associating command messages with corresponding response messages in accordance with a first kind of identification information;[0009]
associating command and response messages relating to a specific gateway in accordance with a second kind of identification information;[0010]
associating messages relating to different gateways in accordance with a third kind of identification information; and[0011]
combining the messages which have been associated with one another to produce a call detail record.[0012]
BRIEF DESCRIPTION OF DRAWINGSA method and apparatus in accordance with this invention, for correlating gateway command and response messages, will now be described, by way of example, with reference to the accompanying drawings, in which:[0013]
FIG. 1 shows the topology of an exemplary network incorporating multiple telecommunications media and distributed switches;[0014]
FIG. 2 shows part of the network of FIG. 1 in more detail;[0015]
FIG. 3 shows a possible sequence of MGCP commands and responses used to set up a call across a network such as that of FIG. 1;[0016]
FIGS. 4[0017]aand4bcomprise a flowchart describing a procedure according to the invention for assembling a call detail record for the call set up by the command sequence of FIG. 3; and
FIG. 5 shows an example of a call detail record created by the procedure of FIGS. 4[0018]aand4b.
BEST MODE FOR CARRYING OUT THE INVENTION, & INDUSTRIAL APPLICABILITYFIG. 1 shows the primary features of a network for coupling voice telephony and data signals from customer premises equipment (CPE) via an IP packet-switched network to the PSTN. Referring to FIG. 1, the CPE[0019]10 (analogue phone, personal computer modem etc.) is coupled to aresidential media gateway12, which provides media and signalling conversion functions for transporting voice/data signals from the CPE via anIP network14 to a second,trunk media gateway16. TheIP network14 may be implemented, for example, using digital subscriber line (DSL), cable or fixed wireless technology.
The[0020]trunk media gateway16 provides media and signalling conversion functions for transmission of the voice/data signals onwards over the PSTN, as indicated at18, the operation of which is coordinated by an associatedsignalling network20 operating in accordance with the Signalling System no.7 (SS7) protocol.
Operation of the[0021]media gateways12 and16 to set up a call through the IP network14 (for example to allocate IP resources within each gateway and communicate related operational information between the gateways) is coordinated by anMGC22. This MGC communicates with thegateways12 and16 by using MGCP messages (over IP-based signalling links indicated by dashed lines) and with other nodes in the signalling network20 (e.g. other MGC's) by using SS7 messages.
FIG. 2 illustrates in more detail the functionality incorporated in the[0022]gateways12 and16. Referring to FIG. 2, theresidential media gateway12 implements endpoints, such as24, which may for example be connected to external analogue phone lines such as that for the CPE10 (FIG. 1). Each endpoint has a respective endpoint identifier, comprising the domain name of its gateway (such as rgw01 for the residential gateway12) and a local name within the gateway (such as p1 for the endpoint24). Theresidential gateway12 also has links to theIP network14 and can establish an IP connection between such a link and an endpoint in the gateway, by allocating IP resources within the gateway to that endpoint in order to create an IP session which is associated with the endpoint. The allocated IP resources include an IP address (such as 208.1.2.3) and a Real-time Transport Protocol (RTP) port number.
The[0023]residential gateway12 shares information with the MGC22 about the IP resources allocated to an endpoint involved in setting up a call, in a Session Description Protocol (SDP) session description, and the MGC22 forwards this information to thetrunk media gateway16. This gateway implements endpoints (such as the endpoint t1 @tgw01, connected to the PSTN) in the same manner as theresidential gateway12, and can likewise allocate IP resources (such as the IP address 208.1.2.5 and the RTP port1029) in order to establish an IP connection between theIP network14 and that endpoint. Information about these IP resources is shared by thetrunk gateway16 with theresidential gateway12 via the MGC22. FIG. 3 shows the principal features of command and response messages exchanged in IP packets by the MGC22 with thegateways12 and16 to set up and clear a call through theIP network14.
Referring to FIG. 3, the endpoints p1 @rgw01 and t1 @tgw01 in the[0024]gateways12 and16 respectively are represented by the left- and right-hand vertical lines, and theMGC22 is represented by the central vertical line. Messages passed in IP packets between these units are represented by horizontal arrows, and time runs down the page.
It is assumed that the MGC[0025]22 has previously sent a NotificationRequest (RQNT) command to theresidential gateway12, instructing it to monitor its endpoints for various specified events, including an off-hook transition of associated CPEs, and to notify theMGC22 of the occurrence of these events. When the endpoint p1 @rgw01 detects that theCPE10 connected to it has gone off-hook, it sends a Notify command to the MGC22. This command includes a transactionID ortransaction number1230 assigned by theresidential gateway12, the identity of the relevant endpoint, and an O parameter hd identifying the observed (off-hook) event.
The MGC[0026]22 sends a response (2001230) confirming reception of the Notify command (identified by its transactionID), and follows this with a NotificationRequest command with an S parameter dl instructing the endpoint to apply dial tone to the connected phone line. After sending a response to this command theresidential gateway12 collects digits dialled by the customer and then sends a Notify command to the MGC22 with an O parameter containing the dialled number. The MGC22 confirms reception of this command, and reacts by sending back a CreateConnection command for theresidential gateway12 to allocate resources to the endpoint p1 @rgw01 for the required call. This command includes a C parameter giving the call a unique CallID identifier (99). A resulting response from thegateway12 confirms creation of the required connection to the endpoint p1 @rgw01 and provides an SDP description of this connection, including the IP address (208.1.2.3) and the RTP port (48) to be used.
The MGC[0027]22 forwards this SDP description to thetrunk media gateway16 in another CreateConnection command (transactionID4230), together with the relevant CallID, and the gateway sends a response with the SDP description of the connection it consequently creates to the endpoint t1 @tgw01 specified in the CreateConnection command. This second SDP description is provided by the MGC22 to theresidential media gateway12 by means of a ModifyConnection command (transactionID3232), including the CallID to identify the relevant call. Thegateway12 sends a response to this command, and thereafter transfer of media (e.g. voice call data) directly between the endpoints in the twogateways12 and16, via theIP network14, can take place.
When the transfer has been completed and the customer hangs up, the[0028]residential media gateway12 detects and signals this event to the MGC22 with a Notify command containing the appropriate O parameter hu. The MGC responds by sending DeleteConnection commands containing the relevant CallID) to both thegateways12 and16, which react by removing the associated connections for the specified endpoints (and thus releasing the related IP resources) and sending back confirmatory response messages (250 and transactionID).
The wide variety of different messages and associated parameters involved in the procedure outlined in FIG. 3 preclude simple correlation of the messages to assemble a Call Detail Record (CDR) for a call which is set up using media gateways in the manner described. For example, there is no counterpart to the combination of originating point code (OPC), destination point code (DPC) and circuit-identification code (CIC) which can be used to associate SS7 signalling messages all relating to the same call uniquely with one another —the unique CallID in the CreateConnection command is not necessarily present in every MGCP message. Nonetheless, call monitoring, fraud detection, billing verification and other network management functions require the availability of CDRs for calls set up via distributed telecommunications switches. The present invention enables such CDRs to be assembled from the MGCP messages (or messages generated in accordance with other functionally similar protocols such as Megacop/H.248).[0029]
To this end, the MGCP signalling links connecting the[0030]media gateways12 and16 to theMGC22 are provided with apassive monitoring device26 as shown in FIG. 2. For this purpose equipment of similar functionality to Agilent acceSS7 monitoring equipment for SS7 links may be used, with interfaces adapted to match the communications technology used for the MGCP IP links. Themonitoring device26 detects all MGCP messages traversing the links between theMGC22 and thegateways12 and16 and generates timestamped copies of them, without affecting the transmission of the MGCP messages themselves. These copies are then transferred, for example via a local area network, to amonitoring control centre28, which typically comprises data storage equipment and associated data processing equipment operating under the control of appropriate software program instructions to perform the required analyses of the data collected.
FIGS. 4[0031]aand4bshow a procedure in accordance with this invention for assembling CDRs using the copied MGCP messages. Referring to FIGS. 4aand4b, the procedure reads each stored MGCP message copy in turn, as represented atstep30, and then tests atstep32 whether the message is a command message, such as NotificationRequest or Notify, or a response to such a message. In the case where it is a command, the procedure advances to step34 and tests whether the command message has been sent to or from theMGC22. For a message sent to theMGC22 the procedure implementsstep36, to create a temporary association between the source IP address for MGCP IP packets sent by the gateways and the host name in the endpoint specified in the command message (e.g. the host name rgw01); for a message sent from the MGC22 acounterpart step38 is implemented, to create a temporary association between the destination IP address for the MGCP IP packets and the endpoint's host name. These temporary associations may involve, for example, creating entries in index tables held in the data storage equipment. The associations enable either one of the IP address and the host name to be determined by reference to the other, and permit meaningful names (as distinct from more obscure IP addresses) to be included in displays of call records. They also enable commands and responses to be matched, by correlating source IP address and transaction number for a command with (the same) destination IP address and transaction number for a response.
After implementing either step[0032]36 or38, the procedure continues to step40, to test whether a CallID is present in the command message. If a CallID is not present, a further test is made atstep42 to determine whether the message signals the start of a call (i.e. a Notify command with an O parameter hd). If the message does signify the start of a call, a new call record is created at step44 (e.g. a new entry is created in a call record table held in the data storage equipment, together with entries in associated index tables). Then atstep46 the endpoint identified in the command message is associated with the new call record (e.g. by entering that endpoint name in an appropriate field in the call record). Thereafter the procedure continues to astep64 described below.
If the test at[0033]step42 shows that the command message does not signify the start of a call, the procedure moves to step48 where a test is made to determine whether there is already a call record associated with the endpoint identified in the command message. If not the procedure implementssteps44 and46 described above; otherwise the procedure advances to thestep64 described subsequently.
If the test at[0034]step40 establishes that a CallID is present in the command message, another test atstep50 is carried out to find whether an existing call record is already associated with that CallID. If there is no such call record another test is made atstep52, to find whether an existing call record is already associated with the endpoint identified in the command message; if no call record is associated with the endpoint a new call record is created, atstep54, and the endpoint specified in the message is associated with the new record. Atstep56 the CallID specified in the message is associated with the relevant call record (either as already found to exist atstep52 or as created at step54).
If the test at[0035]step50 does locate a call record associated with the CallID), a further test is made atstep58 to determine whether the message is a DeleteConnection (DLCX) command. If so, a timer for the call is started atstep60, and if not the timer is cancelled atstep62—in either case the procedure then continues to step64. The timer specifies a waiting period to cater for the possibility that another connection might be established for the call; when the timer expires, indicating that no further connection is being made, the call can be treated as having ended and the temporary association between the call record and the endpoint is terminated. This ensures that a subsequent message involving that endpoint (for example for an incoming call to theCPE10 associated with the endpoint) will be correctly recognized as relating to a new call. Detection of any command other than DLCX with the relevant CallID atstep58 indicates that another connection is being established in the call, in which case the timer is cancelled atstep62 to maintain the association of the current call record with the endpoint.
Following[0036]steps46 and56, or after affirmative results from the tests atsteps48 and50, the procedure advances to step64, where the source IP address and the transaction number (transactionID) specified in the command message are associated with the relevant call record which has already been created or identified prior to reachingstep64.
Finally, at[0037]step66, the message itself is appended to the call record, and thereafter the overall procedure is repeated to examine another stored message copy.
In the case where the test at[0038]step32 determines that the message copy being examined is a response message, the procedure implementsstep68 to select the existing call record associated with the destination IP address and the transaction number contained in the message. Then the procedure continues directly to step66 described above.
FIGS. 3, 4[0039]aand4bdeal primarily with the case of an outbound call being made by theCPE10 associated with the endpoint in theresidential media gateway12. For an inbound call to the CPE the first message is a CreateConnection (CRCX) command to thetrunk media gateway16, followed by a CRCX command to theresidential media gateway12 with an S parameter rg, to cause theCPE10 to ring. The CRCX command must include the associated unique CallID, the presence of which will be detected atstep40 causing the procedure to continue to step50 and ultimately to create a new call record.
As a result of applying this procedure to a series of MGCP messages, the following correlations are accomplished:[0040]
commands are matched with the associated responses (by reference to the IP addresses of MGCP packets and the transactionID—steps[0041]64 and68);
commands and responses are associated with the part of a call route involving a specific endpoint (by reference to the endpoint names contained in the command messages—steps[0042]46,48,52 and54); and
different parts of a call's route involving different endpoints are associated with one another (by reference to the CallIDs contained in certain command messages—steps[0043]50 and56).
Further associating all these correlations together in a call detail record enables all the component messages to be correlated with one another, irrespective of the different identifying information contained in different messages. Thus a call record such as that shown in FIG. 5 is produced for use by other application programs, for example for monitoring quality of service or for billing purposes.[0044]