US20050240620A1 - Arrangement for controlling and logging voice enabled web applications using extensible markup language documents - Google Patents

Arrangement for controlling and logging voice enabled web applications using extensible markup language documents Download PDF

Info

Publication number
US20050240620A1
US20050240620A1 US11/151,315 US15131505A US2005240620A1 US 20050240620 A1 US20050240620 A1 US 20050240620A1 US 15131505 A US15131505 A US 15131505A US 2005240620 A1 US2005240620 A1 US 2005240620A1
Authority
US
United States
Prior art keywords
log
xml
application
generating
voice
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US11/151,315
Inventor
Ryan Danner
Steven Martin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cisco Technology Inc filed Critical Cisco Technology Inc
Priority to US11/151,315 priority Critical patent/US20050240620A1/en
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DANNER, RYAN ALAN, MARTIN, STEVEN J.
Publication of US20050240620A1 publication Critical patent/US20050240620A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • G06F16/986Document structures and storage, e.g. HTML extensions

Definitions

  • the present invention relates to generating and executing voice enabled web applications within a hypertext markup language (HTML) and hypertext transport protocol (HTTP) framework.
  • HTML hypertext markup language
  • HTTP hypertext transport protocol
  • the evolution of the public switched telephone network has resulted in a variety of voice applications and services that can be provided to individual subscribers and business subscribers.
  • Such services include voice messaging systems that enable landline or wireless subscribers to record, playback, and forward voice mail messages.
  • voice messaging systems that enable landline or wireless subscribers to record, playback, and forward voice mail messages.
  • the ability to provide enhanced services to subscribers of the public switched telephone network is directly affected by the limitations of the public switched telephone network.
  • the public switched telephone network operates according to a protocol that is specifically designed for the transport of voice signals; hence any modifications necessary to provide enhanced services can only be done by switch vendors that have sufficient know-how of the existing public switched telephone network infrastructure.
  • IP Internet protocol
  • the web server application environment can include web server software, such as Apache, implemented on a computer system attached to the IP network. Web-based applications are composed of HTML pages, logic, and database functions. In addition, the web server may provide logging and monitoring capabilities.
  • telephony applications are state aware to ensure that prescribed operations between the telephony application servers and the user telephony devices occur in a prescribed sequence. For example, operations such as call processing operations, voicemail operations, call forwarding, etc., require that specific actions occur in a specific sequence to enable the multiple components of the public switched telephone network to complete the prescribed operations.
  • the web-based applications running in the IP network are state-less and transient in nature, and do not maintain application state because application state requires an interactive communication between the browser and back-end database servers accessed by the browsers via a HTTP-based web server.
  • an HTTP server provides asynchronous execution of HTML applications, where the web applications in response to reception of a specific request in the form of a URL from a client, instantiate a program configured for execution of the specific request, send an HTML web page back to the client, and terminate the program instance that executed the specific request.
  • the XML page may describe any one of a user interface such as dynamic generation of a menu of options or a prompt for a password, an application logic operation, or a function capability such as generating a function call to an external resource.
  • the application server parses the XML page, and executes the operation described by the XML page, for example dynamically generating an HTML page having voice application control content, or fetching another XML page to continue application processing.
  • the application server may access an XML page that stores application state information, enabling the application server to be state-aware relative to the user interaction.
  • the XML page which can be written using a conventional editor or word processor, defines the application to be executed by the application server within the runtime environment, enabling voice enabled web applications to be generated and executed without the necessity of programming language environments.
  • web programmers can write voice-enabled web applications, using the teachings of the above-incorporated application Ser. No. 09/480,485, by writing XML pages that specify respective voice application operations to be performed.
  • the XML documents have a distinct feature of having tags that allow a web browser (or other software) to identify information as being a specific kind or type of information.
  • voice-enabled web applications One particular concern in the execution of voice-enabled web applications involves the logging of events that occur, during execution of the applications, into a log file and the ability to analyze the log file. Specifically, deployment of voice-enabled web applications in a commercial environment may require that the log file can be analyzed by various telephony management systems such as billing, monitoring, scripting, etc.
  • existing methods of writing structured log files typically involves performing a “data dump” during an application operation with little or no structure to the data, rendering it difficult or impossible to effectively utilize the log data for voice enabled web applications.
  • conventional web servers have log facilities that are based on the logging of page or CGI information.
  • voice-enabled web applications Another concern in the execution of voice-enabled web applications involves developing voice-enabled web applications using XML documents in a manner that provides sufficient flexibility for modification of the voice-enabled web applications with minimal changes to the XML documents defining the applications. In particular, care must be taken that the specificity of the XML documents defining the executable application do not limit the ability to easily modify the executable application.
  • control data for a voice-enabled web application and log files that record events that occur during execution of the voice-enabled web application, are generated and processed using an XML tag format.
  • the voice-enabled web application is defined, for example, using a first set of extensible markup language (XML) documents that define the voice application operations to be performed within the voice application.
  • a second set of XML documents specify application parameters and control information to be used by the application runtime environment for execution of the first set of XML documents.
  • the second set of XML documents enable the application parameters and control information to be stored separately from the first set of XML documents, eliminating the necessity for overly-specific XML documents to define a voice-enabled web application.
  • the second set of XML documents enables the application server to maintain a generic application runtime environment, enabling applications to share common control information and provide personalized services for subscribers based on respective user specific control attributes.
  • log files using an XML tag format enables the log files to use a standardized XML structure that includes log element type, log element attribute, and log element data information.
  • logs may be written for individual user sessions and overall application information, where the XML log tags may be of sufficient descriptive nature as to be understood using any XML viewer.
  • the logs may be analyzed by custom log parser configured for locating prescribed XML tags related to a corresponding operation, for example billing, trace routing, etc.
  • logging information can be more easily analyzed based on parsing the XML tags within the XML log documents.
  • One aspect of the present invention provides a method in an executable system for controlling execution of an executable voice application.
  • the method includes storing an extensible markup language (XML) control document specifying at least one application control parameter for execution of the executable voice application in an application runtime environment generated by the executable system, and parsing the XML control document for execution of the executable voice application by the application runtime environment according to the at least one application control parameter.
  • XML extensible markup language
  • Another aspect of the present invention provides a method in an executable system for generating a log file that specifies an occurrence of an event in response to execution of an executable voice application.
  • the method includes generating an XML log document having a log entry that specifies the occurrence of the event in response to the execution of the executable voice application, the generating step including generating first, second and third XML tags specifying a log element type, a log element attribute, and a log element data for the event, respectively, and outputting the XML log document for storage on a tangible medium.
  • FIG. 1 is a block diagram illustrating in a system configured for the generation and usage of XML control documents and XML log documents during execution of voice applications according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating in further detail the application runtime environment of FIG. 1 .
  • FIG. 3 is a flow diagram illustrating the method of controlling execution of an executable voice application and generating a log file according to an embodiment of the present invention.
  • FIGS. 4A and 4B are diagrams illustrating an XML control document and an XML log document, respectively.
  • XML documents in defining executable voice applications enable use of open standards that permits web programmers to use forms-based web programming techniques to design and implement voice telephone applications, without the necessity of programming using conventional programming languages.
  • the use of XML documents in defining executable voice applications provides a structured application tool that enables a user to easily customize a voice application by making relatively minor changes to the XML documents. Additional details regarding the use of XML documents to define voice-enabled web applications is described in commonly-assigned, copending application Ser. No. 09/501,516, filed Feb. 9, 2000, entitled Arrangement for Defining and Processing Voice-Enabled Web Applications Using Extensible Markup Language Documents (attorney docket 95-410), the disclosure of which is incorporated in its entirety herein by reference.
  • the disclosed embodiment is directed to an arrangement for controlling execution of an executable voice application, and generating a log file that specifies an occurrence of an event in response to execution of the executable voice application, using extensible markup language (XML) documents.
  • XML extensible markup language
  • the structured nature of XML documents enables an application developer to provide structured flexibility to voice-enabled web applications, enabling the voice-enabled web applications to be easily modified even during execution in an application runtime environment.
  • the disclosed embodiment further enhances the ability to provide a structured model for the commercial deployment of voice-enabled web applications by providing a method in which web application control data and log output can be created and processed using an XML tag format.
  • the disclosed embodiment provides extremely flexible control of a voice-enabled web application by separating application control parameters, stored in XML control documents, from application operations such as user interface operations, logic operations, and/or function operations.
  • application control parameters stored in XML control documents
  • application operations such as user interface operations, logic operations, and/or function operations.
  • the separation of application control parameters from application operations by storing the application control parameters in separate XML documents enables new application control parameters to be added without affecting existing versions of the voice-enabled web application.
  • existing application control parameters can be deleted without affecting future versions of the voice-enabled web application.
  • XML control documents to specify application control parameters facilitates the sharing of common control information between multiple voice-enabled web applications, since each voice-enabled web application does not need to rely on the control parameters to be specified in a specific state-dependent sequence.
  • application control parameters can be described using the XML tag format, enabling user-specific control attributes to be specified within the XML control documents.
  • a given XML control document may either be shared among multiple voice-enabled web applications for basic control parameters, or may be generated for a specific subscriber to store subscriber-specific application control parameters.
  • the disclosed embodiment also provides an arrangement for generating XML log documents, wherein each XML log document has at least one log entry that specifies an occurrence of an event in response to execution of the executable voice application.
  • the storage of a log entry in XML format enables the use of the XML structure to define XML tags that specify log element types, log element attributes, and log element data information.
  • the logs may be written for both individual sessions and overall application information.
  • the XML log tags are sufficiently descriptive that any XML viewer can be used to understand the log information.
  • custom log parsers can be easily written, using standard XML editor tools, to gather and format log information relevant to a given operation, for example operations monitored by telephony management systems such as billing, monitoring, scripting, call processing management, or traffic management.
  • FIG. 1 is a block diagram illustrating a system configured for executing applications defined by XML documents based on application control parameters specified in XML control documents, and generating XML log documents for analysis according to an embodiment of the present invention.
  • the system 10 includes an application server 12 , a Web server 14 , an XML document database 16 , and an XML document registry 18 .
  • the XML document database 16 is configured for storing the XML documents that define the applications, and the XML control documents that specify application control parameters for execution of the executable voice applications.
  • the XML document registry 18 is configured for storing XML documents that specify application state information for respective user sessions.
  • the web server 14 receives HTTP requests from a client 5 via the Internet and forwards to the client HTML-based web pages dynamically generated by the application server 12 .
  • the application server 12 is configured for executing applications defined by stored XML documents, also referred to generally as web applications, in response to the HTML requests from the client.
  • the application server 12 is implemented as a server executing a PHP hypertext processor with XML parsing and processing capabilities, available open source at http://www.php.net.
  • the application server 12 Four types of XML documents are used by the application server 12 to execute web applications: menu documents, activity documents, decision documents, and “brownies”.
  • the menu documents, activity documents, and decision documents are XML documents, stored in the document database 16 , that define user interface and boolean-type application logic for a web application, hence are considered “executable” by the application server 12 .
  • the brownie document, stored in the registry 18 is an XML data record used to specify application state and user attribute information for a given XML application during a user session.
  • the XML documents define user interface logistics and tie services and application server events together in a meaningful way, forming a coherent application or sets of applications.
  • the document database 16 also is configured for storing XML control documents that specify application control parameters for execution of the voice-enabled Web applications by the application server 12 .
  • the document database 16 may also be used for storage of XML log documents that specify the occurrence of events in response to execution of the voice-enabled web applications by the application server 12 .
  • the XML control documents, as well as the application-defining documents, can be created and edited by an XML document editor 5 , for example a web browser having editing capabilities.
  • the browser 5 may be provided a form-based menu generated by the application server 12 ; the user of the browser 5 completes the form, and posts the form back to a prescribed URL at the web server 14 ; the application server 12 , in response to receiving the form having the prescribed URL, retrieves the information input to the posted form, and stores the retrieved information into an XML control document for storage in the document database 16 .
  • the application server 12 includes an XML parser 20 configured for parsing the XML documents stored in the XML document database 16 , for example the application-defining XML documents, the XML control documents, or the XML log documents.
  • the XML parser 20 also is configured for parsing the XML documents (i.e., “brownies”) stored in the registry 18 and configured for specifying the state and attributes for respective user sessions.
  • the application server 12 also includes a high speed interface 22 that establishes a high-speed connection between the application server 12 and the web server 14 .
  • the PHP hypertext processor includes a high-speed interface for Apache Web servers.
  • the application server 12 also includes a runtime environment 24 for execution of the parsed XML documents.
  • FIG. 2 is a diagram illustrating in detail the application runtime environment 24 of FIG. 1 , emphasizing the use of XML control documents to define application context.
  • the application runtime environment 24 executes the voice-enabled web applications 60 a and 60 b by first parsing an XML control document 62 that specifies the necessary application control parameters for execution of the voice-enabled web applications 60 a and 60 b .
  • the XML control document 62 provides basic runtime control defaults for the application runtime environment 24 .
  • the application runtime environment 24 may parse a second XML control file 64 that provides user-specific attributes overlying the basic control defaults specified in the XML control document 62 .
  • the application runtime environment 24 may parse a first XML control document 62 for basic runtime control defaults for the application runtime environment 24 , followed by parsing of a second XML control document 64 for user-specific attributes for a corresponding subscriber 66 .
  • the application runtime environment 24 obtains basic runtime control defaults and user-specific attributes from stored XML control documents, enabling the stored XML control documents to provide context information to the application runtime environment 24 .
  • the context information is then used by the application runtime apartment 24 for execution of the application-defining XML documents.
  • the runtime environment 24 parses the application-defining XML document for execution of the web application. As shown in FIG. 1 , the runtime environment 24 may selectively execute any one of a user interface operation 26 , a logic operation 28 , or a procedure call 30 as specified by the parsed application-defining XML document by executing a corresponding set of executable functions based on the rule set for the corresponding operation and based on the context information obtained by the application runtime environment 24 .
  • the application runtime environment 24 includes a tag implementation module 32 that implements the XML tags parsed by the XML parser 20 .
  • the tag implementation module 32 performs relatively low-level operations based on the obtained context information, for example dynamically generating an XML menu page using executable functions specified by a menu rule set in response to detecting a menu tag, performing a logical operation using executable functions specified by a logic rule set in response to a decision tag, or fetching an audio (.wav) file in response to detecting a sound tag.
  • the tag implementation module 32 implements the tag operations that are specified within the XML framework of the stored XML documents.
  • execution of the application operations by the runtime environment 24 is based on the control information from the parsed XML control documents, including basic runtime control defaults and/or user-specific attributes.
  • the application server also includes a log module 50 configured for generating an XML log document 70 for storage in the database 16 .
  • the log module 50 generates a log document for an event that occurred during execution of the voice-enabled web application in the application runtime environment, and generates XML tags that specify the type of event, the attribute of the event, and data for the event.
  • the application server 12 also includes a set of libraries 34 that may be implemented as dynamically linked libraries (DLLs) or application programming interface (API) libraries.
  • the libraries 34 enable the runtime environment 24 to implement the procedures 30 as specified by the appropriate XML document.
  • the application server 12 may issue a function call to one of a plurality of IP protocol compliant remote resources 40 , 42 , or 44 according to IMAP protocol, LDAP Protocol, or SMTP protocol, respectively.
  • the PHP hypertext processor includes executable routines capable of accessing the IMAP or LDAP services.
  • the application runtime environment 24 accesses the libraries 34 based on the context information obtained from the XML control documents.
  • FIG. 3 is a diagram illustrating a method of generating XML control documents and XML logging documents according to an embodiment of the present invention.
  • the disclosed method can be implemented by a processor which executes instructions stored on a computer readable medium.
  • FIG. 3 also illustrates the usage of XML control documents for execution of voice-enabled web applications by the application runtime environment 24 .
  • the method begins in step 80 , where the application runtime environment 24 executes a master configuration XML document in the document database 16 , that specifies all the necessary XML control documents needed for execution of voice-enabled web applications.
  • the master configuration XML document is generated by a user of the browser 5 , using an XML document editor tool, to specify all necessary XML control documents 62 .
  • the application runtime environment 24 then loads each XML control document 62 specified in the master configuration XML document in step 82 and parses the loaded XML control document to obtain the control parameters.
  • FIG. 4A is a diagram illustrating an exemplary XML control document 62 having application control parameters for execution of a voice-enabled web application.
  • the XML control document 62 includes XML tags that specify certain attributes of an application control parameter.
  • the XML control document 62 includes services tags 92 a , 92 b and 92 c that specify service location information (e.g., IP address, host name, and port) necessary for the application runtime environment 24 to access IMAP, LDAP, and text-to-speech services, respectively.
  • service location information e.g., IP address, host name, and port
  • the application runtime environment 24 upon loading the XML control documents in step 82 , obtains the necessary context information for execution of the application-defining XML documents in response to user requests. If desired, the application runtime environment 24 may also be configured for accessing user-specific attributes in step 84 : in this case, the application runtime environment 24 accesses the corresponding user-specific XML control document 64 in response to receiving a request from the subscriber to the voice-enabled web application to obtain the user-specific context information.
  • the XML control documents 62 can be considered a basic level of control information necessary for execution of a voice-enabled web application; the user-specific XML control documents 64 can be considered the next higher-level of control information necessary for execution of a voice-enabled web application for a corresponding subscriber, and the application-defining XML documents can be considered the highest level of abstraction with respect to execution of the voice-enabled web applications by the application runtime environment 24 .
  • Use of the XML control documents 62 and 64 provides additional flexibility for an application developer to develop voice-enabled web applications.
  • the application developer may use specific elements for searching the LDAP database 42 (e.g., “billing number” or “subscriber ID”), however the application developer may wish to remove the attribute names from the actual database so that the routine can still be implemented using another database system.
  • Use of an XML control file enables the application developer to specify the internal name for the search attribute, and the implemented name for the alternative database system.
  • use of the XML control documents 62 and/or 64 provides substantial flexibility enabling application developers to easily modify application behavior as necessary.
  • the application runtime environment 22 calls a logging function in the log module 50 in step 86 in response to parsing a prescribed XML tag, within one of the application-defining XML documents, that specifies a logging operation.
  • the log module 50 generates the XML log document 70 in step 88 based on the log entry parameters that may be specified in the application-defining XML documents, and stores the log document 70 in the document database 16 in step 90 .
  • FIG. 4B is a diagram illustrating a sample log file 70 generated by the log module 50 in step 88 .
  • the log file 70 includes a log file tag 72 that specifies a name attribute 74 and an application attribute 76 that specifies the application having generated the log file 70 during execution by the application runtime environment 24 .
  • the log file 72 also includes log entry tags 78 a and 78 b that specify a standard log entry 80 a and an error log entry 80 b , respectively.
  • Each log entry 80 includes a relevance tag 82 that specifies a log element type (e.g., BILLING, TRACE, NOTIFY) for the corresponding log entry 80 : in other words, the relevance tag 82 a specifies the log element types BILLING and TRACE, indicating that the log entry 80 a is relevant for billing information and trace information.
  • the log file 70 can be parsed by the XML parser 20 during execution of an analysis routine configured for locating log entries related to billing information, trace information, or the like. Consequently, the analysis routine can quickly identify XML log documents 70 that are relevant for the analysis under consideration.
  • the sample log file 70 also includes a log code XML tag 84 that specifies a prescribed log code based on a log code index.
  • the log code may be referenced to a log code index that is used by the application runtime environment 24 to correlate the log code to the corresponding event.
  • the sample log file 70 also includes additional tags 86 (e.g., PARAMETERS, TEXT) that specify the log element data.
  • the structure nature of the log file 70 in XML format enables the log data to be more highly structured, such that the log file 70 can be parsed during execution of an analysis application configured for reviewing log files for selected log data; the analysis application can determine whether data is relevant based on the corresponding relevance tags 82 , such that nonrelevant data can be ignored based on the corresponding XML tag.
  • logs may be written for both individual subscriber sessions and overall application information.
  • the logging tags are descriptive enough to understand the log information using any XML viewer, although a custom log parser can be written using standard XML parsing functions to gather and format the log information.
  • a particular feature of using XML documents for execution of voice-enabled web applications is that the application runtime environment 24 does not maintain a persistent state, but rather executes a prescribed application operation, sends media information back to the subscriber in the form of an HTML-based web page via the Web server 14 , and then returns to a restful state.
  • a user of the editor 5 can concurrently edit application control parameters for an XML control document 62 or 64 while conducting a subscriber session with the application server 12 .
  • the application server 12 merely performs an operation in the application runtime environment to respond to a subscriber request and then returns to a restful state, although the browser 5 provides the user the appearance that a voice-enabled web application and the editing of XML control documents can occur simultaneously.
  • the use of XML for defining the control documents and the application-defining XML documents is particularly effective in providing the appearance of real time execution, enabling a programmer to instantaneously check an input value for debugging purposes.

Abstract

A unified web-based voice messaging system provides voice application control between a web browser and an application server via an hypertext transport protocol (HTTP) connection on an Internet Protocol (IP) network. The application server executes the voice-enabled web application by runtime execution of a first set of extensible markup language (XML) documents that define the voice-enabled web application to be executed. In addition, control data for the voice-enabled web application, and log files that record events that occur during execution of the voice-enabled web application, are generated and processed using an XML tag format. A second set of XML documents specify application parameters and control information to be used by the application runtime environment for execution of the first set of XML documents. The second set of XML documents enables the application server to maintain a generic application runtime environment, enabling applications to share common control information and provide personalized services for subscribers based on respective user specific control attributes. The generation of log files using an XML tag format enables the log files to use a standardized XML structure that includes log element type, log element attribute, and log element data information. Hence, logs may be written for individual user sessions and overall application information, where the XML log tags may be of sufficient descriptive nature as to be understood using any XML viewer or analyzed by custom log parser configured for locating prescribed XML tags related to a corresponding operation, for example billing, trace routing, etc.

Description

    CROSS REFERENCE TO RELATED APPLICATIONS
  • This application claims priority from provisional application No. 60/152,316, filed Sep. 3, 1999, the disclosure of which is incorporated in its entirety herein by reference.
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention
  • The present invention relates to generating and executing voice enabled web applications within a hypertext markup language (HTML) and hypertext transport protocol (HTTP) framework.
  • 2. Description of the Related Art
  • The evolution of the public switched telephone network has resulted in a variety of voice applications and services that can be provided to individual subscribers and business subscribers. Such services include voice messaging systems that enable landline or wireless subscribers to record, playback, and forward voice mail messages. However, the ability to provide enhanced services to subscribers of the public switched telephone network is directly affected by the limitations of the public switched telephone network. In particular, the public switched telephone network operates according to a protocol that is specifically designed for the transport of voice signals; hence any modifications necessary to provide enhanced services can only be done by switch vendors that have sufficient know-how of the existing public switched telephone network infrastructure.
  • An open standards-based Internet protocol (IP) network, such as the World Wide Web, the Internet, or a corporate intranet, provides client-server type application services for clients by enabling the clients to request application services from remote servers using standardized protocols, for example hypertext transport protocol (HTTP). The web server application environment can include web server software, such as Apache, implemented on a computer system attached to the IP network. Web-based applications are composed of HTML pages, logic, and database functions. In addition, the web server may provide logging and monitoring capabilities.
  • In contrast to the public switched telephone network, the open standards-based IP network has enabled the proliferation of web based applications written by web application developers using ever increasing web development tools. Hence, the ever increasing popularity of web applications and web development tools provides substantial resources for application developers to develop robust web applications in a relatively short time and an economical manner. However, one important distinction between telephony-based applications and web-based applications is that telephony-based applications are state aware, whereas web-based applications are stateless.
  • In particular, telephony applications are state aware to ensure that prescribed operations between the telephony application servers and the user telephony devices occur in a prescribed sequence. For example, operations such as call processing operations, voicemail operations, call forwarding, etc., require that specific actions occur in a specific sequence to enable the multiple components of the public switched telephone network to complete the prescribed operations.
  • The web-based applications running in the IP network, however, are state-less and transient in nature, and do not maintain application state because application state requires an interactive communication between the browser and back-end database servers accessed by the browsers via a HTTP-based web server. However, an HTTP server provides asynchronous execution of HTML applications, where the web applications in response to reception of a specific request in the form of a URL from a client, instantiate a program configured for execution of the specific request, send an HTML web page back to the client, and terminate the program instance that executed the specific request. Storage of application state information in the form of a “cookie” is not practical because some users prefer not to enable cookies on their browser, and because the passing of a large amount of state information as would normally be required for voice-type applications between the browser and the web application would substantially reduce the bandwidth available for the client.
  • Commonly-assigned, copending application Ser. No. 09/480,485, filed Jan. 11, 2000, entitled Application Server Configured for Dynamically Generating Web Pages for Voice Enabled Web Applications (Attorney Docket 95-309), the disclosure of which is incorporated in its entirety herein by reference, discloses an application server that executes a voice-enabled web application by runtime execution of extensible markup language (XML) documents that define the voice-enabled web application to be executed. The application server includes a runtime environment that establishes an efficient, high-speed connection to a web server. The application server, in response to receiving a user request from a user, accesses a selected XML page that defines at least a part of the voice application to be executed for the user. The XML page may describe any one of a user interface such as dynamic generation of a menu of options or a prompt for a password, an application logic operation, or a function capability such as generating a function call to an external resource. The application server then parses the XML page, and executes the operation described by the XML page, for example dynamically generating an HTML page having voice application control content, or fetching another XML page to continue application processing. In addition, the application server may access an XML page that stores application state information, enabling the application server to be state-aware relative to the user interaction. Hence, the XML page, which can be written using a conventional editor or word processor, defines the application to be executed by the application server within the runtime environment, enabling voice enabled web applications to be generated and executed without the necessity of programming language environments.
  • Hence, web programmers can write voice-enabled web applications, using the teachings of the above-incorporated application Ser. No. 09/480,485, by writing XML pages that specify respective voice application operations to be performed. The XML documents have a distinct feature of having tags that allow a web browser (or other software) to identify information as being a specific kind or type of information.
  • One particular concern in the execution of voice-enabled web applications involves the logging of events that occur, during execution of the applications, into a log file and the ability to analyze the log file. Specifically, deployment of voice-enabled web applications in a commercial environment may require that the log file can be analyzed by various telephony management systems such as billing, monitoring, scripting, etc. However, existing methods of writing structured log files typically involves performing a “data dump” during an application operation with little or no structure to the data, rendering it difficult or impossible to effectively utilize the log data for voice enabled web applications. For example, conventional web servers have log facilities that are based on the logging of page or CGI information. The logging of the page or CGI information, however, is not sufficient for the management of voice enabled applications, since telephony management systems require more complex interaction, tracing, session reporting, and billing log information than generated by conventional web servers. Hence, the logging facilities of conventional web servers may prove inadequate to support the commercial deployment of voice-enabled web applications.
  • Another concern in the execution of voice-enabled web applications involves developing voice-enabled web applications using XML documents in a manner that provides sufficient flexibility for modification of the voice-enabled web applications with minimal changes to the XML documents defining the applications. In particular, care must be taken that the specificity of the XML documents defining the executable application do not limit the ability to easily modify the executable application.
  • SUMMARY OF THE INVENTION
  • There is a need for an arrangement that enables voice applications to be defined using extensible markup language (XML) documents in a manner that provides flexible control of the voice applications. In particular, there is a need for an arrangement that enables the modification of existing application parameters of a voice-enabled web application, or the addition of new application parameters, without affecting unmodified application parameters.
  • There is also a need for an arrangement that enables the generation of structured log files for voice-enabled web applications, where the structured log files can be analyzed using the structured nature of XML documents.
  • These and other needs are attained by the present invention, where control data for a voice-enabled web application, and log files that record events that occur during execution of the voice-enabled web application, are generated and processed using an XML tag format. The voice-enabled web application is defined, for example, using a first set of extensible markup language (XML) documents that define the voice application operations to be performed within the voice application. A second set of XML documents specify application parameters and control information to be used by the application runtime environment for execution of the first set of XML documents. The second set of XML documents enable the application parameters and control information to be stored separately from the first set of XML documents, eliminating the necessity for overly-specific XML documents to define a voice-enabled web application. In addition, the second set of XML documents enables the application server to maintain a generic application runtime environment, enabling applications to share common control information and provide personalized services for subscribers based on respective user specific control attributes.
  • The generation of log files using an XML tag format enables the log files to use a standardized XML structure that includes log element type, log element attribute, and log element data information. Hence, logs may be written for individual user sessions and overall application information, where the XML log tags may be of sufficient descriptive nature as to be understood using any XML viewer. Alternatively, the logs may be analyzed by custom log parser configured for locating prescribed XML tags related to a corresponding operation, for example billing, trace routing, etc. Hence, logging information can be more easily analyzed based on parsing the XML tags within the XML log documents.
  • One aspect of the present invention provides a method in an executable system for controlling execution of an executable voice application. The method includes storing an extensible markup language (XML) control document specifying at least one application control parameter for execution of the executable voice application in an application runtime environment generated by the executable system, and parsing the XML control document for execution of the executable voice application by the application runtime environment according to the at least one application control parameter.
  • Another aspect of the present invention provides a method in an executable system for generating a log file that specifies an occurrence of an event in response to execution of an executable voice application. The method includes generating an XML log document having a log entry that specifies the occurrence of the event in response to the execution of the executable voice application, the generating step including generating first, second and third XML tags specifying a log element type, a log element attribute, and a log element data for the event, respectively, and outputting the XML log document for storage on a tangible medium.
  • Additional advantages and novel features of the invention will be set forth in part in the description which follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned by practice of the invention. The advantages of the present invention may be realized and attained by means of instrumentalities and combinations particularly pointed out in the appended claims.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • Reference is made to the attached drawings, wherein elements having the same reference numeral designations represent like elements throughout and wherein:
  • FIG. 1 is a block diagram illustrating in a system configured for the generation and usage of XML control documents and XML log documents during execution of voice applications according to an embodiment of the present invention.
  • FIG. 2 is a diagram illustrating in further detail the application runtime environment of FIG. 1.
  • FIG. 3 is a flow diagram illustrating the method of controlling execution of an executable voice application and generating a log file according to an embodiment of the present invention.
  • FIGS. 4A and 4B are diagrams illustrating an XML control document and an XML log document, respectively.
  • BEST MODE FOR CARRYING OUT THE INVENTION
  • The ability to provide unified voice messaging services via an IP network enables existing web servers on the World Wide Web or in corporate intranets to support telephone applications on a scalable and economic platform. Moreover, the use of XML documents in defining executable voice applications enables use of open standards that permits web programmers to use forms-based web programming techniques to design and implement voice telephone applications, without the necessity of programming using conventional programming languages. In addition, the use of XML documents in defining executable voice applications provides a structured application tool that enables a user to easily customize a voice application by making relatively minor changes to the XML documents. Additional details regarding the use of XML documents to define voice-enabled web applications is described in commonly-assigned, copending application Ser. No. 09/501,516, filed Feb. 9, 2000, entitled Arrangement for Defining and Processing Voice-Enabled Web Applications Using Extensible Markup Language Documents (attorney docket 95-410), the disclosure of which is incorporated in its entirety herein by reference.
  • The disclosed embodiment is directed to an arrangement for controlling execution of an executable voice application, and generating a log file that specifies an occurrence of an event in response to execution of the executable voice application, using extensible markup language (XML) documents. The structured nature of XML documents enables an application developer to provide structured flexibility to voice-enabled web applications, enabling the voice-enabled web applications to be easily modified even during execution in an application runtime environment.
  • The disclosed embodiment further enhances the ability to provide a structured model for the commercial deployment of voice-enabled web applications by providing a method in which web application control data and log output can be created and processed using an XML tag format. In particular, the disclosed embodiment provides extremely flexible control of a voice-enabled web application by separating application control parameters, stored in XML control documents, from application operations such as user interface operations, logic operations, and/or function operations. The separation of application control parameters from application operations by storing the application control parameters in separate XML documents enables new application control parameters to be added without affecting existing versions of the voice-enabled web application. In addition, existing application control parameters can be deleted without affecting future versions of the voice-enabled web application.
  • Moreover, the use of XML control documents to specify application control parameters facilitates the sharing of common control information between multiple voice-enabled web applications, since each voice-enabled web application does not need to rely on the control parameters to be specified in a specific state-dependent sequence. In addition, application control parameters can be described using the XML tag format, enabling user-specific control attributes to be specified within the XML control documents. Hence, a given XML control document may either be shared among multiple voice-enabled web applications for basic control parameters, or may be generated for a specific subscriber to store subscriber-specific application control parameters.
  • The disclosed embodiment also provides an arrangement for generating XML log documents, wherein each XML log document has at least one log entry that specifies an occurrence of an event in response to execution of the executable voice application. The storage of a log entry in XML format enables the use of the XML structure to define XML tags that specify log element types, log element attributes, and log element data information. The logs may be written for both individual sessions and overall application information. Moreover, the XML log tags are sufficiently descriptive that any XML viewer can be used to understand the log information. Alternatively, custom log parsers can be easily written, using standard XML editor tools, to gather and format log information relevant to a given operation, for example operations monitored by telephony management systems such as billing, monitoring, scripting, call processing management, or traffic management.
  • FIG. 1 is a block diagram illustrating a system configured for executing applications defined by XML documents based on application control parameters specified in XML control documents, and generating XML log documents for analysis according to an embodiment of the present invention. The system 10 includes an application server 12, a Web server 14, an XML document database 16, and an XML document registry 18. The XML document database 16 is configured for storing the XML documents that define the applications, and the XML control documents that specify application control parameters for execution of the executable voice applications. The XML document registry 18 is configured for storing XML documents that specify application state information for respective user sessions. The web server 14, for example an Apache server, receives HTTP requests from a client 5 via the Internet and forwards to the client HTML-based web pages dynamically generated by the application server 12. In particular, the application server 12 is configured for executing applications defined by stored XML documents, also referred to generally as web applications, in response to the HTML requests from the client. The application server 12 is implemented as a server executing a PHP hypertext processor with XML parsing and processing capabilities, available open source at http://www.php.net.
  • Four types of XML documents are used by the application server 12 to execute web applications: menu documents, activity documents, decision documents, and “brownies”. The menu documents, activity documents, and decision documents are XML documents, stored in the document database 16, that define user interface and boolean-type application logic for a web application, hence are considered “executable” by the application server 12. The brownie document, stored in the registry 18, is an XML data record used to specify application state and user attribute information for a given XML application during a user session.
  • Hence, the XML documents define user interface logistics and tie services and application server events together in a meaningful way, forming a coherent application or sets of applications.
  • The document database 16 also is configured for storing XML control documents that specify application control parameters for execution of the voice-enabled Web applications by the application server 12. The document database 16 may also be used for storage of XML log documents that specify the occurrence of events in response to execution of the voice-enabled web applications by the application server 12. The XML control documents, as well as the application-defining documents, can be created and edited by an XML document editor 5, for example a web browser having editing capabilities. In particular, the browser 5 may be provided a form-based menu generated by the application server 12; the user of the browser 5 completes the form, and posts the form back to a prescribed URL at the web server 14; the application server 12, in response to receiving the form having the prescribed URL, retrieves the information input to the posted form, and stores the retrieved information into an XML control document for storage in the document database 16.
  • The application server 12 includes an XML parser 20 configured for parsing the XML documents stored in the XML document database 16, for example the application-defining XML documents, the XML control documents, or the XML log documents. The XML parser 20 also is configured for parsing the XML documents (i.e., “brownies”) stored in the registry 18 and configured for specifying the state and attributes for respective user sessions. The application server 12 also includes a high speed interface 22 that establishes a high-speed connection between the application server 12 and the web server 14. For example, the PHP hypertext processor includes a high-speed interface for Apache Web servers.
  • The application server 12 also includes a runtime environment 24 for execution of the parsed XML documents. FIG. 2 is a diagram illustrating in detail the application runtime environment 24 of FIG. 1, emphasizing the use of XML control documents to define application context. The application runtime environment 24 executes the voice-enabled web applications 60 a and 60 b by first parsing an XML control document 62 that specifies the necessary application control parameters for execution of the voice-enabled web applications 60 a and 60 b. Hence, the XML control document 62 provides basic runtime control defaults for the application runtime environment 24. In addition, the application runtime environment 24 may parse a second XML control file 64 that provides user-specific attributes overlying the basic control defaults specified in the XML control document 62. Hence, the application runtime environment 24 may parse a first XML control document 62 for basic runtime control defaults for the application runtime environment 24, followed by parsing of a second XML control document 64 for user-specific attributes for a corresponding subscriber 66. Hence, the application runtime environment 24 obtains basic runtime control defaults and user-specific attributes from stored XML control documents, enabling the stored XML control documents to provide context information to the application runtime environment 24. The context information is then used by the application runtime apartment 24 for execution of the application-defining XML documents.
  • The runtime environment 24 parses the application-defining XML document for execution of the web application. As shown in FIG. 1, the runtime environment 24 may selectively execute any one of a user interface operation 26, a logic operation 28, or a procedure call 30 as specified by the parsed application-defining XML document by executing a corresponding set of executable functions based on the rule set for the corresponding operation and based on the context information obtained by the application runtime environment 24. In particular, the application runtime environment 24 includes a tag implementation module 32 that implements the XML tags parsed by the XML parser 20. The tag implementation module 32 performs relatively low-level operations based on the obtained context information, for example dynamically generating an XML menu page using executable functions specified by a menu rule set in response to detecting a menu tag, performing a logical operation using executable functions specified by a logic rule set in response to a decision tag, or fetching an audio (.wav) file in response to detecting a sound tag. Hence, the tag implementation module 32 implements the tag operations that are specified within the XML framework of the stored XML documents. As described above, execution of the application operations by the runtime environment 24 is based on the control information from the parsed XML control documents, including basic runtime control defaults and/or user-specific attributes.
  • The application server also includes a log module 50 configured for generating an XML log document 70 for storage in the database 16. As described below, the log module 50 generates a log document for an event that occurred during execution of the voice-enabled web application in the application runtime environment, and generates XML tags that specify the type of event, the attribute of the event, and data for the event.
  • The application server 12 also includes a set of libraries 34 that may be implemented as dynamically linked libraries (DLLs) or application programming interface (API) libraries. The libraries 34 enable the runtime environment 24 to implement the procedures 30 as specified by the appropriate XML document. For example, the application server 12 may issue a function call to one of a plurality of IP protocol compliant remote resources 40, 42, or 44 according to IMAP protocol, LDAP Protocol, or SMTP protocol, respectively. For example, the PHP hypertext processor includes executable routines capable of accessing the IMAP or LDAP services. As described in further detail below, the application runtime environment 24 accesses the libraries 34 based on the context information obtained from the XML control documents.
  • FIG. 3 is a diagram illustrating a method of generating XML control documents and XML logging documents according to an embodiment of the present invention. The disclosed method can be implemented by a processor which executes instructions stored on a computer readable medium. FIG. 3 also illustrates the usage of XML control documents for execution of voice-enabled web applications by the application runtime environment 24. The method begins in step 80, where the application runtime environment 24 executes a master configuration XML document in the document database 16, that specifies all the necessary XML control documents needed for execution of voice-enabled web applications. As readily apparent from the foregoing, the master configuration XML document is generated by a user of the browser 5, using an XML document editor tool, to specify all necessary XML control documents 62. The application runtime environment 24 then loads each XML control document 62 specified in the master configuration XML document in step 82 and parses the loaded XML control document to obtain the control parameters.
  • FIG. 4A is a diagram illustrating an exemplary XML control document 62 having application control parameters for execution of a voice-enabled web application. The XML control document 62 includes XML tags that specify certain attributes of an application control parameter. For example, the XML control document 62 includes services tags 92 a, 92 b and 92 c that specify service location information (e.g., IP address, host name, and port) necessary for the application runtime environment 24 to access IMAP, LDAP, and text-to-speech services, respectively.
  • The application runtime environment 24, upon loading the XML control documents in step 82, obtains the necessary context information for execution of the application-defining XML documents in response to user requests. If desired, the application runtime environment 24 may also be configured for accessing user-specific attributes in step 84: in this case, the application runtime environment 24 accesses the corresponding user-specific XML control document 64 in response to receiving a request from the subscriber to the voice-enabled web application to obtain the user-specific context information. Hence, the XML control documents 62 can be considered a basic level of control information necessary for execution of a voice-enabled web application; the user-specific XML control documents 64 can be considered the next higher-level of control information necessary for execution of a voice-enabled web application for a corresponding subscriber, and the application-defining XML documents can be considered the highest level of abstraction with respect to execution of the voice-enabled web applications by the application runtime environment 24.
  • Use of the XML control documents 62 and 64 provides additional flexibility for an application developer to develop voice-enabled web applications. For example, the application developer may use specific elements for searching the LDAP database 42 (e.g., “billing number” or “subscriber ID”), however the application developer may wish to remove the attribute names from the actual database so that the routine can still be implemented using another database system. Use of an XML control file enables the application developer to specify the internal name for the search attribute, and the implemented name for the alternative database system. Hence, use of the XML control documents 62 and/or 64 provides substantial flexibility enabling application developers to easily modify application behavior as necessary.
  • During execution of the application-defining XML documents based on the XML control documents 62 and 64, the application runtime environment 22 calls a logging function in the log module 50 in step 86 in response to parsing a prescribed XML tag, within one of the application-defining XML documents, that specifies a logging operation. The log module 50 generates the XML log document 70 in step 88 based on the log entry parameters that may be specified in the application-defining XML documents, and stores the log document 70 in the document database 16 in step 90.
  • FIG. 4B is a diagram illustrating a sample log file 70 generated by the log module 50 in step 88. The log file 70 includes a log file tag 72 that specifies a name attribute 74 and an application attribute 76 that specifies the application having generated the log file 70 during execution by the application runtime environment 24. The log file 72 also includes log entry tags 78 a and 78 b that specify a standard log entry 80 a and an error log entry 80 b, respectively. Each log entry 80 includes a relevance tag 82 that specifies a log element type (e.g., BILLING, TRACE, NOTIFY) for the corresponding log entry 80: in other words, the relevance tag 82 a specifies the log element types BILLING and TRACE, indicating that the log entry 80 a is relevant for billing information and trace information. Hence, the log file 70 can be parsed by the XML parser 20 during execution of an analysis routine configured for locating log entries related to billing information, trace information, or the like. Consequently, the analysis routine can quickly identify XML log documents 70 that are relevant for the analysis under consideration.
  • The sample log file 70 also includes a log code XML tag 84 that specifies a prescribed log code based on a log code index. In particular, the log code may be referenced to a log code index that is used by the application runtime environment 24 to correlate the log code to the corresponding event. The sample log file 70 also includes additional tags 86 (e.g., PARAMETERS, TEXT) that specify the log element data. Hence, the structure nature of the log file 70 in XML format enables the log data to be more highly structured, such that the log file 70 can be parsed during execution of an analysis application configured for reviewing log files for selected log data; the analysis application can determine whether data is relevant based on the corresponding relevance tags 82, such that nonrelevant data can be ignored based on the corresponding XML tag. In addition, logs may be written for both individual subscriber sessions and overall application information. The logging tags are descriptive enough to understand the log information using any XML viewer, although a custom log parser can be written using standard XML parsing functions to gather and format the log information.
  • A particular feature of using XML documents for execution of voice-enabled web applications is that the application runtime environment 24 does not maintain a persistent state, but rather executes a prescribed application operation, sends media information back to the subscriber in the form of an HTML-based web page via the Web server 14, and then returns to a restful state. Hence, a user of the editor 5 can concurrently edit application control parameters for an XML control document 62 or 64 while conducting a subscriber session with the application server 12. In particular, the application server 12 merely performs an operation in the application runtime environment to respond to a subscriber request and then returns to a restful state, although the browser 5 provides the user the appearance that a voice-enabled web application and the editing of XML control documents can occur simultaneously. Hence, the use of XML for defining the control documents and the application-defining XML documents is particularly effective in providing the appearance of real time execution, enabling a programmer to instantaneously check an input value for debugging purposes.
  • While this invention has been described in connection with what is presently considered to be the most practical and preferred embodiment, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims.

Claims (19)

1-10. (canceled)
11. A method in an executable system for generating a log file that specifies an occurrence of an event in response to execution of an executable voice application, the method comprising:
generating an XML log document having a log entry that specifies the occurrence of the event in response to the execution of the executable voice application, the generating step including generating first, second and third XML tags specifying a log element type, a log element attribute, and a log element data for the event, respectively; and
outputting the XML log document for storage on a tangible medium.
12. The method of claim 11, wherein the step of generating the XML log document further includes generating the first XML tag to specify at least the log element type from a plurality of available log element types.
13. The method of claim 12, wherein the step of generating first XML tag includes specifying a selected group of the available log element types within the first XML tag, each log element type of the selected group of the available log element types specifying a corresponding relevance to the occurrence of the event.
14. The method of claim 11, wherein the generating step further includes generating a fourth XML tag that specifies the executable voice application that generated the log entry.
15. he method of claim 11, wherein the generating step further includes generating a fourth ,XML tag that specifies a log code that represents a prescribed event based on a log code index that correlates the log code to the prescribed event.
16-24. (canceled)
25. A system for executing a voice application, the system including:
a computer-based system configured for generating an XML log document having a log entry that specifies an occurrence of an event in response to execution of the executable voice application, the computer-based system supplying within the log entry first, second and third XML tags specifying a log element type, a log element attribute, and a log element data for the event, respectively; and
a storage medium for storage and retrieval of the XML log document.
26. The system of claim 25, wherein the computer-based system is configured for generating the first XML tag to specify at least the log element type from a plurality of available log element types.
27. The system of claim 26, wherein the computer-based system is configured for generating a group of the available log element types within the first XML tag, each log element type of the selected group of the available log element types specifying a corresponding relevance to the occurrence of the event.
28-37. (canceled)
38. A computer readable medium having stored thereon sequences of instructions for generating a log file that specifies an occurrence of an event in response to execution of an executable voice application by an executable system, the sequences of instructions including instructions for performing the steps of:
generating an XML log document having a log entry that specifies the occurrence of the event in response to the execution of the executable voice application, the generating step including generating first, second and third XML tags specifying a log element type, a log element attribute, and a log element data for the event, respectively; and outputting the XML log document for storage on a tangible medium.
39. The medium of claim 38, wherein the step of generating the XML log document further includes generating the first XML tag to specify at least the log element type from a plurality of available log element types.
40. The method of claim 39, wherein the step of generating first XML tag includes specifying a selected group of the available log element types within the first XML tag, each log element type of the selected group of the available log element types specifying a corresponding relevance to the occurrence of the event.
41. The medium of claim 38, wherein the generating step further includes generating a fourth XML tag that specifies the executable voice application that generated the log entry.
42. The medium of claim 38, wherein the generating step further includes generating a fourth XML tag that specifies a log code that represents a prescribed event based on a log code index that correlates the log code to the prescribed event.
43. A system for executing a voice application, the system including:
means for generating an XML log document having a log entry that specifies an occurrence of an event in response to execution of the executable voice application, the means for generating supplying within the log entry first, second and third XML tags specifying a log element type, a log element attribute, and a log element data for the event, respectively; and
a storage medium for storage and retrieval of the XML log document.
44. The system of claim 43, wherein the means for generating is configured for generating the first XML tag to specify at least the log element type from a plurality of available log element types.
45. The system of claim 44, wherein the means for generating is configured for generating a group of the available log element types within the first XML tag, each log element type of the selected group of the available log element types specifying a corresponding relevance to the occurrence of the event.
US11/151,315 1999-09-03 2005-06-14 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents Abandoned US20050240620A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/151,315 US20050240620A1 (en) 1999-09-03 2005-06-14 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15231699P 1999-09-03 1999-09-03
US09/514,642 US6952800B1 (en) 1999-09-03 2000-02-29 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents
US11/151,315 US20050240620A1 (en) 1999-09-03 2005-06-14 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US09/514,642 Division US6952800B1 (en) 1999-09-03 2000-02-29 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents

Publications (1)

Publication Number Publication Date
US20050240620A1 true US20050240620A1 (en) 2005-10-27

Family

ID=35005233

Family Applications (2)

Application Number Title Priority Date Filing Date
US09/514,642 Expired - Lifetime US6952800B1 (en) 1999-09-03 2000-02-29 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents
US11/151,315 Abandoned US20050240620A1 (en) 1999-09-03 2005-06-14 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/514,642 Expired - Lifetime US6952800B1 (en) 1999-09-03 2000-02-29 Arrangement for controlling and logging voice enabled web applications using extensible markup language documents

Country Status (1)

Country Link
US (2) US6952800B1 (en)

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070213980A1 (en) * 2000-06-12 2007-09-13 Danner Ryan A Apparatus and methods for providing network-based information suitable for audio output
WO2009010982A2 (en) * 2007-07-18 2009-01-22 Feldman, Moshe Software for a real-time infrastructure
US20090249250A1 (en) * 2008-04-01 2009-10-01 Oracle International Corporation Method and system for log file processing and generating a graphical user interface based thereon
US7971139B2 (en) 2003-08-06 2011-06-28 Microsoft Corporation Correlation, association, or correspondence of electronic forms
US7979856B2 (en) 2000-06-21 2011-07-12 Microsoft Corporation Network-based software extensions
US8001459B2 (en) * 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US8074217B2 (en) 2000-06-21 2011-12-06 Microsoft Corporation Methods and systems for delivering software
US8117552B2 (en) 2003-03-24 2012-02-14 Microsoft Corporation Incrementally designing electronic forms and hierarchical schemas
US20120120078A1 (en) * 2010-11-17 2012-05-17 Eric Hubbard Displaying system performance information
US8190708B1 (en) * 1999-10-22 2012-05-29 Nomadix, Inc. Gateway device having an XML interface and associated method
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US20140039898A1 (en) * 2012-08-02 2014-02-06 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US8892993B2 (en) 2003-08-01 2014-11-18 Microsoft Corporation Translation file
US8918729B2 (en) 2003-03-24 2014-12-23 Microsoft Corporation Designing electronic forms
US9229917B2 (en) 2003-03-28 2016-01-05 Microsoft Technology Licensing, Llc Electronic form user interfaces
US9292253B2 (en) 2012-08-02 2016-03-22 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US9292252B2 (en) 2012-08-02 2016-03-22 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US9400633B2 (en) 2012-08-02 2016-07-26 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
CN106528506A (en) * 2016-10-20 2017-03-22 广东小天才科技有限公司 XML tag-based data processing method and apparatus, and terminal device
US9781262B2 (en) 2012-08-02 2017-10-03 Nuance Communications, Inc. Methods and apparatus for voice-enabling a web application
US11295166B2 (en) * 2019-12-09 2022-04-05 Lg Electronics Inc. Artificial intelligence apparatus for generating training data for artificial intelligence model and method thereof
US11398222B2 (en) * 2019-07-22 2022-07-26 Lg Electronics Inc. Artificial intelligence apparatus and method for recognizing speech of user in consideration of user's application usage log

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577834B1 (en) * 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
AU2001283579A1 (en) * 2000-08-21 2002-03-04 Yahoo, Inc. Method and system of interpreting and presenting web content using a voice browser
DE50011222D1 (en) * 2000-12-04 2005-10-27 Siemens Ag Method for using a data processing system depending on an authorization, associated data processing system and associated program
US7379973B2 (en) * 2001-01-12 2008-05-27 Voicegenie Technologies, Inc. Computer-implemented voice application indexing web site
US7406306B2 (en) * 2001-03-20 2008-07-29 Verizon Business Global Llc Method for billing in a telecommunications network
US7945592B2 (en) * 2001-03-20 2011-05-17 Verizon Business Global Llc XML based transaction detail records
US8380840B2 (en) * 2001-12-17 2013-02-19 Verizon Business Global Llc Method for recording events in an IP network
US7546576B2 (en) * 2001-06-15 2009-06-09 Lightsurf Technology, Inc. Software framework for web-based applications
US7313824B1 (en) * 2001-07-13 2007-12-25 Liquid Machines, Inc. Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
US7111285B2 (en) * 2001-07-17 2006-09-19 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US7672295B1 (en) * 2003-11-12 2010-03-02 Tellme Networks, Inc. Method and system for design for run-time control of voice XML applications
US7697673B2 (en) 2003-11-17 2010-04-13 Apptera Inc. System for advertisement selection, placement and delivery within a multiple-tenant voice interaction service system
US7817784B2 (en) * 2003-12-23 2010-10-19 Apptera, Inc. System for managing voice files of a voice prompt server
US20050246174A1 (en) * 2004-04-28 2005-11-03 Degolia Richard C Method and system for presenting dynamic commercial content to clients interacting with a voice extensible markup language system
US20050283764A1 (en) * 2004-04-28 2005-12-22 Leo Chiu Method and apparatus for validating a voice application
US8412804B2 (en) * 2005-07-29 2013-04-02 Cisco Technology, Inc. Acquiring information in a communication network relative to a location
US20070025337A1 (en) * 2005-07-29 2007-02-01 Cisco Technology, Inc. Technique for providing ancillary information to an entity in a communications network
US20070027997A1 (en) * 2005-07-29 2007-02-01 Cisco Technology, Inc. Technique for translating location information
US8190134B2 (en) * 2005-08-01 2012-05-29 Cisco Technology, Inc. Technique for displaying information ancillary to a location of an entity in a communication network
US7627536B2 (en) * 2006-06-13 2009-12-01 Microsoft Corporation Dynamic interaction menus from natural language representations
EP1883011A1 (en) * 2006-07-21 2008-01-30 Software Ag System and methods for generating runtime messages
US7668120B2 (en) * 2007-02-06 2010-02-23 Cisco Technology, Inc. Virtual IP-based A/V inputs for universal media servers
US20090055186A1 (en) * 2007-08-23 2009-02-26 International Business Machines Corporation Method to voice id tag content to ease reading for visually impaired
US8108497B2 (en) * 2009-04-16 2012-01-31 Microsoft Corporation Selective enablement of runtime-based application behaviors
US8996384B2 (en) * 2009-10-30 2015-03-31 Vocollect, Inc. Transforming components of a web page to voice prompts
US8504907B2 (en) * 2011-03-07 2013-08-06 Ricoh Co., Ltd. Generating page and document logs for electronic documents
US10726069B2 (en) * 2017-08-18 2020-07-28 Sap Se Classification of log entry types

Citations (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625081A (en) * 1982-11-30 1986-11-25 Lotito Lawrence A Automated telephone voice service system
US4837798A (en) * 1986-06-02 1989-06-06 American Telephone And Telegraph Company Communication system having unified messaging
US5062147A (en) * 1987-04-27 1991-10-29 Votek Systems Inc. User programmable computer monitoring system
US5367609A (en) * 1990-10-30 1994-11-22 International Business Machines Corporation Editing compressed and decompressed voice information simultaneously
US5539886A (en) * 1992-11-10 1996-07-23 International Business Machines Corp. Call management in a collaborative working network
US5652866A (en) * 1994-04-05 1997-07-29 Ibm Corporation Collaborative working method and system for a telephone to interface with a collaborative working application
US5719942A (en) * 1995-01-24 1998-02-17 International Business Machines Corp. System and method for establishing a communication channel over a heterogeneous network between a source node and a destination node
US6154465A (en) * 1998-10-06 2000-11-28 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6167448A (en) * 1998-06-11 2000-12-26 Compaq Computer Corporation Management event notification system using event notification messages written using a markup language
US6178453B1 (en) * 1997-02-18 2001-01-23 Netspeak Corporation Virtual circuit switching architecture
US6185535B1 (en) * 1998-10-16 2001-02-06 Telefonaktiebolaget Lm Ericsson (Publ) Voice control of a user interface to service applications
US6266340B1 (en) * 1998-04-03 2001-07-24 Vertical Networks, Inc. Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus
US6269336B1 (en) * 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6314402B1 (en) * 1999-04-23 2001-11-06 Nuance Communications Method and apparatus for creating modifiable and combinable speech objects for acquiring information from a speaker in an interactive voice response system
US6327363B1 (en) * 1998-04-17 2001-12-04 Mci Worldcom, Inc. Method and system for automated customer services
US20020000464A1 (en) * 1999-01-29 2002-01-03 Jon R Ramberg Automatic data collection device that intelligently switches data based on data type
US6343074B1 (en) * 1998-09-29 2002-01-29 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6366578B1 (en) * 1998-04-03 2002-04-02 Verticle Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for implementing language capabilities using the same
US6476833B1 (en) * 1999-03-30 2002-11-05 Koninklijke Philips Electronics N.V. Method and apparatus for controlling browser functionality in the context of an application
US6546419B1 (en) * 1998-05-07 2003-04-08 Richard Humpleman Method and apparatus for user and device command and control in a network
US6584466B1 (en) * 1999-04-07 2003-06-24 Critical Path, Inc. Internet document management system and methods
US6636831B1 (en) * 1999-04-09 2003-10-21 Inroad, Inc. System and process for voice-controlled information retrieval

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4625081A (en) * 1982-11-30 1986-11-25 Lotito Lawrence A Automated telephone voice service system
US4837798A (en) * 1986-06-02 1989-06-06 American Telephone And Telegraph Company Communication system having unified messaging
US5062147A (en) * 1987-04-27 1991-10-29 Votek Systems Inc. User programmable computer monitoring system
US5367609A (en) * 1990-10-30 1994-11-22 International Business Machines Corporation Editing compressed and decompressed voice information simultaneously
US5539886A (en) * 1992-11-10 1996-07-23 International Business Machines Corp. Call management in a collaborative working network
US5652866A (en) * 1994-04-05 1997-07-29 Ibm Corporation Collaborative working method and system for a telephone to interface with a collaborative working application
US5719942A (en) * 1995-01-24 1998-02-17 International Business Machines Corp. System and method for establishing a communication channel over a heterogeneous network between a source node and a destination node
US6178453B1 (en) * 1997-02-18 2001-01-23 Netspeak Corporation Virtual circuit switching architecture
US6366578B1 (en) * 1998-04-03 2002-04-02 Verticle Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligently bridged TDM and packet buses and methods for implementing language capabilities using the same
US6633848B1 (en) * 1998-04-03 2003-10-14 Vertical Networks, Inc. Prompt management method supporting multiple languages in a system having a multi-bus structure and controlled by remotely generated commands
US6266340B1 (en) * 1998-04-03 2001-07-24 Vertical Networks, Inc. Systems and methods for multiple voice data communication which includes interface cards including configurable clocks that are dynamically coupled to a TDS bus
US6327363B1 (en) * 1998-04-17 2001-12-04 Mci Worldcom, Inc. Method and system for automated customer services
US6546419B1 (en) * 1998-05-07 2003-04-08 Richard Humpleman Method and apparatus for user and device command and control in a network
US6167448A (en) * 1998-06-11 2000-12-26 Compaq Computer Corporation Management event notification system using event notification messages written using a markup language
US6269336B1 (en) * 1998-07-24 2001-07-31 Motorola, Inc. Voice browser for interactive services and methods thereof
US6343074B1 (en) * 1998-09-29 2002-01-29 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6154465A (en) * 1998-10-06 2000-11-28 Vertical Networks, Inc. Systems and methods for multiple mode voice and data communications using intelligenty bridged TDM and packet buses and methods for performing telephony and data functions using the same
US6185535B1 (en) * 1998-10-16 2001-02-06 Telefonaktiebolaget Lm Ericsson (Publ) Voice control of a user interface to service applications
US20020000464A1 (en) * 1999-01-29 2002-01-03 Jon R Ramberg Automatic data collection device that intelligently switches data based on data type
US6476833B1 (en) * 1999-03-30 2002-11-05 Koninklijke Philips Electronics N.V. Method and apparatus for controlling browser functionality in the context of an application
US6584466B1 (en) * 1999-04-07 2003-06-24 Critical Path, Inc. Internet document management system and methods
US6636831B1 (en) * 1999-04-09 2003-10-21 Inroad, Inc. System and process for voice-controlled information retrieval
US6314402B1 (en) * 1999-04-23 2001-11-06 Nuance Communications Method and apparatus for creating modifiable and combinable speech objects for acquiring information from a speaker in an interactive voice response system

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120278494A1 (en) * 1999-10-22 2012-11-01 Nomadix, Inc. Systems and methods of communicating using xml
US8516083B2 (en) * 1999-10-22 2013-08-20 Nomadix, Inc. Systems and methods of communicating using XML
US8190708B1 (en) * 1999-10-22 2012-05-29 Nomadix, Inc. Gateway device having an XML interface and associated method
US8032577B2 (en) * 2000-06-12 2011-10-04 Cisco Technology, Inc. Apparatus and methods for providing network-based information suitable for audio output
US20070213980A1 (en) * 2000-06-12 2007-09-13 Danner Ryan A Apparatus and methods for providing network-based information suitable for audio output
US7979856B2 (en) 2000-06-21 2011-07-12 Microsoft Corporation Network-based software extensions
US8074217B2 (en) 2000-06-21 2011-12-06 Microsoft Corporation Methods and systems for delivering software
US8918729B2 (en) 2003-03-24 2014-12-23 Microsoft Corporation Designing electronic forms
US8117552B2 (en) 2003-03-24 2012-02-14 Microsoft Corporation Incrementally designing electronic forms and hierarchical schemas
US9229917B2 (en) 2003-03-28 2016-01-05 Microsoft Technology Licensing, Llc Electronic form user interfaces
US9239821B2 (en) 2003-08-01 2016-01-19 Microsoft Technology Licensing, Llc Translation file
US8892993B2 (en) 2003-08-01 2014-11-18 Microsoft Corporation Translation file
US7971139B2 (en) 2003-08-06 2011-06-28 Microsoft Corporation Correlation, association, or correspondence of electronic forms
US9268760B2 (en) 2003-08-06 2016-02-23 Microsoft Technology Licensing, Llc Correlation, association, or correspondence of electronic forms
US8429522B2 (en) 2003-08-06 2013-04-23 Microsoft Corporation Correlation, association, or correspondence of electronic forms
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US8001459B2 (en) * 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US9210234B2 (en) 2005-12-05 2015-12-08 Microsoft Technology Licensing, Llc Enabling electronic documents for limited-capability computing devices
WO2009010982A3 (en) * 2007-07-18 2010-03-04 Feldman, Moshe Software for a real-time infrastructure
WO2009010982A2 (en) * 2007-07-18 2009-01-22 Feldman, Moshe Software for a real-time infrastructure
US9098626B2 (en) * 2008-04-01 2015-08-04 Oracle International Corporation Method and system for log file processing and generating a graphical user interface based thereon
US20090249250A1 (en) * 2008-04-01 2009-10-01 Oracle International Corporation Method and system for log file processing and generating a graphical user interface based thereon
CN103180833A (en) * 2010-11-17 2013-06-26 惠普发展公司,有限责任合伙企业 Displaying system performance information
US20120120078A1 (en) * 2010-11-17 2012-05-17 Eric Hubbard Displaying system performance information
US8842119B2 (en) * 2010-11-17 2014-09-23 Hewlett-Packard Development Company, L.P. Displaying system performance information
US20140039898A1 (en) * 2012-08-02 2014-02-06 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US9292253B2 (en) 2012-08-02 2016-03-22 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US9292252B2 (en) 2012-08-02 2016-03-22 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US9400633B2 (en) 2012-08-02 2016-07-26 Nuance Communications, Inc. Methods and apparatus for voiced-enabling a web application
US9781262B2 (en) 2012-08-02 2017-10-03 Nuance Communications, Inc. Methods and apparatus for voice-enabling a web application
US10157612B2 (en) * 2012-08-02 2018-12-18 Nuance Communications, Inc. Methods and apparatus for voice-enabling a web application
CN106528506A (en) * 2016-10-20 2017-03-22 广东小天才科技有限公司 XML tag-based data processing method and apparatus, and terminal device
US11398222B2 (en) * 2019-07-22 2022-07-26 Lg Electronics Inc. Artificial intelligence apparatus and method for recognizing speech of user in consideration of user's application usage log
US11295166B2 (en) * 2019-12-09 2022-04-05 Lg Electronics Inc. Artificial intelligence apparatus for generating training data for artificial intelligence model and method thereof
US11823020B2 (en) 2019-12-09 2023-11-21 Lg Electronics Inc. Artificial intelligence apparatus for generating training data for artificial intelligence model and method thereof

Also Published As

Publication number Publication date
US6952800B1 (en) 2005-10-04

Similar Documents

Publication Publication Date Title
US6952800B1 (en) Arrangement for controlling and logging voice enabled web applications using extensible markup language documents
US6954896B1 (en) Browser-based arrangement for developing voice enabled web applications using extensible markup language documents
US8326632B2 (en) Application server providing personalized voice enabled web application services using extensible markup language documents
US6766298B1 (en) Application server configured for dynamically generating web pages for voice enabled web applications
US6490564B1 (en) Arrangement for defining and processing voice enabled web applications using extensible markup language documents
US6779154B1 (en) Arrangement for reversibly converting extensible markup language documents to hypertext markup language documents
US7346840B1 (en) Application server configured for dynamically generating web forms based on extensible markup language documents and retrieved subscriber data
US6857008B1 (en) Arrangement for accessing an IP-based messaging server by telephone for management of stored messages
US8499024B2 (en) Delivering voice portal services using an XML voice-enabled web server
US8032577B2 (en) Apparatus and methods for providing network-based information suitable for audio output
US6697964B1 (en) HTTP-based load generator for testing an application server configured for dynamically generating web pages for voice enabled web applications
US6990514B1 (en) Unified messaging system using web based application server for management of messages using standardized servers
US7555536B2 (en) Apparatus and methods for providing an audibly controlled user interface for audio-based communication devices
US7490167B2 (en) System and method for platform and language-independent development and delivery of page-based content
EP1263202A2 (en) Method and apparatus for incorporating application logic into a voice response system
US20060140359A1 (en) Arrangement in a local computer for sending voice messages to a unified communications system
WO2010129056A2 (en) System and method for speech processing and speech to text
US7502993B1 (en) Calling service using voice enabled web based application server
US20100229081A1 (en) Method for Providing a Navigation Element in an Application
US20020191756A1 (en) Method and system of voiceXML interpreting
US20060041841A1 (en) Apparatus and method for contacting a customer support line on customer's behalf and having a customer support representative contact the customer
CN109491802A (en) A kind of method and adapter of the RESTFul network request based on Unity
US6847999B1 (en) Application server for self-documenting voice enabled web applications defined using extensible markup language documents
CN113553260B (en) Test method, test apparatus, device, and medium
US7698642B1 (en) Method and apparatus for generating prompts

Legal Events

Date Code Title Description
AS Assignment

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DANNER, RYAN ALAN;MARTIN, STEVEN J.;REEL/FRAME:016691/0816

Effective date: 20000531

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION