Patent ID: 8000970
Filing Date: 2011-08-16
Classification: G10L

Abstract:
1. A method of call processing using a distributed voice browser, the method comprising: partitioning a voice browser into separate components, including a parser, a service processor and a session manager, the components of the voice browser located and executing on separate computing machines, wherein the components of the voice browser, located on separate computing machines, are replicated as needed to support increased call volume; providing a media gateway having a plurality of channel processors; instantiating a plurality of Voice Extensible Markup Language (VXML) parsers, each of the VXML parsers being configured to retrieve and parse VXML script representing a telephone service, and wherein the VXML parsers are instantiated in a first computing machine; instantiating a plurality of service processors, each of the service processors being configured to interpret VXML data parsed by the VXML parsers, and wherein the service processors are instantiated in a second computing machine; instantiating a plurality of session managers, wherein the session managers are instantiated in a third computing machine; registering the VXML parsers and the service processors with the session managers, each session manager tracking service processors and VXML parsers that are available for distributed processing, wherein the first, second, and third computing machines operate separately and are communicatively linked; receiving a call by telephone switch, wherein the telephone switch selects a free channel processor of the media gateway, queries the media gateway to accept the call, and applies the call to the selected channel processor; determining a called directory number of the received call; identifying call processing VXML scripts associated with the determined called directory number; sending to a session manager the called directory number, one or more Universal Resource Identifiers (URIs) specifying the associated VXML scripts, and an identifier representing the channel processor upon which the call was received; from the session manager, accessing a cache to determine whether at least one portion of the VXML scripts has already been parsed by a VXML parser; if at least one portion of the VXML scripts has already been parsed by a VXML parser, retrieving the parsed script from the cache and identifying an available VXML parser and providing an URI for the portion of the VXML scripts that has not been parsed to the VXML parser; transmitting parsed VXML scripts to the session manager; identifying a service processor and transmitting the parsed VXML scripts to the identified service processor; implementing the telephone service by the service processor by executing the parsed VXML scripts; determining a change in call volume during run time; and varying, at run time to support increased call volume, a number of service processors, a number of VXML parsers, and a number of session managers independently in response to determining a change in call volume detected during run time.