Number normalization and display

Methods, devices, and systems are provided such that enterprise network administrators may create and display a dial plan management arrangement using enterprise canonical format and number normalization and friendly display tables. A solution is provided for creating and managing call routing simply and graphically using enterprise canonical format rather than through a legacy routing scheme using of a series of tables with no graphic depiction and multiple formats. By using a single format with a graphical representation when administering dial planning, implementation and management are significantly simpler and more efficient.

FIELD

The present disclosure is directed generally to enterprise networks and specifically to creating and displaying a dial plan management system using enterprise canonical format and number normalization and friendly display tables.

BACKGROUND

An enterprise network's effectiveness is directly impacted by whether or not a dial plan meets or fails to meet a company's requirements. It is the responsibility of an enterprise network administrator to ensure that the network has been set up to handle telephone calls in an efficient way. A telephone numbering plan is a set of rules used to assign telephone numbers and features to users and to route calls within telephone networks. The dial plan is a specific set of country codes, area codes, access codes, or combinations of dialed digits that sets the number and patterns of digits for all calls and administered features in the network. The typical dial plan models include open and closed dial plans, where an open dial plan allows variability of length of dialed digits and closed dial plan has a fixed total length of dialed digits.

Administrators typically build dial patterns/plans that are location-specific. The dial patterns often include “short codes” for dialing people that are collocated, and the short codes may not be unique across the enterprise network in different locations. Each location typically has local dialing rules such as “9” to get an outside line, “1” for long distance, and “011” for international in the United States.

Historically, dial plans have included some or all of the following routing tables/strategies in addition to short codes and local dialing rules: Automated Alternate Routing (AAR—private), Automatic Route Selection (ARS—public), Uniform Dial Plan (UDP—other, not AAR or ARS), and Feature Access Codes (FAC). There is no uniform graphic depiction of routing, and the tables listed above are commonly in text data entry format only.

With the complexity of today's private branch exchanges (PBXs), diversity of locations and distributed models, and the use of multiple protocols in hybrid networks (e.g., VoIP, SIP, Virtual), establishing and managing an effective dial plan has become increasingly challenging. A question arises as to how the dial plan in an enterprise network can be easily and effectively managed and displayed.

SUMMARY

It is with respect to the issues above and other problems that the embodiments presented herein were contemplated. In particular, embodiments of the present disclosure propose the ability to remove legacy routing tables and strategies and the utilization of a new paradigm for enterprise network routing. This proposal suggests application of the canonical model to dial plans to provide at least one number per user that is unique across the enterprise, and a tree structure to graphically depict the dial pattern for an administrator. Instead of legacy routing, a hierarchy of generic Number Normalization Tables (NNT) and Friendly Display Tables (FDT) would be provisioned. Three of the major issues faced by administrators include overlapping extensions, overlapping dial access codes, and feature transparency which would be solved with the new model. Other issues would be addressed as well. Core applications would no longer need to be aware of location-specific dialing while working in enterprise canonical numbers. A tree structure would be associated with locations or groups, rather than an endpoint or server as in the legacy routing model. Groups and individuals can be assigned to servers based on location.

The number normalization tables would change the legacy routing model. Number normalization would eliminate AAR, ARS, UDP, and FAC tables. Enterprise canonical numbers and number normalization rule attributes could be assigned for each end user in a location-independent, enterprise network unique format. Guidelines would include instructions on provisioning to avoid conflicts between short-dialing and number normalization. The NNT would perform all of the dial plan and feature capabilities traditionally handled by a legacy routing plan, and the FDT would convert any numbering format into an easily identifiable number for the telephone display. Additionally, the NNT and FDT strategy could be graphically depicted in a series of linked pages for ease of use and efficiency for administrators.

The phrases “dial plan” and “dial pattern” as used herein refer to a numbering scheme used to allocate telephone numbers to subscribers and route calls in a telephony or enterprise network.

The phrase “enterprise canonical” as used herein means unique across an enterprise network.

The phrase “number normalization” as used herein refers to the process of translating number strings presented in various formats into a single standard format for routing and display.

The phrase “short-dialing” as used herein means special telephone numbers, significantly shorter than full telephone numbers, which can be used within an enterprise network to call internal parties without dialing the full telephone number.

The phrase “uniform resource identifier” or URI as used herein refers to a string of characters used for resource naming and identification.

The phrase “visual depiction” or “graphic depiction” as used herein is a picture which allows the audience to form a clear mental image of an illustrated concept or provides a representation of an actual screen, product, or feature.

The term “computer-readable medium” as used herein refers to any tangible storage that participates in providing instructions to a processor for execution. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like. Accordingly, the disclosure is considered to include a tangible storage medium and prior art-recognized equivalents and successor media, in which the software implementations of the present disclosure are stored. When the computer-readable media is configured as a database, it is to be understood that the database may be any type of database, such as relational, hierarchical, object-oriented, and/or the like.

The term “module” as used herein refers to any known or later developed hardware, software, firmware, artificial intelligence, fuzzy logic, or combination of hardware and software that is capable of performing the functionality associated with that element. Also, while the disclosure is described in terms of exemplary embodiments, it should be appreciated that individual aspects of the disclosure can be separately claimed.

DETAILED DESCRIPTION

The ensuing description provides embodiments only, and is not intended to limit the scope, applicability, or configuration of the disclosure. Rather, the ensuing description will provide those skilled in the art with an enabling description for implementing the embodiments. Various changes may be made in the function and arrangement of elements without departing from the spirit and scope of the disclosure as set forth in the appended claims.

FIG. 1shows an illustrative embodiment of a communication system100in accordance with at least some embodiments of the present disclosure. The communication system100may be a distributed system and, in some embodiments, comprise one or more communication networks116that facilitate communications between an enterprise network communication server108and one or more employees' user devices120a-nand local area networks or distributed locations104,124a-b. The communication system100may include a greater or lesser number of distributed sites, secondary locations, or connections to other companies than shown, as illustrated by the ellipses.

The communication network116may be packet-switched and/or circuit-switched. An illustrative communication network116includes, without limitation, a Wide Area Network (WAN), such as the Internet, a Local Area Network (LAN), a Personal Area Network (PAN), a Public Switched Telephone Network (PSTN), a Plain Old Telephone Service (POTS) network, a cellular communications network, an IP Multimedia Subsystem (IMS) network, a SIP network, a Voice over IP (VoIP) network, or combinations thereof. In one configuration, the communication network116is a public network supporting the TCP/IP suite of protocols. Communications supported by the communication network116include real-time, near-real-time, and non-real-time communications. For instance, the communication network116may support voice, video, text, web conferencing, or any combination of media. Moreover, the communication network116may comprise a number of different communication media such as coaxial cable, copper cable/wire, fiber-optic cable, antennas for transmitting/receiving wireless messages, and combinations thereof. In addition, it can be appreciated that the communication network116need not be limited to any one network type, and instead may be comprised of a number of different networks and/or network types.

An enterprise network104may provide a location where employees' user devices120a-ncan access and use enterprise network services. Examples of services that may be offered by the enterprise network104include communication services, media services, data storage services, processing services, application services, combinations thereof, and any other automated or computer-implemented services, applications, or telephony features. In some embodiments, the enterprise network104may provide access to its services via one or more web pages served by a web server or group of web servers and may be administered or controlled by an administrator. The enterprise network104may provide employees120a-nwith a dial plan that offers specific rules and parameters for routing calls within and outside of the enterprise network104.

As will be discussed in further detail herein, the enterprise network104may comprise the functionality to provide any number of telephony services and applications for employees' user devices120a-n, and store parameters including user preferences in an enterprise network database112. This provides a specific set of information to effectively deliver telephony and data services from the enterprise network104to the employees' user devices120a-n.

It should be appreciated that the enterprise network104may be distributed. Although embodiments of the present disclosure will refer to a single enterprise network104with multiple locations and employees, it should be appreciated that the embodiments claimed herein are not so limited. For instance, multiple enterprise networks104may be connected by multiple different servers and networks. Employees may be associated with one or more instances of the enterprise network104, and may be connected through the communication network116to other communication networks, enterprise networks, and companies.

The communication system100may be a distributed system and, in some embodiments, comprises a communication network116connecting one or more locations124to an enterprise network104having access to an enterprise network database112. In some embodiments, the enterprise network104may administer a communication server108in which a dial plan is created and distributed to handle call flow and application delivery to and from employees' user devices120a-n.

The employees' user devices120a-nmay correspond to employee, customer, or other communication devices. In accordance with at least some embodiments of the present disclosure, an employee may utilize his or her communication device120to initiate a call, which may be initiated inside or outside the enterprise network104. Exemplary options include, but are not limited to, a call directed from one employee outside of the United States calling into a location within the United States, an employee calling another employee in the same geographic location, a customer calling into a specific geographic location from outside of the enterprise network, and the like. The call may utilize one of a number of protocols, transmitted over the communication network116. For example, the call may be transmitted as a telephone call over VoIP, a telephone call over SIP, or analog or digital calls over wired systems, and hybrid combinations thereof.

In accordance with at least some embodiments of the present disclosure, the communication devices120may comprise any type of known communication equipment or collection of communication equipment. Examples of a suitable communication device120include, but are not limited to, a personal computer, laptop, Personal Digital Assistant (PDA), cellular phone, smart phone, telephone, or combinations thereof. In general each communication device120may be adapted to support video, audio, text, and/or data communications with other communication devices120as well as the processing resources of the communication server108. The type of medium used by the communication device120to communicate with other communication devices120or processing resources of the communication server108may depend upon the communication applications and features available on the communication device120and on the communication server108. More specifically, the communication server108may comprise one or more dial plans, managed by one or more administrators.

FIG. 2depicts an illustrative embodiment of an enterprise network communication server108in accordance with at least some embodiments of the present disclosure. In some embodiments, the communication server108can include a processor208capable of executing program instructions. The processor208can include any general purpose programmable processor or controller for executing application programming. Alternatively, the processor208may comprise an application specific integrated circuit (ASIC). The processor208generally functions to run programming code implementing various functions performed by the associated server or device. For example, the processor208of the communication server108can implement enterprise network routing for employee communication devices120through execution of a dial plan through the communication server's modules.

The communication server108additionally includes memory204. The memory204can be used in connection with the execution of programming by the processor208, and for the temporary or long term storage of data and/or program instructions. For example, the communication server108memory204can include software implementing the dial plan manager module220, a browser application module224, a communications application sequencer module228, and a user preferences module232that can operate together to present a dial plan strategy for communication devices120participating in communications inside and outside of the enterprise network104. The memory204of a communication server108or communication device120can include solid state memory that is resident, removable and/or remote in nature, such as DRAM and SDRAM. Moreover, the memory204can include a plurality of discrete components of different types and/or a plurality of logical partitions. In accordance with still other embodiments, the memory204comprises a non-transitory computer readable storage medium. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, NVRAM, or magnetic or optical disks. Volatile media includes dynamic memory, such as main memory. Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, magneto-optical medium, a CD-ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, a solid state medium like a memory card, any other memory chip or cartridge, or any other medium from which a computer can read.

The communication server108can also include or be connectable to user input devices212and user output devices216. Such devices212,216can be used in connection with the provisioning and operation of the communication server108, and/or to allow users to access and control features or applications resident on the communication server108. Examples of user input devices212include a keyboard, a numeric keypad, a touch screen, a microphone, scanner, and pointing device combined with a screen or other position encoder. Examples of user output devices216include a display, a touch screen display, a speaker, and a printer. The communication server108also generally includes a communication interface236to interconnect the associated server108to a communication network116.

The communication server108, in some embodiments, contains modules within the memory204for dial plan administration and execution for one or more enterprise network locations104,124for incoming and outgoing telephone calls. The modules may run in concert or the modules may execute functions as discrete modules. The communication server108may include one or more of, but is not limited to, a dial plan manager module220, a browser application module224, a communications application sequencer module228, and a user preferences module232.

The dial plan manager module220may be configured to receive input from a human administrator. The dial plan manager module220can allow the administrator to create and store all aspects of the dial plan. The administrator may create one or more number normalization and friendly display tables using the dial plan manager module220which could be associated with functional or divisional groups, locations, or other related sets of employees based on input from the administrator. The dial plan manager module220would be operable to create number normalization rule attributes which could include matching criteria, matching pattern, minimum length, and maximum length. Actions could include digit conversion, deletion of digits, insertion of digits (“+” or a number), invocation of next table in the hierarchy, accessing table links with or without a prefix match, providing secondary dial tone, and no-match pass-through.

The dial plan manager module220may be configured to receive dial plan instructions from the administrator via the browser application module224which would be operable to create and display a user interface (UI) through which an administrator could create and manage a dial plan strategy. The browser application module224would be operable to manage input by an administrator to the dial plan manager module220. The browser application module224would also display output from the dial planning and information from the communication server108, which could include, but is not limited to any type of graphic depictions of locations or groups, user information and provisioning, authorization, number normalization tables, friendly display tables, number normalization rule attributes for specific types of telephone calls, enterprise canonical parameters, location information, trunking information, adjunct server information, error logs, alarm handling, ability to upgrade, testing, and licensing in addition to any other standard or unique enterprise network requirements.

The communications application sequencer module228may be configured to receive information via the browser application module224UI. One function of the communications application sequencer module228might be to run applications in a certain order. The administrator may access the browser application module224UI to set parameters for logic needed to sequence applications that might be important for a user or a group of users. When the user makes an outbound call from the enterprise network, the communications application sequencer module228may call a set of predetermined rules to sequence applications for the user. Any applications that have been configured by the administrator may be invoked or engaged in a specific order. The application sequencing may continue until all required applications in the sequence have been applied to the call. For example, the administrator may have set parameters for the user to engage call recording, a database lookup, and a plug-in for all of the user's outbound calls. The applications run in that order, so that when the call connects, the user has access to the functionality necessary for that call.

The predetermined rules can be entered by the administrator via the browser application module224UI and stored in the user preferences module232. User preferences are the settings that may control a user's account, control the direction of calls made by the user, and signal which applications might be needed by the user. User preferences might include data such as language preference, short dialing options, message delivery, call display, etc.

The combination of the dial plan manager module220and the browser application module224allow the administrator to create and manage the dial plan for the enterprise network104for users and groups of users. The communications application sequencer module228and the user preferences module232allow calls to be customized for users and groups of users. In addition to creating number normalization tables, the administrator may be able to manage the dial plan using graphic depictions which will be discussed in detail inFIGS. 3a-c.

FIG. 3aillustrates a graphic depiction of a dial plan300awhich may be generated by the communication server108within the enterprise network104and displayed by the browser application module224. The graphic depiction of a dial plan300aincludes a high level representation of tables in a tree model with leaf nodes that can be associated with groups of users in particular locations. Generally, the graphic depiction includes three tiers of locations304,308,312that represent users or groups of users in locations that have been matched to dial plan parameters set by the administrator in the dial plan manager module220.

A tree is a widely-used data structure that simulates a hierarchical tree structure with a set of linked nodes. A node is a structure which may contain a value, a condition, or represent a separate data structure. Each node in a tree has zero or more child nodes, which are below it in the tree. A node that has a child is called the child's parent node, and a node may have one or more parents. The topmost node in a tree is called the root node. Being the highest node, the root node has no parent. All other nodes can be reached from the root node. Nodes at the bottom-most level of the tree are called leaf nodes. Since they are at the bottom-most level, they do not have any children.

Groups may be location-based or grouped in another way (e.g., organization, business function), and groups may be assigned to any node in the hierarchy (e.g. could assign North America table to group). Each node can reference1to N more general tables (with optional prefix match). Number normalization analysis would begin with an assigned node and would then proceed up the tree. If an exact match is found, the first match found would be executed. If no exact match is found, the longest match is selected. For example, a user in Frankfurt is represented by the node312b1. If the user in Frankfurt makes an outbound call to a colleague in the London node312c1, the call proceeds through the tree structure and underlying number normalization tables from Frankfurt node312b1to the Germany node308bto the United Kingdom node308cto the London node312c1. The telephone number for the Frankfurt node312b1user is in enterprise canonical format and is unique across all enterprise network locations104,124. The telephone number for the London node312c1user is also in enterprise canonical format and is unique across all enterprise network locations104,124. Additionally, each site may have different private numbering prefixes. For example, Denver user Alice has private number 333-1234 and direct inward dialing number (DID)+1-303-280-1234. LA user Bob has private number 444-5678 and DID number +1-310-698-5678. With a quick look at this graphical depiction of locations and tables, the administrator is immediately able to see the intended normalization of the call regardless of rules, parameters, or number format.

FIG. 3billustrates a graphic depiction of a dial plan300bwhich may be generated by the communication server108within the enterprise network104and displayed by the browser application module224. The graphic depiction of a dial plan300bincludes number normalization tables (NNT)308,312,316a. Some applications require request uniform resource identifiers (URIs) to be in enterprise canonical (EC) format. EC numbers are core-routable and uniquely represent a single user in any location or site throughout the enterprise network. Number normalization tables308,312,316aset the rules for each user based on a set of predefined pattern matching and actions, include matching criteria, matching pattern, minimum length, and maximum length. Actions could include digit conversion, deletion of digits, insertion of digits (“+” or a number), invocation of next table in the hierarchy, accessing table links with or without a prefix match, providing secondary dial tone, and no-match pass-through as previously mentioned. Each level of normalization table308,312,316awill contain a link to the parent node above it. For example, the Westminster Number Normalization Table316has a link to the parent node, Denver Metro NNT. The Denver Metro Number Normalization Table312has a link to the parent node, North America NNT. The North America Number Normalization has a link to the parent node, Global NNT.

A pattern matching example might be where Denver user Sally dials Denver user Mike at51402. The digit string51402is run through the number normalization table at the Westminster level316. The 5 digit number is converted from 81402 to 538-1402, where the 7-digit number 538-1402 is EC. If Mike made a telephone call to Tim who works down the street, the dialed number would be 93037642203, and the number normalization table at the Denver Metro level312would convert the number to +13037642203 and instruct the endpoint to insert secondary dial tone. Each of the number normalization tables would have a similar structure. An administrator might need to see tables at different levels, see an overall pictorial view, and be able to copy and create tables as needed.

In an additional embodiment, the administrator might define a battery of dial strings and the desired results for a given leaf node. A text box would allow entry of a dialed string and give a (normalized) result. This could allow the administrator to run tests using the number normalization tables either manually or with the push of a single button (an automated test).

In an additional embodiment, alpha-numeric dialing could be supported. For example, “acrazyguy@company.com” would be recognized and able to pass through NNTs.

Digit manipulation would be similar to what exists today, but the existing use of legacy routing tables and strategies would be replaced with enterprise canonical format, number normalization, the graphic depiction of the tree nodes and leaves, and the reversal of the digits with friendly display tables.

FIG. 3cillustrates a graphic depiction of a dial plan300cwhich may be generated by the communication server108within the enterprise network104and displayed by the browser application module224. The graphic depiction of a dial plan300cincludes a number normalization table316aand a friendly display table316b. A friendly display table316bmay essentially be a reversal of the number normalization done in table316a. For example, in the number normalization table for Westminster316a, if a user Jen dials 83802, the NNT316amay insert53, changing the string to 538-3802. In the friendly display table for Westminster316b, if a user Sarah dials 538-0244, the FDT316bmay delete two digits, changing the string to 80244. The FDT316bis designed to change the digit string to display the calling party's telephone number in short form as well as the called party's number in short form. This form, once run through the NNT316aor the FDT316bmay be presented in the same format to the calling and called parties for all calls. As described above, in a manner similar to the NNT316a, the FDT316bmay contain patterns, actions, and a link to the parent node.

A method400of number normalization in a call sequence is shown inFIG. 4. The method depicted and described herein will refer to steps taken by a communication server108to route telephone calls and administer features based on a normalization model. Generally, the method400begins with a start operation and ends with an end operation. While a general order for the steps of the method400are shown inFIG. 4, the method400can include more or fewer steps or the order of the steps can be arranged differently than those shown inFIG. 4. The method400can be executed as a set of computer-executable instructions executed by a computer system and encoded or stored on a non-transitory computer readable medium. Hereinafter, the method400shall be explained with reference to the systems, components, modules, software, data structures, etc. described in conjunction withFIGS. 1-3c.

In typical circumstances, a user in an enterprise network104will come into an office and may log into a telephone, in step404. The user may enter credentials which generally include user identification and a password which have previously been set up by an administrator through the browser application module224. The user credentials can be validated in step408. In step412, the user may pick up the telephone to make a call. The communications application sequencer module228in the communication server108will execute any existing logic, sequencing any applications requested for the user for that user's calls. Based on the dialed string, the telephone number may be run through the number normalization tables304,308,312,316, in step416. Digits may be inserted or deleted, actions may be taken like inserting secondary dial tone, or if there are no matches, the number may be passed through. If the number is a known match within the enterprise network104, the telephone number may also be run through the friendly display tables316b, where the telephone number may have digits inserted or deleted, and actions may be taken like inserting secondary dial tone so that the calling party number may be displayed in a “friendly” format. If the number is not a match in any of the tables, the number may have no conversion.

Once the user is logged on and validated, a call has been initiated, and numbers have been normalized, applications may be sequenced, in step420. Logic can be invoked which adds applications into a media session prior to establishing the media session. In step424, the media session may be established where media may be transmitted between the user and a called party. For example, for a SIP call, an INVITE is sent with media capabilities, and can be answered with a 200 OK with media capabilities. A call takes place as the calling and called party are connected by means of, for example, an RTP two-way audio stream. When the user is done, he or she may terminate the call, in step428. For example, for a SIP call, when there is a disconnect, a BYE is sent and each party is released. The process can end.

A number normalization paradigm that simultaneously simplifies dial planning and provides a graphic display for administrators is possible. The number normalization paradigm as disclosed herein can be applied to any enterprise network, from a small, single location to a global enterprise network. It should be appreciated that while embodiments of the present disclosure have been described in connection with enterprise network architecture, embodiments of the present disclosure are not so limited. In particular, those skilled in the enterprise network arts will appreciate that some or all of the concepts described herein may be utilized in a contact center, traditional telephony, mixed technology architecture, or multi-company model.

The foregoing discussion of the disclosure has been presented for purposes of illustration and description. Further, the description is not intended to limit the disclosure to the form disclosed herein. Consequently, variations and modifications commensurate with the above teachings, within the skill or knowledge of the relevant art, are within the scope of the present disclosure. The embodiments described hereinabove are further intended to explain the best mode presently known of practicing the disclosure and to enable others skilled in the art to utilize the disclosure in such or in other embodiments and with various modifications required by the particular application or use of the disclosure. It is intended that the appended claims be construed to include alternative embodiments to the extent permitted by the prior art.