# US 2021/0243119 A1 · Call routing discovery for telephony networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2021/0243119 A1
- Document ID: US20210243119A1
- Status: Published application
- Kind: A1
- Application number: 16/779,044
- Filed: 2020-01-31
- Published: 2021-08-05
- Earliest claimed: 2020-01-31
- Assignees: Optum, Inc.
- Applicants: Optum, Inc.
- Inventors: Dhaval Shah; Daniel Schley; Nicholas Leong; Maulik Patel; Connor Power; Mihir Patel; Robin Luo; Somadev Pasala; Donald Johnson
- Web page: https://patentgrep.com/patent/US20210243119A1

## CPC

- H04L 41/122: of virtualised topologies, e.g. software-defined networks [SDN] or network function virtualisation [NFV]
- H04L 41/145: {involving simulating, designing, planning or modelling of a network}
- H04L 41/40: using virtualisation of network functions or resources, e.g. SDN or NFV entities
- H04L 43/06: Generation of reports
- H04L 43/20: the monitoring system or the monitored elements being virtualised, abstracted or software-defined entities, e.g. SDN or NFV
- H04L 45/02: Topology update or discovery
- H04L 45/20: {Hop count for routing purposes, e.g. TTL}
- H04L 45/68: {Pseudowire emulation, e.g. IETF WG PWE3}
- H04L 41/046: comprising network management agents or mobile agents therefor
- H04L 43/028: by filtering
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

An example path discovery system includes a memory and processing circuitry in communication with the memory. The processing circuitry is configured to obtain routing script metadata associated with a telephony network, to parse routing logic implemented by one or more nodes of the telephony network, to emulate, using the routing script metadata and the parsed routing logic, a traversal path for a call through the telephony network, the emulated traversal path including the one more nodes for which the routing logic is parsed, to store, to the memory, the emulated traversal path and respective final states of runtime variables associated with the one or more nodes included in the emulated traversal path, and to generate, in a machine-readable format, one or more reports indicating a destination of the emulated traversal path in the telephony network and an ingress of the emulated traversal path with respect to the telephony network.

## Claims

### Claim 1

A path discovery system comprising:
a memory; and
processing circuitry in communication with the memory, the processing circuitry being configured to:
obtain routing script metadata associated with a telephony network;
parse routing logic implemented by one or more nodes of the telephony network;
emulate, using the routing script metadata and the parsed routing logic, a traversal path for a call through the telephony network, the emulated traversal path including the one more nodes for which the routing logic is parsed;
store, to the memory, the emulated traversal path and respective final states of runtime variables associated with the one or more nodes included in the emulated traversal path; and
generate, in a machine-readable format, one or more reports indicating a destination of the emulated traversal path in the telephony network and an ingress of the emulated traversal path with respect to the telephony network.

### Claim 2 (depends on 1)

The path discovery system of claim 1, wherein the processing circuitry is further configured to obtain, from one or more post call logs, end variable states associated with each of the one more nodes included in the emulated traversal path, and wherein to emulate the traversal path for the call through the telephony network, the processing circuitry is configured to further use the end variable states obtained form the one or more post call logs and associated with each of the one or more nodes included in the emulated traversal path.

### Claim 3 (depends on 2)

The path discovery system of claim 2, wherein the processing circuitry is configured to:
determine that a particular node of the one or more nodes included in the emulated traversal path is configured to perform an application programming interface (API) call to implement in-node routing logic; and
apply a respective end variable state of the end variable states obtained from the one or more post call logs corresponding to the particular node to parse the in-node routing logic of the particular node.

### Claim 4 (depends on 1)

The path discovery system of claim 1, wherein to emulate the traversal path of the call, the processing circuitry is configured to explore multiple egress routes from a particular node of the one or more nodes included in the emulated traversal path, based on a determination that next hop information for the particular node is unavailable from the routing logic parsed for the particular node.

### Claim 5 (depends on 4)

The path discovery system of claim 4, wherein the emulated traversal path is included in a group of divergent traversal paths, based on the multiple egress routes explored from the particular node.

### Claim 6 (depends on 5)

The path discovery system of claim 5, wherein the processing circuitry is further configured to:
determine that at least two divergent traversal paths of the divergent traversal paths represent trivially divergent traversal paths; and
store only one of the trivially divergent traversal paths to the memory.

### Claim 7 (depends on 6)

The path discovery system of claim 6, wherein to determine that the at least two divergent traversal paths represent trivially divergent traversal paths, the processing circuitry is configured to detect a divergence and a re-convergence of the at least two divergent traversal paths.

### Claim 8 (depends on 1)

The path discovery system of claim 1, wherein to generate the one or more reports indicating the destination of the emulated traversal path in the telephony network and the ingress of the emulated traversal path with respect to the telephony network, the processing circuitry is configured to indicate, in the one or more reports a toll-free number (TFN) implemented by an ingress node of the telephony network and a vector-dialed number (VDN) hosted by an endpoint node of the telephony network, and wherein the call enters the telephony network via the TFN and terminates at the VDN.

### Claim 9 (depends on 1)

The path discovery system of claim 1, further comprising an input/output (I/O) interface, wherein the machine-readable format comprises an automated intermediate persistent (AlP) format, and wherein the processing circuitry is further configured to send, via the I/O interface, the one or more reports to one or more of a migration system, a network upgrade system, or a network onboarding system.

### Claim 10 (depends on 1)

The path discovery system of claim 1, wherein the processing circuitry is further configured to implement, in the memory, a mapping between the emulated traversal path and one or more call conditions associated with the call.

### Claim 11 (depends on 9)

The path discovery system of claim 9, wherein the one or more call conditions include at least one of a caller type, an inquiry type, or a language preference.

### Claim 12 (depends on 1)

The path discovery system of claim 1, further comprising an input/output (I/O) interface, wherein the call is a test call, and wherein the processing circuitry is configured to inject, via the I/O interface, the test call into the telephony network.

### Claim 13

A non-transitory computer-readable storage medium encoded with instructions that, when executed, cause processing circuitry of a path discovery system to:
obtain routing script metadata associated with a telephony network;
parse routing logic implemented by one or more nodes of the telephony network;
emulate, using the routing script metadata and the parsed routing logic, a traversal path for a call through the telephony network, the emulated traversal path including the one more nodes for which the routing logic is parsed;
store, to the non-transitory computer-readable storage medium, the emulated traversal path and respective final states of runtime variables associated with the one or more nodes included in the emulated traversal path; and
generate, in a machine-readable format, one or more reports indicating a destination of the emulated traversal path in the telephony network and an ingress of the emulated traversal path with respect to the telephony network.

### Claim 14

A method comprising:
obtaining, by a path discovery system, routing script metadata associated with a telephony network;
parsing, by the path discovery system, routing logic implemented by one or more nodes of the telephony network;
emulating, by the path discovery system, using the routing script metadata and the parsed routing logic, a traversal path for a call through the telephony network, the emulated traversal path including the one more nodes for which the routing logic is parsed;
storing, by the path discovery system, the emulated traversal path and respective final states of runtime variables associated with the one or more nodes included in the emulated traversal path; and
generating, by the path discovery system, in a machine-readable format, one or more reports indicating a destination of the emulated traversal path in the telephony network and an ingress of the emulated traversal path with respect to the telephony network.

### Claim 15 (depends on 14)

The method of claim 14, wherein emulating the traversal path of the call comprises exploring, by the path discovery system, multiple egress routes from a particular node of the one or more nodes included in the emulated traversal path, based on a determination that next hop information for the particular node is unavailable from the routing logic parsed for the particular node.

### Claim 16 (depends on 15)

The method of claim 15, wherein the emulated traversal path is included in a group of divergent traversal paths, based on the multiple egress routes explored from the particular node.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
determining, by the path discovery system, that at least two divergent traversal paths of the divergent traversal paths represent trivially divergent traversal paths; and
store only one of the trivially divergent traversal paths to the memory.

### Claim 18 (depends on 17)

The method of claim 17, wherein determining that the at least two divergent traversal paths represent trivially divergent traversal paths comprises detecting, by the path discovery system, a divergence and a re-convergence of the at least two divergent traversal paths.

### Claim 19 (depends on 14)

The method of claim 14, wherein generating the one or more reports indicating the destination of the emulated traversal path in the telephony network and the ingress of the emulated traversal path with respect to the telephony network comprises indicating, by the path discovery system, in the one or more reports a toll-free number (TFN) implemented by an ingress node of the telephony network and a vector-dialed number (VDN) hosted by an endpoint node of the telephony network, and wherein the call enters the telephony network via the TFN and terminates at the VDN.

### Claim 20 (depends on 14)

The method of claim 14, further comprising:
obtaining, by the path discovery system, from one or more post call logs, end variable states associated with each of the one more nodes included in the emulated traversal path, and wherein to emulate the traversal path for the call through the telephony network, the processing circuitry is configured to further use the end variable states obtained form the one or more post call logs and associated with each of the one or more nodes included in the emulated traversal path;
determining, by the path discovery system, that a particular node of the one or more nodes included in the emulated traversal path is configured to perform an application programming interface (API) call to implement in-node routing logic; and
applying, by the path discovery system, a respective end variable state of the end variable states obtained from the one or more post call logs corresponding to the particular node to parse the in-node routing logic of the particular node.
