The present disclosure relates generally to networking and computing. More particularly, the present disclosure relates to systems and methods for a procedure Call Data Record (CDR) generation for a Radio Access Network (RAN) parser.
In a telecommunications network, there are solutions for planning, troubleshooting and optimizing mobile networks using dynamic, geo-located devices, and subscriber data. A RAN Data Processing System (also referred to herein as a Parser, a RAN parser, and a parsing agent) is a scalable software adapter which collects and processes 2G, 3G, 4G and 5G 3rd Generation Partnership Project (3GPP) and vendor-specific RAN call events to generate call records and, optionally geolocated call records and real time location insights. The main output of RAN parser is a RAN user call data record (CDR) based on the messages provided by the network. This requires a correlation between different sources and messages found in the customer's information. And the aim is to provide the CDR as soon as possible, not waiting for the end of the call.
The present disclosure relates to systems and methods for a Call Data Record (CDR) generation procedure for a Radio Access Network (RAN) parser. In an embodiment, a method includes reading signaling messages as they arrive in a Radio Access Network (RAN) parser; for each signaling message, assigning the signaling message to a procedure, decoding the signaling message to obtain information required to generate a Call Data Record (CDR), and obtaining information on status of a procedure associated with the signaling message; and based on the status of the procedure, one of (1) waiting on more signaling messages for the procedure and (2) determining the procedure has ended and generating the CDR based on the associated signaling messages. Of note, data record generation is providing records for different signaling procedures that appear during the call, and the various descriptions utilize the term “procedures” for the different signaling procedures that occur during a call. That is, the term procedure is used to denote something related to signaling that occurs during the call.
In various embodiments, the present disclosure can include a method having steps, a processing device configured to implement the steps, and a non-transitory computer-readable medium storing instructions for programming one or more processors to implement the steps. The steps include reading signaling messages as they arrive in a Radio Access Network (RAN) parser; for each signaling message, assigning the signaling message to a procedure, decoding the signaling message to obtain information required to generate a Call Data Record (CDR), and obtaining information on status of a procedure associated with the signaling message; and based on the status of the procedure, one of (1) waiting on more signaling messages for the procedure and (2) determining the procedure has ended and generating the CDR based on the associated signaling messages.
The signaling messages can be in a vendor/technology agnostic format. The steps can include, when the procedure has ended, queueing the CDR and removing any information from memory. The steps can include incrementally building the CDR based on subsets of the signaling messages associated to the call fragment. The generated CDR types can include any of call start, handover, call end, eRAB establishment and release, redirection, re-establishment, CS Fallback, Serving cell measurements and miscellaneous procedures. The signaling messages can be associated with procedures involved in the call. The procedures can be correlated by a common identifier or a tuple and an international mobile subscriber identity (IMSI) with a timestamp. Details of the procedures can be based on associated signaling messages or from information from other correlated procedures. The procedures can be one of asynchronous generated when an event happens and synchronous that are generated periodically.
The present disclosure is illustrated and described herein with reference to the various drawings, in which like reference numbers are used to denote like system components/method steps, as appropriate, and in which:
Again, the present disclosure relates to systems and methods for a Call Data Record (CDR) generation procedure for a Radio Access Network (RAN) parser. The purpose of the current Parsers (non-cloud native) is to be able to regenerate a RAN user call based on the messages provided by the network. There is a correlation between different sources and messages, and this information is targeted as soon as the call in the network has finished. Apart from the “call details” output (CDR), the parser is able to provide other processed outputs, such as the geolocation (GDR) of the user along the call in Near Real Time (NRT) or specific Key Performance Indicators (KPIs) that allow optimization algorithms and recommendations to the network operator about which should be changed in the RAN network configuration to improve its quality. Parsers receive information provided by the customer network elements by files or by TCP streams (natively only in the Cloud Parser architecture). The supported formats depend on the vendor and technology; therefore, the Parsers should be able to understand, process and provide the corresponding outputs independently of the vendor/technology specificities.
The present disclosure includes a Cloud Native Parser that reproduces the behavior of the current Parsers via a new architecture that requires changes in terms of how the information is processed, how it is distributed along the different elements, how it is generated and how it is sent out of the system. The Cloud Native Parser aims to replace the legacy architecture making it more flexible and able to be deployed in several pieces along different locations (edge, central, etc. in a customer network in front of the monolithic version where only the central site deployment was allowed.
RAN parsers require Call Traces (CTs) as inputs. CTs are generated by Network Elements (NEs) from the client's mobile network and have a vendor proprietary format depending on
Since the input messages to the Procedure CDR Generation Service 10 are the output of the Link Generation Service 12, every message already belongs to a cell fragment.
The Parser aims to create fast outputs, breaks down a UE (User Equipment) session or ‘call’ into ‘cell fragments’, separating in different outputs the part of the connection under each serving cell. In this document, the words “call”, “cell fragment of a call” and “context” are used interchangeably.
Then depending on the message type, the message will decode its content to get the parameters need for the processing in the procedures algorithm. After the decoding, the message will be processed in the context. This process can trigger the closure of one or several procedures. All the closed procedures will be sent to the output to be serialized and sent to the output queue.
The message processing in the context will be explained in the following sections of the document.
There are several general procedure concepts that are used in the following procedures:
Although messages of all types are involved in the procedure for time tracking purposes, only the following messages will be used to calculate the specific output parameters for this procedure:
In
Rectangle2: add measurement implies:
Rectangle3: close procedure implies:
This procedure will be generated periodically (configurable period) to summarize the measurements performed over the 5G serving cell during that time interval. Although messages of all types are involved in the procedure for time tracking purposes, only the following messages will be used to calculate the specific output parameters for this procedure:
This procedure will be generated periodically (configurable period) to summarize the measurements performed over the 5G serving cell during that time interval. Although messages of all types are involved in the procedure for time tracking purposes, only the following messages will be used to calculate the specific output parameters for this procedure: The process decision is very similar to the
In this section, we are going to explain the 2 types of ERAB procedures (ERAB Establishment and ERAB Release) as they are closely related.
The way this procedure works is different from the other procedures. In this case, we have the ERAB procedure that stores:
Every time an ERAB Establishment procedure is closed with RESULT=SUCCESS, an ERAB Release procedure is opened. In case the ERAB Establishment procedure is closed with RESULT=FAILURE, then there is not an ERAB Release procedure associated to it.
There are several scenarios to be considered:
In each scenario messages involved are different messages:
The decision algorithms for each message are shown in the following figures:
In Rectangle1 of
Note that the algorithm calculating the current_service in the context (
Table 2 shows the relation between current_service and connection_type
Note that the algorithm calculating the current_service in the context (
This procedure will report the reestablishment procedures occurring during the context. The messages involved in the procedure are: EUTRA-RRC RRC Connection Reestablishment Request, EUTRA-RRC RRC Connection Reestablishment, EUTRA-RRC RRC Connection Reestablishment Complete and EUTRA-RRC RRC Connection Reestablishment Reject and X2AP Private messages.
This procedure will report the mobility information provided when the context ends with a redirection to another technology or frequency. The messages involved in the procedure are: EUTRA-RRC RRC Connection Release, S1AP UE Context Release Request, S1AP UE Context Release Command, S1AP UE Context Release Complete.
This procedure will report the most important characteristics of any CS fallback procedure occurred in the context. This procedure considers several scenarios:
The messages involved in the procedure are:
2 CS Fallback at the beginning of the context: EMM Extended Service, EMM Service Reject, S1AP Initial Context Setup Request, S1AP Initial Context Setup Failure, S1AP UE Context Modification Request, EUTRA-RRC RRC Connection Release, S1AP UE Context Release Request, S1AP UE Context Release Command, S1AP UE Context Release Complete
This procedure will report the most important characteristics of any CS fallback procedure occurred in the context. This procedure considers several scenarios.
In
This procedure will report the most important characteristics of any handover attempt, including X2AP handover, S1AP handover and intra eNB handover (RRC handover) if possible. In this procedure there are 3 scenarios to be considered:
Scenarios 1 and 2 apply to X2AP, S1AP and intra eNB handovers, while scenario 3 only applies to X2AP, S1AP handovers.
The messages used in the handover procedure algorithm are the following (Note: some messages can be involved in more than one scenario): X2AP Handover Request, X2AP Handover Request Acknowledge, X2AP Handover Success, X2AP Handover Preparation Failure, X2AP Handover Cancel, X2AP Conditional Handover Cancel, X2AP SN Status Transfer, X2AP UE Context Release, S1AP Handover Request, S1AP Handover Request Acknowledge, S1AP Handover Required, S1AP Handover Command, S1AP Handover Notify, S1AP Handover Cancel, S1AP Handover Cancel Acknowledge, S1AP Handover Failure, S1AP Handover Preparation Failure, S1AP Path Switch Request, S1AP Path Switch Request Acknowledge, S1AP Path Switch Request Failure, S1AP UE Context Release Request, S1AP UE Context Release Command, S1AP UE Context Release Complete, EUTRA-RRC RRC Connection Reconfiguration, EUTRA-RRC RRC Connection Reconfiguration Complete, EUTRA-RRC Mobility From EUTRA Command, EUTRA-RRC RRC Connection Reestablishment Request, EUTRA-RRC RRC Connection Reestablishment, EUTRA-RRC RRC Connection Reestablishment Complete, EUTRA-RRC RRC Connection Reestablishment Reject, EUTRA-RRC RRC Connection Release. Note: The X2AP messages will have a different algorithm depending on whether the message has been traced at the source eNB or at the target eNB.
For handover procedure the process of closing the procedure is not as simple as setting some parameters with the information of the triggering messages. There are some decisions to make at the time of the closure. In handover procedure, every time a Box close procedure appears, it refers to the example process of
The decision algorithms for each message are shown in the following figures:
Specific for the decision algorithm of message S1AP Handover Required on scenario 4G outgoing handover, Box 1 in
The Continuation of the decision algorithms for each message in the following figures:
This procedure will report the most important characteristics of a connection starts. As call fragment may start due to one of the following signaling procedures
Scenario 3 includes X2, S1 and RRC handovers.
Message used in the LTE Call Start Procedure algorithm are the following: EUTRA-RRC RRC Connection Request, EUTRA-RRC RRC Connection Setup, EUTRA-RRC RRC Connection Setup Complete, EUTRA-RRC RRC Connection Reject, EUTRA-RRC Security Mode Command, EUTRA-RRC Security Mode Complete, EUTRA-RRC Security Mode Failure, S1AP Initial UE Message, S1AP Initial Context Setup Request, S1AP Initial Context Setup Response, S1AP Initial Context Setup Failure, S1AP Handover Request, S1AP Handover Request Acknowledge, S1AP Handover Failure, S1AP Handover Notify, X2AP Handover Request (received), X2AP Handover Request Acknowledge (sent), X2AP Handover Preparation Failure (sent), X2AP Handover Cancel (received), X2AP SN Status Transfer (received), X2AP UE Context Release (sent), S1AP Path Switch Request, S1AP Path Switch Request Acknowledge, S1AP Path Switch Request Failure, EUTRA-RRC RRC Connection Reconfiguration Complete, EUTRA-RRC RRC Reestablishment Request, EUTRA-RRC RRC Reestablishment, EUTRA-RRC RRC Reestablishment Complete, EUTRA-RRC RRC Reestablishment Reject
The decision algorithms for each message are shown in the following figures
In case of missing messages in the Call Start processing, this procedure can end due to (
Call Start procedure should include measurements regarding to the serving cell. When call start signaling procedure ends, if measurement information has not arrived, the Call Start processing will wait for that information as shown in
Measurement Report message is only considered if time elapsed since the start of the Call Start and the Measurement Report is lower than a threshold.
Call Start procedure will update the context with the values of the Service and Current Service based on the establishment cause that is set during the Call Start processing.
Table 4 shows the relation between establishment_cause and service
Table 5 shows the relation between establishment_cause and current_service
This procedure will report the most important characteristics of a connection end. A call fragment may end due to one of the following signaling procedures
Scenario 2 includes X2, S1 and RRC handovers.
Scenario 3 will only generate a Call End procedure if it fails. When re-establishment procedure is successful, call continues in the cell where the procedure is triggered.
Message used in the LTE Call End Procedure algorithm are the following: EUTRA-RRC RRC Connection Release, S1AP UE Context Release Request, S1AP UE Context Release Command. S1AP UE Context Release Complete, X2AP Handover Request, X2AP Handover Request Acknowledge, X2AP Handover Cancel, X2AP Handover Preparation Failure, X2AP SN Status Transfer, X2AP UE Context Release, S1AP Handover Required, S1AP Handover Command, S1AP Handover Cancel, S1AP Handover Preparation Failure, EUTRA-RRC Mobility From EUTRA Command, EUTRA-RRC RRC Connection Reconfiguration, EUTRA-RRC Connection Reestablishment Request, EUTRA-RRC Connection Reestablishment, EUTRA-RRC Connection Reestablishment Complete, EUTRA-RRC Connection Reestablishment Reject.
A Call is considered ended (IS_CALL_ENDED=TRUE) when the procedure includes one of the following combinations
Call End procedure includes measurement information. This information is taken from the context, using the last measurement information recorded during the call. Measurement Report message is only considered if time elapsed since the Measurement Report message and the Call End is lower than a threshold
The decision algorithms for each message are shown in the following figures:
S1AP UE Context Release Request is an optional message for the basic Call End procedure.
Value of Result field for basic Call End procedure depends on the cause reported to perform the release in the S1AP UE Context Release Command o S1AP UE Context Release Request.
Outgoing RRC Handover is always considered as a Successful Call End procedure.
This procedure will report the most important characteristics of a connection starts. As call fragment may start due to one of the following signaling procedures
Scenario 3 includes Xn, NGAP and RRC handovers.
Message used in the 5G SA Call Start Procedure algorithm are the following: NR-RRC RRC Setup Request, NR-RRC RRC Setup, NR-RRC RRC Setup Complete, NR-RRC RRC Reject, NR-RRC Security Mode Command, NR-RRC Security Mode Complete, NR-RRC Security Mode Failure, NGAP Initial UE Message, NGAP Initial Context Setup Request, NGAP Initial Context Setup Response, NGAP Initial Context Setup Failure, NGAP Handover Request, NGAP Handover Request Acknowledge, NGAP Handover Failure, NGAP Handover Notify, XNAP Handover Request (received), XNAP Handover Request Acknowledge (sent), XNAP Handover Preparation Failure (sent), XNAP Handover Cancel (received), XNAP SN Status Transfer (received), XNAP UE Context Release (sent), NGAP Path Switch Request, NGAP Path Switch Request Acknowledge, NGAP Path Switch Request Failure, NR-RRC RRC Reconfiguration Complete, NR-RRC RRC Reestablishment Request, NR-RRC RRC Reestablishment, NR-RRC RRC Reestablishment Complete
The decision algorithms for each message are shown in the following figures
In case of missing messages in the Call Start processing, this procedure can end due to (
Call Start procedure should include measurements regarding to the serving cell. When call start signaling procedure ends, if measurement information has not arrived, the Call Start processing will wait for that information as shown in
Measurement Report message is only considered if time elapsed since the start of the Call Start and the Measurement Report is lower than a threshold.
Call Start procedure will update the context with the values of the Service and Current Service based on the establishment cause that is set during the Call Start processing.
Table 6 shows the relation between establishment_cause and service
Table 7 shows the relation between establishment_cause and current_service
This procedure will report the most important characteristics of a connection end. A call fragment may end due to one of the following signaling procedures
Scenario 2 includes Xn, Xn and RRC handovers.
Message used in the 5G SA Call End Procedure algorithm are the following: NR-RRC RRC Release, NGAP UE Context Release Request, NGAP UE Context Release Command, NGAP UE Context Release Complete, XNAP Handover Request, XNAP Handover Request Acknowledge, XNAP Handover Cancel, XNAP Handover Preparation Failure, XNAP SN Status Transfer, XNAP UE Context Release, NGAP Handover Required, NGAP Handover Command, NGAP Handover Cancel, NGAP Handover Preparation Failure, NR-RRC Mobility From NR Command, NR-RRC RRC Reconfiguration, NR-RRC Reestablishment Request, NR-RRC Reestablishment, NR-RRC Reestablishment Complete
A Call is considered ended (IS_CALL_ENDED=TRUE) when the procedure includes one of the following combinations
Call End procedure includes measurement information. This information is taken from the context, using the last measurement information recorded during the call. Measurement Report message is only considered if time elapsed since the Measurement Report message and the Call End is lower than a threshold
The decision algorithms for each message are shown in the following figures:
NGAP UE Context Release Request is an optional message for the basic Call End procedure.
Value of Result field for basic Call End procedure depends on the cause reported to perform the release in the NGAP UE Context Release Command o NGAP UE Context Release Request.
Outgoing RRC Handover is always considered as a Successful Call End procedure.
This procedure will be sent to the output every x messages. Its main purpose is to store the messages not belonging to any defined procedure.
The Parser generates its output according to these two principles:
In the end all procedures can be correlated using a common identifier or [IMSI+timestamp], and once combined they will provide a global view of the whole user call. This way the Parser provides a more granular and detailed information about the call as well as having outputs closer to real time. Previous section described the processing of each procedure. Now we will describe the kind of information created as output for each one.
There will be two types of procedures:
The call will be divided in the following procedures depending on the technology.
4G Handover
The process 100 includes reading signaling messages as they arrive in a Radio Access Network (RAN) parser (step 102); for each signaling message, assigning the signaling message to a procedure, decoding the signaling message to obtain information required to generate a Call Data Record (CDR), and obtaining information on status of a procedure associated with the signaling message (step 104); and, based on the status of the procedure, one of (1) waiting on more signaling messages for the procedure and (2) determining the procedure has ended and generating the CDR based on the associated signaling messages (step 106).
The signaling messages can be in a vendor/technology agnostic format. The steps can include, when the call has ended based on an end message, storing the CDR and removing any information from memory.
The steps can include incrementally building the CDR based on signaling messages. A signaling message can be assigned to one or more procedures. The CDRs types that can be generated include handover, serving cell measurements, eRAB establishment and release, redirection, reestablishment and CS Fallback.
The signaling messages are associated with procedures involved in the call. The procedures can be correlated by a common identifier or the tuple international mobile subscriber identity (IMSI) with a timestamp. Details of the procedures can be based on associated signaling messages or from information from correlated procedures. The procedures can be asynchronous, generated when an event happens, or synchronous, generated periodically.
The processor 202 is a hardware device for executing software instructions. The processor 202 may be any custom made or commercially available processor, a Central Processing Unit (CPU), an auxiliary processor among several processors associated with the processing system 200, a semiconductor-based microprocessor (in the form of a microchip or chipset), or generally any device for executing software instructions. When the processing system 200 is in operation, the processor 202 is configured to execute software stored within the memory 210, to communicate data to and from the memory 210, and to generally control operations of the processing system 200 pursuant to the software instructions. The I/O interfaces 204 may be used to receive user input from and/or for providing system output to one or more devices or components.
The network interface 206 may be used to enable the processing system 200 to communicate on a network, such as the Internet 104. The network interface 206 may include, for example, an Ethernet card or adapter or a Wireless Local Area Network (WLAN) card or adapter. The network interface 206 may include address, control, and/or data connections to enable appropriate communications on the network. A data store 208 may be used to store data. The data store 208 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, and the like), and combinations thereof.
Moreover, the data store 208 may incorporate electronic, magnetic, optical, and/or other types of storage media. In one example, the data store 208 may be located internal to the processing system 200, such as, for example, an internal hard drive connected to the local interface 212 in the processing system 200. Additionally, in another embodiment, the data store 208 may be located external to the processing system 200 such as, for example, an external hard drive connected to the I/O interfaces 204 (e.g., SCSI or USB connection). In a further embodiment, the data store 208 may be connected to the processing system 200 through a network, such as, for example, a network-attached file server.
The memory 210 may include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, tape, CDROM, etc.), and combinations thereof. Moreover, the memory 210 may incorporate electronic, magnetic, optical, and/or other types of storage media. Note that the memory 210 may have a distributed architecture, where various components are situated remotely from one another but can be accessed by the processor 202. The software in memory 210 may include one or more software programs, each of which includes an ordered listing of executable instructions for implementing logical functions. The software in the memory 210 includes a suitable Operating System (O/S) 214 and one or more programs 216. The operating system 214 essentially controls the execution of other computer programs, such as the one or more programs 216, and provides scheduling, input-output control, file and data management, memory management, and communication control and related services. The one or more programs 216 may be configured to implement the various processes, algorithms, methods, techniques, etc. described herein.
In an embodiment, one or more processing devices 200 can be configured in a cluster and/or in a cloud system, for implementing the process 100. Cloud computing systems and methods abstract away physical servers, storage, networking, etc., and instead offer these as on-demand and elastic resources. The National Institute of Standards and Technology (NIST) provides a concise and specific definition which states cloud computing is a model for enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction. Cloud computing differs from the classic client-server model by providing applications from a server that are executed and managed by a client's web browser or the like, with no installed client version of an application required. The phrase “Software as a Service” (SaaS) is sometimes used to describe application programs offered through cloud computing. A common shorthand for a provided cloud computing service (or even an aggregation of all existing cloud services) is “the cloud.”
It will be appreciated that some embodiments described herein may include one or more generic or specialized processors (“one or more processors”) such as microprocessors; central processing units (CPUs); digital signal processors (DSPs): customized processors such as network processors (NPs) or network processing units (NPUs), graphics processing units (GPUs), or the like; field programmable gate arrays (FPGAs); and the like along with unique stored program instructions (including both software and firmware) for control thereof to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein. Alternatively, some or all functions may be implemented by a state machine that has no stored program instructions, or in one or more application-specific integrated circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic or circuitry. Of course, a combination of the aforementioned approaches may be used. For some of the embodiments described herein, a corresponding device in hardware and optionally with software, firmware, and a combination thereof can be referred to as “circuitry configured or adapted to,” “logic configured or adapted to,” etc. perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. on digital and/or analog signals as described herein for the various embodiments.
Moreover, some embodiments may include a non-transitory computer-readable storage medium having computer-readable code stored thereon for programming a computer, server, appliance, device, processor, circuit, etc. each of which may include a processor to perform functions as described and claimed herein. Examples of such computer-readable storage mediums include, but are not limited to, a hard disk, an optical storage device, a magnetic storage device, a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), Flash memory, and the like. When stored in the non-transitory computer-readable medium, software can include instructions executable by a processor or device (e.g., any type of programmable circuitry or logic) that, in response to such execution, cause a processor or the device to perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. as described herein for the various embodiments.
Although the present disclosure has been illustrated and described herein with reference to preferred embodiments and specific examples thereof, it will be readily apparent to those of ordinary skill in the art that other embodiments and examples may perform similar functions and/or achieve like results. All such equivalent embodiments and examples are within the spirit and scope of the present disclosure, are contemplated thereby, and are intended to be covered by the following claims. The foregoing sections include headers for various embodiments and those skilled in the art will appreciate these various embodiments may be used in combination with one another as well as individually.
The present disclosure claims priority to U.S. Provisional Patent Application No. 63/441,927, filed Jan. 30, 2023, and U.S. Provisional Patent Application No. 63/404,448, filed Sep. 7, 2022, the contents of which are incorporated by reference in their entirety.
Number | Date | Country | |
---|---|---|---|
63441927 | Jan 2023 | US | |
63404448 | Sep 2022 | US |