The present invention relates generally to the licensing of computational components and specifically to the licensing of computational components in telecommunication systems.
To protect software manufacturers' copyrights in software sold to the public, manufacturer's commonly license software to the purchaser. Additionally, in many applications the purchaser has elected to pay only for certain features of software which must be selectively enabled by the manufacturer. In particular, each release or version of a particular software package for a customer premise telecommunication switching system contains a large number of features, and most customers elect to pay for only a subset of the total number of features. Features in a telecommunications switching system refer to certain specialized operations such as call hold, call transfer, automatic route selection, etc. An ongoing problem in the art is to prevent newer versions of software from being pirated and used on unauthorized hardware and/or otherwise authorized customers from actuating features for which the customer has not paid.
A number of methods have been developed to protect against such unauthorized use of software.
In one method, passwords, that allow only authorized individuals to have access to the telecommunication switching system, are used to control enablement of features or new software versions. This method is inflexible and inconvenient for customers as an authorized technician must be scheduled to enable the features, can be circumvented by a person misappropriating or misusing the password, and does not provide for periodic license verification during system operation.
In another method, a key is required to enable the software program. This solution does not solve the copying problem because the key is normally printed on the packaging of the software, and anyone can install the software as many times as they wish, however illegal it may be.
In yet another method, a special piece of hardware or “dongle” is used. The dongle is a special piece of hardware that connects to the serial or parallel port of the computer. The software running on the computer sends a random number to the dongle. The dongle performs a secret computation and returns a result. The software makes a like computation; if the two computations match, the software continues to run. To work satisfactorily, the response must include feature and version information. The use of the dongle is cumbersome when it fails. In the event that the dongle fails, the system is down until a new dongle can be physically obtained on site. Also, once made the dongle is fixed. If it was used for feature activation, a new dongle is required for each additional feature that is purchased.
A further method is to freely distribute CD-ROM disks. When the CD-ROM is inserted into a computer, the computer automatically connects to a remote server via the Internet or a dial-up connection to receive a machine-specific key. The key unlocks the software so that it can be utilized on that computer. The remote server also obtains the necessary payment information from the computer user. This method does not function well for a telecommunication switching system since it does not provide for the authorization to use different features of the same software application nor is it dependent on the version of the software being requested. In addition, it does not provide the necessary authorization of personnel to make such a request.
Another method requires the software, upon installation or first execution, to record serial number information (e.g., medium access control or MAC address) regarding predetermined hardware components of the computer system. The software permits the user a specified number of hardware serial number changes before it disables itself. This method, though effective, is unfair to users who, over time, legitimately exceed the number of permitted serial number changes through reuse of the software on a number of different systems and/or periodic replacement of some of the predetermined hardware components in a given system to upgrade or maintain the system.
The drawbacks of the various licensing methods discussed above are addressed by the licensing method discussed in detail in copending U.S. patent application entitled “Securing Feature Activation in a Telecommunication System”, Ser. No. 09/357,679, filed Jul. 20, 1999, to Serkowski, which is incorporated herein by this reference. In this method, a valid license file is required to run a computational component. The license file contains a serial number that must be present on the hardware that is to execute the licensed software for the license to be valid and the software to be executable. In telecommunication applications, for example, the serial number of the control processor must be in the license file for the control processor to run the licensed software.
The license file also contains a name and/or version of the licensed telecommunication application and licensed features. The data structures corresponding to the features are of two types. In a type 1 feature, the data structures reflected enablement or disablement of the corresponding feature using a simple on/off state. Examples of features falling into this category include abbreviated dialing enhanced list, audible message waiting, vectoring, answer supervision by call classifier, ATM trunking, agent states, dial by name, DCS call coverage, echo cancellation, multifrequency signaling, and wideband switching. In a type 2 feature, the data structures include a single numeric value and/or a name kind of entry. Examples of features falling into this category include logged-in agents, offer category, maximum numbers of concurrently registered IP stations, administered IP trunks, ports, and concurrently administered remote office stations/trunks, and call center release.
A drawback of all of the above licensing methodologies is that the computational system is either completely enabled or completely disabled, depending upon whether or not a specified licensing protocol is satisfied. There are situations in which it is desirable for the system to be operational even if the licensing protocol is not satisfied. During system maintenance and/or hardware replacement the customer could potentially be out of service until a new license is generated and installed. Alternatively, the licensing algorithm and/or system configuration can malfunction causing system shutdown. In many applications such as telecommunication applications, such outages can not only place great demands on maintenance personnel but also create customer dissatisfaction and cause lost sales revenue. Moreover even when a customer fails to obtain a valid license for a telecommunication application or feature thereof, it is often desirable for the system to remain operational to permit customers to make emergency (e.g., 911) telephone calls and/or maintenance calls for licensing enablement.
These and other needs are addressed by the various embodiments and configurations of the present invention. To control unlicensed uses of the computational component, the present invention provides a method and system that uses a plurality of differing licensing modes and/or differing degrees of enablement of the computational component.
In one embodiment, a method for protecting actuation of a computational component is provided. The method comprises the steps of:
(a) providing a computational component operating in a first licensing mode;
(b) identifying the occurrence of a predetermined licensing event (e.g., a licensing error is discovered during a periodic licensing file check);
(c) in response to the identifying step, causing the computational component to operate in a second licensing mode, the second licensing mode being different from the first licensing mode, wherein in each of the first and second licensing modes a common set of features performed by the computational component are enabled.
The computational components can be any entity capable of performing a task or executing instructions, e.g., a logic-containing board or chip such as an application specific integrated circuit or ASIC, a (control) processor, software, etc. In one configuration, the computational component is a license-controlled telecommunication application.
The first licensing mode is typically employed when the computational component has a valid license. In one configuration, the first licensing mode is known as the license-normal mode. In the first licensing mode, the computational component is typically fully (functionally) enabled.
The predetermined licensing event can be any event the occurrence of which is associated with an unlicensed operation. For example, the predetermined event can be an attempt by unauthorized personnel to modify, copy or alter the computational component, the use of an unauthorized code, password, identifier, serial number, or key, and the use of the computational component in the absence of a valid license. In a telecommunication architecture, the licensing event is typically defined as one or more of a valid license not being properly installed, the license file containing a serial number that fails to match the serial number of the processor (simplex configuration) or a plurality of serial numbers that do not match the serial numbers of a similar plurality of processors (multiple processor configuration (e.g., duplex configuration)), the name and/or version number of the telecommunication application failing to match the name and/or version number in the license file, the license being expired, the offer category in the feature mask failing to match the translation of the switch/server, feature usage in the translation exceeding limits in the feature mask, and a WAN spare processor being in the active state.
The second licensing mode is associated with one or more of the above events. In one configuration, the second licensing mode is known as the license-error mode.
The set of commonly enabled features in both the first and second licensing modes can include any set of selected operations of an algorithm. In telecommunication applications, the features include one or more of the following call processing functions such as call vectoring, voice mail, restrict call forward off net, Digital Communication System or DCS internetworking, enhanced conferencing, IP trunks, maximum number of ports, holiday vectoring, and automatic call distribution. In one configuration, in the first and second licensing modes the same features are enabled.
The second licensing mode can be in effect only for a predetermined time during which the customer must correct the licensing event. If the licensing event is not corrected with the predetermined time, the second licensing mode is changed to a third licensing mode (which is commonly referred to as the no-license mode). In this mode, the computational component is fully or partly disabled such that the features in the common set of features above are at least partly disabled. For example, the call processing functions can be disabled except for incoming and outgoing calls to a predefined set of numbers (such as calls to an internal or external emergency number such as a 911 call, outgoing calls to maintenance personnel, and incoming calls to a selected number for system maintenance).
The method and system of the present invention can have a number of advantages. First, the present invention can effectively protect and control actuation of one or more computational features, one or more applications, and any other type or form of computational algorithm, while providing an alternative licensing mode in which the computational system is not completely disabled when a specified licensing protocol is unsatisfied. During system maintenance and/or hardware replacement the customer does not have to be out of service until a new license is generated and installed. This feature thus permits maintenance personnel to fix a problem without incurring a loss of service due to the absence of a license and to replace hardware without loss of service when a matching license cannot be obtained immediately. Second, the licensing algorithm and/or system configuration can malfunction without causing system shutdown. This licensing mode thereby substantially lowers demands on maintenance personnel and avoids customer dissatisfaction. Third, in telecommunication applications even if a valid license were not obtained by the customer for a telecommunication application or feature thereof and the telecommunication application were to enter into the third licensing mode, the system would not be completely disabled but would continue to remain operational to permit customers to make emergency (e.g., 911) telephone calls and/or maintenance calls for licensing enablement. These and other advantages will be apparent from the disclosure of the invention(s) contained herein.
The present application is related to U.S. patent application Ser. No. 10/232,906, entitled “REMOTE FEATURE ACTIVATOR FEATURE EXTRACTION” to Walker et at.; Ser. No. 10/231,999, entitled “FLEXIBLE LICENSE FILE FEATURE CONTROLS” to Walker et al.; Ser. No. 10/232,507, entitled “LICENSE FILE SERIAL NUMBER TRACKING” to Serkowski et al.; Ser. No. 10/231,957, entitled “LICENSING DUPLICATED SYSTEMS” to Serkowski et al.; and Ser. No. 10/232,647, entitled “SOFTWARE LICENSING FOR SPARE PROCESSORS” to Walker et al., each of which is filed concurrently herewith and is incorporated herein by reference.
The above-described embodiments and configurations are neither complete nor exhaustive. As will be appreciated, other embodiments of the invention are possible utilizing, alone or in combination, one or more of the features set forth above or described in detail below.
One of the duplex control processors 102 executes telecommunication application 114a-n (each of which comprises a mode setting agent 124) via operating system 111 to perform the telecommunication functions and features. Primary and backup control processors 102a and b execute instructions in memory 101, such as license manager 113 and telecommunication applications 114a-n, and communicate with switching network 103 via network 110. One skilled in the art can readily envision that control processor(s) 102 can communicate with switching network 103 via a direct connection such as a connection via the processor bus of control processor(s) 102.
Operating system 111 is a conventional operating system allowing for the execution of applications such as telecommunication application 114 and for the intra-application communication of messages. The telecommunication application can be any application(s) and/or feature(s) used in telecommunication systems, such as DEFINITY™ by Avaya, Inc.
Personal computer (PC) 120 is utilized by service personnel to administer telecommunication switching system 100.
Switching (or server) network 103 provides all of the necessary telecommunication switching and interfacing that is required in telecommunication switching system 100.
License manager 113 periodically verifies that the telecommunication switching system 100 is being operated in accordance with pertinent licensing rules and disables the system 100 or an operational part of the system 100 when licensing rules are violated (or a predetermined licensing event occurs). During initialization of the switch software, during the restoration of translations, and periodically as the switch is running, a query is made by the telecommunication application to the license manager 113. The license manager 113 reads license file 112, compares the serial number(s) in the license file 112 with a serial number in the switch hardware, compares the software name and/or version in the license with the name and/or version of the telecommunication application 114a-n or operational part thereof, and, if a match occurs, delivers permission to run the telecommunication application 114a-n or operational part thereof with the feature mask in the license file. The feature mask controls revenue-associated options.
Referring to
In one configuration, the feature mask is configured as discussed in detail in copennding U.S. patent application Ser. No. 10/231,999, entitled “Flexible License File Feature Controls” to Walker et at., filed concurrently herewith and incorporated herein by this reference. The content of the mask controls what features are enabled or may be enabled on the product. There are three types of entries corresponding to fields 248, 252, and 256 in the feature mask.
The first type of entry (or Type I feature) in field 248 relates to those types of features that have a simple on/off state. The feature is either enabled or disabled. Each of these types of entries has two variables associated with it, namely a value and a lock. The value variable can be either on or off and the lock variable either locked or unlocked. Examples of features falling into this category include (in addition to the Type I features identified above in the background) Digital communication System or DCS call coverage, audible message waiting, vectoring, attendant vectoring, Asynchronous Transfer Mode or ATM WAN spare processor, ATM, dial by name, echo cancellation, multimedia call handling, multiple call handling, caller identification, multifrequency signaling, Integrated Services Digital Network or ISDN network call redirection, centralized attendant, remote office, enhanced Direct Inward Dialing or DID routing, survivable remote processor, time of day routing, tenant partitioning, hospitality announcements, Vector Directory Number or VDN of origin announcement, wideband switching, and wireless.
The second type of entry (or Type II feature) in field 256 relates to those types of features that have a numeric value. The value can correspond to a numeric value and/or name kind of entry. Each of these types of entries has two values associated with it, namely a lower limit value and an upper limit value. The lower limit value is never greater than the upper limit value. Examples of features falling into this category include (in addition to the Type II features identified above in the background) logged-in automated call distribution or ACD agents, maximum currently registered IP stations, maximum administered IP trunks, offer category, maximum number of ports, maximum number of administered remote office trunks, and maximum number of mobile stations.
The third type of entry (or Type III feature) in field 256 relates to those types of features that have a product value (e.g., corresponding to a product name or type), a release number (e.g., referring to a product release identifier), and a numeric value (e.g., indicating an operational parameter associated with the product and/or release, such as how many ports are licensed and/or how many licenses for the product are granted. This type of feature allows other controlled applications to be executed. Like the second type of entry, each of these types of entries has two values associated with it, namely a lower limit value and an upper limit value. The lower limit value is never greater than the upper limit value.
When duplicated processors are used such as shown in
Referring again to
Modem 108 is directly connected to control processor 102 so that control processor(s) 102 can contact remote feature activation system 109 via public telephone network 104. Similarly, remote feature activation system 109 can establish a communication channel with control processor 102 via public telephone network 104 and modem 108. One skilled in the art can readily envision that modem 108 can be interconnected to control processor(s) 102 via LAN 110.
Each telecommunication application 114a-n can include a corresponding mode setting agent 124a-n to set the licensing mode of the system 100. The mode setting agent 124 can set one of three operational modes to the system 100.
In the LICENSE NORMAL mode, the license manager has found that a valid license is properly installed, the license file contains a serial number that matches the serial number of the processor (simplex configuration) or a plurality of serial numbers that match the serial numbers of a similar plurality of processors (multiple processor configuration (e.g., duplex configuration)), the software name and version/release of the telecommunication application matches that in the license file, the license has not expired, the offer category in the feature mask matches the translation, the feature usage in translation does not exceed limits in the feature mask (e.g., a feature limit is a capacity value associated with a type 2 or type 3 feature), and if the processor is a wide area network (WAN) spare processor (WSP), survivable remote spare processor (SRP), or local spare processor (LSP), the processor is not active.
In the LICENSE ERROR mode, the license manager has found one or more of the following: no valid license is properly installed, the license file contains a serial number that does not match the serial number of the processor (simplex configuration) or a plurality of serial numbers that do not match the serial numbers of a similar plurality of processors (multiple processor configuration (e.g., duplex configuration)), the license has expired, the feature usage exceeds limits (e.g., there are more ports translated than permitted by the port limit in the license file which can occur when translations are copied from another switch or when a new license file is installed that has lower limits than the previous license ifie) and the processor is a WSP, SRP, or LSP that is active. As discussed in copending U.S. patent application Ser. No. 10/231,999, entitled “Flexible License File Feature Controls”, to Walker et al., filed concurrently herewith and incorporated herein by this reference, if there is a mismatch between the existing translation and the license file for a locked first type of entry the feature on/off state is simply updated to match the license and does not cause entry into LICENSE-ERROR mode. The LICENSE-ERROR mode is cleared by correcting the error that caused entry into the mode or by installing a valid license that is consistent with the configuration of the system 100. In the LICENSE-ERROR mode, the telecommunication application is permitted to run for a predetermined period of time or grace period. License error timer 126 (
In one configuration, all call processing functions of the telecommunication application are permitted to run during the LICENSE-ERROR MODE. Thus, the customer will realize the same level of service in both the LICENSE-NORMAL and LICENSE-ERROR modes.
In the NO-LICENSE mode, the license manager has found that (i) the corresponding license error timer 126a-n is expired and one or more of the following: there is no valid license installed on the system, the feature usage exceeds limits, the license file contains a serial number that does not match the serial number of the processor (simplex configuration) or a plurality of serial numbers that do not match the serial numbers of a similar plurality of processors (multiple processor configuration (e.g., duplex configuration)), the license is expired, and the processor is a WSP, SRP, or LSP that is active; (ii) the name and/or version of the telecommunication application does not match the name and/or version in the license file; and/or (iii) the offer category in the feature mask does not match translation. In the NO-LICENSE mode, all new call originations (except alarm calls (e.g., 911 calls) and calls to an administered emergency number) are denied and all incoming calls (except calls to an administered number) are denied. This mode is cleared by correcting the error that caused entry into the mode or by installing a valid license that is consistent with the configuration of the switch.
The operation of the license manager 113 and mode setting agent 124 will now be discussed with reference to
The request is received by the license manager 113 in step 400 of
In step 416, the manager 113 reads license file 112 to obtain the list of permitted features, name and/or version number of telecommunication application 114, and the serial number(s) of control processors 102a and 102b. For security reasons, the license file is stored in an encrypted form. As will be appreciated, the encryption can be performed using one or more keys. The manager 113 then determines whether or not the name and/or version number for the telecommunication application 114 matches the name and/or version number in the decrypted license file. If not, the manager 113 in step 420 records the error code corresponding to an unmatched name and/or version number.
In step 424, the manager 113 forwards a serial number request to each of the processors 102a and 102b. Control processors 102a and b each are assigned a unique electronically readable serial number that is set during board manufacture. If one or both of the processors 102 fails to respond to the serial number request after a predetermined time period and/or after a predetermined number of requests, manager 113 assumes that the processor 102 is unavailable. It is typically desired to resend serial number requests in the event that no response is received, as the processor may be resetting (e.g., after a firmware update) at the time of the initial serial number request.
In step 428, the manager 113 determines whether each of the processors 102a and 102b has responded and is therefore present. If not, the manager 113 in step 432 records the proper error code for the corresponding unavailable processor.
In step 436, the manager 113 determines if the serial number of the active processor matches either of the two serial numbers in the license file. If not, the manager 113 in step 440 records the proper error code for an unmatched serial number.
In step 444, the manager 113 determines whether the duplication flag is on or set. The duplication flag may be configured in any suitable manner, such as a bit having two values, 0 and 1, each of which indicates a different predetermined duplication state. For example, a “0” value indicates no duplication and a “1” value duplication. When the duplication flag is on, the manager 113 proceeds to step 448 and determines whether the serial number of the standby processor 102b matches either of the serial numbers in the license file. When the system is a duplex system and one or both serial numbers of the processors do not match either of the serial numbers in the license file, the manager 113 in step 452 records the proper error code for an unmatched duplicated processor serial number.
In the event that the duplication flag is off or after either of steps 448 or 452, the manager 113 determines in step 456 whether or not the license is expired. When the expiration date in the license file is earlier than the current date and time, the license is considered to be expired. When the license is expired, the manager 113 in step 460 records the proper error code for an expired license.
In step 464, the manager 113 decides whether the license is to be denied or granted. The license is denied when one or more error codes is recorded during the preceding steps. The license is granted when no error codes are recorded.
When the license is granted, the manager 113 generates a license granted response in step 468. The response includes an indication that the license is granted and the feature mask of the license file. The message is encrypted and forwarded to the mode setting agent 124.
When the license is denied, the manager 113 generates a license denied response in step 472. The response includes an indication that the license is denied, the error code(s) corresponding to the reason(s) for license denial, and the feature mask. The feature mask is not returned if the error is “no valid license present” since there is no feature mask to return without a valid license. When the license is denied for more than one reason, error codes for all of the reasons for license denial are included in the license denial response. The message is encrypted and forwarded to the mode setting agent 124.
Referring again to
In step 308, the agent 124 determines whether the manager 113 found a valid license to be present. If a valid license is not present, the agent 124 determines in step 312 whether the current license mode of the system 100 is the NO-LICENSE mode. When the current mode is not the NO-LICENSE mode, the agent sets the mode to the LICENSE-ERROR mode in step 316. When the current mode is the NO-LICENSE mode, the agent leaves the system in the NO-LICENSE mode in step 320. If a valid license is present, the agent 124 proceeds to step 324.
In step 324, the agent determines whether the manager found that the application name and/or version matched the name and/or version in the license file. If not, the agent proceeds to step 320 in which the mode is set to the NO-LICENSE mode. If so, the agent proceeds to step 328.
In step 328, the agent determines whether the manager found that the offer category matches the translation. If not, the agent proceeds to step 320 in which the mode is set to the NO-LICENSE mode. If so, the agent proceeds to step 332.
In step 332, the agent determines whether the value of the license error timer 124 is greater than zero. The application 114 maintains the license error timer value in memory. When the license timer value is zero, the agent proceeds to step 336 (discussed below), and when the license timer value is greater than zero the agent proceeds to step 340 (also discussed below).
In one configuration, the value of the license error timer value is periodically saved in nonvolatile memory of each of the processors so that the timer can be preserved across system resets. To make this possible, the mode setting agent makes not only a license file request but also a timer save request at predetermined intervals. The license timer value passed to the manager 113 for storage is set as follows: (a) if the system 100 is in LICENSE-NORMAL mode, the license timer value shall be the full grace duration of period (6 days, or 144 hours in the case of DEFINITY), (b) if the system 100 is in LICENSE-ERROR mode, the license timer value saved shall be the time remaining on the corresponding license error timer 126a-n, and (c) if the system 100 is in NO-LICENSE mode, the corresponding license timer value saved is zero.
At initialization or any other time that the value is not available in memory, the agent issues a timer request to the license manager 113. To generate a timer response, the manager 113 queries each of the processors for the stored timer value. The lowest of these values (the value closest to expiration) is passed back to the agent in the timer response message. If any of the timer values from the processors are corrupted or if no processor responds with a timer value, the value in the timer response message to the agent is zero (indicating that the timer is expired). The agent uses the timer value in the response to set the timer value in memory.
Returning to
The agent in step 344 next determines if the manager found that the feature limits were being exceeded. When the limits are being exceeded, the agent proceeds to step 316. When the limits are not being exceeded, the agent proceeds to step 348.
In step 348, the agent determines whether the manager found that the license is expired. When the license is expired, the agent proceeds to step 316. When the license is not expired, the agent proceeds to step 352.
The agent next checks in step 352 the feature mask to see if the processor is a WSP, LSP, or SRP. If it is and the processor is active (i.e., not in the standby mode), then the agent sets the license mode to LICENSE-ERROR in step 316. If it is not, the agent proceeds to step 356.
Returning again to step 336, the agent determines whether the manager found one or more unmatched serial numbers. If not, the agent proceeds to step 320 in which the license mode is set to the NO-LICENSE mode. If so, the agent proceeds to step 360.
If in either of steps 360 and 366, the agent determines that the manager found the feature limits to be exceeded or the license to be expired, respectively, the agent proceeds to step 320.
If in both of steps 360 and 366, the agent determines if the manager found that the feature limits are within licensed limits and the license is unexpired, respectively, the agent proceeds to step 370.
In step 370, the agent determines whether the processor is an active WSP, LSP, or SRP. If so, the agent proceeds to step 320. If not, the agent proceeds to step 356.
As shown by steps 336, 360, 366, and 370, the timer value is relevant only if there is a license error. If there are no errors, the switch goes to LICENSE-NORMAL mode, even if the license error timer is expired. If this were not the case, there would be no way to get out of the NO-LICENSE mode once the timer had expired.
Whenever the system 100 enters the LICENSE-NORMAL mode, the agent clears any LICENSE-ERROR or NO-LICENSE alarms, stops the license error timer (if running) and resets the timer to the full duration of the grace period, and makes a timer save request of this duration to the license manager.
Whenever the system 100 enters the LICENSE-ERROR mode, the agent generates a major (license-error) alarm, logs the error into the system security log, and initiates the license error countdown timer.
Whenever the system 100 enters NO-LICENSE mode, the agent generates a major (no-license) alarm (that is different from the alarm generated by the agent on entry into the LICENSE-ERROR mode), logs the error into the system security log, and provides a timer save request of zero hours to the license manager.
When the system 100 is operating in the NO-LICENSE or LICENSE-ERROR mode, the alarm is presented to the user in a suitable mode or modes. For example, a suitable error message can be displayed on the initial login screen for the system and/or a key or other indicator can be illuminated on one or more telephone sets and/or on another part of the system hardware. The agent can also provide an alarm notification to outside service personnel.
In step 508, the license manager performs a series of checks to determine if the license file is valid. The license manager confirms that the serial number contained in the license file matches the serial number of the active processor, that the license has not expired, that the version contained in the license file matches the software version loaded onto the switching system 100, that the offer category contained in the license file matches the offer category contained in the translation files of the system 100, data integrity using a checksum or other suitable approach, and that the license file length and format are correct.
If one or more of the preceding queries is not confirmed, the license manager proceeds to step 524 and displays a suitable error message to the user and terminates operation in step 528.
If each of the queries is confirmed, the new license file is stored in translation in step 512. The new license file overwrites the license file already in memory.
The license manager then processes the new license file in step 516. The license manager activates and deactivates features and sets new limits in accordance with the new license file.
Next in step 520, the license manager invokes the mode setting agent to set the license mode. If the mode was LICENSE-NORMAL, the new license file was successfully installed, no feature limits are exceeded, and the system is a simplex system, the mode remains LICENSE-NORMAL. If the preceding facts are true except that the system is a duplex system and if the duplicated processor has the correct serial number, the mode remains LICENSE-NORMAL. If the mode was LICENSE-NORMAL and the new license installed successfully but there were feature limits exceeded, the feature limits shall be set in step 416 as specified by the new license file, and the system shall enter the LICENSE-ERROR mode. If the mode was LICENSE-NORMAL and the new license file was not successfully installed, the mode remains unchanged. If the mode was LICENSE-ERROR, the new license installed successfully, no feature limits are exceeded, and the system is a simplex system, the mode is set to the LICENSE-NORMAL mode. If the preceding facts are true except that system is a duplex system and if the duplicated processor has the correct serial number, the mode is set to the LICENSE-NORMAL mode. If the mode was LICENSE-ERROR and the new license file was successfully installed but there were feature limits exceeded, the feature limits are set in step 416 as set forth in the new license file, the errors are logged, and an error message displayed. The license mode remains unchanged. If the mode was LICENSE-ERROR and the new license could not be installed, the mode is unchanged. If the mode was NO-LICENSE, the new license file was successfully installed, no feature limits are exceeded, and the system is a simplex system, the mode is set to LICENSE-NORMAL. If the preceding facts are true except that system is a duplex system and if the duplicated processor has the correct serial number, the mode is set to the LICENSE-NORMAL mode. If the mode was NO-LICENSE and the new license file was successfully installed but there were feature limits exceeded, the feature limits are set in step 416 as set forth in the new license file, the errors are logged, an error message displayed, and the mode remains NO-LICENSE. If the mode was NO-LICENSE and the new license file was not successfully installed, the mode remains NO-LICENSE.
A number of variations and modifications of the invention can be used. It would be possible to provide for some features of the invention without providing others.
For example in one alternative embodiment, the duplicated processors communicate with one another periodically (exchange serial numbers) in addition to, as part of, or in lieu of the periodic licensing verification analysis of the license manager 113.
In another alternative embodiment, the division of the various functions performed by the license manager and mode setting agent modules are different. For example, the license manager can perform all or part of the licensing-related functions of the mode setting agent or the mode setting agent can perform all or part of the licensing-related functions of the license manager.
In another alternative embodiment, the mode setting agent 124 is not a part of the telecommunication application 114.
In another alternative embodiment, the NO-LICENSE mode is entered in a stepwise fashion. First, no administrative changes would be permitted, then after a couple of days, displays would stop working, and then after a couple of more days outbound calls would be blocked. This behavior would give the customer a better warning regarding the impending loss of service.
In yet another alternative embodiment, the license manager and/or mode setting agent 124 are implemented as software and/or hardware such as a logic circuit, e.g., an application specific integrated circuit.
In yet another alternative embodiment, any other applications running on the telecommunication switching system 100 can utilize the same mechanism as the mode setting agent 124 to determine if they are to be allowed to execute and what options they execute.
In yet a further alternative embodiment, the above techniques are applied with other telecommunication and/or non-telecommunication computational architectures having duplicated computational components. The computational components can be hardware, software, or a combination of the two.
In yet a further alternative embodiment, the license file can include fields for any number of unique identifiers for the same or differing types of hardware components. For example, for a license verification to be successful the license manager could require that there be matches for serial numbers not only of a control processor but also of an application specific integrated circuit or another type of hardware component.
In yet another embodiment, unsuccessful license verification causes only the contacting telecommunication application and not other successfully validated telecommunication applications or other parts of the system to be set to a mode other than the LICENSE NORMAL mode.
In yet another embodiment, when in LICENSE-NORMAL mode, if the mode setting agent does not receive a license response from a license manager within a predetermined time period of issuing a license request, the agent automatically enters the LICENSE-ERROR mode. When in the LICENSE-ERROR mode for reason other than failure to receive a license response, or at system initialization, if the agent does not receive a license response from the license manager within the predetermined period of issuing the license request, the system 100 shall enter NO-LICENSE mode.
In yet another embodiment, the sets of features enabled/disabled in the LICENSE-NORMAL and LICENSE-ERROR modes are different. The features that can be enabled and disabled in each mode comprise call routing or vectoring, to name but a few. In the LICENSE-NORMAL mode all of these features are enabled. In contrast, only some of these features are enabled in the LICENSE-ERROR mode.
In yet another embodiment, the present invention is used to enable/disable an application executed by a server in addition to or in lieu of a switch. This embodiment is particularly useful in monitoring licensing in multi-mode contact centers which receive a broad variety of contact types, such as telephone calls, electronic mail, and contacts via a Web browser.
The present invention, in various embodiments, includes components, methods, processes, systems and/or apparatus substantially as depicted and described herein, including various embodiments, subcombinations, and subsets thereof. Those of skill in the art will understand how to make and use the present invention after understanding the present disclosure. The present invention, in various embodiments, includes providing devices and processes in the absence of items not depicted and/or described herein or in various embodiments hereof, including in the absence of such items as may have been used in previous devices or processes, e.g. for improving performance, achieving ease and\or reducing cost of implementation.
The foregoing discussion of the invention has been presented for purposes of illustration and description. The foregoing is not intended to limit the invention to the form or forms disclosed herein. Although the description of the invention has included description of one or more embodiments and certain variations and modifications, other variations and modifications are within the scope of the invention, e.g. as may be within the skill and knowledge of those in the art, after understanding the present disclosure. It is intended to obtain rights which include alternative embodiments to the extent permitted, including alternate, interchangeable and/or equivalent structures, functions, ranges or steps to those claimed, whether or not such alternate, interchangeable and/or equivalent structures, functions, ranges or steps are disclosed herein, and without intending to publicly dedicate any patentable subject matter.
Number | Name | Date | Kind |
---|---|---|---|
4288659 | Atalla | Sep 1981 | A |
4405829 | Rivest et al. | Sep 1983 | A |
4780821 | Crossley | Oct 1988 | A |
4811393 | Hazard | Mar 1989 | A |
4888800 | Marshall et al. | Dec 1989 | A |
4937863 | Robert et al. | Jun 1990 | A |
5157663 | Major et al. | Oct 1992 | A |
5179591 | Hardy et al. | Jan 1993 | A |
5204897 | Wyman | Apr 1993 | A |
5206903 | Kohler et al. | Apr 1993 | A |
5230020 | Hardy et al. | Jul 1993 | A |
5260999 | Wyman | Nov 1993 | A |
5307481 | Shimazaki et al. | Apr 1994 | A |
5329570 | Glassmacher et al. | Jul 1994 | A |
5341427 | Hardy et al. | Aug 1994 | A |
5347580 | Molva et al. | Sep 1994 | A |
5386369 | Christiano | Jan 1995 | A |
5390297 | Barber et al. | Feb 1995 | A |
5408649 | Beshears et al. | Apr 1995 | A |
5448639 | Arazi | Sep 1995 | A |
5553143 | Ross et al. | Sep 1996 | A |
5563946 | Cooper et al. | Oct 1996 | A |
5671412 | Christiano | Sep 1997 | A |
5673315 | Wolf | Sep 1997 | A |
5699431 | Van Oorschot et al. | Dec 1997 | A |
5708709 | Rose | Jan 1998 | A |
5717604 | Wiggins | Feb 1998 | A |
5724428 | Rivest | Mar 1998 | A |
5742757 | Hamadani et al. | Apr 1998 | A |
5745569 | Moskowitz et al. | Apr 1998 | A |
5745576 | Abraham et al. | Apr 1998 | A |
5745879 | Wyman | Apr 1998 | A |
5758068 | Brandt et al. | May 1998 | A |
5758069 | Olsen | May 1998 | A |
5790074 | Rangedahl et al. | Aug 1998 | A |
5790664 | Coley et al. | Aug 1998 | A |
5828747 | Fisher et al. | Oct 1998 | A |
5835600 | Rivest | Nov 1998 | A |
5864620 | Pettitt | Jan 1999 | A |
5905793 | Flockhart et al. | May 1999 | A |
5905860 | Olsen et al. | May 1999 | A |
5940504 | Griswold | Aug 1999 | A |
5960085 | de la Huerga | Sep 1999 | A |
5978565 | Ohran et al. | Nov 1999 | A |
5982873 | Flockhart et al. | Nov 1999 | A |
5995625 | Sudia et al. | Nov 1999 | A |
6009401 | Horstmann | Dec 1999 | A |
6011973 | Valentine et al. | Jan 2000 | A |
6023763 | Grumstrup et al. | Feb 2000 | A |
6023766 | Yamamura | Feb 2000 | A |
6047242 | Benson | Apr 2000 | A |
6067621 | Yu et al. | May 2000 | A |
6108703 | Leighton et al. | Aug 2000 | A |
6128389 | Chan et al. | Oct 2000 | A |
6134660 | Boneh et al. | Oct 2000 | A |
6148415 | Kobayashi et al. | Nov 2000 | A |
6163607 | Bogart et al. | Dec 2000 | A |
6173053 | Bogart et al. | Jan 2001 | B1 |
6178511 | Cohen et al. | Jan 2001 | B1 |
6189146 | Misra et al. | Feb 2001 | B1 |
6192122 | Flockhart et al. | Feb 2001 | B1 |
6212635 | Reardon | Apr 2001 | B1 |
6219652 | Carter et al. | Apr 2001 | B1 |
6223291 | Puhl et al. | Apr 2001 | B1 |
6246871 | Ala-Laurila | Jun 2001 | B1 |
6314565 | Kenner et al. | Nov 2001 | B1 |
6360320 | Ishiguro et al. | Mar 2002 | B1 |
6463534 | Geiger et al. | Oct 2002 | B1 |
6502079 | Ball et al. | Dec 2002 | B1 |
6513117 | Tarpenning et al. | Jan 2003 | B2 |
6557105 | Tardo et al. | Apr 2003 | B1 |
6574612 | Baratti et al. | Jun 2003 | B1 |
6584454 | Hummel et al. | Jun 2003 | B1 |
6640305 | Kocher et al. | Oct 2003 | B2 |
6675208 | Rai et al. | Jan 2004 | B1 |
6697945 | Ishiguro et al. | Feb 2004 | B2 |
6760324 | Scott et al. | Jul 2004 | B1 |
6765492 | Harris | Jul 2004 | B2 |
6769063 | Kanda et al. | Jul 2004 | B1 |
6775782 | Buros et al. | Aug 2004 | B1 |
6778820 | Tendler | Aug 2004 | B2 |
6816842 | Singh et al. | Nov 2004 | B1 |
6826606 | Freeman et al. | Nov 2004 | B2 |
6850958 | Wakabayashi | Feb 2005 | B2 |
6854010 | Christian et al. | Feb 2005 | B1 |
6868403 | Wiser et al. | Mar 2005 | B1 |
6876984 | Tadayon et al. | Apr 2005 | B2 |
6883095 | Sandhu et al. | Apr 2005 | B2 |
6889212 | Wang et al. | May 2005 | B1 |
6904523 | Bialick et al. | Jun 2005 | B2 |
6920567 | Doherty et al. | Jul 2005 | B1 |
6928166 | Yoshizawa | Aug 2005 | B2 |
6928558 | Allahwerdi et al. | Aug 2005 | B1 |
6934463 | Ishiguro et al. | Aug 2005 | B2 |
6934848 | King et al. | Aug 2005 | B1 |
6957344 | Goldshlag et al. | Oct 2005 | B1 |
6961858 | Fransdonk | Nov 2005 | B2 |
6973444 | Blinn et al. | Dec 2005 | B1 |
6976164 | King et al. | Dec 2005 | B1 |
6981222 | Rush et al. | Dec 2005 | B2 |
7032113 | Pendlebury | Apr 2006 | B2 |
7065214 | Ishiguro et al. | Jun 2006 | B2 |
7073063 | Peinado | Jul 2006 | B2 |
7085382 | Terao et al. | Aug 2006 | B2 |
7100044 | Watanabe et al. | Aug 2006 | B2 |
7124304 | Bel et al. | Oct 2006 | B2 |
7146340 | Musson | Dec 2006 | B1 |
7149806 | Perkins et al. | Dec 2006 | B2 |
7152245 | Dublish et al. | Dec 2006 | B2 |
7171662 | Misra et al. | Jan 2007 | B1 |
7185195 | Hug et al. | Feb 2007 | B2 |
7206936 | Aull et al. | Apr 2007 | B2 |
7225333 | Peinado et al. | May 2007 | B2 |
7228426 | Sinha et al. | Jun 2007 | B2 |
7302703 | Burns | Nov 2007 | B2 |
7308717 | Koved et al. | Dec 2007 | B2 |
7313828 | Holopainen | Dec 2007 | B2 |
7318236 | DeMello et al. | Jan 2008 | B2 |
7356692 | Bialick et al. | Apr 2008 | B2 |
7382881 | Uusitalo et al. | Jun 2008 | B2 |
7383205 | Peinado et al. | Jun 2008 | B1 |
7545931 | Dillaway | Jun 2009 | B2 |
20010001268 | Menon et al. | May 2001 | A1 |
20010013024 | Takahashi | Aug 2001 | A1 |
20010034846 | Beery | Oct 2001 | A1 |
20020001302 | Pickett | Jan 2002 | A1 |
20020013722 | Kanaga | Jan 2002 | A1 |
20020017977 | Wall | Feb 2002 | A1 |
20020038422 | Suwamoto et al. | Mar 2002 | A1 |
20020052939 | Lee | May 2002 | A1 |
20020083003 | Halliday et al. | Jun 2002 | A1 |
20020087892 | Imazu | Jul 2002 | A1 |
20020104006 | Boate et al. | Aug 2002 | A1 |
20020107809 | Biddle et al. | Aug 2002 | A1 |
20020112186 | Ford et al. | Aug 2002 | A1 |
20020116340 | Hellberg et al. | Aug 2002 | A1 |
20020125886 | Bates et al. | Sep 2002 | A1 |
20020138441 | Lopatic | Sep 2002 | A1 |
20020154777 | Candelore | Oct 2002 | A1 |
20020164025 | Raiz et al. | Nov 2002 | A1 |
20020174356 | Padole et al. | Nov 2002 | A1 |
20020176404 | Girard | Nov 2002 | A1 |
20020188656 | Patton et al. | Dec 2002 | A1 |
20020188704 | Gold et al. | Dec 2002 | A1 |
20020194473 | Pope et al. | Dec 2002 | A1 |
20030005427 | Herrero | Jan 2003 | A1 |
20030013411 | Uchiyama | Jan 2003 | A1 |
20030023564 | Padhye et al. | Jan 2003 | A1 |
20030055749 | Carmody et al. | Mar 2003 | A1 |
20030095542 | Chang et al. | May 2003 | A1 |
20030144959 | Makita | Jul 2003 | A1 |
20030149670 | Cronce | Aug 2003 | A1 |
20030149874 | Balfanz et al. | Aug 2003 | A1 |
20030156719 | Cronce | Aug 2003 | A1 |
20030163428 | Schneck et al. | Aug 2003 | A1 |
20030191936 | Kawatsura et al. | Oct 2003 | A1 |
20030208449 | Diao | Nov 2003 | A1 |
20030233547 | Gaston et al. | Dec 2003 | A1 |
20040073517 | Zunke et al. | Apr 2004 | A1 |
20040078339 | Goringe et al. | Apr 2004 | A1 |
20040088541 | Messerges et al. | May 2004 | A1 |
20040103011 | Hatano et al. | May 2004 | A1 |
20040103324 | Band | May 2004 | A1 |
20040127196 | Dabbish et al. | Jul 2004 | A1 |
20040128395 | Miyazaki | Jul 2004 | A1 |
20040128551 | Walker et al. | Jul 2004 | A1 |
20040133794 | Kocher et al. | Jul 2004 | A1 |
20040162998 | Tuomi et al. | Aug 2004 | A1 |
20040166878 | Erskine et al. | Aug 2004 | A1 |
20040172367 | Chavez | Sep 2004 | A1 |
20040181695 | Walker | Sep 2004 | A1 |
20040181696 | Walker | Sep 2004 | A1 |
20040199760 | Mazza | Oct 2004 | A1 |
20040249763 | Vardi | Dec 2004 | A1 |
20040260589 | Varadarajan et al. | Dec 2004 | A1 |
20040268120 | Mirtal et al. | Dec 2004 | A1 |
20050005098 | Michaelis et al. | Jan 2005 | A1 |
20050038753 | Yen et al. | Feb 2005 | A1 |
20050076204 | Thornton et al. | Apr 2005 | A1 |
20050086174 | Eng | Apr 2005 | A1 |
20050144437 | Ransom et al. | Jun 2005 | A1 |
20050154877 | Trench | Jul 2005 | A1 |
20050185792 | Tokutani et al. | Aug 2005 | A1 |
20050198510 | Robert et al. | Sep 2005 | A1 |
20050202830 | Sudit | Sep 2005 | A1 |
20050229004 | Callaghan | Oct 2005 | A1 |
20050246098 | Bergstrom et al. | Nov 2005 | A1 |
20050289072 | Sabharwal | Dec 2005 | A1 |
20060036554 | Schrock et al. | Feb 2006 | A1 |
20060036894 | Bauer et al. | Feb 2006 | A1 |
20060089912 | Spagna et al. | Apr 2006 | A1 |
20060178953 | Aggarwal et al. | Aug 2006 | A1 |
20070033419 | Kocher et al. | Feb 2007 | A1 |
20070107067 | Fountian | May 2007 | A1 |
20080082449 | Wilkinson et al. | Apr 2008 | A1 |
20080141242 | Shapiro | Jun 2008 | A1 |
Number | Date | Country |
---|---|---|
1 071 253 | Jan 2001 | EP |
Number | Date | Country | |
---|---|---|---|
20040044629 A1 | Mar 2004 | US |