This generally relates to systems and methods for managing telephony in a unified messaging environment.
Certain dialing plans used in telephone systems are expensive to configure and maintain. They require each piece of equipment to be configured with knowledge of each other piece of equipment with which they need to communicate. This is significant for creating and maintaining information to simplify the formation of dialing numbers.
Adding a new system requires that each of existing systems be configured to handle the new phone numbers of added system. In other words, whenever a new system is added, existing systems require point-to-point re-configuration between every end-point.
Such configurations increase the complexity of adding a new location to an enterprise. Similarly requiring precise user phone number configuration for all users (e.g., E164 numbers) is costly to maintain.
An enterprise-wide directory (e.g. a distributed directory) publishes a set of globally available and globally meaningful dialing information according to preset rules. This reduces the complexity of adding a new location to an enterprise to simply defining these dialing codes in the directory where they can be read by all other cooperating systems in the enterprise.
An enterprise manager is able to define in a fully distributed directory using dialing number formatting rules which are preset and which allow systems in the enterprise to reach any other. A globally replicated directory is a repository for dialing information and for differentiating the dialing information for in-country and international calling.
Other features will be in part apparent and in part pointed out hereinafter.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Corresponding reference characters indicate corresponding parts throughout the drawings.
Referring to
As illustrated in
According to one embodiment, each location of each system in the enterprise may be able to dial users located anywhere (locally, in country and internationally) in the enterprise. Since the directory 116 with associated processing logic according to one embodiment of the invention may be employed to manufacture a phone number that can be dialed from any location, it does not require a static configuration at each location.
Thus,
Referring to
Each dial plan 202 for a particular location includes numbers or other information which indicates the dialing directions for the particular location. For example, dial plan 202A indicates the dialing directions to location A. DIGITS specifies the extension length of location A (e.g., the number of digits in an extension number). COUNTRY indicates the country code of the country in which location A is located. COUNTRY indicates the country code that a caller in a different country than location A would employ to call location A. IN-C PP indicates the in-country code phone prefix that a caller in the same country as location A would employ to call location A. INT'L PP indicates the international phone prefix that a caller in a different country than location A would employ to call location A. The configuration described above provides configuration information for people wanting to call into a location. The following configuration defines how a location may create dialable outbound numbers for dialing out. The dial plan defines how a location may create outbound dialable numbers (for dialing out) to the dial plan location. TAC is the trunk access code, IAC is the international access code and NNP is the national number prefix of location A.
In one embodiment, the dial plan 202 is a data structure comprising one or more of the following:
As illustrated, the issue is that the phone number information stored on behalf of each user cannot be relied on to be in any particular format nor completeness. A user A1 is identified by their extension only. A user A2 is identified by their in-country phone number. A user A3 is identified by their international phone number. A user A4 is identified by their international phone number and extension. A user A5 is identified by their toll-free national phone number and extension. According to one embodiment of the invention, information in the dial plan of the directory 116 would be configured according to the same format so that any calling system could determine how to contact the user by accessing the dial plan of the directory 116.
In one embodiment, each of the servers 102 and each of the private branch exchanges 106 includes a processor executing instructions accessing one of the dial plans 202 of a destination to be contacted. The processor executes instructions deducing a dial-able phone number for dialing from the accessed dial plan 202. As noted herein, the dial-able phone number is based on a location accessing the dial plan and the location of the destination. A call to the destination may then be initiated using the deduced dial-able phone number.
The following non-limiting examples are provided to further illustrate exemplary embodiments of the present invention.
The following are examples of format strings which would be available from the directory 116:
An In-Country-Format-String for a US Location:
If an administrator of a new site publishes to the directory 116 format strings such those above (e.g., an In-Country-String and an International-Format-String and a country code) then any other site in the enterprise will be able to manufacture dial-able numbers for people located at that site by accessing the directory 116. No remote-site administration will be required.
This can be elaborated further by returning to the previous example. Adding a new location means that this new location is configured once in the directory 116. No site-specific configuration is required at any other pre-existing locations. These locations will discover the new system by reference to a configuration container in the directory 116.
A number of application scenarios result in the need to launch an outbound call, including what number to dial and determining whether a user is authorized to launch a call to a number. These are separate but related issues.
Initially, the user selects the destination of a call by one or more of the following:
One problem of deducing the precise number-to-dial starts with an unpredictably formatted phone number property derived from an AD property. Some AD deployments have well formed phone numbers—particularly for domestic employees. However, this may not always be the case so that this cannot be relied upon, in general. Frequently, customers tend to populate the phone number field according to local (if any) administrative policies.
Consider the following Table 1 of entries one might find in a directory phone number property and the actual number a UM (unified messaging) server based in the 425 area code in North America might successfully dial.
The entries in bold (*) do not, in themselves, contain enough information to be successfully dialed by a device in the 425 area code. It is believed that with suitable, preset dialing rules all of the others (not in bold) could be transposed into dial-able numbers. Further, with suitable global configuration, e.g., not per-user configuration, policies may be specified to allow the bold numbers to be dial-able.
According to one embodiment of the invention, the following additional properties are added to the dial plan object 202 of a user. For example, consider the following additional dial plan properties used to analyze and create dial-able numbers from directory phone numbers:
These last two entries assume it is possible to create a valid dial-able number, for all subscribers of a dial plan, by taking a fixed digit string and appending a variable part from the user's phone number (e.g. an extension number).
Additional properties used by local UM servers (within the dial plan) to create dial-able numbers include the following:
In summary, according to one embodiment of the invention as described above, a method is provided for telephonically communicating between a plurality of locations of systems having different access codes. For example, one of the locations (e.g., a caller) of servers 102 may want to call one of the locations (e.g., a destination) of exchanges 106. In this example, the server 102 (an originating system) would access the directory 116 specifying the dial plan 202 for the destination of exchange 106. The caller would deduce a dial-able phone number, as noted above, for dialing the exchange 106. As noted above, the dial-able phone number is based on the location of the caller and the location of the destination (e.g., same or different country. The server 102 initiates a connection to the destination via the exchange 106 using the deduced dial-able phone number.
The following is one embodiment of a set of hard-coded or preset rules to use the configuration information above to deduce a dial-able phone number for all entries. For the AD entries, the order described is believed to be a failsafe approach with reduced ways of calling, although other approaches are contemplated.
Deducing the Number to Dial—for AD entries—with Prepend Strings
If the user directory entry located contains a UMDialPlanID and the dial plan contains either International or In-Country prepend strings, then these strings should be used to create dialable numbers.
If the dial plan to be called has the same country code as the calling dial plan of the AD user, then:
NumberToDial=TAC+InCPP+InCPP-digits-from-phone-number.
Otherwise, if the dial plan to be called does not have the same country code as the calling dial plan of the user, then:
NumberToDial=TAC+IAC+IntPP+IntPP-digits-from-phone-number.
Number Restrictions
In one embodiment, it may be required that an administrator can restrict for whom a UM server will incur telephone calling charges. Restrictions are applied to two object classes—authenticated subscribers and unauthenticated callers. It will be a requirement for customers to be able to classify numbers into classes or groups, presumably with common billing implications, to allow number restrictions to be applied meaningfully.
There are some fixed number classes as well as the flexibility for an administrator to create classes of numbers defined for the purposes of controlling out-calling in UM.
In one embodiment, there may be one fixed number class—Extensions. There are two categories of admin-defined number classes:
A number class is given a name and an example might be Low-Rate calls. The number class is configured to contain a three column table such as illustrated in Table 2.
Another example is Table 3 for an In-Country Number class for long distance calls frequently required by employees to perform their jobs.
Similarly, certain users could be permitted to have open access to in-country numbers. This would be configured as shown in Table 4.
Similarly, International numbers can be restricted through the creation and application of International Number Classes. Table 5 is an example.
These number classes are used to form an ‘allowed’ list of numbers. Numbers matching those in the first column may be dialed, and in order to do so, the dialing service software will use the number in the same row from the second column.
This last example shows a mapping between a public number and a private dial string. This allows administrators to configure out-dialing to use their leased line facilities.
Numbers will be matched within each table from top-to-bottom.
Application of Restrictions
Restrictions may be applied to UM subscriber policies as well as to unauthenticated callers. Dialing restrictions will be defined as a list of allowed number classes. Thus, the directory of a location includes number classes used to determine whether a caller is permitted to place calls to numbers derived from dial plan number format strings. This allows determining whether a caller is permitted to place calls to particular numbers as a function of the number classes. Thus, the data structure of the dial plan includes number classes which are applied to users and unauthenticated callers to control outbound calling. Consider the following examples:
A user policy called “Program Managers” could have a Dialing Restriction of: Extensions, Low-Rate and Business-Use. On the other hand, a user policy called “Managers” could have a Dialing Restriction of: Extensions, Low-Rate, Business-Use and Countries-we-do-business.
By contrast, an unauthenticated caller might only allow an Extension. Or, possibly, if customer connectivity is an important tool to the business, an Extension and Low-Rate.
Having described various embodiments of the invention in detail, it will be apparent that modifications and variations are possible without departing from the scope of the various embodiments of the invention as defined in the appended claims.
The order of execution or performance of the methods illustrated and described herein is not essential, unless otherwise specified. That is, it is contemplated by the inventors that elements of the methods may be performed in any order, unless otherwise specified, and that the methods may include more or less elements than those disclosed herein. For example, it is contemplated that executing or performing a particular element before, contemporaneously with, or after another element is within the scope of the various embodiments of the invention.
When introducing elements of the various embodiments of the present invention, the articles “a”, “an”, “the” and “said” are intended to mean that there are one or more of the elements. The terms “comprising”, “including” and “having” are intended to be inclusive and mean that there may be additional elements other than the listed elements.
In view of the above, it will be seen that the several advantageous results attained.
As various changes could be made in the above constructions, products, and methods without departing from the scope of the various embodiments of the invention, it is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense.