WO1997005734A1 - Billing for communications usage - Google Patents

Billing for communications usage Download PDF

Info

Publication number
WO1997005734A1
WO1997005734A1 PCT/GB1996/001836 GB9601836W WO9705734A1 WO 1997005734 A1 WO1997005734 A1 WO 1997005734A1 GB 9601836 W GB9601836 W GB 9601836W WO 9705734 A1 WO9705734 A1 WO 9705734A1
Authority
WO
WIPO (PCT)
Prior art keywords
network
events
schemas
schema
data
Prior art date
Application number
PCT/GB1996/001836
Other languages
French (fr)
Inventor
David Stephen Allison
David Martin Hawthorne
Andrew Mairs
William George Glass
Original Assignee
British Telecommunications Public Limited Company
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by British Telecommunications Public Limited Company filed Critical British Telecommunications Public Limited Company
Priority to AU66244/96A priority Critical patent/AU713964B2/en
Priority to DE69631373T priority patent/DE69631373T2/en
Priority to CA002227914A priority patent/CA2227914C/en
Priority to US09/000,271 priority patent/US6052450A/en
Priority to BR9610027A priority patent/BR9610027A/en
Priority to EP96925879A priority patent/EP0840977B1/en
Priority to NZ313717A priority patent/NZ313717A/en
Priority to JP9507362A priority patent/JPH11510336A/en
Publication of WO1997005734A1 publication Critical patent/WO1997005734A1/en
Priority to NO980329A priority patent/NO980329L/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/44Augmented, consolidated or itemized billing statement or bill presentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M15/00Arrangements for metering, time-control or time indication ; Metering, charging or billing arrangements for voice wireline or wireless communications, e.g. VoIP
    • H04M15/41Billing record details, i.e. parameters, identifiers, structure of call data record [CDR]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q3/00Selecting arrangements
    • H04Q3/0016Arrangements providing connection between exchanges
    • H04Q3/0029Provisions for intelligent networking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0104Augmented, consolidated or itemised billing statement, e.g. additional billing information, bill presentation, layout, format, e-mail, fax, printout, itemised bill per service or per account, cumulative billing, consolidated billing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2215/00Metering arrangements; Time controlling arrangements; Time indicating arrangements
    • H04M2215/01Details of billing arrangements
    • H04M2215/0164Billing record, e.g. Call Data Record [CDR], Toll Ticket[TT], Automatic Message Accounting [AMA], Call Line Identifier [CLI], details, i.e. parameters, identifiers, structure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04QSELECTING
    • H04Q2213/00Indexing scheme relating to selecting arrangements in general and for multiplex systems
    • H04Q2213/1313Metering, billing

Definitions

  • This invention relates to billing for communications usage.
  • a billing system responsive to usage events in a communications network to process event data to support invoice production.
  • PSTN public switched telecommunications networks
  • the customer receives charges based on usage of the network.
  • a billing system needs to detect usage of the network and to process data in respect of that usage so as to output a bill or other charging mechanism.
  • a problem with present billing systems is that they can be very inflexible. For instance, when a communications service provider wishes to update its charges or wishes to introduce new services over the PSTN, a protracted and difficult upgrading process can be required to enable the billing system to cater for the new charging regime.
  • a method of processing data for producing a bill for usage of a communications network comprising: i) receiving event data from the communications network, the event data concerning network usage by a user; ii) providing a set of schemas applicable to communications services available to users by means of the network, at least one schema containing service specific data and at least one rule, or an identifier for at least one rule, for use in processing received event data in respect of that service; iii) selecting from the set of schemas one or more schemas applicable to the event data received; and iv) applying the selected schema(s) to the event data to process the event data for bill production.
  • the method further comprises: v) storing a generic data processing structure, comprising an ordered set of data processing nodes which are ordered for the processing of event data relating to communications services available over the network, each node having an associated schema from the set of schemas; and vi) storing user specific information which identifies a set of services selected from the communications services available over the network and allocated to that user wherein the step of selecting one or more schemas is carried out by selecting a subset of the data processing nodes which have associated therewith schemas for processing network event data in respect of the selected set of services.
  • the schemas may be stored in the nodes of the generic data processing structure but it may be more convenient that they are stored in a separate data structure, the generic data processing structure containing identifiers for the schemas rather than the schemas themselves.
  • the user may in fact be one of many representatives of a customer.
  • a customer may be a multi-national company.
  • the "user specific information” can in fact be relevant to all users of one particular customer.
  • Embodiments of the present invention have the advantage that they can be relatively easily modified, for instance to cater for changes in a charging regime.
  • the services available over the network may change.
  • the set of schemas or the generic data processing structure can be updated.
  • a customer may choose to add or delete a service from their specific set of services, or to change the specification for a particular service. In that case, the customer specific information can be updated.
  • apparatus for processing data for producing a bill for usage of a communications network comprising: means for receiving from the communications network a set of event data attributable to usage of the network; means for storing an ordered set of schemas applicable to a set of products available to a user, each schema comprising a Iogical process or an identifier for a Iogical process for processing event data received obtained from the network; means to select from the set of schemas those applicable to a selected set of communications products or services available to the user; and means to apply the selected schemas to the event data received from the network to process the events into a form ready for bill production.
  • FIG. 1 shows in schematic block diagram form a billing system in accordance with the invention
  • Figure 2 shows in schematic block diagram form a pricing and assembly engine which is a component of the system shown in figure 1 ;
  • Figure 3 shows in schematic block diagram form a module of the engine shown in figure 2;
  • Figure 4 is an explanatory diagram used in an explanation of the concept of a cellular network of schemas to be applied to data obtained from a telecommunication network in order to produce a bill for usage;
  • Figure 5 shows a generic cellular network (graph) and illustrates how cells of the graph may be selected for creating a customer specific graph;
  • Figure 6 is an explanatory flow-chart of the operation of the system
  • Figure 7 is an explanatory diagram showing how cells of a graph are provided with datafields including pointers to other cells to establish a cellular network;
  • Figure 8 shows the stages in the creation of a graph as a cellular network
  • Figure 9 is an explanatory flow-chart of the way in which a graph is applied to customer data (events).
  • Figure 10 is a schematic diagram of the way in which the schemas of the customer specific graph process, create and combine events, and how the events flow from cell to cell in the graph;
  • Figure 1 1 is an explanatory diagram which shows the way in which the results of the schemas point to their origins.
  • Figure 1 2 is a schematic diagram of the way a date-dependent change in customer specific data can be built into a customer specific graph.
  • PDG Primary Data Generator (such as a network exchange)
  • NMP Network Mediation Processor
  • PIUR Platform Independent Usage Record
  • PSLM Products and Services Life-Cycle Manager
  • GMM Graph Manipulation Module
  • RCM Rules Compiler Module
  • a billing system 1 for generating bills for usage of a telecommunications network comprises a number of modules of software which provide the system with functionality.
  • the system can be implemented on any suitable computing platform but will generally be distributed over a number of computer systems networked to enable appropriate interaction.
  • the system 1 includes a number of interfaces 2 to the network, three of which are shown although more than this will usually be provided for use with a network such as a PSTN.
  • Each of the interfaces 2 is connected to a respective plurality of exchanges in the telecommunications network by links 3.
  • the interfaces 2 are in turn connected to a customer billing processor CBP 4.
  • a number of pricing and assembly engine modules (PAE) 5, three of which are shown, are arranged to interact with the CBP 4. These are also arranged to interact with a rules library module 6 and a products and service life cycle manager (PSLM) 7.
  • PES pricing and assembly engine modules
  • PSLM products and service life cycle manager
  • the PSLM 7 is also arranged to interact with the rules library module 6.
  • the interfaces 2 periodically poll the exchanges to which they are connected for information about network usage.
  • the information is then processed into a form which is suitable for storage by the CBP 4.
  • the CBP 4 stores the information in a database 4a.
  • Each interface 2 comprises two processors, a network mediation processor (NMP) 2a and a service domain processor (SDP) 2b.
  • NMP network mediation processor
  • SDP service domain processor
  • the NMP 2a is a processor for collecting event-related data from elements in the telecommunications network. These elements can be called primary data generators (PDGs) for the purpose of embodiments of the present invention. In a telecommunications network of the type generally in use today, they usually comprise exchanges. In this embodiment the NMP 2a runs on a UNIX platform on an ICL DRS 6000 workstation. The NMP 2a interfaces to and collects usage records from the primary data generators. The usage records contain data for billable events and may for instance be records of the origin, destination, time of commencement and duration of telephone calls routed by an exchange of the network.
  • the NMP 2a polls a list of the exchanges it serves.
  • the usage records will vary in format according to the type and manufacturer of the data generator and part of the processor's task is to standardise and consolidate the records.
  • the consolidated records are called platform independent usage records (PIURs) and these are output to the SDP 2b by encoding the records according to ASN 1 , an Open Systems Interconnection protocol.
  • PIURs platform independent usage records
  • the SDP 2b receives the PIURs from the NMP 2a and applies a set of undiscounted, simple tariffs to them in order to produce call records priced according to transaction based, elapsed time pricing. These priced call records are passed to the CBP 4.
  • the CBP 4 takes the priced call records files generated by the SDPs 2a and assembles the information into a single data file. This file is stored on the database 4a for subsequent processing by a PAE 5.
  • the CBP 4 contains a bill schedule process which runs against a customer billing database to determine which customers are to be billed. It does this by examining bill due dates and any other special flags which indicate that a bill is required, such as a "bill now” flag or "threshold breached” flag. This triggers selection of an available PAE 5 to which customer specific data is then sent for processing.
  • Each PAE 5 is essentially an event processor.
  • An "event" for the purposes of the PAE 5 is the establishing of a connection on the network which is to be billed.
  • an event could be a call on the PSTN, a private circuit rental event or a transfer charge event.
  • the file assembled from the priced call records files and received by the PAE 5 from the CBP 4 is converted in the PAE 5 into a master event list MEL.
  • Each event on the MEL is a PIUR.
  • the output of the CBP 4 to the PAE 5 is sorted by "service" and, within each "service", in chronological order of distinguishing date/time.
  • Each event may have a single date/time associated with it, in which case this is the distinguishing date/time.
  • the PAE 5 needs chronological date/time information for several reasons, such as where there has been start/stop/resume of a service in the period covered by a bill. It is simpler if the CBP 4 provides an event list in chronological order so that the PAE5 does not have to support sorting. However, this does mean that events have to be have been provided with a common time zone.
  • the PAE 5 processes events of the MEL either singly or in groups creating a processed event list (PEL). Each PEL is a subset of the events on the MEL together with information on how the events have been processed in the PAE. Thus the PEL has a processing audit which should an error occur in the billing process allow the origin of the error to be determined and corrective action to be carried out to prevent that fault from reoccurring.
  • PEL processed event list
  • the PAE 5 processes events for a customer according to a set of related schemas for that customer.
  • a schema is a Iogical process (not a UNIX process) that executes a rule provided by the PSLM 7 to produce for instance a price for a product or information for a bill.
  • the PSLM 7 supplies rules (in plain text) which have been identified by a set of schemas concemed with the processing of the telecommunications usage. These rules can cater for the pricing of a wide range of services such as cost of time units, rental, and call services. Obviously, these prices may change over a time period for which a bill is to be produced and this is dealt with by reference to the distinguishing date/time for each event, mentioned above, and the application of the schemas.
  • the schemas are held as a generic graph in a way which will be explained later.
  • a set of related schemas for a customer is generated by applying customer specific data to the generic graph. This also is further dealt with below.
  • the rules for the schemas are held in the rules library module 6.
  • the PAE 5 includes a rule compiler module (RCM) 8. This module receives rules in plain text format from the PSLM 7 and converts them to a form of pseudo machine code (p-code) which represents the machine instructions for a virtual stack based machine.
  • the PAE 5 also has a rules interpretation processor (RIP) 9 which understands the p-code form of the rules.
  • the interpreter 9 runs as a separate process for scalability as several interpreters can run at the same time.
  • the PAE will now be described in greater detail with reference to figure 2.
  • the PAE 5 includes a number of modules. Modules are collections of software code which provides functionality to the PAE and are thus functional components and not architectural components. The first two modules were mentioned earlier and these are the RIP 9 and the RCM 8.
  • a third module is a graph manipulation module (GMM) 10.
  • a fourth module is a customer data module (CDM) 1 1 .
  • a fifth module is a shared memory module (SMM) 12.
  • a sixth module is a common functions module (CFM) 1 3.
  • a seventh module is an event list module (ELM) 14.
  • An eighth module is a PSLM data module (PDM) 1 5.
  • a ninth module is an environmental control module (ECM) 1 6.
  • the GMM 10 is a core module of the PAE 4 for it provides a function of building and manipulating graphs of pricing and billing schemas on a cellular framework (the concept of graphs will be described later). This module connects schema together to build a schema graph, tests the resulting graph to ensure that it is acyclic that is to say that there are no endless loops, instantiates a graph for a particular instance of a customer and invokes execution of that graph. These processes will be described in greater detail later.
  • the CDM 1 1 provides the functionality required for handling customer data in the PAE 5.
  • the customer data can be both inventory data and event data. It receives incoming files from the CBP 4 and parses them into separate files for each customer. It then parses each separate customer specific file and puts the inventory data into shared memory.
  • the event data is formed into a master event list MEL and passed to the ELM 14 which then puts the MEL into shared memory controlled by the SMM 1 2.
  • This module also enables the inventory data in shared memory to be accessed and combines invoice ready files (files processed by the PAE) and sends them back to the CBP 4, in particular to an invoice production engine (IPE) 4b which prints off the bill.
  • the SMM 1 2 provides functions to manage memory allocation within memory which is shared by the modules.
  • the CFM 1 3 provides a set of general purpose functions or utilities for use by other modules when required.
  • the utilities include file access, rounding and error logging utilities.
  • the ELM 14 provides the functionality required for manipulation of events. It enables creation of a MEL from event data received from the CBP 4, provides access to the original event data received from the CBP 4, creates PELs and adds pricing and assembly information to PELs. It also enables the selection and manipulation of event lists within PELs and builds the invoice ready data files which are sent back to the CBP 4.
  • the PDM 1 5 comprises a number of sub-modules as shown in figure 3.
  • the sub ⁇ modules include a PSLM interface 1 5a, a schema graph storage module 1 5b, a platform independent record definition storage 15c and a PDM API 1 5d which enables access to the PIRs held in storage 1 5c by other modules.
  • the schema graph storage module 1 5b stores the schema rules and information necessary to build the schema graph. It stores the schema rules in an internal form after receiving them from the RCM 8.
  • the RCM 8 converts the rules to the internal form from the form in which they are received from the PSLM 7.
  • the ECM 1 6 provides co-ordination for the other modules, controlling the work flow amongst the other processors. In particular it detects when updating is necessary, for instance of the generic graph mentioned above. When an update is necessary, it is the ECM 1 6 which will stop new processing starting up, waiting until processes already in progress have finished before triggering the necessary updating and restarting processing.
  • the principle which the PAE 5 follows is that the company's products and services used by the customers can be represented as a graph in which the nodes can process events generated by a customer. Each node in the graph has an associated schema and the interconnection of the node defines the inter ⁇ relationship which exists between the schemas. Each node will process a relevant set of customer generated events and the flow of events from a first node to a final node results in a final customer invoice. This concept is illustrated in Figure 4.
  • nodes A, B, C and D are interconnected by links 40 to 43.
  • Node A is interconnected by link 40 to node B and by link 41 to node C.
  • Node B is interconnected to node C by link 42.
  • Node C is interconnected to node D by link 43.
  • Node A performs its operations on the data and passes the results of those operations to node B and node C, as represented by data flow arrows 44 and 45.
  • Node B performs its operations on the data it receives from node A and passes the results of those operations to node C as represented by data flow arrow 46.
  • Node C performs its operations on the data received from node A and node B and passes the results of those operations to node D as represented by dataflow arrow 47.
  • Node D performs its operations and since it is the final node the processed data "flows out of" the graph.
  • the graph is, in this case, acyclic since there are no endless loops.
  • a link 48 shown in broken outline
  • the link 48 passes data back from node D to node B as represented by dataflow arrow 49. This data would then be passed to node C and thence back to node D.
  • an endless processing loop could be established. It is part of the function of the GMM 10 to verify the graph to ensure that no endless processing loops are introduced during construction of the graph.
  • the PSLM 7 holds a generic graph which has processing nodes for every possible service and product offered by the telephone operator.
  • Figure 5 shows such a generic graph although for the sake of simplicity the number of nodes has been reduced. Not all customers will use all the products and services available. Thus, if this generic graph were to be used directly, a lot of processing steps will be carried out unnecessarily or processing power allocated to the task unnecessarily. This would waste valuable computing time when preparing a bill.
  • the PAE 5 utilises the GMM 10 to tailor the generic graph according to those goods and services the customer has taken.
  • FIG. 6 shows a flow-chart of the operation of the PAE 5.
  • a first stage is for the PAE 5 to request the generic graph data from the PSLM 7 as represented by box 60. This data is used to build a generic graph in a step represented by box 61 .
  • the generic graph is tailored to be specific to a customer in a process (to be described later) called "lighting the graph", as represented by box 62.
  • the tailored graph is then applied to the customer events passed to the PAE 5 by the CBP 4, this step being represented by box 63.
  • the PAE 5 passes the processed data back to the CBP 4, as represented by box 64, where it is passed to the IPE 4b and a bill printed out and dispatched to the customer. New customer data is requested from the CBP 4 as represented by box 65 and the steps are then repeated.
  • the PSLM 7 holds information on:
  • Products prices and related information which will be used by the PAE 5 to produce a price for a product.
  • a price for a product For example, the rental charge for a telephone line or the price of an item of equipment such as a telephone or answering machine;
  • items 1 and 2 of the information are individual schemas equivalent to the nodes in figure 5 and item 3 is equivalent to the links between the nodes.
  • item 3 is equivalent to the links between the nodes.
  • the schemas are logical processes that execute a rule to produce a price or information to be produced on a bill (for example the total number of telephone units used).
  • the rules implemented in the schema are provided by the PSLM 7 and a schema may be executed more than once in any bill production. In other words a node in the graph of figure 5 may be used more than once in processing customer data although not on the same item of data because the graph is acyclic as mentioned above.
  • schema instances Those items of customer information to which a schema may be applied are termed schema instances. This concept is similar to the concept of object class and object instance in object orientated programming. A schema is executed once for each schema instance that exists for that schema. Each time a schema is executed a PEL is created as a record of everything done on the schema instance.
  • the graph is a "map" of the processes to be carried out on the customer data giving the routes to be followed by the products of those processes to other processes.
  • the schema graph is built purely from the data held by the PSLM 7. No customer specific data is held in the nodes and links. It is a generic graph which will cater for a notional customer who will use all of the products and services offered by the operator.
  • the PSLM 7 sends two types of data to the PAE 5 in order to create the schema graph. The first type concerns the rules - these are sent in a plain text form. The second type is a table mapping each schema to any parent schemas which act upon output generated by that schema.
  • the PDM 1 5 of the PAE 5 translates the table into a form suitable for use with the GMM 10.
  • the GMM 10 builds the generic graph by structuring the data into a node with parents and children, that is, a parent child structure is created.
  • a simplified parent child structure is shown in figure 7 and it can be seen that each node is a memory structure including a number of identifiers. Taking node 70, this has a cell identifier field 71 , a field 72 including a pointer to children of that node, a field 73 including a pointer to parents of that node and a field 74 identifying the schema.
  • node 75 is schema C
  • it has a parent schema A as indicated by pointer 76
  • a true graph has not been created but just a set of table structures with pointers to other table structures.
  • the next stage is to convert this into cells and synapses of a cellular framework.
  • the conversion process is carried as described in the following pseudo-code after the creation of a root node and a concentrator node.
  • Figure 8 shows the stages involved in the building of a simple graph.
  • Figure 8a shows the first stage in the graph building process; that of creation of root (R) and concentrator (C) nodes.
  • Figure 8(b) shows the creation of the first child 81 and in the next stage shown in figure 8(c) a child 82 of the child 81 is created. This is then connected to the concentrator C.
  • a further child 83 of the root node is created and connected to its child 82 which is an earlier created child of cell 81 .
  • the next stage is to "validate" the schema graph which has been created. This is a test carried out to ensure that no messages get lost or enter infinite loops circling through the same cells in the graph.
  • the graph should be a directed acyclic graph (DAG) and to check this any message sent from a cell to a child must not then return as an input to this cell from a parent.
  • a message called GRAPHCHECK is sent to the root cell and thence to each cell and its children in turn, in a synchronous manner.
  • the GRAPHCHECK message contains a list of cell identifiers through which the message has passed. The arrival of the message at a cell invokes a check of the cell id of that cell against those in the list of cell ids that have already been visited. If there is a match then that cell has been visited before and there is a loop in the graph. In such circumstances the graph would be held invalid. The errors are noted by marking the cell status accordingly.
  • this step is to tailor this generic graph to a customer specific graph.
  • This step is the step represented by box 62 in figure 6. It is referred to as "lighting up” the graph or instantiating the graph. In essence this lighting up process involves mapping customer inventory information held in the CDM 1 1 to the schema graph held in the PDM 1 5 to create a graph which is specific to that customer.
  • Each customer will have a number of items which will generate events to be charged.
  • the items are referred to as Feature Items (Fl) and they will include telephone Iines, charge cards and private circuits.
  • the events generated by the Feature Items will be charged for according to billing options held in the customer inventory.
  • the options are termed products.
  • An example of a product is "Family and Friends" which was described earlier.
  • the customer inventory will include all instances of the products to which the customer subscribes.
  • a product may have more than one instance, for example, the "Family and Friends" product will have two instances where the customer has two telephone Iines utilising this product.
  • Each product instance in the customer inventory contains all the customer defined attributes and data which relates to that instance of the product.
  • the process of "lighting-up" the graph entails instructing each cell of the graph where to locate the product instances and the instances of the schemas it is to use. In order to do this each cell has at least one instance table.
  • An example of a table is given below.
  • the tailored graph can then be applied to the customer events (box 63 figure 6) in order to calculate the invoice.
  • a first step in the process is to send the customer event list to the concentrator cell of the customer specific graph, this step being represented by box 90.
  • the concentrator cell sends the appropriate events to its parent cells via the appropriate links, as represented by box 91 .
  • the concentrator cell then resets as represented by box 92. This involves the discarding of customer specific information.
  • the cell is then no longer lit up and is ready to be "lighted up” to form a cell of a graph specific to the next customer.
  • Each parent upon receipt of the events produces a PEL for each schema instance it has , as represented by box 93.
  • the schema instances are run, as represented by box 94 and the results are sent to the appropriate parents of that cell, as represented by box 95. If the parent is the root cell (box 96) then the data has traversed the graph and the process ends as represented by box 97. If the parent is not the root then the steps represented by boxes 92 to 96 are carried out again.
  • FIG. 10 shows part of such a customer graph.
  • the figure shows three cells 100, 101 and 103.
  • Cell 100 is concemed with a product called "PSTN-U”
  • cell 103 is concerned with a product called "OPTION 1 5"
  • cell 101 is concerned with a product called "Famiiy and Friends”.
  • Data flows into this part of the graph by means of link 104 to cell 100 and leaves the graph by means of link 105 from cell 103.
  • a link 106 exists between cell 100 and cell 101 .
  • PEL 109 is directed in the direction of arrow 1 1 1 to cell 101 because line 456 has the option "Family and Friends".
  • Cell 101 applies the schema to the input PEL 109 and outputs another PEL 1 1 2 in the direction of arrow 1 1 3 along link 107.
  • PEL 1 1 2 thus concerns calls on link 456 to telephone numbers discounted according to the "Friends and Family" option.
  • Cell 103 awaits for the arrival of both PELs 1 1 2 and 1 10.
  • PEL 1 1 0 is directed to cell 103 along link 108 in the direction of arrow 1 14. This cell processes the input PELs by discounting the total telephone usage on both Iines.
  • a PEL 1 1 5 is output from the cell 103 along link 105 in the direction of arrow 1 1 6 to the next cell in the graph (not shown).
  • the output PEL 1 15 contains all the telephone usage records for both Iines with the appropriate discounts applied.
  • each PEL has a data-field which indicates the PEL from which it originated. This allows billing errors to be traced to the erroneous schema.
  • a PEL "spreadsheet” will be built up.
  • the "spreadsheet” will contain information about the execution of the customer specific graph. For the example illustrated in figure 10 the PEL "spreadsheet” would be as shown in figure 1 1 .
  • a MEL 1 1 7 comprises a number of events labelled a to k in the figure 1 1 . Of these events a, c, e, f, h, j are directed to cell 100 and traverse the section of graph depicted in figure 10.
  • step 62 to 64 The process is then repeated (steps 62 to 64) for the next customer, as represented by box 65.
  • the above described process does not take into account the "distinguishing date" information contained in an event. This becomes important because the customer specific data may show a change in circumstances during the billing period so that an event being processed needs to follow different links between cells (or schemas) at different times.
  • the billing period may be January to February but the customer, although having the service "Option 1 5" continuously for his line 456, may only have begun to subscribe to Friends and Famiiy for that line in February.

Abstract

Aspects of the invention provide a method and apparatus for producing a bill for usage of a telecommunications network. The method comprises the steps of: obtaining from the telecommunications network a set of events on the network; providing a set of schema applicable to a set of products available to the user, the schema for processing events retrieved from the network; selecting from the set of schemas, schemas applicable to the products used by the user; and applying the selected schemas to the set of events to process the events into a form ready for bill production.

Description

BILLING FOR COMMUNICATIONS USAGE
This invention relates to billing for communications usage. In particular it relates to a billing system responsive to usage events in a communications network to process event data to support invoice production.
In communications networks such as public switched telecommunications networks (PSTN), the customer receives charges based on usage of the network. Hence a billing system needs to detect usage of the network and to process data in respect of that usage so as to output a bill or other charging mechanism.
For instance, when telephone calls are established across the British PSTN, records are created at the exchanges recording details about the call. The details will include information such as duration of the call, time of day of the call, start and end, the originating telephone line and destination telephone line. This information is periodically accessed by billing systems and processed into invoices which are sent out to the customer.
A problem with present billing systems is that they can be very inflexible. For instance, when a communications service provider wishes to update its charges or wishes to introduce new services over the PSTN, a protracted and difficult upgrading process can be required to enable the billing system to cater for the new charging regime.
According to a first aspect of the invention there is provided a method of processing data for producing a bill for usage of a communications network, the method comprising: i) receiving event data from the communications network, the event data concerning network usage by a user; ii) providing a set of schemas applicable to communications services available to users by means of the network, at least one schema containing service specific data and at least one rule, or an identifier for at least one rule, for use in processing received event data in respect of that service; iii) selecting from the set of schemas one or more schemas applicable to the event data received; and iv) applying the selected schema(s) to the event data to process the event data for bill production.
Preferably, the method further comprises: v) storing a generic data processing structure, comprising an ordered set of data processing nodes which are ordered for the processing of event data relating to communications services available over the network, each node having an associated schema from the set of schemas; and vi) storing user specific information which identifies a set of services selected from the communications services available over the network and allocated to that user wherein the step of selecting one or more schemas is carried out by selecting a subset of the data processing nodes which have associated therewith schemas for processing network event data in respect of the selected set of services.
The schemas may be stored in the nodes of the generic data processing structure but it may be more convenient that they are stored in a separate data structure, the generic data processing structure containing identifiers for the schemas rather than the schemas themselves.
Although the term "user" is used above, the user may in fact be one of many representatives of a customer. For instance, a customer may be a multi-national company. In this case, it will be understood that the "user specific information" can in fact be relevant to all users of one particular customer.
Embodiments of the present invention have the advantage that they can be relatively easily modified, for instance to cater for changes in a charging regime. Firstly, the services available over the network may change. In that case, the set of schemas or the generic data processing structure can be updated. Altematively, a customer may choose to add or delete a service from their specific set of services, or to change the specification for a particular service. In that case, the customer specific information can be updated.
According to a second aspect of the invention there is provided apparatus for processing data for producing a bill for usage of a communications network, the apparatus comprising: means for receiving from the communications network a set of event data attributable to usage of the network; means for storing an ordered set of schemas applicable to a set of products available to a user, each schema comprising a Iogical process or an identifier for a Iogical process for processing event data received obtained from the network; means to select from the set of schemas those applicable to a selected set of communications products or services available to the user; and means to apply the selected schemas to the event data received from the network to process the events into a form ready for bill production.
A specific embodiment of the invention will now be described, by way of example only, with reference to the drawing in which:-
Figure 1 shows in schematic block diagram form a billing system in accordance with the invention;
Figure 2 shows in schematic block diagram form a pricing and assembly engine which is a component of the system shown in figure 1 ;
Figure 3 shows in schematic block diagram form a module of the engine shown in figure 2;
Figure 4 is an explanatory diagram used in an explanation of the concept of a cellular network of schemas to be applied to data obtained from a telecommunication network in order to produce a bill for usage; Figure 5 shows a generic cellular network (graph) and illustrates how cells of the graph may be selected for creating a customer specific graph;
Figure 6 is an explanatory flow-chart of the operation of the system;
Figure 7 is an explanatory diagram showing how cells of a graph are provided with datafields including pointers to other cells to establish a cellular network;
Figure 8 shows the stages in the creation of a graph as a cellular network;
Figure 9 is an explanatory flow-chart of the way in which a graph is applied to customer data (events);
Figure 10 is a schematic diagram of the way in which the schemas of the customer specific graph process, create and combine events, and how the events flow from cell to cell in the graph;
Figure 1 1 is an explanatory diagram which shows the way in which the results of the schemas point to their origins; and
Figure 1 2 is a schematic diagram of the way a date-dependent change in customer specific data can be built into a customer specific graph.
The following is a glossary of acronyms used in this specification, as an aid in reading the specification:
PDG: Primary Data Generator (such as a network exchange)
NMP: Network Mediation Processor PIUR: Platform Independent Usage Record
SDP: Service Domain Processor
PSLM: Products and Services Life-Cycle Manager
MEL: Master Event List PEL: Processed Event List CBP: Customer Billing Processor • IPE: Invoice Production Engine
PAE: Pricing and Assembly Engine module CDM: Customer Data Module
CFM: Common Functions Module
ECM: Environmental Control Module
ELM: Event List Module
GMM: Graph Manipulation Module
PDM: PSLM Data Module
RIP: Rules Interpretation Processor
RCM: Rules Compiler Module
SMM: Shared Memory Module
With reference to Figure 1 , a billing system 1 for generating bills for usage of a telecommunications network comprises a number of modules of software which provide the system with functionality. The system can be implemented on any suitable computing platform but will generally be distributed over a number of computer systems networked to enable appropriate interaction.
In more detail, the system 1 includes a number of interfaces 2 to the network, three of which are shown although more than this will usually be provided for use with a network such as a PSTN. Each of the interfaces 2 is connected to a respective plurality of exchanges in the telecommunications network by links 3. The interfaces 2 are in turn connected to a customer billing processor CBP 4.
A number of pricing and assembly engine modules (PAE) 5, three of which are shown, are arranged to interact with the CBP 4. These are also arranged to interact with a rules library module 6 and a products and service life cycle manager (PSLM) 7.
From the figure, it will be seen that the PSLM 7 is also arranged to interact with the rules library module 6. The interfaces 2 periodically poll the exchanges to which they are connected for information about network usage. The information is then processed into a form which is suitable for storage by the CBP 4. The CBP 4 stores the information in a database 4a.
The modules of the system 1 will now be described in more detail.
Each interface 2 comprises two processors, a network mediation processor (NMP) 2a and a service domain processor (SDP) 2b.
The NMP 2a is a processor for collecting event-related data from elements in the telecommunications network. These elements can be called primary data generators (PDGs) for the purpose of embodiments of the present invention. In a telecommunications network of the type generally in use today, they usually comprise exchanges. In this embodiment the NMP 2a runs on a UNIX platform on an ICL DRS 6000 workstation. The NMP 2a interfaces to and collects usage records from the primary data generators. The usage records contain data for billable events and may for instance be records of the origin, destination, time of commencement and duration of telephone calls routed by an exchange of the network.
In order to obtain the data, the NMP 2a polls a list of the exchanges it serves.
The usage records will vary in format according to the type and manufacturer of the data generator and part of the processor's task is to standardise and consolidate the records. The consolidated records are called platform independent usage records (PIURs) and these are output to the SDP 2b by encoding the records according to ASN 1 , an Open Systems Interconnection protocol.
The SDP 2b receives the PIURs from the NMP 2a and applies a set of undiscounted, simple tariffs to them in order to produce call records priced according to transaction based, elapsed time pricing. These priced call records are passed to the CBP 4.
The CBP 4 takes the priced call records files generated by the SDPs 2a and assembles the information into a single data file. This file is stored on the database 4a for subsequent processing by a PAE 5.
The CBP 4 contains a bill schedule process which runs against a customer billing database to determine which customers are to be billed. It does this by examining bill due dates and any other special flags which indicate that a bill is required, such as a "bill now" flag or "threshold breached" flag. This triggers selection of an available PAE 5 to which customer specific data is then sent for processing.
Because billing is done periodically, all the information for a bill period can be assembled and it is possible to take into account many aspects of usage, including of course discounting against usage. It is also possible to take account of customer specific information such as pricing across multiple accounts.
Each PAE 5 is essentially an event processor. An "event" for the purposes of the PAE 5 is the establishing of a connection on the network which is to be billed. For example, an event could be a call on the PSTN, a private circuit rental event or a transfer charge event. The file assembled from the priced call records files and received by the PAE 5 from the CBP 4 is converted in the PAE 5 into a master event list MEL. Each event on the MEL is a PIUR.
The output of the CBP 4 to the PAE 5 is sorted by "service" and, within each "service", in chronological order of distinguishing date/time. Each event may have a single date/time associated with it, in which case this is the distinguishing date/time. Alternatively there may be multiple date/times, such as start and finish date/times, or a start date time and a duration. In these cases, it is the start date/time which is the distinguishing date/time. The PAE 5 needs chronological date/time information for several reasons, such as where there has been start/stop/resume of a service in the period covered by a bill. It is simpler if the CBP 4 provides an event list in chronological order so that the PAE5 does not have to support sorting. However, this does mean that events have to be have been provided with a common time zone.
The PAE 5 processes events of the MEL either singly or in groups creating a processed event list (PEL). Each PEL is a subset of the events on the MEL together with information on how the events have been processed in the PAE. Thus the PEL has a processing audit which should an error occur in the billing process allow the origin of the error to be determined and corrective action to be carried out to prevent that fault from reoccurring.
The PAE 5 processes events for a customer according to a set of related schemas for that customer. A schema is a Iogical process (not a UNIX process) that executes a rule provided by the PSLM 7 to produce for instance a price for a product or information for a bill. The PSLM 7 supplies rules (in plain text) which have been identified by a set of schemas concemed with the processing of the telecommunications usage. These rules can cater for the pricing of a wide range of services such as cost of time units, rental, and call services. Obviously, these prices may change over a time period for which a bill is to be produced and this is dealt with by reference to the distinguishing date/time for each event, mentioned above, and the application of the schemas. The schemas are held as a generic graph in a way which will be explained later. A set of related schemas for a customer is generated by applying customer specific data to the generic graph. This also is further dealt with below.
The rules for the schemas are held in the rules library module 6.
The PAE 5 includes a rule compiler module (RCM) 8. This module receives rules in plain text format from the PSLM 7 and converts them to a form of pseudo machine code (p-code) which represents the machine instructions for a virtual stack based machine. The PAE 5 also has a rules interpretation processor (RIP) 9 which understands the p-code form of the rules. The interpreter 9 runs as a separate process for scalability as several interpreters can run at the same time. The PAE will now be described in greater detail with reference to figure 2. The PAE 5 includes a number of modules. Modules are collections of software code which provides functionality to the PAE and are thus functional components and not architectural components. The first two modules were mentioned earlier and these are the RIP 9 and the RCM 8. A third module is a graph manipulation module (GMM) 10. A fourth module is a customer data module (CDM) 1 1 . A fifth module is a shared memory module (SMM) 12. A sixth module is a common functions module (CFM) 1 3. A seventh module is an event list module (ELM) 14. An eighth module is a PSLM data module (PDM) 1 5. A ninth module is an environmental control module (ECM) 1 6.
The functionality provided by each of the modules will now be described.
The GMM 10 is a core module of the PAE 4 for it provides a function of building and manipulating graphs of pricing and billing schemas on a cellular framework (the concept of graphs will be described later). This module connects schema together to build a schema graph, tests the resulting graph to ensure that it is acyclic that is to say that there are no endless loops, instantiates a graph for a particular instance of a customer and invokes execution of that graph. These processes will be described in greater detail later.
The CDM 1 1 provides the functionality required for handling customer data in the PAE 5. The customer data can be both inventory data and event data. It receives incoming files from the CBP 4 and parses them into separate files for each customer. It then parses each separate customer specific file and puts the inventory data into shared memory. The event data is formed into a master event list MEL and passed to the ELM 14 which then puts the MEL into shared memory controlled by the SMM 1 2. This module also enables the inventory data in shared memory to be accessed and combines invoice ready files (files processed by the PAE) and sends them back to the CBP 4, in particular to an invoice production engine (IPE) 4b which prints off the bill. The SMM 1 2 provides functions to manage memory allocation within memory which is shared by the modules.
The CFM 1 3 provides a set of general purpose functions or utilities for use by other modules when required. The utilities include file access, rounding and error logging utilities.
The ELM 14 provides the functionality required for manipulation of events. It enables creation of a MEL from event data received from the CBP 4, provides access to the original event data received from the CBP 4, creates PELs and adds pricing and assembly information to PELs. It also enables the selection and manipulation of event lists within PELs and builds the invoice ready data files which are sent back to the CBP 4.
The PDM 1 5 comprises a number of sub-modules as shown in figure 3. The sub¬ modules include a PSLM interface 1 5a, a schema graph storage module 1 5b, a platform independent record definition storage 15c and a PDM API 1 5d which enables access to the PIRs held in storage 1 5c by other modules. The schema graph storage module 1 5b stores the schema rules and information necessary to build the schema graph. It stores the schema rules in an internal form after receiving them from the RCM 8. The RCM 8 converts the rules to the internal form from the form in which they are received from the PSLM 7.
The ECM 1 6 provides co-ordination for the other modules, controlling the work flow amongst the other processors. In particular it detects when updating is necessary, for instance of the generic graph mentioned above. When an update is necessary, it is the ECM 1 6 which will stop new processing starting up, waiting until processes already in progress have finished before triggering the necessary updating and restarting processing.
The principle which the PAE 5 follows is that the company's products and services used by the customers can be represented as a graph in which the nodes can process events generated by a customer. Each node in the graph has an associated schema and the interconnection of the node defines the inter¬ relationship which exists between the schemas. Each node will process a relevant set of customer generated events and the flow of events from a first node to a final node results in a final customer invoice. This concept is illustrated in Figure 4.
In Figure 4 the various processes that can be performed on the event data input into the PAE 4 are shown as nodes A, B, C and D. The nodes are interconnected by links 40 to 43. Node A is interconnected by link 40 to node B and by link 41 to node C. Node B is interconnected to node C by link 42. Node C is interconnected to node D by link 43.
Data "flows into" the graph at the bottom node as represented in the figure, that is, in this case, node A. Node A performs its operations on the data and passes the results of those operations to node B and node C, as represented by data flow arrows 44 and 45. Node B performs its operations on the data it receives from node A and passes the results of those operations to node C as represented by data flow arrow 46. Node C performs its operations on the data received from node A and node B and passes the results of those operations to node D as represented by dataflow arrow 47. Node D performs its operations and since it is the final node the processed data "flows out of" the graph.
The graph is, in this case, acyclic since there are no endless loops. Consider the same graph with the addition of a link 48 (shown in broken outline) interconnecting node D back to node B. The link 48 passes data back from node D to node B as represented by dataflow arrow 49. This data would then be passed to node C and thence back to node D. Thus an endless processing loop could be established. It is part of the function of the GMM 10 to verify the graph to ensure that no endless processing loops are introduced during construction of the graph.
The PSLM 7 holds a generic graph which has processing nodes for every possible service and product offered by the telephone operator. Figure 5 shows such a generic graph although for the sake of simplicity the number of nodes has been reduced. Not all customers will use all the products and services available. Thus, if this generic graph were to be used directly, a lot of processing steps will be carried out unnecessarily or processing power allocated to the task unnecessarily. This would waste valuable computing time when preparing a bill.
Suppose, for example, a customer utilises those products or services requiring the nodes labelled X then six of the nodes (without labels) will be superfluous.
In order to prevent this the PAE 5 utilises the GMM 10 to tailor the generic graph according to those goods and services the customer has taken.
Figure 6 shows a flow-chart of the operation of the PAE 5. A first stage is for the PAE 5 to request the generic graph data from the PSLM 7 as represented by box 60. This data is used to build a generic graph in a step represented by box 61 . The generic graph is tailored to be specific to a customer in a process (to be described later) called "lighting the graph", as represented by box 62. The tailored graph is then applied to the customer events passed to the PAE 5 by the CBP 4, this step being represented by box 63. The PAE 5 passes the processed data back to the CBP 4, as represented by box 64, where it is passed to the IPE 4b and a bill printed out and dispatched to the customer. New customer data is requested from the CBP 4 as represented by box 65 and the steps are then repeated.
The first two step 60 and 61 will now be described in greater detail.
The PSLM 7 holds information on:
1 . Products prices and related information which will be used by the PAE 5 to produce a price for a product. For example, the rental charge for a telephone line or the price of an item of equipment such as a telephone or answering machine;
2. The rules for pricing a product or for producing information for a particular billing schema. An example of this would be a discount service such as "Friends and Family" offered by British Telecommunications Pic of 82 Newgate Street, LONDON, United Kingdom. In this service a discount is made on calls to a nominated set of numbers; and
3. The relationships between the various products or bills, including date information.
In essence items 1 and 2 of the information are individual schemas equivalent to the nodes in figure 5 and item 3 is equivalent to the links between the nodes. Thus, although the generic graph is not stored in the way depicted in figure 5, that is in a pictorial way, all the information required to later form the schema graph is stored.
The schemas are logical processes that execute a rule to produce a price or information to be produced on a bill (for example the total number of telephone units used). The rules implemented in the schema are provided by the PSLM 7 and a schema may be executed more than once in any bill production. In other words a node in the graph of figure 5 may be used more than once in processing customer data although not on the same item of data because the graph is acyclic as mentioned above.
Those items of customer information to which a schema may be applied are termed schema instances. This concept is similar to the concept of object class and object instance in object orientated programming. A schema is executed once for each schema instance that exists for that schema. Each time a schema is executed a PEL is created as a record of everything done on the schema instance.
In essence therefore the graph is a "map" of the processes to be carried out on the customer data giving the routes to be followed by the products of those processes to other processes. It should be emphasised that the schema graph is built purely from the data held by the PSLM 7. No customer specific data is held in the nodes and links. It is a generic graph which will cater for a notional customer who will use all of the products and services offered by the operator. The PSLM 7 sends two types of data to the PAE 5 in order to create the schema graph. The first type concerns the rules - these are sent in a plain text form. The second type is a table mapping each schema to any parent schemas which act upon output generated by that schema.
The PDM 1 5 of the PAE 5 translates the table into a form suitable for use with the GMM 10. From this table the GMM 10 builds the generic graph by structuring the data into a node with parents and children, that is, a parent child structure is created. A simplified parent child structure is shown in figure 7 and it can be seen that each node is a memory structure including a number of identifiers. Taking node 70, this has a cell identifier field 71 , a field 72 including a pointer to children of that node, a field 73 including a pointer to parents of that node and a field 74 identifying the schema. Thus, from the figure, it will be seen that node 75 is schema C, it has a parent schema A as indicated by pointer 76, and it has a child schema which is schema D.
At this stage in the process, a true graph has not been created but just a set of table structures with pointers to other table structures. The next stage is to convert this into cells and synapses of a cellular framework. The conversion process is carried as described in the following pseudo-code after the creation of a root node and a concentrator node.
message BUILDGRAPH { copy schema id to ceil if NO working node children
{ connect to concentrator enter concentrator child in cell child list
} else
{ for each child in working node
{ if working node child cellid = = ()
{ create cell for child connect to child cell reset working node to child node send BUILDGRAPH to child
} else
{ connect to child cell
} enter child in cell child list }
}
Figure 8 shows the stages involved in the building of a simple graph. Figure 8a shows the first stage in the graph building process; that of creation of root (R) and concentrator (C) nodes. Figure 8(b) shows the creation of the first child 81 and in the next stage shown in figure 8(c) a child 82 of the child 81 is created. This is then connected to the concentrator C. In the final stage a further child 83 of the root node is created and connected to its child 82 which is an earlier created child of cell 81 .
The next stage is to "validate" the schema graph which has been created. This is a test carried out to ensure that no messages get lost or enter infinite loops circling through the same cells in the graph. The graph should be a directed acyclic graph (DAG) and to check this any message sent from a cell to a child must not then return as an input to this cell from a parent. A message called GRAPHCHECK is sent to the root cell and thence to each cell and its children in turn, in a synchronous manner. The GRAPHCHECK message contains a list of cell identifiers through which the message has passed. The arrival of the message at a cell invokes a check of the cell id of that cell against those in the list of cell ids that have already been visited. If there is a match then that cell has been visited before and there is a loop in the graph. In such circumstances the graph would be held invalid. The errors are noted by marking the cell status accordingly.
Children of each cell are sent the message and if it returns from every child cell with no error then the cell status is marked valid and this cell id is removed from the list on the message. The message is then sent back to the parent which sent it. If this cell is checked from another cell then it will immediately return the result that it is valid by checking its status.
The pseudo-code for the GRAPHCHECK message is as follows:
message GRAPHCHECK
{ if status NOT set
{ if cellid in list of cellids in GRAPHCHECK
{ status = invalid copy status to GRAPHCHECK data
/* could mark the cellid which caused error for reporting */ return
}
status = valid add cellid to list in GRAPHCHECK for each child
{ send synchronous GRAPHCHECK if status returned in GRAPHCHECK = = invalid
{ status = invalid return
} } remove cellid from GRAPHCHECK data set GRAPHCHECK return status to valid return } else
{ copy status to GRAPHCHECK data return }
With the generic schema graph having been created and verified, the next step is to tailor this generic graph to a customer specific graph. This step is the step represented by box 62 in figure 6. It is referred to as "lighting up" the graph or instantiating the graph. In essence this lighting up process involves mapping customer inventory information held in the CDM 1 1 to the schema graph held in the PDM 1 5 to create a graph which is specific to that customer.
Each customer will have a number of items which will generate events to be charged. The items are referred to as Feature Items (Fl) and they will include telephone Iines, charge cards and private circuits. The events generated by the Feature Items will be charged for according to billing options held in the customer inventory. The options are termed products. An example of a product is "Family and Friends" which was described earlier.
The customer inventory will include all instances of the products to which the customer subscribes. A product may have more than one instance, for example, the "Family and Friends" product will have two instances where the customer has two telephone Iines utilising this product. Each product instance in the customer inventory contains all the customer defined attributes and data which relates to that instance of the product.
The process of "lighting-up" the graph entails instructing each cell of the graph where to locate the product instances and the instances of the schemas it is to use. In order to do this each cell has at least one instance table. An example of a table is given below.
Instance No. PSC Instance Id. Instance Selector
GMM defined Code Supplied by CDM pointer to list of instances
The tailored graph can then be applied to the customer events (box 63 figure 6) in order to calculate the invoice.
The steps involved in this process are shown in Figure 9. A first step in the process is to send the customer event list to the concentrator cell of the customer specific graph, this step being represented by box 90. The concentrator cell sends the appropriate events to its parent cells via the appropriate links, as represented by box 91 . The concentrator cell then resets as represented by box 92. This involves the discarding of customer specific information. The cell is then no longer lit up and is ready to be "lighted up" to form a cell of a graph specific to the next customer.
Each parent upon receipt of the events produces a PEL for each schema instance it has , as represented by box 93. The schema instances are run, as represented by box 94 and the results are sent to the appropriate parents of that cell, as represented by box 95. If the parent is the root cell (box 96) then the data has traversed the graph and the process ends as represented by box 97. If the parent is not the root then the steps represented by boxes 92 to 96 are carried out again.
Thus, in applying the graph to the customer data a series of PELs are caused to "flow up" the graph (up in the sense from concentrator to root). Figure 10 shows part of such a customer graph. The figure shows three cells 100, 101 and 103. Cell 100 is concemed with a product called "PSTN-U", cell 103 is concerned with a product called "OPTION 1 5" and cell 101 is concerned with a product called "Famiiy and Friends". Data flows into this part of the graph by means of link 104 to cell 100 and leaves the graph by means of link 105 from cell 103. A link 106 exists between cell 100 and cell 101 . Between cell 101 and cell 103 there is a link 107 and between cell 103 and 100 there is a link 108.
Consider the situation where the customer has two Iines numbered 1 24 and 456. Because there are two numbers, there will be two instances of the PSTN-U schema one for each number and this cell will output two PELs 109 and 1 10. PEL 109 relates to line 456 and PEL 1 10 relates to line 1 23. The customer has taken Option 1 5 on line 123 and both "Family and Friends" and "Option 1 5" on line 456.
Thus, PEL 109 is directed in the direction of arrow 1 1 1 to cell 101 because line 456 has the option "Family and Friends". Cell 101 applies the schema to the input PEL 109 and outputs another PEL 1 1 2 in the direction of arrow 1 1 3 along link 107. PEL 1 1 2 thus concerns calls on link 456 to telephone numbers discounted according to the "Friends and Family" option.
Cell 103 awaits for the arrival of both PELs 1 1 2 and 1 10. PEL 1 1 0 is directed to cell 103 along link 108 in the direction of arrow 1 14. This cell processes the input PELs by discounting the total telephone usage on both Iines. A PEL 1 1 5 is output from the cell 103 along link 105 in the direction of arrow 1 1 6 to the next cell in the graph (not shown). The output PEL 1 15 contains all the telephone usage records for both Iines with the appropriate discounts applied.
An important point to be noted here is that each PEL has a data-field which indicates the PEL from which it originated. This allows billing errors to be traced to the erroneous schema. As the schema instances execute, a PEL "spreadsheet" will be built up. The "spreadsheet" will contain information about the execution of the customer specific graph. For the example illustrated in figure 10 the PEL "spreadsheet" would be as shown in figure 1 1 . A MEL 1 1 7 comprises a number of events labelled a to k in the figure 1 1 . Of these events a, c, e, f, h, j are directed to cell 100 and traverse the section of graph depicted in figure 10. These events form the input PEL sent on link 104 to cell 100 but have pointers 1 1 8 back to their counterparts in the MEL 1 17. The input PEL is effectively split by the cell 100 in to the PEL 100 sent directly to the cell 103 containing events c, f, j and the PEL 1 1 1 sent to cell 101 containing events a, e and h. The events sent to cell 101 are processed to form PEL 1 1 2 and these have pointers 1 21 back to back to PEL 1 20. The events of PEL 109 are processed by cell 101 to form PEL 1 1 2 which is to cell 103. Output PEL 1 1 5 has events a, e, h, j with pointers 122 back to PEL 109.
After the events have been processed and leave the graph, they are passed to the IPE 4b of the CBP 4 where the bill is printed out and dispatched to the user, as represented by box 64 of figure 6.
The process is then repeated (steps 62 to 64) for the next customer, as represented by box 65.
The above described process does not take into account the "distinguishing date" information contained in an event. This becomes important because the customer specific data may show a change in circumstances during the billing period so that an event being processed needs to follow different links between cells (or schemas) at different times. As an example, the billing period may be January to February but the customer, although having the service "Option 1 5" continuously for his line 456, may only have begun to subscribe to Friends and Famiiy for that line in February.
Referring to Figure 1 2, looking at links from the concentrator node 1 30 to the "Option 1 5" node 131 and to the "Friends and Family" node 132, then these links will need associated date/time data to show the change in relationship, so that an event can be correctly "routed". This is because until February, a customer event should proceed from the concentrator node 1 30 directly to the "Option 1 5" node 131 . After the beginning of February however, event data for line 456 should follow the link to the "Friends and Family" node 1 32 and only thence to the "Option 1 5" node 1 31 .
It is possible to "tag" a link between two cells in this respect. Once two cells have been instantiated, it is possible to look at the instance tables of the two cells to find overlaps. These overlaps then indicate which ranges apply to apply to which links so that event data will flow along the correct link when the data is processed by the graph.

Claims

1 . A method of processing data for producing a bill for usage of a communications network, the method comprising: i) receiving event data from the communications network, the event data concerning network usage by a user; ii) providing a set of schemas applicable to communications services available to users by means of the network, each schema containing service specific data and at least one rule, or an identifier for at least one rule, for use in processing received event data in respect of that service; iii) selecting from the set of schemas one or more schemas applicable to the event data received; and iv) applying the selected schema(s) to the event data to process the event data for bill production.
2. A method according to Claim 1 wherein the method further comprises: v) storing a generic data processing structure, comprising an ordered set of data processing nodes which are structured for the processing of event data relating to communications services available over the network, each node having an associated schema from the set of schemas; and vi) storing user specific information which identifies a set of services selected from the communications services available over the network and allocated for use by that user wherein the step of selecting one or more schemas is carried out by selecting a subset of the data processing nodes which have associated therewith schemas for processing network event data in respect of the selected set of services.
3. A method according to claim 2 wherein an item of the event data comprises at least one distinguishing date and the step of selecting schemas for processing that item of event data includes the step of reading the distinguishing date and selecting a schema from alternative schemas in accordance with said date.
4. Apparatus for processing data for producing a bill for usage of a communications network, the apparatus comprising: means for receiving from the communications network a set of event data attributable to usage of the network; means for storing an ordered set of schemas applicable to a set of products available to a user, each schema comprising a Iogical process or an identifier for a Iogical process for processing event data received obtained from the network; means to select from the set of schemas those applicable to a selected set of communications products or services available to the user; and means to apply the selected schemas to the event data received from the network to process the events into a form ready for bill production.
5. A method of processing data for producing a bill for usage of a communication network which method comprising: obtaining from a network a set of events on the network attributable to a user of the network; providing a set of schema applicable to a set of products available to the user, the schema for processing events retrieved from the network; selecting from the set of schemas, schemas applicable to the products used by the user; and applying the selected schemas to the set of events obtained from the network to process the events into a processed form ready for bill production.
6. A method of processing data for producing a bill for usage of a communication network which method comprising: obtaining from a communications network a set of events on the network attributable to a user of the network; selecting from a set of schema applicable to a set of products available to the user at least one schema applicable to a set pf products used by the user; applying the selected schema or schemas to the set of events obtained from the network to process the events into a processed form ready for bill production.
7. A method as claimed in either one of claims 5 or 6 wherein the schemas to be applied to the data are formed as a linked node structure of inter-related schemas and the events to be processed are input to the structure.
8. A method as claimed in claim 5, claim 6 or claim 7 wherein the events are formed into a master event list and the linked node structure is formed as a graph of schemas each schema processing at least some of the events on the master event list and passing processed events on to other cells and inputting at least some of the events of the master event list into a first node of the graph such that the events pass through cells in the graph to a final cell from which they are output from the graph in a processed form.
9. A method as claimed in any one of claims 5 to 8 wherein the graph is formed by activating at least some of the cells in a generic graph.
10. A method as claimed in any one of claims 5 to 9 wherein the generic graph is built from a set of information about products and services available on or in connection with the communications network.
1 1 . A method as claimed in claim 10 wherein the set of information is held on a database which may be updated to cater for a change in the products and services available on or in connection with the communications network.
1 2. A method as claimed in any one of claims 5 to 1 1 wherein at least some of the processed events include pointers to the events from which they were derived.
13. A method as claimed in any one of claims 5 to 1 2 wherein each schema comprises one or more rules obtained from a database of rules.
14. A method as claimed in claim 13 wherein at least one rule is used for more than one schema either alone or in combination with another rule.
1 5. A method as claimed in claim 1 3 or claim 14 including the step or forming at least one schema from one or more of the rules.
1 6. A method as claimed in any one of claims 5 to 1 5 wherein links are established between cells along which processed events may flow between the cells at least some of the links being dependent upon a temporal criterion of events allowed on to the link.
17. A method as claimed in any one of claims 5 to 16 wherein the results of the processed events include an indication of the events from which they are derived.
18. Apparatus for processing data for producing a bill for usage of a telecommunications network comprising: means for obtaining from a telecommunications network a set of events attributable to a user of the network; means storing a set of schemas applicable to a set of products available to the user which schema being used to process events retrieved from the network; means to select from the set of schemas those applicable to the products used by the user; and means to apply the selected schemas to the set of events obtained from the network to process the events into a processed form ready for bill production.
1 9. Apparatus as claimed in claim 1 8 wherein means are provided for forming the schema into a linked node structure.
20. Apparatus as claimed in claim 1 7 or claim 18 comprising means to form the events into a master event list.
PCT/GB1996/001836 1995-07-27 1996-07-29 Billing for communications usage WO1997005734A1 (en)

Priority Applications (9)

Application Number Priority Date Filing Date Title
AU66244/96A AU713964B2 (en) 1995-07-27 1996-07-29 Billing for communications usage
DE69631373T DE69631373T2 (en) 1995-07-27 1996-07-29 BILLING MANAGEMENT FOR TELECOMMUNICATION USE
CA002227914A CA2227914C (en) 1995-07-27 1996-07-29 Billing for communications usage
US09/000,271 US6052450A (en) 1995-07-27 1996-07-29 Billing for communications usage
BR9610027A BR9610027A (en) 1995-07-27 1996-07-29 Method and apparatus for processing data to produce an account for the use of a communications network
EP96925879A EP0840977B1 (en) 1995-07-27 1996-07-29 Billing for communications usage
NZ313717A NZ313717A (en) 1995-07-27 1996-07-29 Billing for communications usage
JP9507362A JPH11510336A (en) 1995-07-27 1996-07-29 Billing and shipping for telecommunications use
NO980329A NO980329L (en) 1995-07-27 1998-01-26 Charging communication usage

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP95305312.1 1995-07-27
EP95305312 1995-07-27

Publications (1)

Publication Number Publication Date
WO1997005734A1 true WO1997005734A1 (en) 1997-02-13

Family

ID=8221275

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/GB1996/001836 WO1997005734A1 (en) 1995-07-27 1996-07-29 Billing for communications usage

Country Status (13)

Country Link
US (1) US6052450A (en)
EP (1) EP0840977B1 (en)
JP (1) JPH11510336A (en)
KR (1) KR19990036053A (en)
CN (1) CN1192310A (en)
AU (1) AU713964B2 (en)
BR (1) BR9610027A (en)
CA (1) CA2227914C (en)
DE (1) DE69631373T2 (en)
MX (1) MX9800742A (en)
NO (1) NO980329L (en)
NZ (1) NZ313717A (en)
WO (1) WO1997005734A1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998041006A1 (en) * 1997-03-10 1998-09-17 At & T Corp. Telephone billing with summary information
WO1999009733A1 (en) * 1997-08-14 1999-02-25 Telia Ab (Publ) Improvements in, or relating to, telecommunications systems
WO2000056053A1 (en) * 1999-03-17 2000-09-21 Sonera Oyj Pricing of telecommunication connections in a telecommunication system
WO2003003154A2 (en) * 2001-06-27 2003-01-09 Rateintegration, Inc. Rule-based system and apparatus for rating transactions
US6804337B1 (en) * 1999-03-25 2004-10-12 British Telecommunications Plc Bill image generation

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6515968B1 (en) 1995-03-17 2003-02-04 Worldcom, Inc. Integrated interface for real time web based viewing of telecommunications network call traffic
US6058380A (en) * 1995-12-08 2000-05-02 Mellon Bank, N.A. System and method for electronically processing invoice information
GB9603582D0 (en) 1996-02-20 1996-04-17 Hewlett Packard Co Method of accessing service resource items that are for use in a telecommunications system
US6069890A (en) 1996-06-26 2000-05-30 Bell Atlantic Network Services, Inc. Internet telephone service
US6154445A (en) 1996-04-18 2000-11-28 Bell Atlantic Network Services, Inc. Telephony communication via varied redundant networks
US6078582A (en) 1996-12-18 2000-06-20 Bell Atlantic Network Services, Inc. Internet long distance telephone service
US6137869A (en) 1997-09-16 2000-10-24 Bell Atlantic Network Services, Inc. Network session management
US6574216B1 (en) 1997-03-11 2003-06-03 Verizon Services Corp. Packet data network voice call quality monitoring
US6292479B1 (en) 1997-03-19 2001-09-18 Bell Atlantic Network Services, Inc. Transport of caller identification information through diverse communication networks
US6870827B1 (en) 1997-03-19 2005-03-22 Verizon Services Corp. Voice call alternative routing through PSTN and internet networks
US6473407B1 (en) 1997-09-05 2002-10-29 Worldcom, Inc. Integrated proxy interface for web based alarm management tools
US6714979B1 (en) * 1997-09-26 2004-03-30 Worldcom, Inc. Data warehousing infrastructure for web based reporting tool
US7058600B1 (en) * 1997-09-26 2006-06-06 Mci, Inc. Integrated proxy interface for web based data management reports
US6574661B1 (en) 1997-09-26 2003-06-03 Mci Communications Corporation Integrated proxy interface for web based telecommunication toll-free network management using a network manager for downloading a call routing tree to client
US6763376B1 (en) 1997-09-26 2004-07-13 Mci Communications Corporation Integrated customer interface system for communications network management
FI105757B (en) * 1997-12-16 2000-09-29 Nokia Networks Oy Pre-processing of events for report generation
US20010056362A1 (en) * 1998-07-29 2001-12-27 Mike Hanagan Modular, convergent customer care and billing system
US20020082966A1 (en) * 1999-11-16 2002-06-27 Dana Commercial Credit Corporation System and method for benchmarking asset characteristics
US20050131729A1 (en) * 1999-11-16 2005-06-16 Melby John M. Apparatus and method for tracking and managing physical assets
US7062446B1 (en) * 1999-11-16 2006-06-13 Dana Corporation Apparatus and method for tracking and managing physical assets
US20050086239A1 (en) * 1999-11-16 2005-04-21 Eric Swann System or method for analyzing information organized in a configurable manner
US20020077944A1 (en) * 1999-11-16 2002-06-20 Bly J. Aaron System and method for disposing of assets
US6952680B1 (en) 1999-11-16 2005-10-04 Dana Corporation Apparatus and method for tracking and managing physical assets
EP1168805A1 (en) * 2000-06-20 2002-01-02 Alcatel Call charging method, a related device, object and object-oriented development system
US20020161840A1 (en) * 2001-02-20 2002-10-31 Willcox William J. Adapter for interfacing with a workflow engine
US20020174072A1 (en) * 2001-05-17 2002-11-21 Michael Wengrovitz Secure internet-based call accounting service
US20060053075A1 (en) * 2001-11-26 2006-03-09 Aaron Roth System and method for tracking asset usage and performance
US7281044B2 (en) * 2002-01-10 2007-10-09 Hitachi, Ltd. SAN infrastructure on demand service system
US20030149786A1 (en) * 2002-02-06 2003-08-07 Mark Duffy Efficient counter retrieval
US20040153382A1 (en) * 2003-01-31 2004-08-05 Richard Boccuzzi System and method for determining discrepancies in a communications system
US7340422B2 (en) 2003-02-10 2008-03-04 Asentinel Llc Systems and method for managing and processing of telecommunications invoices
EP1455291A1 (en) * 2003-03-06 2004-09-08 Comptel OYJ Method, means and computer program product for setting rating
US7444141B2 (en) * 2003-06-12 2008-10-28 Sergio Rivera Method and system for programmable control of mobile communications units
US20050187888A1 (en) * 2004-02-19 2005-08-25 William Sherman Method for associating information pertaining to a meter data acquisition system
US20070201641A1 (en) * 2004-05-18 2007-08-30 Mts Mer Telemanagement Solutions Ltd. Information verification in a telecommunications network
CN100349403C (en) * 2004-09-27 2007-11-14 英业达股份有限公司 Intelligent website charging treatment system and its method
US8238538B2 (en) 2009-05-28 2012-08-07 Comcast Cable Communications, Llc Stateful home phone service

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0358408A2 (en) * 1988-09-06 1990-03-14 AT&T Corp. Intelligent network
WO1993008661A1 (en) * 1991-10-16 1993-04-29 Telefonaktiebolaget Lm Ericsson Flexible call detail recording system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4979207A (en) * 1990-02-01 1990-12-18 Motorola, Inc. Method of processing cellular telephone call detail data for billing multi-line customers for cellular telephone services
US5659601A (en) * 1995-05-09 1997-08-19 Motorola, Inc. Method of selecting a cost effective service plan

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0358408A2 (en) * 1988-09-06 1990-03-14 AT&T Corp. Intelligent network
WO1993008661A1 (en) * 1991-10-16 1993-04-29 Telefonaktiebolaget Lm Ericsson Flexible call detail recording system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
I. BENYACAR ET AL.: "Concepts in recording of services", TENCON '89, 22 November 1989 (1989-11-22) - 24 November 1989 (1989-11-24), BOMBAY, INDIA, pages 593 - 599, XP000203943 *
R.L.AVEYARD ET AL.: "New Billing System Development", NOMS 90. IEEE1990 NETWORK OPERATIONS & MANAGEMENT SYMPOSIUM, 11 February 1990 (1990-02-11) - 1914, SAN DIEGO, CA US, pages 1-10, XP000534180 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998041006A1 (en) * 1997-03-10 1998-09-17 At & T Corp. Telephone billing with summary information
US6058170A (en) * 1997-03-10 2000-05-02 At&T Corp Telephone billing with summary information
WO1999009733A1 (en) * 1997-08-14 1999-02-25 Telia Ab (Publ) Improvements in, or relating to, telecommunications systems
WO2000056053A1 (en) * 1999-03-17 2000-09-21 Sonera Oyj Pricing of telecommunication connections in a telecommunication system
US6804337B1 (en) * 1999-03-25 2004-10-12 British Telecommunications Plc Bill image generation
WO2003003154A2 (en) * 2001-06-27 2003-01-09 Rateintegration, Inc. Rule-based system and apparatus for rating transactions
WO2003003154A3 (en) * 2001-06-27 2004-03-11 Rateintegration Inc Rule-based system and apparatus for rating transactions

Also Published As

Publication number Publication date
AU6624496A (en) 1997-02-26
AU713964B2 (en) 1999-12-16
JPH11510336A (en) 1999-09-07
EP0840977B1 (en) 2004-01-21
CN1192310A (en) 1998-09-02
DE69631373D1 (en) 2004-02-26
CA2227914A1 (en) 1997-02-13
CA2227914C (en) 2001-03-20
NO980329D0 (en) 1998-01-26
KR19990036053A (en) 1999-05-25
MX9800742A (en) 1998-11-29
DE69631373T2 (en) 2004-11-11
EP0840977A1 (en) 1998-05-13
NZ313717A (en) 1999-11-29
US6052450A (en) 2000-04-18
NO980329L (en) 1998-03-26
BR9610027A (en) 1999-07-06

Similar Documents

Publication Publication Date Title
CA2227914C (en) Billing for communications usage
CA2404550C (en) System and method for web services packaging
AU697499B2 (en) Data processing system for communications network
Bussler et al. Policy resolution for workflow management systems
CN1201599C (en) System and method for supporting and managing telecommunication services
US20020107754A1 (en) Rule-based system and apparatus for rating transactions
Steffen et al. Hierarchical service definition
MXPA04002898A (en) Intelligent service management system.
EP1364330A2 (en) Method and apparatus for managing business applications
EP1101350A1 (en) Decision network based event pricing system in a component based, object oriented convergent customer care and billing system
Amyot et al. On the extension of UML with use case maps concepts
US8195566B2 (en) Web service interfaces used in providing a billing service
CN108632047A (en) A kind of determination method and device of tariff data
US6804337B1 (en) Bill image generation
Fleck A distributed near real-time billing environment
WO1999009733A1 (en) Improvements in, or relating to, telecommunications systems
Aubonnet et al. PILOTE: a service creation environment in next generation networks
KR970006416B1 (en) Database main table structure
Kamoun Formal specification and feature interaction detection in the intelligent network.
Anderson et al. The Objectiva Architecture
WO2001090836A2 (en) Real-time (all the time) operation support system and method
WO1998052321A1 (en) Improved telecommunications systems and methods
Strick et al. A Framework for Designing Distributed Management Applications
De Cindio et al. Real system modeling: A formal but realistic approach to organizational design
Röhmer Charging Information Management and its Technical Implication in a Liberalized Broadband Telecommunications Environment

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 96195907.X

Country of ref document: CN

AK Designated states

Kind code of ref document: A1

Designated state(s): AL AM AT AU AZ BB BG BR BY CA CH CN CU CZ DE DK EE ES FI GB GE HU IL IS JP KE KG KP KR KZ LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK TJ TM TR TT UA UG US UZ VN AM AZ BY KG KZ MD RU TJ TM

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): KE LS MW SD SZ UG AT BE CH DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 313717

Country of ref document: NZ

ENP Entry into the national phase

Ref document number: 1997 507362

Country of ref document: JP

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2227914

Country of ref document: CA

Ref document number: 2227914

Country of ref document: CA

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: PA/a/1998/000742

Country of ref document: MX

Ref document number: 1996925879

Country of ref document: EP

Ref document number: 1019980700718

Country of ref document: KR

WWE Wipo information: entry into national phase

Ref document number: 09000271

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 1996925879

Country of ref document: EP

REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

WWP Wipo information: published in national office

Ref document number: 1019980700718

Country of ref document: KR

WWG Wipo information: grant in national office

Ref document number: 1996925879

Country of ref document: EP

WWR Wipo information: refused in national office

Ref document number: 1019980700718

Country of ref document: KR