Abstract: A charging detail record transmission capability is provided herein. A mobile gateway (MG) generates charging detail records (CDRs) intended for delivery to a charging gateway function (CGF). The CDRs are propagated toward both a first and second charging data function (CDFs). The first and second CDFs buffer the CDRs. The first CDF is configured for propagating CDRs toward the CGF. The second CDF is configured for propagating CDRs toward the CGF when the first CDF fails. The CGF is configured for acknowledging receipt of CDRs to the first or second CDF from which the CDRs are received. The first CDF is configured for acknowledging to the second CDF receipt of acknowledgment messages from the first CDF. The second CDF is configured for upon failure of the first CDF initiating a process for determining which of the CDRs buffered at the second CDF need to be propagated to the CGF in order to ensure that none of the CDRs generated by the MG are lost due to the failure of the first CDF.
METHOD AND APPARATUS FOR RELIABLE TRANSMISSION OF
CHARGING DETAIL RECORDS
FIELD OF THE INVENTION
The invention relates generally to communication networks and, more
specifically but not exclusively, to transmission of charging detail records of
communication networks.
BACKGROUND
In many communication networks, charging detail records (CDRs) are
used by service providers as a basis for billing customers. In general, CDRs
are formatted collections of information about chargeable events (e.g., the
time of setup of a call, the duration of a call, an amount of data transferred via
a connection, and the like). In many mobile communication networks, CDRs
typically are generated by the mobile gateway (MG), which forwards the
CDRs to a charging data function (CDF), which in turn forwards the CDRs to a
charging gateway function (CGF). Disadvantageously, however, when the
CDF fails, CDRs that were buffered by the CDF for transmission to the CGF
at the time of failure may be lost, thereby resulting in lost revenue for the
service provider.
SUMMARY
Various deficiencies in the prior art are addressed by embodiments for
reliable transmission of charging detail records (CDRs). A mobile gateway
(MG) generates CDRs intended for delivery to a charging gateway function
(CGF). The CDRs are propagated toward both first and second charging data
function (CDFs). The first and second CDFs buffer the CDRs. The first CDF
is configured for propagating CDRs toward the CGF. The second CDF is
configured for propagating CDRs toward the CGF when the first CDF fails.
The CGF is configured for acknowledging receipt of CDRs to the first or
second CDF from which the CDRs are received. The first CDF is configured
for acknowledging, to the second CDF, receipt of acknowledgment messages
806995 2
from the first CDF. The second CDF is configured for, upon failure of the first
CDF, initiating a process for determining which of the CDRs buffered at the
second CDF need to be propagated to the CGF in order to ensure that none
of the CDRs generated by the MG are lost due to the failure of the first CDF.
BRIEF DESCRIPTION OF THE DRAWINGS
The teachings herein can be readily understood by considering the
following detailed description in conjunction with the accompanying drawings,
in which:
FIG. 1 depicts a high-level block diagram of an exemplary charging
architecture;
FIG. 2 depicts a high-level block diagram of an exemplary charging
architecture;
FIG. 3 depicts an exemplary use of the charging architecture of FIG. 1
for providing reliable delivery of charging detail records;
FIG. 4 depicts one embodiment of a method for use by a mobile
gateway in providing reliable transmission of charging detail records to a
charging gateway function;
FIG. 5 depicts one embodiment of a method for use by a charging data
function, operating as an active charging data function, in providing reliable
transmission of charging detail records to a charging gateway function;
FIG. 6 depicts one embodiment of a method for use by a charging data
function, operating as a backup charging data function, in providing reliable
transmission of charging detail records to a charging gateway function; and
FIG. 7 depicts a high-level block diagram of a computer suitable for use
in performing the functions described herein.
To facilitate understanding, identical reference numerals have been
used, where possible, to designate identical elements that are common to the
figures.
DETAILED DESCRIPTION OF THE INVENTION
806995 3
A charging detail record transmission capability is depicted and
described herein. The charging detail record transmission capability provides
reliable transmission of charging detail records from a mobile gateway to a
charging gateway function, even upon failure of a charging detail function
responsible for propagating charging data records from the mobile gateway to
the charging gateway function, thereby ensuring reliable delivery of the
charging detail records to one or more systems configured for processing the
charging detail records to provide various accounting functions, billing
functions, and the like, as well as various combinations thereof.
The charging detail record transmission capability may be provided
within any communication network in which charging detail records or similar
charging data are propagated for use by one or more systems configured for
providing various accounting functions, billing functions, and the like, as well
as various combinations thereof.
The charging detail record transmission capability is primarily depicted
and described herein within the context of a specific type of wireless network
(namely, a Third Generation Partnership Project (3GPP) Universal Mobile
Telecommunication System (UMTS) network), however, it will be appreciated
that the charging detail record transmission capability may be implemented
within charging architectures of various other types of networks (e.g., other
types of wireless networks, wireline networks, and the like).
FIG. 1 depicts a high-level block diagram of an exemplary charging
architecture.
The charging architecture 100 includes a mobile gateway (MG) 110 ,
first and second charging data functions (CDF) 120A and 120B (collectively,
CDFs 120), and a charging gateway function (CGF) 130.
The MG 110 communicates with first CDF 120A via a communication
path 115A and communicates with second CDF 120B via a communication
path 1 5B. The first and second CDFs 120A and 120B communicate via a
communication path 121 therebetween. The first and second CDFs 120A and
120B communicate with CGF 130 via communication paths 125A and 125B,
respectively.
806995 4
In one embodiment, charging architecture 100 is implemented within a
3GPP UMTS network. The MG 110 may be any suitable network element
within the 3GPP UMTS network, such as a Gateway GPRS Support Node
(GGSN), a Serving GPRS Support Node (SGSN), or any other network
element associated with the 3GPP UMTS network. The interfaces between
CDFs 120A and 120B and CGF 130, via respective communication paths 125A
and 125B, may be Ga interfaces. The protocol used for exchanging messages
over the Ga interfaces may be the GPRS Tunneling Protocol (GTP) prime
(GTP') protocol, the typical operation of which will be understood by one
skilled in the art. In one embodiment, the charging architecture 100 may be
implemented as a modified version of the 3GPP TS 32.240 charging
architecture.
The MG 110 generates charging detail records (CDRs). The CDRs
include details about chargeable events, e.g., for use in accounting functions,
for use in billing customers, and the like. For example, for each chargeable
event, the associated CDR may include details such as the time of call setup,
the duration of the call, the amount of data transferred, and the like, as well as
various combinations thereof. The types of information included within CDRs,
formatting of CDRs, and like details of CDRs will be understood by one skilled
in the art. The CDRs have unique sequence numbers associated therewith.
The MG 110 propagates each CDR to both first CDF 120A and second
CDF 120B. The CDRs may be propagated in any suitable manner. In one
embodiment, for example, the CDRs are propagated using respective CDR
packets, where the CDR packets conveying the CDRs include the unique
sequence numbers associated with the CDRs.
The first and second CDFs 120A and 120B receive the CDRs from MG
110 . The first and second CDFs 120A and 120B each buffer the received
CDRs.
The first CDF 120A is the primary CDF and the second CDF 120B is the
secondary CDF. The first CDF 120A has an active connection with CGF 130
via communication path 125A. The second CDF 120B does not have an active
connection with CGF 130. The active connection between first CDF 120A and
806995 5
CGF 130 may be supported using any suitable protocol. In one embodiment,
for example, the active connection between the first CDF 120A and the CGF
130 may be supported using the GTP' protocol.
The first CDF 120A begins sending the buffered CDRs to CGF 130 via
the active connection established between first CDF 120A and CGF 130. In
one embodiment, the CDRs are sent from first CDF 120A to CGF 130 using
the GTP' protocol. The second CDF 120B continues to buffer the CDRs, but
does not send the CDRs to CGF 130.
The CGF 130 receives the CDRs from first CDF 120A and, for each
CDR successfully received from first CDF 120A, replies to first CDF 120A with
an associated acknowledgment message. The acknowledgment message for
a CDR includes the associated sequence number of the CDR.
The first CDF 120A receives the acknowledgment messages from CGF
130.
The first CDF 120A deletes successfully delivered CDRs from its buffer
in response to receiving acknowledgment of successful delivery (as
determined from the sequence numbers of the CDRs, which are included
within the acknowledgment messages received from CGF 130).
The first CDF 120A notifies second CDF 120B of each CDR that is
acknowledged by CGF 130 as having been received by CGF 130, thereby
providing second CDF 120B with information indicative of which of the CDRs
received and buffered at second CDF 120B have been successfully delivered
to CGF 130. The first CDF 120A may notify second CDF 120B of successful
delivery of a CDR in any suitable manner (e.g., by forwarding the associated
acknowledgment message received from CGF 130 to second CDF 120B, by
generating an acknowledgment message and sending the acknowledgment
message to second CDF 120B, and the like).
The second CDF 120B receives the notifications from first CDF 120A,
such that second CDF 120B has information indicative of which of the CDRs
received and buffered at second CDF 120B have been successfully delivered
to CGF 130. The second CDF 120B deletes successfully delivered CDRs from
its buffer (as determined from the notifications received at the second CDF
806995 6
120B from the first CDF 120A). In this manner, second CDF 120B maintains
copies of CDRs until receiving notification from first CDF 120A that the CDRs
have been successfully delivered to CGF 130.
The operation of charging architecture 100 proceeds in this manner
until first CDF 120A fails.
The first CDF 120A fails, and the second CDF 120B becomes the
primary CDF. The second CDF 120B establishes an active connection with
CGF 130 via communication path 125B. The active connection between
second CDF 120B and CGF 130 may be supported using any suitable
protocol. In one embodiment, for example, the active connection between the
second CDF 120B and the CGF 130 may be supported using the GTP'
protocol.
The second CDF 120B, at the time at which it becomes the primary
CDF, has information suitable for preventing loss of CDRs. The second CDF
120B buffers each of the CDRs received from MG 110 . The second CDF
120B, at the time at which first CDF 120A fails, is buffering copies of each of
the CDRs that ( 1 ) have been received by first CDF 120A from MG 110 but
have not yet been transmitted from first CDF 120A toward CGF 130 (i.e., they
are still buffered within first CDF 120A awaiting transmission toward CGF 130)
and (2) have been transmitted by first CDF 120A to CGF 130 but for which
associated acknowledgment messages have not yet been received at second
CDF 120B from first CDF 120A (e.g., because the first CDF 120A had not yet
received the acknowledgment messages from CGF 130 prior to failure of the
first CDF 120A, because the first CDF 120A received the acknowledgment
messages from CGF 130 but did not send the associated sequence numbers
to second CDF 120B prior to failure of the first CDF 120A, or because the first
CDF 120A received the acknowledgment messages from CGF 130 and sent
the associated sequence numbers toward second CDF 120B prior to failure of
the first CDF 120A but the sequence numbers have not yet been received by
the second CDF 120B) . These CDRs that are buffered at second CDF 120B at
the time of failure of first CDF 120A are referred to herein as pending CDRs.
806995 7
The second CDF 120B determines the state of each of the pending
CDRs where, for each pending CDR, the state is indicative of whether or not
that CDR was received at CGF 130. The second CDF 120B determines the
state of each of the pending CDRs by querying the CGF 130 for each of the
pending CDRs in order to determine, for each of the pending CDRs, whether
or not that CDR was received at CGF 130. The second CDF 120B queries the
CGF 130 for the pending CDRs based on the sequence numbers of the
pending CDRs. The query may be performed in any suitable manner (e.g.,
using a separate query request message for each pending CDR, using one or
more query request messages specifying one or more ranges of sequence
numbers of pending CDRs, and the like). The CGF 130 receives the query
request message(s) from second CDF 120B. The CGF 130 determines, for
each of the pending CDRs for which status is requested, whether or not the
associated CDR was received at CGF 130. The CGF 130 responds to the
query request message(s) with a query response including the current state of
each of the pending CDRs. The query response may be provided in any
suitable manner (e.g., using a separate query response message for each
pending CDR, using one or more query response messages specifying one or
more ranges of sequence numbers of pending CDRs, and the like). The
second CDF 120B receives the query response message(s) from CGF 130.
The second CDF 120B determines the state of each of the pending CDRs
based on the query response message(s) received from CGF 130.
The second CDF 120B begins forwarding CDRs to CGF 130. The
second CDF 120B begins forwarding CDRs to CGF 130 based on determined
statuses of the pending CDRs, e.g., pending CDRs acknowledged by the
CGF 130 as having been received from first CDF 120A are not sent from
second CDF 120B to CGF 130 and pending CDRs indicated by the CGF 130
as not having been received from first CDF 120A are sent from second CDF
120B to CGF 130.
The second CDF 120B continues sending CDRs to CGF 130 as long as
second CDF 120B is the primary CDF.
806995 8
In this manner, CDRs generated by MG 110 are reliably delivered to
CGF 130 such that CGF 130 may then provide the CDRs for use in various
accounting functions, billing functions, and the like, as well as various
combinations thereof.
In one embodiment, as depicted and described with respect to FIG. 1,
the charging detail record transmission capability may be provided within a
charging architecture in which the CDFs are implemented as standalone
elements separate from the MG.
In one embodiment, the charging detail record transmission capability
may be provided within a charging architecture in which the CDFs are
implemented within the MG. An exemplary charging architecture according to
one such embodiment is depicted and described with respect to FIG. 2 .
FIG. 2 depicts a high-level block diagram of an exemplary charging
architecture.
The charging architecture 200 includes a mobile gateway (MG) 210
and a charging gateway function (CGF) 230.
The MG 2 10 includes a plurality of mobile switching modules (MSMs)
2 12 - 2 12N (collectively, MSMs 212). The typical operation of MSMs 212 of
MG 2 10 will be understood by one skilled in the art.
The MG 2 10 also includes first and second Communications Processor
Modules (CPMs) 214A and 214 B (collectively, CPMs 214). In this
embodiment, CPMs 2 14A and 2 14B support functionality substantially similar
to functionality of first CDF 120A and second CDF 120B of FIG. 1, respectively.
In one embodiment, the CPMs 214 also may provide other functions within
MG 2 10 .
The MSMs 212 - 212N each communicate with both of the CPMs 214
via respective communication paths 2 13 . The first and second CPMs 2 14A
and 2 14B communicate with CGF 230 via communication paths 2 15A and
2 15B, respectively.
In one embodiment, charging architecture 200 is implemented within a
3GPP UMTS network. In one such embodiment, charging architecture 200 is
806995 9
implemented as a modified version of the 3GPP TS 32.240 charging
architecture.
The MSMs 2 12 - 2 12N each generate charging detail records (CDRs),
which include details about chargeable events for use in billing customers.
The CDRs have unique sequence numbers associated therewith.
The MSMs 2 12 - 2 12N each propagate their generated CDRs to both
the first CPM 2 14A and the second CPM 2 14B. The CDRs may be propagated
in any suitable manner.
The first and second CPMs 2 14A and 2 14B receive the CDRs from the
MSMs 212i - 212N. The first and second CPMs 2 14A and 2 14B each buffer
the received CDRs.
The first CPM 2 14A is the primary CPM and the second CPM 2 14B is
the secondary CPM. The first CPM 2 14A has an active connection with CGF
230 via communication path 2 15A. The second CPM 2 14B does not have an
active connection with CGF 230. The active connection between first CPM
2 14A and CGF 230 may be supported using any suitable protocol. In one
embodiment, for example, the active connection between the first CPM 2 14A
and the CGF 230 may be supported using the GTP' protocol.
The first CPM 2 14A begins sending the buffered CDRs to CGF 230 via
the active connection established between first CPM 2 14A and CGF 230.
In one embodiment, in which the GTP' protocol is used, first CPM 2 14A
sends the CDRs to CGF 230 using GTP' packets. In one such embodiment,
for example, the CDRs may be sent using GTP' Data Record Transfer
Request messages in which the Packet Transfer Command IE has a value of
"Send Data Record Packet."
The second CPM 2 14B continues to buffer the CDRs, but does not
send the CDRs to CGF 230.
The CGF 230 receives the CDRs from first CPM 2 14A and, for each
CDR successfully received from first CPM 2 14A, replies to first CPM 2 14A with
an associated acknowledgment message. The acknowledgment message for
a CDR includes the associated sequence number of the CDR.
806995 10
In one embodiment, in which the GTP' protocol is used, CGF 230
sends the acknowledgment messages to first CPM 2 14A using GTP' packets.
The acknowledgment messages may be sent using GTP' Data Record
Transfer Response messages in which the Cause value is "Request
Accepted."
The first CPM 2 14A receives the acknowledgment messages from CGF
230.
The first CPM 2 14A deletes successfully delivered CDRs from its buffer
in response to receiving acknowledgment of successful delivery (as
determined from the sequence numbers of the CDRs, which are included
within the acknowledgment messages received from CGF 230).
The first CPM 2 14A notifies the second CPM 2 14B of each CDR that is
acknowledged by CGF 230 as having been received by CGF 230, thereby
providing second CPM 2 14B with information indicative of which of the CDRs
received and buffered at second CPM 2 14B have been successfully delivered
to CGF 230. The first CPM 2 14A may notify second CPM 2 14B of successful
delivery of a CDR in any suitable manner (e.g., by forwarding the associated
acknowledgment message received from CGF 230 to second CPM 2 14B, by
generating an acknowledgment message and sending the acknowledgment
message to second CPM 2 B, and the like).
The second CPM 2 14B receives the notifications from first CPM 2 A,
such that second CPM 2 14B has information indicative of which of the CDRs
received and buffered at second CPM 2 14B have been successfully delivered
to CGF 230. The second CPM 2 14B deletes successfully delivered CDRs from
its buffer (as determined from the notifications received at the second CPM
2 14B from the first CPM 2 14A) . In this manner, second CPM 2 14B maintains
copies of CDRs until receiving notification from first CPM 2 14A that the CDRs
have been successfully delivered to CGF 230.
The operation of charging architecture 200 proceeds in this manner
until first CPM 2 14A fails.
The first CPM 2 14A fails, and the second CPM 2 14B becomes the
primary CPM. The second CPM 2 14B establishes an active connection with
806995
CGF 230 via communication path 2 15B. The active connection between
second CPM 2 14B and CGF 230 may be supported using any suitable
protocol. In one embodiment, for example, the active connection between
second CPM 2 14B and CGF 230 may be supported using the GTP' protocol.
The second CPM 2 14B, at the time at which it becomes the primary
CPM, has information suitable for preventing loss of CDRs. The second CPM
2 14B buffers each of the CDRs received from each of the MSMs 212 of MG
2 10 . The second CPM 2 14B, at the time at which first CPM 2 14A fails, is
buffering copies of each of the CDRs that ( 1) have been received by first CPM
2 14A from the MSMs 212 of MG 110 but have not yet been transmitted from
first CPM 214A toward CGF 230 (i.e., they are still buffered within first CPM
214A awaiting transmission toward CGF 230) and (2) have been transmitted
by first CPM 2 14A to CGF 230 but for which associated acknowledgment
messages have not yet been received at second CPM 2 14B from first CPM
214A (e.g., because the first CPM 214A had not yet received the
acknowledgment messages from CGF 230 prior to failure of the first CPM
214A, because the first CPM 2 14A received the acknowledgment messages
from CGF 230 but did not send the associated sequence numbers to second
CPM 2 14B prior to failure of the first CPM 2 14A, or because the first CPM 2 14A
received the acknowledgment messages from CGF 230 and sent the
associated sequence numbers toward second CPM 2 14B prior to failure of the
first CPM 2 14A but the sequence numbers have not yet been received by the
second CPM 2 14B) . These CDRs that are buffered at second CPM 2 14B at
the time of failure of first CPM 2 14A are referred to herein as pending CDRs.
The second CPM 214B determines the state of each of the pending
CDRs where, for each pending CDR, the state is indicative of whether or not
that CDR was received at CGF 230.
The second CPM 214B determines the state of each of the pending
CDRs by querying the CGF 230 for each of the pending CDRs in order to
determine, for each of the pending CDRs, whether or not that CDR was
received at CGF 230. The second CPM 2 14B queries the CGF 230 for the
pending CDRs based on the sequence numbers of the pending CDRs. The
806995 12
query may be performed in any suitable manner (e.g., using a separate query
request message for each pending CDR, using one or more query request
messages specifying one or more ranges of sequence numbers of pending
CDRs, and the like). The second CPM 2 14B sends query request message(s)
to the CGF 230.
In one embodiment, in which the GTP' protocol is used, second CPM
2 14B sends the query request messages to CGF 230 using GTP' packets. In
one such embodiment, the GTP' packets may be sent as GTP' Data Record
Transfer Request messages in which the Data Packet Record IE is empty
(rather than including a CDR) while other header portions of the GTP' Data
Record Transfer Request messages are present.
The CGF 230 receives the query request message(s) from second
CPM 2 14B. The CGF 230 determines, for each of the pending CDRs for
which status is requested, whether or not the associated CDR was received at
CGF 230. The CGF 230 responds to the query request message(s) with a
query response including the current state of each of the pending CDRs. The
query response may be provided in any suitable manner (e.g., using a
separate query response message for each pending CDR, using one or more
query response messages specifying one or more ranges of sequence
numbers of pending CDRs, and the like). The CGF 230 sends the query
response message(s) to the second CPM 2 14B.
In one embodiment, in which the GTP' protocol is used, CGF 230
sends the query response messages to second CPM 2 14B using GTP'
packets. The information included within a GTP' packet for a pending CDR
depends on the current status of the pending CDR.
In one embodiment, if the CDR was not successfully received at CGF
230, the query response message sent by CGF 230 is a Data Record
Transfer Response message having a Cause value set to "Request Accepted"
(or any other suitable value, which may be any value as long as the second
CPM 2 14B is configured to recognize that the value indicates that the CDR
was not successfully received). In this case, the second CPM 2 14B knows
806995 13
that the CDR associated with that sequence number must be sent to CGF
230.
In one embodiment, if the CDR was successfully received at CGF 230,
the query response message sent by CGF 230 is a Data Record Transfer
Response message having a Cause value set to "Request Fulfilled" (or any
other suitable value, which may be any value as long as the second CPM
2 14B is configured to recognize that the value indicates that the CDR was
successfully received). In this case, the second CPM 2 14B knows that the
CDR associated with that sequence number does not need to be sent to CGF
230.
The second CPM 2 14B receives the query response message(s) from
CGF 230.
The second CPM 214B determines the state of each of the pending
CDRs based on the query response message(s) received from CGF 230.
The second CPM 214B begins forwarding CDRs to CGF 230. The
second CPM 2 14B begins forwarding CDRs to CGF 230 based on determined
statuses of the pending CDRs, e.g., pending CDRs acknowledged by the
CGF 230 as having been received from first CPM 2 14A are not sent from
second CPM 2 14B to CGF 230 and pending CDRs indicated by the CGF 230
as not having been received from first CPM 2 14A are sent from second CPM
2 14B to CGF 230.
The second CPM 2 14B continues sending CDRs to CPM 230 as long
as second CPM 2 14B is the primary CPM.
In this manner, CDRs generated by MG 210 are reliably delivered to
CGF 230 such that CGF 230 may then provide the CDRs for use in various
accounting functions, billing functions, and the like, as well as various
combinations thereof.
Although the exemplary charging architectures of FIGs. 1 and 2 are
primarily depicted and described within the context of a specific type of
communication network utilizing specific protocols (namely, a 3GPP UMTS
network using the GTP' protocol), it will be appreciated that the exemplary
charging architectures of FIGs. 1 and 2 may be implemented within various
806995 14
other types of communication networks utilizing various other protocols (e.g.,
other types of wireless networks, wireline networks, and the like).
The operation of the exemplary charging architectures of FIGs. 1 and 2
in providing reliable transmission of CDRs may be better understood by way
of an example.
FIG. 3 depicts an exemplary use of the charging architecture of FIG. 1
for providing reliable delivery of charging detail records.
In this example, MG 110 has transmitted twenty CDRs (numbered 1
through 20) to both the first and second CDFs 120, and is in the process of
transmitting a twenty-first CDR to both first and second CDFs 120. The first
and second CDFs 120 have each buffered each of the twenty CDRs ( 1 - 20).
The first CDF 120A has transmitted the first fourteen CDRs ( 1 - 14) toward
CGF 130. The CGF 130 has received the first eleven CDRs ( 1 - 11) from first
CDF 120A. The CGF 130 has not yet received the next three CDRs (12 - 14)
transmitted from the first CDF 120A toward CGF 130 (i.e., the CDRs are
currently in transit between CDF 120A and CGF 130). The CGF 130 has
transmitted, toward first CDF 120A, acknowledgment messages (ACK1 -
ACK1 0) acknowledging receipt of the first ten CDRs ( 1 - 10) at CDF 120A, but
has not yet transmitted the acknowledgment message (ACK1 1) for the
eleventh CDR ( 1 1) . The first CDF 120A has received acknowledgment
messages (ACK1 - ACK9) from CGF 130 for the first nine CDRs, but the
acknowledgment message (ACK1 0) for the tenth CDR is still in transit from
CGF 130 to first CDF 120A. The first CDF 120A, upon receiving each of the
acknowledgment messages from CGF 130, removes the associated CDR
from its buffer. Thus, the CDRs that have been received by first CDF 120A
but which have not yet been acknowledged from CGF 130 to first CDF 120A
( 10 - 20) are currently buffered within first CDF 120A, i.e., the first nine CDRs
( 1-9) were removed from the buffer of first CDF 120A as the associated
acknowledgment messages (ACK1 - ACK9) for these CDRs ( 1 - 9) were
received at first CDF 120A from CGF 130. The first CDF 120A has informed
second CDF 120B of receipt of the acknowledgment messages (ACK1 -
ACK8) received from CGF 130 for the first eight CDRs ( 1 - 8). The first CDF
806995 15
120A has transmitted the acknowledgment message (ACK9) for the ninth CDR
(9) toward second CDF 120B. The second CDF 120B has received
acknowledgment messages (ACK1 - ACK8) for the first eight CDRs ( 1 - 8).
The second CDF 120B, upon receiving each of the acknowledgment
messages from first CDF 120A, removes the associated CDR from its buffer.
Thus, the CDRs that have been received by second CDF 120B but which have
not yet been acknowledged from first CDF 120A to second CDF 120B (9 - 20)
are currently buffered within second CDF 120B, i.e., the first eight CDRs ( 1-8)
were removed from the buffer of second CDF 120B as the associated
acknowledgment messages (ACK1 - ACK8) for these CDRs ( 1 - 8) were
received at second CDF 120B from first CDF 120A.
In this example, assume that first CDF 120A fails at this time.
The second CDF120 B assumes the role of primary CDF first CDF 120A
and, thus, is responsible for providing from MG 110 to CGF 130. The second
CDF 120B determines which of the CDRs are currently pending. The pending
CDRs are those that are currently buffered within second CDF 120B (9 - 20),
which includes (a) CDRs that have been received by CGF 130 but for which
the associated acknowledgments have not yet been received at second CDF
120B (namely, CDRs 9 - 11) , (b) CDRs that have by transmitted by first CDF
120A but not yet received by CGF 130 (namely, CDRs 12 - 14), and (c) CDRs
that have been received by first CDF 120A but have not yet been transmitted
from first CDF 120A toward CGF 130.
The second CDF 120B sends status request messages to CGF 130 for
each of the pending CDRs (9 - 20). The CGF 130 receives the status request
messages from the second CDF 120B, determines the requested status for
each of the CDRs (i.e., for each status request, CGF 130 determines whether
or not the associated CDR was received at CGF 130 from first CDF 120A),
and replies to second CDF 120B with associated status response messages.
The second CDF 120B receives the associated status response messages.
The second CDF 120B determines, from the status response messages,
which of the pending CDRs have been delivered to CGF 130 and which of the
pending CDRs still need to be delivered to CGF 130.
806995 16
The three CDRs received by CGF 130 but for which acknowledgment
was not yet received by second CDF 120B at the time of failure of first CDF
120A (namely, CDRs 9 - 11) and the three CDRs in transit from first CDF
120A to CGF 130 at the time of failure of the first CDF 120A (namely, CDRs 12
- 14) have all been received at CGF 130 by the time second CDF 120B
initiates the status request messages for these CDRs. As a result, the status
response messages received at second CDF 120B for CDRs 9 - 14 each
indicate that these CDRs have already been received at CGF 130, such that
second CDF 120B does not need to provide these CDRs to CGF 130.
The other pending CDRs ( 15 - 20), however, were buffered within first
CDF 120A at the time of failure of first CDF 120A and, thus, were not delivered
to CGF 130. As a result, the status response messages received at second
CDF 120B for CDRs 15 - 20 each indicate that these CDRs have not yet been
received at CGF 130, such that second CDF 120B may then provide these
CDRs to CGF 130.
As depicted in FIG. 3 , second CDF 120B begins transmitting CDRs to
CGF 130 starting with CDF 15 .
As may be seen from the example of FIG. 3 , the charging detail record
transmission capability prevents loss of CDRs even upon failure of a primary
CDF that is responsible for propagating the CDRs from the MG to the CGF.
FIG. 4 depicts one embodiment of a method for use by a mobile
gateway (MG) in providing reliable transmission of charging detail records
(CDRs) to a charging gateway function (CGF). At step 402, method 400
begins. At step 404, the MG generates CDRs. At step 406, each of the
CDRs is propagated toward both a first CDF and a second CDF. In one
embodiment, the first CDF and second CDF are internal to the MG and, thus,
the CDRs are propagated within the MG. In one embodiment, the first CDF
and second CDF are external to the MG and, thus, are propagated from the
MG toward the first and second CDFs using any suitable communication
paths. At step 408, method 400 ends. The operation of method 400 may be
better understood by way of reference to FIGs. 1 - 3 .
806995 17
FIG. 5 depicts one embodiment of a method for use by a charging data
function (CDF), operating as an active CDF, in providing reliable transmission
of charging detail records (CDRs) to a charging gateway function (CGF). The
active CDF is denoted as a first CDF and cooperates with a second, backup
CDF to support reliable transmission of CDRs. At step 502, method 500
begins. At step 504, the first CDF receives a CDR having an associated
sequence number. At step 506, the first CDF propagates the CDR toward a
CGF. At step 508, the first CDF receives, from the CGF, acknowledgment of
receipt of the CDR by the CGF. At step 510, the first CDF propagates the
sequence number of the CDR toward the second CDF, which is configured for
receiving a copy of the CDR that was received at the first CDF. At step 512,
method 500 ends. The operation of method 500 may be better understood by
way of reference to FIGs. 1 - 3 .
FIG. 6 depicts one embodiment of a method for use by a charging data
function (CDF), operating as a backup CDF, in providing reliable transmission
of charging detail records (CDRs) to a charging gateway function (CGF). The
backup CDF is denoted as a first CDF and cooperates with a second, active
CDF to support reliable transmission of CDRs.
At step 602, method 600 begins.
At step 604, the first CDF receives CDRs.
At step 606, the first CDF buffers the CDRs. The first CDF buffers
each CDR until receiving, from the second CDF, an acknowledgment
message indicative that the CDR was successfully propagated from the
second CDF to the CGF.
At step 608, a determination is made as to whether the second CDF
fails. The first CDF may detect and/or be informed of the failure of the first
CDF in any suitable manner. As long as the second CDF has not failed, the
first CDF continues to receive and buffer CDRs (i.e., method 600 returns to
step 604). When a determination is made that the second CDF has failed,
method 600 proceeds to step 6 10 (it will be appreciated that in this case, the
first CDF continues to receive and buffer CDFs as depicted and described
with respect to steps 604 and 606).
806995 18
At step 6 10 , the first CDF initiates a process for determining which of
the CDRs, buffered at the first CDF at the time of failure of the second CDF,
to propagate from the first CDF toward the CGF.
At step 612, method 600 ends.
The operation of method 600 may be better understood by way of
reference to FIGs. 1 - 3 .
Although primarily depicted and described herein within the context of
providing reliable transmission of CDRs having specific types of information
used for specific purposes, it will be appreciated that the charging detail
record transmission capability may be utilized for providing reliable
transmission of CDRs having any suitable types of information useful for any
suitable purposes.
Although primarily depicted and described herein within the context of
providing reliable transmission of CDRs within specific types of networks, it
will be appreciated that the charging detail record transmission capability may
be utilized for providing reliable transmission of CDRs in various other types
of communication networks.
Although primarily depicted and described herein within the context of
providing reliable transmission of CDRs, it will be appreciated that principles
of the charging detail record transmission capability may be utilized to provide
reliable transmission of other suitable types of records and data for which
reliable transmission of the records or data is required or desirable.
FIG. 7 depicts a high-level block diagram of a computer suitable for use
in performing functions described herein.
As depicted in FIG. 7 , computer 700 includes a processor element 702
(e.g., a central processing unit (CPU) and/or other suitable processor(s)), a
memory 704 (e.g., random access memory (RAM), read only memory (ROM),
and the like), a cooperating module/process 705, and various input/output
devices 706 (e.g., a user input device (such as a keyboard, a keypad, a
mouse, and the like), a user output device (such as a display, a speaker, and
the like), an input port, an output port, a receiver, a transmitter, and storage
806995 19
devices (e.g., a tape drive, a floppy drive, a hard disk drive, a compact disk
drive, and the like)).
It will be appreciated that the functions depicted and described herein
may be implemented in software and/or in a combination of software and
hardware, e.g., using a general purpose computer, one or more application
specific integrated circuits (ASIC), and/or any other hardware equivalents. In
one embodiment, the cooperating process 705 can be loaded into memory
704 and executed by processor 702 to implement the functions as discussed
herein. Thus, cooperating process 705 (including associated data structures)
can be stored on a computer readable storage medium, e.g., RAM memory,
magnetic or optical drive or diskette, and the like.
It will be appreciated that computer 700 depicted in FIG. 7 provides a
general architecture and functionality suitable for implementing functional
elements described herein and/or portions of functional elements described
herein. For example, the computer 700 provides a general architecture and
functionality suitable for implementing one or more of an MG (e.g., the MG
110 in which CDFs are external to the MG 110 , the MG 2 10 in which CDFs
are implemented using CPMs 214 within MG 2 10 , one or more MSMs of a
mobile gateway, and the like), a standalone CDF (e.g., first CDF 120A and/or
second CDF 120B) , a CDF implemented as a CPM of a mobile gateway (e.g.,
CPM 214A and/or CPM 214B) , a CGF, and the like.
It is contemplated that some of the steps discussed herein as software
methods may be implemented within hardware, for example, as circuitry that
cooperates with the processor to perform various method steps. Portions of
the functions/elements described herein may be implemented as a computer
program product wherein computer instructions, when processed by a
computer, adapt the operation of the computer such that the methods and/or
techniques described herein are invoked or otherwise provided. Instructions
for invoking the inventive methods may be stored in fixed or removable media,
transmitted via a data stream in a broadcast or other signal bearing medium,
and/or stored within a memory within a computing device operating according
to the instructions.
806995 20
Aspects of various embodiments are specified in the claims. Those and
other aspects of various embodiments are specified in the following numbered
clauses:
1. A method, comprising:
generating a plurality of charging detail records (CDRs) at a mobile
gateway (MG); and
propagating each of the CDRs toward a first charging data function
(CDF) and a second CDF, wherein the first CDF is configured for propagating
CDRs toward a charging gateway function (CGF) upon receiving the CDRs,
wherein the second CDF is configured for propagating CDRs toward the CGF
when the first CDF fails.
2 . The method of clause 1, wherein the CDRs are generated by a mobile
switching module (MSM) of the MG.
3 . The method of clause 1, wherein first CDF and the second CDF are
each external to the MG.
4 . The method of clause 1, wherein the first CDF is a first module of the
MG and the second CDF is a second module of the MG.
5 . The method of clause 1, wherein each of the CDRs is propagated
using the GPRS Tunnelling Protocol prime (GTP') protocol.
6 . A method, comprising:
receiving, at a first charging data function (CDF), a charging detail
record (CDR) having a sequence number associated therewith;
propagating the CDR toward a charging gateway function (CGF);
receiving an acknowledgment of receipt of the CDR by the CGF,
wherein the acknowledgment includes the sequence number associated with
the CDR; and
propagating the sequence number from the first CDF toward a second
CDF configured for receiving a copy of the CDR received at the first CDF.
7 . The method of clause 6 , wherein the CDR is propagated toward the
CGF using the GPRS Tunnelling Protocol prime (GTP') protocol and the
acknowledgment is received using the GTP' protocol.
806995 2 1
8 . The method of clause 6 , wherein propagation of the acknowledgment
from the first CDF toward the second CDF is adapted for causing the second
CDF to delete the copy of the CDR.
9 . The method of clause 6 , wherein the CDR is received from a mobile
gateway (MG), wherein first CDF and the second CDF are each external to
the MG.
10 . The method of clause 6 , wherein the first CDF and the second CDF are
modules within a mobile gateway (MG), wherein the CDR is received from a
mobile switching module (MSM) of the MG.
11. A method, comprising:
receiving, at a first charging data function (CDF), a plurality of charging
detail records (CDRs) having a respectively plurality of sequence numbers
associated therewith;
buffering each of the CDRs at the first CDF, wherein each CDR is
buffered until receiving, from a second CDF, an acknowledgment message for
the CDR indicative that the CDR was successfully received by a charging
gateway function (CGF) from the second CDF; and
in response to failure of the second CDF, initiating a process for
determining which of the CDRs, buffered at the first CDF at the time of failure
of the second CDF, to transmit from the first CDF toward the CGF.
12. The method of clause 11, wherein the CDRs, buffered at the first CDF
at the time of failure of the second CDF comprise:
ones of the CDRs that have been received at the second CDF but have
not been transmitted from the second CDF toward the CGF; and
ones of the CDRs that have been transmitted from the second CDF
toward the CGF but for which acknowledgments have not been received at
the first CDF from the second CDF.
13 . The method of clause 11, wherein the CDRs have a respective plurality
of sequence numbers associated therewith, wherein determining which of the
CDRs, buffered at the first CDF at the time of failure of the second CDF, to
transmit from the first CDF toward the CGF comprises:
806995 22
determining a first sequence number, wherein the first sequence
number is the sequence number of the last CDR received at the first CDF
prior to failure of the second CDF;
determining a second sequence number, wherein the second
sequence number is the sequence number of the last CDR for which an
acknowledgment was received at the first CDF from the second CDF; and
identifying, using the first and second sequence numbers, ones of the
CDRs buffered at the first CDF at the time of failure of the second CDF.
14 . The method of clause 13 , wherein the identified ones of the CDRs
includes the CDRs having sequence numbers between the second sequence
number and the first sequence number.
15 . The method of clause 13 , wherein determining which of the CDRs,
buffered at the first CDF at the time of failure of the second CDF, to transmit
from the first CDF toward the CGF comprises:
for each of the identified ones of the CDRs, propagating, from the first
CDF toward the CGF, a status request message for determining whether the
CDR was received at the CGF, wherein the status request message
comprises the sequence number of the CDR.
16. The method of clause 15 , wherein the status request messages are
propagated using the GPRS Tunnelling Protocol prime (GTP') protocol.
17 . The method of clause 16, wherein each status request message
comprises a GTP' Data Record Transfer Request Message in which the
Packet Transfer Command IE is empty.
18 . The method of clause 15 , wherein determining which of the CDRs,
buffered at the first CDF at the time of failure of the second CDF, to transmit
from the first CDF toward the CGF further comprising:
for each of the identified ones of the CDRs, receiving a status response
message indicative of whether the CDR was received at the CGF, wherein the
status response message comprises the sequence number of the CDR.
19 . The method of clause 18 , wherein the status request messages are
propagated using the GPRS Tunnelling Protocol prime (GTP') protocol.
806995 23
20. The method of clause 19 , wherein each status request message
comprises a GTP' Data Record Transfer Response Message having a Cause
value indicative of whether or not the associated CDR was received at the
CGF.
2 1. The method of clause 15 , further comprising:
for each of the identified ones of the CDRs determined not to have
been received at the CGF, propagating the CDR from the first CDF toward the
CGF.
22. The method of clause 15 , further comprising:
for each of the identified ones of the CDRs determined to have been
received at the CGF, deleting the CDR from the first CDF.
Although these clauses are drafted as methods, it will be appreciated
that any of these method clauses also may be implemented as an apparatus
configured to perform the methods, a computer readable medium storing
instructions which perform the methods when executed, and the like.
Although various embodiments which incorporate the teachings of the
present invention have been shown and described in detail herein, those
skilled in the art can readily devise many other varied embodiments that still
incorporate these teachings.
806995 24
What is claimed is:
1. A method, comprising:
generating a plurality of charging detail records (CDRs) at a mobile
gateway (MG); and
propagating each of the CDRs toward a first charging data function
(CDF) and a second CDF, wherein the first CDF is configured for propagating
CDRs toward a charging gateway function (CGF) upon receiving the CDRs,
wherein the second CDF is configured for propagating CDRs toward the CGF
when the first CDF fails.
2 . The method of claim 1, wherein the CDRs are generated by a mobile
switching module (MSM) of the MG.
3 . The method of claim 1, wherein first CDF and the second CDF are
each external to the MG.
4 . The method of claim 1, wherein the first CDF is a first module of the
MG and the second CDF is a second module of the MG.
5 . The method of claim 1, wherein each of the CDRs is propagated using
the GPRS Tunnelling Protocol prime (GTP') protocol.
6 . A method, comprising:
receiving, at a first charging data function (CDF), a charging detail
record (CDR) having a sequence number associated therewith;
propagating the CDR toward a charging gateway function (CGF);
receiving an acknowledgment of receipt of the CDR by the CGF,
wherein the acknowledgment includes the sequence number associated with
the CDR; and
propagating the sequence number from the first CDF toward a second
CDF configured for receiving a copy of the CDR received at the first CDF.
806995 25
7 . The method of claim 6 , wherein the CDR is propagated toward the
CGF using the GPRS Tunnelling Protocol prime (GTP') protocol and the
acknowledgment is received using the GTP' protocol.
8 . The method of claim 6 , wherein propagation of the acknowledgment
from the first CDF toward the second CDF is adapted for causing the second
CDF to delete the copy of the CDR.
9 . The method of claim 6 , wherein one of:
the CDR is received from a mobile gateway (MG), wherein first CDF
and the second CDF are each external to the MG; and
the first CDF and the second CDF are modules within a mobile
gateway (MG), wherein the CDR is received from a mobile switching module
(MSM) of the MG.
10 . A method, comprising:
receiving, at a first charging data function (CDF), a plurality of charging
detail records (CDRs) having a respectively plurality of sequence numbers
associated therewith;
buffering each of the CDRs at the first CDF, wherein each CDR is
buffered until receiving, from a second CDF, an acknowledgment message for
the CDR indicative that the CDR was successfully received by a charging
gateway function (CGF) from the second CDF; and
in response to failure of the second CDF, initiating a process for
determining which of the CDRs, buffered at the first CDF at the time of failure
of the second CDF, to transmit from the first CDF toward the CGF.
| # | Name | Date |
|---|---|---|
| 1 | 177-CHENP-2013 PCT PUBLICATIONS 08-01-2013.pdf | 2013-01-08 |
| 2 | 177-CHENP-2013 FORM-5 08-01-2013.pdf | 2013-01-08 |
| 3 | 177-CHENP-2013 FORM-3 08-01-2013.pdf | 2013-01-08 |
| 4 | 177-CHENP-2013 FORM-2 FIRST PAGE 08-01-2013.pdf | 2013-01-08 |
| 5 | 177-CHENP-2013-COMPLETE SPECIFICATION [27-07-2018(online)].pdf | 2018-07-27 |
| 5 | 177-CHENP-2013 FORM-18 08-01-2013.pdf | 2013-01-08 |
| 6 | 177-CHENP-2013 FORM-1 08-01-2013.pdf | 2013-01-08 |
| 7 | 177-CHENP-2013 DRAWINGS 08-01-2013.pdf | 2013-01-08 |
| 8 | 177-CHENP-2013 CLAIMS 08-01-2013.pdf | 2013-01-08 |
| 9 | 177-CHENP-2013 POWER OF ATTORNEY 08-01-2013.pdf | 2013-01-08 |
| 10 | 177-CHENP-2013 DESCRIPTION (COMPLETE) 08-01-2013.pdf | 2013-01-08 |
| 11 | 177-CHENP-2013 CORRESPONDENCE OTHERS 08-01-2013.pdf | 2013-01-08 |
| 12 | 177-CHENP-2013 CLAIMS SIGNATURE LAST PAGE 08-01-2013.pdf | 2013-01-08 |
| 13 | 177-CHENP-2013.pdf | 2013-01-09 |
| 14 | 177-CHENP-2013 FORM-3 19-06-2013.pdf | 2013-06-19 |
| 15 | 177-CHENP-2013 CORRESPONDENCE OTHERS 19-06-2013.pdf | 2013-06-19 |
| 16 | 177-CHENP-2013 CORRESPONDENCE OTHERS 25-06-2013.pdf | 2013-06-25 |
| 17 | 177-CHENP-2013 ASSIGNMENT 25-06-2013.pdf | 2013-06-25 |
| 18 | 177-CHENP-2013 FORM-3 01-07-2013.pdf | 2013-07-01 |
| 19 | 177-CHENP-2013 CORRESPONDENCE OTHERS 01-07-2013.pdf | 2013-07-01 |
| 20 | 177-CHENP-2013 FORM-3 08-10-2013.pdf | 2013-10-08 |
| 21 | 177-CHENP-2013 CORRESPONDENCE OTHERS 08-10-2013.pdf | 2013-10-08 |
| 22 | 177-CHENP-2013 FORM-3 07-02-2014.pdf | 2014-02-07 |
| 23 | 177-CHENP-2013 CORRESPONDENCE OTHERS 07-02-2014.pdf | 2014-02-07 |
| 24 | 177-CHENP-2013 CORRESPONDENCE OTHERS 20-10-2014.pdf | 2014-10-20 |
| 25 | 177-CHENP-2013 FORM-3 20-10-2014.pdf | 2014-10-20 |
| 26 | 177-CHENP-2013 FORM-3 03-03-2015.pdf | 2015-03-03 |
| 26 | 177-CHENP-2013 ASSIGNMENT 25-06-2013.pdf | 2013-06-25 |
| 27 | 177-CHENP-2013 CORRESPONDENCE OTHERS 03-03-2015.pdf | 2015-03-03 |
| 28 | 177-CHENP-2013 FORM-3 09-06-2015.pdf | 2015-06-09 |
| 29 | 177-CHENP-2013 CORRESPONDENCE OTHERS 09-06-2015.pdf | 2015-06-09 |
| 30 | 177-CHENP-2013-FORM-3-15-10-15.pdf | 2016-03-28 |
| 31 | 177-CHENP-2013-CORESPONDENCE-15-10-15.pdf | 2016-03-28 |
| 32 | Form 3 [02-06-2016(online)].pdf | 2016-06-02 |
| 33 | 177-CHENP-2013-FER.pdf | 2018-01-29 |
| 34 | 177-CHENP-2013-OTHERS [27-07-2018(online)].pdf | 2018-07-27 |
| 35 | 177-CHENP-2013-FORM 3 [27-07-2018(online)].pdf | 2018-07-27 |
| 36 | 177-CHENP-2013-FER_SER_REPLY [27-07-2018(online)].pdf | 2018-07-27 |
| 37 | 177-CHENP-2013-DRAWING [27-07-2018(online)].pdf | 2018-07-27 |
| 38 | 177-CHENP-2013-COMPLETE SPECIFICATION [27-07-2018(online)].pdf | 2018-07-27 |
| 39 | 177-CHENP-2013-CLAIMS [27-07-2018(online)].pdf | 2018-07-27 |
| 40 | 177-CHENP-2013-ABSTRACT [27-07-2018(online)].pdf | 2018-07-27 |
| 41 | 177-CHENP-2013-Correspondence to notify the Controller [03-11-2020(online)].pdf | 2020-11-03 |
| 42 | 177-CHENP-2013-US(14)-HearingNotice-(HearingDate-25-11-2020).pdf | 2021-10-17 |
| 1 | 177CHENP2013_PATSEER_SERACH_09-11-2017.pdf |