Call routing between enhanced and legacy systems

Components of a telephone system often do not evolve in lock-step with other system improvements. For a variety of reasons, a component in a system may be operational to enable telephone calls utilizing a particular dialing format but be inoperable for calls utilizing a different format. Telephone number formats were initially numeric. The number of digits and format of the digits was often determined based on a country-specific dialing plan. Many countries have moved to more digits or alphanumeric formats (e.g., URIs). By capturing these enhanced addresses and generating an associated unique identifier, internal networks may utilize legacy numbering systems internally and, once the call reaches an edge device, route them based upon the enhanced address.

FIELD OF THE DISCLOSURE

The present disclosure is generally directed toward telephone call processing.

BACKGROUND

Legacy systems exist in various forms. Legacy telephony systems may be limited to only numeric characters and typically only a certain number of digits. In the United States, legacy telephone numbers are ten digits; in Germany, seven; and, in India, thirteen. In contrast, enhanced systems may utilize more digits (e.g., Germany's fifteen digits and India's eight digits). Enhanced systems may also utilize alphanumeric and special characters, such as addresses utilizing a Uniform Resource Locator (URL), Uniform Resource Name (URN), or Uniform Resource Identifier (URI). Compatibility issues between the legacy and enhanced system are commonplace.

Legacy systems are improved to become enhanced systems, such as when countries expand numbering digits (e.g., when India transitioned from a seven-digit public switched telephone network (PSTN) local number to an eight-digit number or Germany's move from the E.164 thirteen digits format to the E.164 fifteen digit format). Often upgraded switches are required to enable parsing of more digits. The switches in a PSTN are commonly upgraded to switches that support the legacy format and, upon an event such as completion of upgrades to a central exchange, the enhanced functionally is then activated.

In the case of enterprise systems, leading digits are dropped from the longer number and are then converted to a shorter number for routing inside the enterprise. While this may allow a call to be presented to an internal component, it does not allow for the longer number to be dialed.

For alphanumeric numbers, systems utilize a mapping table. As a result, an incoming call may be routed internally, but it cannot be dialed out without knowing a corresponding destination number (e.g., an E.164 number).

SUMMARY

It is with respect to the above issues and other problems that the embodiments presented herein were contemplated. Advantages may be realized by putting the dialing intelligence, at least in part, in an edge device in accordance with embodiments described herein

In one embodiment, incoming calls are received. The edge device stores the incoming enhanced address (e.g., additional digits, URI, etc.) in a contact store accessible on a network and maps a unique short number to the address (unique ID). The edge device may then send the unique ID to components within its own network (e.g., an enterprise network). To other devices within the network, a display showing the calling party will show the original calling party's name and number, due to the signaling in the Session Initiation Protocol (SIP) Contact header. However, internally, it is the unique ID that is stored as the calling party number. The call then traverses the network and to the endpoints utilizing the unique ID as the call's “to” address. In order to place a call back to the calling number, the unique ID is also used as the “to” the address. The edge device looks up the stored URI using the unique ID and then the edge device may then use the URI to place the call.

In another embodiment, outgoing calls are placed to the URI of a SIP message. In one embodiment, an endpoint that received a call from the external party calls back. The contact log of the endpoint device itself may have the unique ID mapped to the external entity. Calling the unique ID of the external device will ensure that the call gets routed across the network and reaches the edge device. The edge device then replaces this unique ID with the real external number/alphanumeric URI and routes the call thereto.

In another embodiment, an endpoint that has not received a call from a particular external party, places a call thereto. However, the contact store has a record for the external party. The endpoint performs a lookup and the contact store returns the unique ID mapped to the external party, as the contact store has a record of the external party based upon a prior call. This unique ID is then used for routing across the enterprise in a similar manner as outlined in the above embodiments.

In another embodiment, an extension calls a number or an alphanumeric URI that has not been called before or otherwise has no record thereof. The endpoint performs a lookup on the unique ID and the contact store fails to find a matching enhanced address. The contact store creates an entry and returns the unique ID. The endpoint places a call destined to this newly created unique ID. The unique ID gets routed across the network and reaches the edge device. The edge device accesses the contact store based upon the unique ID entry, which causes the contact store to return the enhanced number to dial out.

The contact store may solely contain records mapping the unique ID to the enhanced address, such as in a simple database or flat file, or be combined with other data repositories, such as an LDAP or other directory repository. The contact store may be utilized by other services, such as call logs, recordings, report generators, etc. to access the unique ID and/or the enhanced address. Other services may also use the enhanced address and/or the unique ID in the contact store, such as to provide call blocking, routing, and other services.

In one embodiment, a system is disclosed comprising: an edge device logically connecting an external network to an internal network and facilitating calls therebetween; an internal endpoint logically connected to the internal network; a contact store, logically attached to the internal network, configured to maintain a translation record associating an external address of an external endpoint logically attached to the external network to a unique identifier; and wherein the internal endpoint places an outbound call to the unique identifier and the edge device routes the call to the external network utilizing the external address.

In another embodiment, a method is disclosed, comprising: receiving at an internal endpoint on an internal network, an outbound call comprising an enhanced address to an external endpoint on an external network; creating an unique identifier associated with the enhanced address, wherein the at least one component required to route the outbound call to the edge of the internal network is operable to route the outbound call to the edge of the internal network utilizing the unique identifier; storing a record comprising the unique identifier and the associated enhanced address in an accessible contact store.

In another embodiment, another method is disclosed, comprising: receiving an inbound call from an external network at an edge device configured to logically connect the external network to an internal network and facilitate calls therebetween; routing the inbound call to an internal endpoint, of a number of internal endpoints, identified by an address of the inbound call; accessing an enhanced address associated with the originator of the inbound call; creating a unique identifier; storing, in a contact store accessible upon the internal network, a translation record associating the external address with the unique identifier; and routing the inbound call to an internal endpoint identified as the destination for the inbound call.

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.

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 other aspects of the disclosure can be separately claimed.

DETAILED DESCRIPTION

Any reference in the description comprising an element number, without a subelement identifier when a subelement identifier exists in the figures, when used in the plural, is intended to reference any two or more elements with a like element number. When such a reference is made in the singular form, it is intended to reference one of the elements with the like element number without limitation to a specific one of the elements. Any explicit usage herein to the contrary or providing further qualification or identification shall take precedence.

The exemplary systems and methods of this disclosure will also be described in relation to analysis software, modules, and associated analysis hardware. However, to avoid unnecessarily obscuring the present disclosure, the following description omits well-known structures, components, and devices that may be shown in block diagram form, and are well known, or are otherwise summarized.

For purposes of explanation, numerous details are set forth in order to provide a thorough understanding of the present disclosure. It should be appreciated, however, that the present disclosure may be practiced in a variety of ways beyond the specific details set forth herein.

FIG. 1depicts first communications system100in accordance with embodiments of the present disclosure. In one embodiment, the first communications system100comprises a first network, internal network108and second network, external network104and endpoints attached thereto. In another embodiment, the first communications system100comprises a first network, external network104and second network, internal network108and endpoints attached thereto. Network boundary106delineates the internal and external networks.

The points attached to external network104may comprise one or more types of endpoint identities and/or devices compatible with various technological advances. For example, endpoints102may include one or more legacy endpoints implementing technology that may have become obsolete recently or many years ago. External endpoints102may be designed for a specific network, such as network associated with a particular country, enterprise, and/or other target network.

In one embodiment, external endpoint102comprises an enhanced address that comprises additional digits compared to the digits utilized by at least one component of internal network108. External endpoint102may also comprise a different dialing format instead of or in addition to a difference in the number of digits utilized. For example, certain numbers (e.g., zero, nine, one) cannot be used in certain dialing formats as a first digit, however different dialing formats do allow for all or different digits to be utilized as a first digit.

In another embodiment, external endpoint102B is embodied as a computer terminal utilizing an address comprising alphanumeric characters, such as an email address, URI, telnet, and/or other format comprising characters beyond numbers alone. External endpoints102logically attached to external network104. External network104may comprise private networks and/or public networks. External network104may include PSTN, Internet, cellular network, Wi-Fi, Bluetooth, and/or other device networks.

Internal network108comprises systems and devices executing programs and/or other instructions to handle telephone calls, and optionally other communications (e.g., video, text, data, combinations thereof, etc.). Internal network108may comprise devices, such as private branch exchange (PBX), switches, routers, and/or other devices. Internal network108may utilize an edge device as a first point of contact to external network108. The edge device, described more fully with respect toFIG. 2, may comprise a session manager a session border controller and/or other edge device. Internal network108has attached thereto one or more internal endpoints, such as internal endpoint110. Internal network108and/or internal endpoint110may operate with certain limitations, such as a dialing format incompatible with the enhanced addresses associated with external endpoints102. For example, internal endpoint110may comprise a telephone that is only capable of natively dialing numbers, even though letters may be associated with dialed numbers. In another example, internal network108comprises equipment configured and/or limited to a dialing format incompatible with the dialing format of external endpoints102, such as the assumption that after external endpoint102A has dialed thirteen digits, the dialing is complete. However, the intended destination of such an outbound call (e.g., external endpoint102) utilizes a sixteen-digit address and, after dialing only thirteen digits, the call fails.

In another embodiment, internal network108incorporates systems and methods to allow enhanced address dialing and routing and the placing of calls to enhanced addresses. Internal network108utilizes a unique address as a substitute for the enhanced address. The unique address is at least system-unique and optionally globally unique, such as may be implemented by enterprises utilizing a number of unique identifier generation components. The unique ID may be a serial number, truncated version of an enhanced number, or implement any other means of generating a unique identifier based on or not based on the enhanced address. For example, a telephone number may comprise certain digits that are less meaningful to the user, such as a country code or city code. In another implementation, a city code or country code may be the most meaningful and other digits truncated. However, it should be appreciated by those of ordinary skill in the art that other means of generating the unique identifier, including random number generation, may be implemented as a matter of design choice to provide internal network108with a unique identifier for each inbound and outbound call. In another embodiment, the unique ID may comprise a static portion, such as enhanced addresses with @abcCompany.com start with 1, +993 start with 2, etc.

FIG. 2depicts second communications system200in accordance with embodiments of the present disclosure. In one embodiment, second communications systems200processes an inbound call received from external network104, more specifically interface portion202to a PSTN and/or other network. Calls, as used herein, include but are not limited to switch-based telephone calls, generally associated with PSTN calls, and packet-based calls, generally associated with Internet-based calls or voice over Internet protocol (VoIP). Calls may include acoustic-based data (e.g., facsimile transmissions). In other embodiments, calls comprise data-based communications, such as text, files, video, and/or other signals. Calls utilizing packets IP may contain header information comprising “to” information to identify the destination of the call. Calls utilizing switching may comprise “to” information in a portion of a signal. Calls generally comprise “from” information identifying the origination of the call. An incoming call comprising a “from” address utilizing an enhanced format, such as sixteen digits compared to a legacy system utilizing thirteen digits or an alphanumeric system (e.g., email, URI, etc.).

The inbound call crosses network boundary106and initially reaches edge device204. Edge device204may additionally or alternatively comprise one or more of a session manager, session boarder controller, security controller, firewall, gateway, and/or other edge devices. Edge device204creates, or causes the creation of, a unique identifier for the calling party. The unique identifier is created to be compatible with other systems within internal network108and/or endpoints attached thereto. In one embodiment, PBX206is one internal component presently inoperable to accommodate the enhanced address.

Edge device204logically connects to one or more internal components, such as PBX206, which then continues to route the call to the endpoint address thereto, such as endpoint208. The unique ID is utilized as the calling party. As will be described more completely with respect to the remaining figures, the unique ID may then be utilized for local address books or other directory usage in order to identify the source of the inbound call, such as to facilitate initiation of a return outbound call.

In order to maintain the association between the unique ID and the enhanced address, a record is created and stored in contact store210. The record is created to utilize the unique ID as the key to access the record comprising the enhanced address, and optionally other information associated with the calling party (e.g., user name, company name, etc.). Endpoint208may then wish to retrieve the enhanced address and access contact store210to access the translation record and the enhanced address associated with the unique ID.

As a benefit of second communications system200, calling systems may present caller identification (caller ID) utilizing the unique ID for the inbound call. In other embodiments, internal network108may comprise the ability to present the enhanced address as the caller identification but not process the caller identification as a “to” address for an associated outbound call. In such embodiments, second communications system200may utilize the enhanced address as the caller identifier was still utilizing the unique ID as the “from” address. As can be appreciated, endpoint208initiating a call back then causes the unique ID to be associated with the outbound call and then translated to the enhanced address by its device204.

FIG. 3depicts third communications system300in accordance with embodiments of the present disclosure. In one embodiment, the communications system300comprises components for inbound and outbound call processing. In one embodiment, external network104originates an inbound call. In one embodiment, internal network108comprises components302,304,210,308,310for the routing and management of calls. Internal endpoint306and internal endpoint312provide terminal points for the destination and origination of calls, respectively.

In one embodiment, external network104provides an incoming call utilizing an enhanced address. Edge device302initially receives the incoming call. Edge device302determines and/or has knowledge that the incoming call comprises a “from” address in an enhanced format incompatible with components of system300, such as PBX304and or other internal components. Edge device302then causes the generation of the unique ID and the creation of the transaction record in contact store210to associate the enhanced address with the unique ID. Device302then routes the call to systems such as PBX304. Internal endpoint306then receives the call for answering, answering by an answering device, or other operations as may be determined by a user operating internal endpoint306and/or the system configurations available thereto.

Internal endpoint306may then access contact store210to retrieve the enhanced address from an associated transaction record indexed by the unique ID for the incoming call. In another embodiment, innternal endpoint306may access the contact store210to retrieve the enhanced address at other times, such as before or after receiving the call. Internal endpoint306, if compatible to display the enhanced address, may then present to the user the caller identification utilizing the enhanced address as the “from” address of the inbound call.

In another embodiment internal endpoint312wishes to place a call to the enhanced address received in the inbound call and answered by internal endpoint306. Internal endpoint312receives user input indicating the unique ID for the outbound call. In one embodiment internal endpoint312looks up the enhanced address utilizing the unique ID to index a transaction record stored in contact store210. Endpoint312then places the call, utilizing the unique ID, to conventional components, such as PBX310. The conventional components, such as PBX310, route the call to edge device308still utilizing the unique ID as the “to” for the outbound call. Edge device308then accesses a transaction record within contact store210to retrieve the enhanced address utilizing the unique ID as an index. Edge device308then routes the call to the external network104utilizing the enhanced address in the “to” address field for the outbound call.

In another embodiment, components of third communications system300may be the same components utilized for both inbound and outbound call processing. For example, edge device302and edge device308may comprise the same device, similarly PBX304and PBX310and/or internal endpoint306and internal endpoint312may comprise a single PBX and/or endpoint, respectively.

FIG. 4depicts fourth communications system400in accordance with embodiments of the present disclosure. In one embodiment, communications system400illustrates a system deploying an application to provide lookup features and/or other functionality for internal endpoint306and the reception and processing for an inbound call. Endpoint306may comprise a telephone, preferably a digital telephone, configured to launch applications, such as an endpoint application and/or sequenced application402. In another embodiment, endpoint306comprises a computational device configured to execute endpoint application and/or sequenced application402.

In one embodiment, external network104originates an inbound call. Edge device302receives the inbound call and determines, or has knowledge that, components within fourth communications systems400are incompatible with the enhanced address of the received call. Edge device302generates or causes the generation of the unique ID and further causes the storage of a transaction record in contact store210. The transaction record associating the unique ID with the enhanced address received from the inbound call. Edge device302then routes the inbound call utilizing the unique ID as the “to” address field. Endpoint application and/or sequenced application402may then access contact store210to retrieve the enhanced address from the transaction record utilizing the unique ID as an index. With the enhanced address, endpoint306directly or with benefit of endpoint application and/or sequenced application402may then present the enhanced address as the “from” address associated with the inbound call.

As a benefit, components that are operable to process the inbound call with the enhanced address are avoided but substantially concurrent with delivery of the call to endpoint306. Endpoint306is enabled to present the enhanced address as the “from” caller identification. Optionally, endpoint application and/or sequenced application402may also present or cause the presentation of the unique ID on endpoint306.

FIG. 5depicts fifth communications system500in accordance with embodiments of the present disclosure. In one embodiment, communications system500illustrates a system deploying an application to provide lookup features and/or other functionality for internal endpoint306and the reception and processing for an outbound call. In one embodiment, endpoint306is operable to receive the unique ID and not operable to receive the enhanced ID as an input associated with an outbound call. Endpoint application402and/or sequenced application402receives the input unique ID and accesses the enhanced address from a transaction record within contact store210.

In another embodiment, contact store210presently has no translation record associated with a particular outbound call. Endpoint306, alone or with benefit of endpoint application and/or sequenced application402, receives the enhanced address for an outbound call. Endpoint application and/or sequenced application402causes the generation of the unique ID and the storage of a transaction record having the unique ID and the associated enhanced address in contact store210.

Endpoint application and/or sequenced application402then routes the call to PBX304and/or other internal communications equipment. Upon reaching edge device302, edge device302accesses contact store210and retrieves the translation record utilizing the unique ID routed through PBX304. Edge device302then extracts the enhanced address from the translation record for utilization in the “from” field and routes the call on to external network104.

As can be appreciated by those of ordinary skill in the art, endpoint application and/or sequenced application402may generate the unique ID or cause the generation of the unique ID. For example, endpoint application and/or sequenced application402may execute a call to another application for the purpose of generating the unique ID. Endpoint applications and/or sequenced application402may be co-processed on the same device as endpoint306or distinct therefrom. For example, an agent terminal may be configured to execute endpoint application and/or sequenced application402as well as to provide dialing services and other connectivity services of endpoint306.

FIG. 6depicts table600of contact store210in accordance with embodiments of the present disclosure. In one embodiment, table600comprises at least a portion of data stored within contact store210. Table600comprises a number of records602for inbound and/or outbound calls to associate unique IDs604with their respective enhanced addresses606.

It should be appreciated that table600may comprise additional information, such as caller name, callee name, company name, and/or one or more additional fields determined as a matter of implementation (e.g., account number, matter number, time to call, position, role, etc.). The location of table600and contact store210is an accessible location to components of internal network108and may be specifically located as a matter of design choice. In one embodiment, one or more edge devices204,302,308hosts contact store210. In another embodiment, a dedicated data server, shared data server, accessible data storage (e.g., cloud, service provider, etc.) hosts contact store210.

FIG. 7depicts first process700in accordance with embodiments of the present disclosure. In one embodiment, process700begins at step702receiving an inbound call, such as device204receiving an inbound call from PSTN202. Next step704determines whether the “from” is compatible with the components of internal network108and/or internal endpoints, such as internal endpoint110. If step704is determined in the affirmative processing may continue normally, such as to step710. If step704is determined in the negative, processing continues at step706whereby the unique ID is created.

Next, step708stores a translation record whereby the unique ID is associated with the enhanced address of the inbound call received at step702. Next step710routes the call to the indicated “to” address identified by the inbound call. As a benefit, components of internal network108that are not operable to process the inbound call utilizing the enhanced address associated with the inbound call may be avoided and the call routed as if it were a legacy call.

After step710, the call is answerable by an endpoint, such as internal endpoint110, in the normal fashion including routing, forking, answering by an answering system, answering by an automated agent, answering by a human operator, and/or other telephony operation. Optionally, step712may be executed to provide color identification associated with the inbound call. If the enhanced address has been provided to the endpoint and is operable to be displayed by the endpoint, the endpoint may display the color identification as the enhanced address. In another embodiment, if the enhanced address has not been provided, the unique ID may be displayed as the color identification. In yet another embodiment, if the enhanced address has not been provided the endpoint may access the data store with the unique ID and retrieve the enhanced address for display. In still another embodiment, at least one of the enhanced address and the unique ID is utilized to access a translation record comprising a secondary identifier for presentation as a caller ID, such as the caller's name, company, etc.

FIG. 8depicts second process800in accordance with embodiments of the present disclosure. In one embodiment, process800is executed upon receiving the indication of the creation of an outbound call to an enhanced address. Process800begins with step802receiving an outbound unique ID. For example, an agent, user, or other human operator may input the unique ID onto a keypad of a telephone, select a name from a list on a computer terminal, input indicia of a unique ID (e.g., speed dial number), or otherwise indicate the recipient of a call and further associate it with a unique ID.

Next, step804routes the outbound call to an edge device. The routing of the call may pass various components, such as PBX206, before reaching edge device, such as edge device204. The routing of the call utilizes the unique ID as a format for a telephone number compatible with the internal components of internal network108. Step806looks up the enhanced address from a data store utilizing the unique ID as an index to retrieve the correct record having the targeted enhanced address. Step808then routes the call to the external network utilizing the enhanced address as the “to” address identifier. Step808may be executed by an edge device, such as edge device204, an endpoint, such as internal endpoint306,312,110, and/or other component operable to retrieve the enhanced address without causing any intermediate component, which is unable to process the enhanced address, to attempt to utilize the enhanced address.

FIG. 9depicts third process900in accordance with embodiments of the present disclosure. In one embodiment, process900begins at step902receiving an outbound call having an enhanced address. Step902may be performed by an operator inputting, selecting, or otherwise indicating a destination (“to”) utilizing an enhanced address. Next, step904creates a unique ID associated with the outbound call and more particularly the enhanced address thereof.

Step906stores the unique ID and the enhanced address in a translation record in an accessible data storage, such as contact store210. Step908routes the outbound call to an edge device through various internal components of internal network108and utilizing the unique ID as the “to” address. Internal components may include, for example PBX206, which is presently unable to process calls utilizing the enhanced address.

The outbound call proceeds through components of the internal network and is eventually routed to an edge device, such as edge device302,308. The edge device then accesses the data store and retrieves the enhanced address from a record indexed by the unique ID. The edge device then routes the call to the external network in step912. The routed call comprising the enhanced address in the “to” field of the outbound call.

In another embodiment, the record associated with a unique ID may be modified, such as by deleting and/or modifying the record. For example, an enhanced address associated with a unique ID may be altered to reflect a change in the enhanced address associated with the same party without requiring the creation of a new record. As a further embodiment, a record may be deleted, such as when an updated record is created with a new record and the old record is no longer used. Such modifications or deletions may be automated to purge records that have been unaccessed for a predetermined period of time or to merge a plurality of records having the same enhanced address. Manual modification and deletions may also be provided to correct errors or otherwise update records or removed unneeded records.