DE69213436T2 - INTEGRATED APPLICATION CONTROLLED CALL PROCESSING AND MESSAGE SYSTEM - Google Patents
INTEGRATED APPLICATION CONTROLLED CALL PROCESSING AND MESSAGE SYSTEMInfo
- Publication number
- DE69213436T2 DE69213436T2 DE69213436T DE69213436T DE69213436T2 DE 69213436 T2 DE69213436 T2 DE 69213436T2 DE 69213436 T DE69213436 T DE 69213436T DE 69213436 T DE69213436 T DE 69213436T DE 69213436 T2 DE69213436 T2 DE 69213436T2
- Authority
- DE
- Germany
- Prior art keywords
- message
- call
- processing
- caller
- command
- 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.)
- Expired - Lifetime
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04Q—SELECTING
- H04Q3/00—Selecting arrangements
- H04Q3/58—Arrangements providing connection between main exchange and sub-exchange or satellite
- H04Q3/62—Arrangements providing connection between main exchange and sub-exchange or satellite for connecting to private branch exchanges
- H04Q3/622—Circuit arrangements therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/487—Arrangements for providing information services, e.g. recorded voice services or time announcements
- H04M3/493—Interactive information services, e.g. directory enquiries ; Arrangements therefor, e.g. interactive voice response [IVR] systems or voice portals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/527—Centralised call answering arrangements not requiring operator intervention
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M3/00—Automatic or semi-automatic exchanges
- H04M3/42—Systems providing special services or facilities to subscribers
- H04M3/50—Centralised arrangements for answering calls; Centralised arrangements for recording messages for absent or busy subscribers ; Centralised arrangements for recording messages
- H04M3/53—Centralised arrangements for recording incoming messages, i.e. mailbox systems
- H04M3/533—Voice mail systems
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Astronomy & Astrophysics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Telephonic Communication Services (AREA)
- Exchange Systems With Centralized Control (AREA)
- Sub-Exchange Stations And Push- Button Telephones (AREA)
Description
Die vorliegende Erfindung betrifft das Gebiet der Anrufverarbeitungs- und Nachrichtensysteme. Insbesondere betrifft die vorliegende Erfindung Anrufverarbeitungs- und Nachrichtensysteme für ein Telefonnetz.The present invention relates to the field of call processing and messaging systems. In particular, the present invention relates to call processing and messaging systems for a telephone network.
Ein wichtiger Aspekt der täglichen Geschäftsvorgänge nahezu aller Unternehmen oder Organisationen ist die Fähigkeit, eingehende Telefongespräche auf effiziente und rasche Weise zu handhaben. Eine hinreichend bekannte Möglichkeit der Handhabung einer Vielzahl von Eingangstelefonleitungen ist die Verwendung einer Nebenstellenanlage (Private Branch Exchange - PBX) oder einer Fernsprechvermittlung (Central Exchange - Centrex). Eine PBX oder Centrex ist ein Fernsprech-Vermittlungssystem einer Organisation, das mit einer Vielzahl von Eingangs- und Ausgangsverbindungsleitungen und einer Vielzahl von Telefonapparaten in den Geschäftsräumen der Organisation gekoppelt sein kann. PBX- oder Centrex- Systeme stellen verschiedene Funktionen bereit, wie beispielsweise das Schalten von Anrufen von den Eingangsverbindungsleitungen zu einer der Nebenstellen, Schalten von Anrufen zwischen zwei Nebenstellen und Schalten der Anrufe zwischen Nebenstellen und Ausgangsverbindungsleitungen. Zahlreiche PBX- und Centrex-Systeme sind hinreichend bekannt und handelsüblich erhältlich.An important aspect of the daily operations of almost all businesses or organizations is the ability to handle incoming telephone calls in an efficient and rapid manner. One well-known way of handling a large number of incoming telephone lines is to use a Private Branch Exchange (PBX) or a Central Exchange (Centrex). A PBX or Centrex is an organization's telephone switching system that may be coupled to a large number of incoming and outgoing trunks and a large number of telephone sets in the organization's premises. PBX or Centrex systems provide various functions such as switching calls from the incoming trunks to one of the extensions, switching calls between two extensions, and switching calls between extensions and outgoing trunks. Numerous PBX and Centrex systems are well-known and commercially available.
Es sind eine Reihe von dem Stand der Technik entsprechenden Anrufverarbeitungs- und Sprachnachrichtensystemen bekannt und handelsüblich erhältlich, die mit einer PBX oder Centrex gekoppelt und dazu verwendet werden können, die Beantwortung eingehender Anrufe vom externen Telefonnetz und die Annahme von Nachrichten, wenn die Nebenstellen nicht antworten, zu automatisieren. Solche Sprachnachrichtensysteme enthalten Merkmale wie die Aufzeichnung von Sprachnachrichten für Benutzer in sog. "Mailboxen" der Benutzer. Die Benutzer können auf solche Sprachnachrichtensysteme zugreifen, indem sie von PBX-Nebenstellen oder vom Telefonnetz über Eingangsverbindungsleitungen anrufen.A number of state of the art call processing and voice messaging systems are known and commercially available which can be coupled with a PBX or Centrex and used to automate the answering of incoming calls from the external telephone network and the acceptance of messages when extensions do not answer. Such voice messaging systems include features such as the recording of voice messages for users in so-called user "mailboxes". The Users can access such voice messaging systems by calling from PBX extensions or from the telephone network via inbound trunk lines.
Diese dem Stand der Technik entsprechenden Systeme werden in vier Haupttypen von Systemen eingeteilt: 1) Anrufverarbeitungssysteme, die manchmal als Systeme mit automatisiertem Telephonisten zur Weiterleitung eingehender Anrufe an eine Nebenstelle bezeichnet werden, 2) Anrufverarbeitungssysteme, die im allgemeinen als Sprachnachrichtensysteme für die Abwicklung von Anrufen, die nicht von einer Nebenstelle angenommen werden, bezeichnet werden, 3) Zweiweg-Sprachnachrichtensysteme oder Sprachspeicherungsund Übermittlungssysteme für Sprachnachrichten aus Mailboxen mit festen Adressen an einen Anrufer und 4) interaktive Sprachausgabesysteme, die Daten aus einer Informationsdatenbasis als-Antwort auf eine Anforderung seitens des Anrufers abrufen und einem Anrufer Sprachnachrichten übermitteln.These state-of-the-art systems are classified into four main types of systems: 1) call processing systems, sometimes referred to as automated attendant systems for routing incoming calls to an extension, 2) call processing systems, generally referred to as voice messaging systems for handling calls not answered by an extension, 3) two-way voice messaging systems or voice storage and delivery systems for delivering voice messages from mailboxes with fixed addresses to a caller, and 4) interactive voice response systems which retrieve data from an information database in response to a caller request and deliver voice messages to a caller.
Bei der ersten Kategorie der dem Stand der Technik entsprechenden Systeme beantwortet das System mit automatisiertem Telefonisten eingehende externe Anrufe, indem es die PBX oder Centrex anweist, die eingehenden Anrufe an eine Gruppe von Nebenstellen zu leiten. Sprach-Ports bzw. -Anschlüsse des Systems sind mit dieser Gruppe von Nebenstellen gekoppelt und erscheinen für die PBX oder Centrex einfach als Telefonapparate mit einer Leitung. Typischerweise wird das System mit automatisiertem Telefonisten einen an es gerichteten Anruf beantworten und eine vorher aufgezeichnete Sprachnachricht bereitstellen, die den Anrufer auffordert, die Nummer der Nebenstelle einzugeben, mit der er/sie verbunden werden möchte. Abhängig von dem spezifischen System mit automatisiertem Telefonisten kann dem Anrufer die Option angeboten werden, zur PBX- oder Centrex- Vermittlungskraft weitergeleitet zu werden. Beispiele für solche Systeme mit automatisiertem Telefonisten sind u.a. Dytel Inc. sowie ein Anrufverarbeitungs- und Sprachnachrichtensystem mit der Bezeichnung Direct Access Link (D.I.A.L.), das vom Inhaber der vorliegenden Erfindung hergestellt wird.In the first category of prior art systems, the automated attendant system answers incoming external calls by instructing the PBX or Centrex to route the incoming calls to a group of extensions. Voice ports of the system are coupled to this group of extensions and appear to the PBX or Centrex simply as single-line telephone sets. Typically, the automated attendant system will answer a call directed to it and provide a pre-recorded voice message prompting the caller to enter the number of the extension to which he/she wishes to be connected. Depending on the specific automated attendant system, the caller may be offered the option of being routed to the PBX or Centrex operator. Examples of such automated attendant systems include Dytel Inc. and a call processing and voice messaging system called Direct Access Link. (DIAL) manufactured by the assignee of the present invention.
Die zweite Kategorie der dem Stand der Technik entsprechenden Systeme enthält eine wichtige Sprachnachrichtenfunktion zur Behandlung von Anrufen, die nicht erfolgreich mit der ursprünglich gewünschten Nebenstelle verbunden werden konnten (die Nebenstelle war belegt, hat nicht geantwortet oder war bewußt in einen Modus versetzt worden, in dem sie keine Anrufe annimmt). Eine derartige Funktion kann bei bekannten Sprachnachrichtensystemen verwirklicht werden, indem die PBX oder Centrex angewiesen wird, alle solchen nicht beantworteten Anrufe an eine Gruppe von Nebenstellen weiterzuleiten, die mit den Sprach-Ports des Sprachnachrichtensystems gekoppelt sind. Das Sprachnachrichtensystem kann dann die nicht erledigten Anrufe beantworten. Dem Fachmann sind verschiedene Verfahren bekannt, mittels der die PBX- oder Centrex-Systeme dem Sprachnachrichtensystem Informationen hinsichtlich der Identität des Anrufers und des Angerufenen bereitstellen. Siehe U.S.- Patentschrift Nr. 4,926,462, Ladd et al. Je nach dem spezifischen Sprachnachrichtensystem kann dem Anrufer ermöglicht werden, eine Sprachnachricht zu hinterlassen oder eine andere Nebenstelle anzurufen. Bekannte dem Stand der Technik entsprechende Systeme dieser Art sind u.a. ein von Digital Sound, Inc., Octel, Inc., AT&T, Inc. hergestelltes Anrufverarbeitungssystem und ein Anrufverarbeitungs- und Sprachnachrichtensystem mit der Bezeichnung Direct Access Link (D.I.A.L.), das vom Inhaber der vorliegenden Erfindung hergestellt wird.The second category of prior art systems includes an important voice messaging function for handling calls that could not be successfully connected to the originally intended extension (the extension was busy, did not answer, or was deliberately placed in a non-call-taking mode). Such a function can be accomplished in known voice messaging systems by instructing the PBX or Centrex to forward all such unanswered calls to a group of extensions coupled to the voice ports of the voice messaging system. The voice messaging system can then answer the unanswered calls. Various methods are known to those skilled in the art by which the PBX or Centrex systems provide information to the voice messaging system regarding the identity of the caller and the called party. See U.S. Patent No. 4,926,462, Ladd et al. Depending on the specific voice messaging system, the caller may be allowed to leave a voice message or call another extension. Known prior art systems of this type include a call processing system manufactured by Digital Sound, Inc., Octel, Inc., AT&T, Inc., and a call processing and voice messaging system called Direct Access Link (D.I.A.L.) manufactured by the assignee of the present invention.
Die dritte Kategorie der dem Stand der Technik entsprechenden Systeme enthält Zweiweg-Sprachnachrichtensysteme zur Speicherung und Übermittlung von Sprachnachrichten aus zuvor zugeordneten Mailboxen mit festen Adressen zwischen Benutzern solcher Systeme. Jedem Benutzer eines solchen Zweiweg-Sprachnachrichtensystems wird eine "Sprach- Mailbox" zugeordnet, die er/sie zum Aufzeichnen und Senden von Nachrichten an andere Benutzer und zum Abhören der von anderen Benutzern empfangenen Nachrichten verwendet. Die Mailboxen mit fester Adresse werden typischerweise dann im Sprachnachrichtensystem konfiguriert und installiert, wenn dem System ein neuer "Benutzer" hinzugefügt wird. Ein solches dem Stand der Technik entsprechendes System ist in der U.S.-Patentschrift Nr. 4,602,129, Matthews et al. beschrieben.The third category of prior art systems includes two-way voice messaging systems for storing and transmitting voice messages from pre-assigned mailboxes with fixed addresses between users of such systems. Each user of such a two-way voice messaging system is assigned a "voice mailbox" which he/she can use to record and send messages to other users and to listen to messages sent by other users. The fixed address mailboxes are typically configured and installed in the voice messaging system when a new "user" is added to the system. One such prior art system is described in U.S. Patent No. 4,602,129, Matthews et al.
Die vierte Kategorie der dem Stand der Technik entsprechenden Systeme umfaßt interaktive Sprachausgabesysteme zum Abrufen von Daten aus einer Informationsdatenbasis als Antwort auf eine Anforderung seitens des Anrufers. Die abgerufenen Daten werden dann in eine hörbare Form gewandelt und dem Anruf er als Nachricht übermittelt. Ein System nach dem Stand der Technik kann zum Beispiel von einem Anrufer dazu verwendet werden, hörbar einen Kontostand zu empfangen. Diese interaktiven Sprachausgabesysteme sind typischerweise auf spezifische Anwendungsfälle begrenzt, in denen Transaktionen zwischen einem Anrufer und dem System äußerst vorhersehbar sind. Ein solches interaktives Sprachausgabesystem wird von Intervoice Inc., Dallas, Texas, hergestellt.The fourth category of prior art systems includes interactive voice response systems for retrieving data from an information database in response to a request from the caller. The retrieved data is then converted into an audible form and delivered to the caller as a message. For example, a prior art system may be used by a caller to audibly receive an account balance. These interactive voice response systems are typically limited to specific use cases where transactions between a caller and the system are highly predictable. One such interactive voice response system is manufactured by Intervoice Inc., Dallas, Texas.
Bei diesen dem Stand der Technik entsprechenden Vorgehensweisen für ein System zur Anruf- und Sprachnachrichtenverarbeitung oder zur interaktiven Sprachausgabe haben sich verschiedene Probleme ergeben. Der Hauptnachteil solcher Anruf- und Sprachnachrichtenverarbeitungssysteme ist ihr Mangel an Flexibilität oder im Falle eines interaktiven Sprachausgabesystems die Unfähigkeit, Anwendungen zu entwickeln, die sich die Möglichkeiten eines Anrufverarbeitungs- und Sprachnachrichtensystems zunutze machen. Solche Systeme sind in ihrer Fähigkeit, an die verschiedenen Anwendungen angepaßt zu werden, begrenzt, für die ein Anrufverarbeitungs- und Sprachnachrichtensystem verwendet werden könnte. So kann beispielsweise das dem Stand der Technik entsprechende System mit automatisiertem Telefonisten dahingehend verbessert werden, daß es eine Einrichtung bereitstellt, die einen Anruf abhängig von zahlreichen anwendungs- und anruferspezifischer Bedingungen an verschiedene Nebenstellen leitet. Solche Bedingungen beinhalten beispielsweise die Identität des Anrufers, den Kontostand des Anrufers sowie vielfältige andere Bedingungen, die für eine bestimmte Anwendung spezifisch sind. Werden Anrufe für eine gewünschte Nebenstelle nicht erledigt, kann gespeicherte anwendungsbezogene Sprachinformationen, wie kundenspezifische Anweisungen, an den Angerufenen übermittelt werden. Die dem Stand der Technik entsprechenden Systeme sind für die nicht vorhersehbaren und sich ändernden Bedürfnisse dieser verschiedenen Anwendungen für die Anrufverarbeitung ungeeignet.Several problems have arisen with these prior art approaches to a call and voice message processing or interactive voice response system. The main disadvantage of such call and voice message processing systems is their lack of flexibility or, in the case of an interactive voice response system, the inability to develop applications that take advantage of the capabilities of a call processing and voice message system. Such systems are limited in their ability to be adapted to the various applications for which a call processing and voice message system could be used. For example, the prior art automated attendant system can be improved to provide a facility that can route a call depending on numerous application-specific and caller-specific conditions to different extensions. Such conditions include, for example, the identity of the caller, the caller's account balance, and a variety of other conditions specific to a particular application. If calls for a desired extension are not completed, stored application-related voice information, such as customized instructions, can be transmitted to the called party. State-of-the-art systems are inadequate for the unpredictable and changing needs of these various call processing applications.
Für eine Organisation ist es oft sinnvoll, eine einzige Telefonnummer für eingehende Anrufe zu haben, über die allgemeine Kundenberatung oder allgemeine Informationen erteilt werden. Es wäre wünschenswert, solche Anrufe flexibler abzuwickeln. Bei dem Stand der Technik entsprechenden Systemen würden eingehende Anrufe an eine solche Telefonnummer für allgemeine Informationen an die der Telefonleitung zugeordnete feste Adresse geleitet werden, die dann an einen verfügbaren (d.h. nicht belegt) Teilnehmer aus der Gruppe der angerufenen Teilnehmer weitergeleitet würden. Somit würde für jeden angerufenen Teilnehmer aus der Gruppe angerufener Teilnehmer eine feste Mailbox dazu verwendet werden, Nachrichten für eine allgemeine Beratungsleitung auf umständliche Weise zu speichern. Anrufer, die dem Stand der Technik entsprechende Systeme verwenden, und die Organisation, die eingehende Telefongespräche erhält, können nicht auf eine anwendungsspezifische, individualisierte und effiziente Weise kommunizieren. Solche Systeme können dadurch verbessert werden, daß sie es ermöglichen, jede Nachricht an jede verfügbare Mailbox weiterzuleiten. Häufig erfordern dem Stand der Technik entsprechende Systeme den Eingriff durch Handvermittlung, um eingehende Telefonge spräche ordnungsgemäß abzuwickeln. Außerdem sind Anwendungen, die mit dem Stand der Technik entsprechenden Systemen arbeiten, häufig von den durch das System bereitgestellten Funktionen abhängig, anstatt sich an den Erfordernissen der jeweiligen Anwendung zu orientieren.It is often useful for an organization to have a single telephone number for incoming calls to provide general customer advice or general information. It would be desirable to have more flexibility in handling such calls. In state-of-the-art systems, incoming calls to such a general information telephone number would be routed to the fixed address associated with the telephone line, which would then be forwarded to an available (i.e., not busy) subscriber in the group of called subscribers. Thus, for each called subscriber in the group of called subscribers, a fixed mailbox would be used to store messages for a general advice line in a cumbersome manner. Callers using state-of-the-art systems and the organization receiving incoming telephone calls cannot communicate in an application-specific, individualized and efficient manner. Such systems can be improved by allowing any message to be routed to any available mailbox. State-of-the-art systems often require manual operator intervention to properly handle incoming telephone calls. In addition, applications that work with state-of-the-art systems are often dependent on the features provided by the system. functions rather than being based on the requirements of the respective application.
Dem Stand der Technik entsprechende interaktive Sprachausgabesysteme sind nicht flexibel genug, um auf verschiedene Weise auf den Inhalt von Informationen zu reagieren, die in einer bestimmten Anwendung aus einer Datenbasis abgerufen werden. Solche Systeme können durch die Einbeziehung von Verarbeitungslogik in das System zur "maßgeschneiderten" Abwicklung der hohen Zahl unterschiedlicher Fälle und Situationen, die eine Informationsdatenbasis in zahlreichen diversen Anwendungen liefern kann, verbessert werden. Darüber hinaus könne dem Stand der Technik entsprechende Systeme im Zuge der Änderung von Situationen oder Bedingungen dadurch verbessert werden, daß sie die Modifikation der Anruf- und Nachrichten-Verarbeitungslogik ohne Unterbrechung des Normalbetriebs des Systems zulassen.State-of-the-art interactive voice response systems are not flexible enough to respond in a variety of ways to the content of information retrieved from a database in a particular application. Such systems can be improved by incorporating processing logic into the system to "tailor" the large number of different cases and situations that an information database can provide in a wide variety of applications. In addition, state-of-the-art systems can be improved as situations or conditions change by allowing the call and message processing logic to be modified without disrupting normal operation of the system.
Es ist deshalb eine Aufgabe der vorliegenden Erfindung, ein Anrufverarbeitungs- und Nachrichtensystem bereitzustellen, das PBX- oder Centrex-Anrufinformationen mit anwendungsspezifischen un Datenbasisinformationen integriert, um ein flexibleres und anpassungsfähigeres System zu schaffen, das für die Bedürfnisse einer bestimmten das Anrufverarbeitungs- und Nachrichtensystem verwendenden Anwendung "maßgeschneidert" ist. Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Anrufverarbeitungs- und Nachrichtensystem bereitzustellen, das Anrufe in Abhängigkeit von der Quelle des Anrufs auf verschiedene Weise abwickeln kann. Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Anrufverarbeitungs- und Nachrichtensystem bereitzustellen, das nicht erfordert, den anrufenden oder angerufenen Teilnehmern eine feste Mailboxadresse zuzuweisen. Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Anrufverarbeitungs- und Nachrichtensystem bereitzustellen, das für die Abwicklung eingehender Anrufe und Nachrichten eine anwendung spezifische Logik verwendet. Es ist eine weitere Aufgabe der vorliegenden Erfindung, ein Anrufverarbeitungs- und Nachrichtensystem bereitzustellen, das die Modifikation der anwendungsspezifischen Anrufverarbeitungs- und Nachrichtenlogik während des Betriebs des Systems gestattet.It is therefore an object of the present invention to provide a call processing and messaging system which integrates PBX or Centrex call information with application-specific and database information to provide a more flexible and adaptable system which is "tailored" to the needs of a particular application using the call processing and messaging system. It is a further object of the present invention to provide a call processing and messaging system which can handle calls in different ways depending on the source of the call. It is a further object of the present invention to provide a call processing and messaging system which does not require the calling or called party to be assigned a fixed mailbox address. It is a further object of the present invention to provide a call processing and messaging system which uses application-specific logic to handle incoming calls and messages. It is a further object of the present invention to provide a call processing and messaging system which which allows modification of application-specific call processing and messaging logic during system operation.
Die dem Stand der Technik zugehörige GB-A-2 225 916 beschreibt ein Sprachnachrichtengerät. Als Reaktion auf eine empfangene Nachricht weist das Gerät eine Hilfs- Mailbox zu, um Antworten auf eine zu hinterlassende Nachricht zu ermöglichen. Das Gerät stellt einem Anrufer eine Adresse, wie eine Telephonnummer oder ein Paßwort, zur Ver fügung, um ihm den Zugriff auf diese Hilfs-Mailbox zu einem späteren Zeitpunkt zu gestatten. Wenn der Benutzer des Nachrichtengeräts die ursprüngliche Nachricht abruft, wird er von dem Nachrichtengerät darauf aufmerksam gemacht, daß dem Anrufer ein Speicherplatz zugewiesen worden ist. Der Benutzer kann dann reagieren, indem er eine Antwort auf die ursprüngliche Nachricht in der zugewiesenen Hilfs-Mailbox aufzeichnet. Der spätere Zugriff des ursprünglichen Anrufers auf diesen Speicherplatz gestattet es dem Anrufer, die Antwort abzuhören.Prior art GB-A-2 225 916 describes a voice messaging device. In response to a message received, the device allocates an auxiliary mailbox to enable replies to a message to be left. The device provides a caller with an address, such as a telephone number or password, to allow him to access this auxiliary mailbox at a later time. When the user of the messaging device retrieves the original message, the messaging device alerts him that the caller has been allocated a storage location. The user can then respond by recording a reply to the original message in the allocated auxiliary mailbox. Subsequent access by the original caller to this storage location allows the caller to listen to the reply.
Die WO-A-87/00375 beschreibt, wie ein Computer während des Verlaufs eines Telefongesprächs Kennzeichnungsdaten für den Anrufer formuliert, wie die laufende Nummer des Anrufs, das zugewiesene Ziel des Anrufs und ein Satz Quittungsziffern für den Anruf. Solche Kennzeichnungsdaten werden in einem spezifischen Speicherabschnitt gespeichert. Außerdem können die Quittungsziffern auf Basis der laufenden Nummer des aufgezeichneten Anrufs hergeleitet werden. Der Computer ruft die laufende Nummer des aufgezeichneten Anrufs ab, weist ein Ziel zu und codiert die laufende Nummer als die Quittungsziffern. Dann reiht der Computer den Anruf in die Warteschlange des Sprachgenerators ein, um dem Anrufer Informationen zur Verfügung zu stellen.WO-A-87/00375 describes how a computer formulates, during the course of a telephone conversation, identification data for the caller, such as the call sequence number, the assigned destination of the call and a set of acknowledgement digits for the call. Such identification data is stored in a specific memory section. Furthermore, the acknowledgement digits can be derived based on the recorded call sequence number. The computer retrieves the recorded call sequence number, assigns a destination and encodes the sequence number as the acknowledgement digits. The computer then queues the call in the speech synthesizer to provide information to the caller.
Die US-A-4,759,056 beschreibt ein persönliches Dienst- Kommunikationssystem, das eine tragbare Speichereinrichtung erfordert, in der persönliche Informationen gespeichert sind und das den Dienst der betreffenden Person entsprechend den in der Speichereinrichtung gespeicherten Informationen zur Verfügung stellt, wenn es die Informationen in der Speichereinrichtung gelesen hat. Dieses dem Stand der Technik entsprechende System ist mit einem Postsystem ausgestattet, das durch ein Paßwort entsperrt wird. Außerdem ist in der tragbaren Speichervorrichtung eine Kennummer eingetragen, und wenn ein Anrufer über eine Taste oder Wählscheibe eine Auslesoperation der Post vornimmt, wird die Kennummer vom System gelesen, und ein zentraler Controller verbindet den anrufenden Telefonapparat mit einer freien Post-Verbindungsleitung, um so entsprechend der Kennummer des Anrufers eine Verbindung mit einer Mailbox herzustellen, und die Kennummer des Anrufers wird an einen Controller des Postsystems übertragen.US-A-4,759,056 describes a personal service communication system which requires a portable storage device in which personal information is stored and which provides the service to the person concerned according to the information stored in the storage device. when it has read the information in the storage device. This prior art system is equipped with a mail system which is unlocked by a password. In addition, an identification number is registered in the portable storage device and when a caller performs a mail reading operation by means of a key or dial, the identification number is read by the system and a central controller connects the calling telephone set to a free mail connection line so as to establish a connection to a mailbox in accordance with the caller's identification number and the caller's identification number is transmitted to a controller of the mail system.
Es wird ein integriertes anwendungsgesteuertes Anrufverarbeitungs- und Sprachnachrichtensystem zur verbesserten Anruf- und Sprachnachrichtenverarbeitung beschrieben. Das beschriebene System umfaßt eine PBX oder Centrex, mit der ein dem Stand der Technik entsprechendes Sprachnachrichtensystem gekoppelt ist. Ein Anwendungsprozessor arbeitet mit dem Sprachnachrichtensystem und in manchen Fällen mit einem Hostcomputer zusammen. Unter Verwendung von Informationen seitens der PBX oder Centrex, des Sprachnachrichtensystems, wahlweise des Hostcomputers und internen Tabellen des Anwendungsprozessors und des Sprachnachrichtensystems integriert das beschriebene System Informationen aus mehreren Quellen und steuert die Anruf- und Nachrichtenverarbeitung in einer nahtlosen Anwendungsumgebung. Das beschriebene System verwendet Sprachnachrichten als Eingabe und Ausgabe und gestattet ihre Erzeugung und Steuerung durch Anwendungen ohne die Beschränkungen der dem Stand der Technik entsprechenden Verfahren mit der festen Adressierung von Sprach-Ma lboxen.An integrated application-controlled call processing and voice messaging system for improved call and voice message processing is described. The described system includes a PBX or Centrex to which a state-of-the-art voice messaging system is coupled. An application processor interacts with the voice messaging system and, in some cases, with a host computer. Using information from the PBX or Centrex, the voice messaging system, optionally the host computer, and internal tables of the application processor and the voice messaging system, the described system integrates information from multiple sources and controls call and message processing in a seamless application environment. The described system uses voice messages as input and output and allows their generation and control by applications without the limitations of the state-of-the-art fixed addressing of voice mailboxes.
Das beschriebene System arbeitet mit einer Call Flow- Programmiersprache bzw. Anrufablauf-Programmiersprache. Die Call Flow-Sprache ist eine Sammlung von Befehlen und Anweisungen, die der Anwendungsprozessor zur Abwicklung eines eingehenden Telefongesprächs verwendet. Durch die Verwendung der Call Flow-Sprache gestatteil die Anrufabwicklungsfunktionen die Entwicklung und Anpassung der Anrufabwicklung, Nachrichtenverarbeitung und Sprachausgabeanwendungen. Diese Anruf- und Nachrichtenabwicklungsfunktionen beinhalten die Anruf- und Sprachnachrichtenverarbeitung, die interaktive Sprachausgabe, den Zugriff auf die Hostdatenbasis, Funktionen zur Anrufweiterleitung und den Zugriff auf die lokale Datenbasis. Anrufabläufe in Anwendungen werden von der Anrufablaufsprache abgeleitet, um Anrufverarbeitungs- und Nachrichtenanwendungen zu entwickeln. Ein Anwendungsablauf ist der Programmiercode auf Basis der Call Flow-Sprache. Ein Ablauf umfaßt eine Reihe von Anweisungen, die der Syntax der Call Flow-Sprache entsprechen. Der Anwendungsprozessor interpretiert die Abläufe und führt sie als sinnvolle Anwendungen aus. Ein bestimmter Anwendungsoder Programmablauf besteht aus einer Reihe von in sequentieller Folge auszuführenden Ablaufanweisungen.The system described works with a call flow programming language. Call Flow Language is a collection of commands and instructions that the application processor uses to handle an incoming telephone call. Using the Call Flow Language, the call handling functions allow the development and customization of call handling, message processing, and voice output applications. These call and message handling functions include call and voice message processing, interactive voice output, host database access, call forwarding functions, and local database access. Call flows in applications are derived from the Call Flow Language to develop call processing and messaging applications. An application flow is the programming code based on the Call Flow Language. A flow comprises a series of instructions that conform to the Call Flow Language syntax. The application processor interprets the flows and executes them as meaningful applications. A particular application or program flow consists of a series of flow instructions to be executed in sequential order.
Ein Ablaufprogramm umfaßt drei Abschnitte: VARIABLES, DEFAULTS und COMMANDS bzw. VARIABLEN, STANDARDFUNKTIONEN und BEFEHLE. Ablaufanweisungen sind entsprechend der Reihenfolge dieser Abschnitte geschrieben und organisiert. VARIABLEN dienen zum Speichern und Abrufen von Informationen. Der momentane Wert einer Variablen kann während der Ausführung des Ablaufs geändert werden. Die Call Flow- Sprache macht sich auch einige Systemkonfigurationstabellen und anwendungsspezifische Tabellen unmittelbar zunutze. Diese Tabellen dienen zur Erfassung von Informationen, die zur Verarbeitung eines Anrufs benötigt werden. In einer Call Flow-Anweisung können auch dynamische Variablen definiert werden. Der Abschnitt DEFAULTS bzw. STANDARDFUNKTIONEN eines Ablaufprogramms dient zur Vorgabe von Standardfunktions-Handlern, die innerhalb eines Ablaufs vorliegen können. Der Abschnitt COMMANDS bzw. BEFEHLE, der das Kernstück des Ablaufprogramms darstellt, enthält die eigentlichen Ablaufanweisungen die steuern, wie die Abwicklung eines Anrufs erfolgt. Die Anweisungen werden sequentiell ausgeführt, sofern nicht eine Anweisung GO TO oder GO SUB die Steuerung einem anderen Programmplatz oder eine Bedingung die Abwicklung einem Standardfunktions-Handler überträgt. Der Kern eines Ablaufprogramms beginnt mit der ersten ausführbaren Anweisung und endet, wenn eine Anweisung Ablaufende vorliegt.A flow program consists of three sections: VARIABLES, DEFAULTS and COMMANDS. Flow statements are written and organized according to the order of these sections. VARIABLES are used to store and retrieve information. The current value of a variable can be changed during the execution of the flow. The Call Flow language also makes direct use of some system configuration tables and application-specific tables. These tables are used to record information required to process a call. Dynamic variables can also be defined in a Call Flow statement. The DEFAULTS section of a flow program is used to specify standard function handlers that can be present within a flow. The COMMANDS section, which is the core of the flow program, contains the actual Sequential statements that control how a call is handled. The statements are executed sequentially unless a GO TO or GO SUB statement transfers control to another program location or a condition transfers processing to a standard function handler. The core of a sequential program begins with the first executable statement and ends when there is an elapsed statement.
Die vorliegende Erfindung umfaßt ein Verfahren zur Verarbeitung von Nachrichten in einem Anrufverarbeitungsund Nachrichtensystem mit den Merkmalen von Anspruch 1 und ein Anrufverarbeitungs- und Nachrichtensystem mit den Merkmalen von Anspruch 13.The present invention comprises a method for processing messages in a call processing and messaging system having the features of claim 1 and a call processing and messaging system having the features of claim 13.
Andere Funktionen und Merkmale der vorliegenden Erfindung werden aus der ausführlichen Beschreibung der bevorzugten Ausführungsform ersichtlich.Other functions and features of the present invention will become apparent from the detailed description of the preferred embodiment.
Figur 1 ist ein Blockdiagramm, das ein dem Stand der Technik entsprechendes Anrufverarbeitungs- und Nachrichtensystem zeigt.Figure 1 is a block diagram showing a prior art call processing and messaging system.
Figur 2 ist ein Blockdiagramm, das ein Anrufverarbeitungs- und Nachrichtensystem zeigt, wie es von der bevorzugten Ausführungsform genutzt werden kann.Figure 2 is a block diagram showing a call processing and messaging system as may be utilized by the preferred embodiment.
Figur 3 ist ein Blockdiagramm der internen Architektur des Anwendungsprozessors.Figure 3 is a block diagram of the internal architecture of the application processor.
Figur 4 zeigt eine typische Architektur des Konfigurations-Anwendungsterminals der vorliegenden Erfindung.Figure 4 shows a typical architecture of the configuration application terminal of the present invention.
Figur 5 und 6 zeigen die Verknüpfung von Tabellen des Anwendungsprozessors.Figures 5 and 6 show the linking of tables of the application processor.
Figur 7 ist ein Flußdiagramm, das ein Verfahren zur Abwicklung eingehender Anrufe zeigt, wie es von der bevorzugten Ausführungsform genutzt werden kann.Figure 7 is a flow chart showing a method for handling inbound calls as may be utilized by the preferred embodiment.
Figur 8-10e sind Flußdiagramme, die Beispiele für von der bevorzugten Ausführungsform bediente Anrufablaufanwendungen zeigen.Figures 8-10e are flow diagrams showing examples of call flow applications served by the preferred embodiment.
Es wird ein integriertes anwendungsgesteuertes Anrufverarbeitungs- und Nachrichtensystem beschrieben. In der folgenden Beschreibung werden zahlreiche spezifische Einzelheiten wie spezifische Anforderungsmeldungen und Menüs, spezifische Codes, usw. dargelegt, um für ein gründliches Verständnis der vorliegenden Erfindung zu sorgen. Dem Durchschnittsfachmann wird jedoch ersichtlich sein, daß die vorliegende Erfindung ohne die spezifischen Einzelheiten ausgeführt werden kann. In anderen Fällen wurden bekannte Schaltungen, Strukturen und Techniken nicht ausführlich gezeigt, um die vorliegende Erfindung nicht unnötig schwer verständlich zu machen.An integrated application-controlled call processing and messaging system is described. In the following description, numerous specific details are set forth, such as specific request messages and menus, specific codes, etc., in order to provide a thorough understanding of the present invention. However, it will be apparent to one of ordinary skill in the art that the present invention can be practiced without the specific details. In other instances, well-known circuits, structures, and techniques have not been shown in detail in order to avoid unnecessarily obscuring the present invention.
Die vorliegende Erfindung ist ein integriertes anwendungsgesteuertes Anrufverarbeitungs- und Nachrichtensystem zum Steuern der Verarbeitung von auf eingehenden Telefonverbindungsleitungen empfangenen Anrufen und Nachrichten. Obwohl sich die folgende Beschreibung besonders auf PBX Systeme bezieht, nimmt die vorliegende Erfindung die Verwendung des offenbarten anwendungsgesteuerten Anrufverarbeitungs- und Nachrichtensystems mit anderen Telefonvermittlungssystemen wie beispielsweise einem Schlüsselsystem, einem Vermittlungsstellen- oder Centrex-System oder Hybrid system vorweg. Die hierin beschriebenen Verfahren zur Verarbeitung von Anrufen und Nachrichten können weiter in einem System ausgeführt werden, das ein externes Sprachnachrichtensystem benützt oder können genauso in einem Telefonvermittlungssystem ausgeführt werden, das die Merkmale eines Sprachnachrichtensystems als integrale Funktion des Vermittlungssystems bereitstellt. Die hierin beschriebenen Verfahren zur Verarbeitung von Anrufen und Nachrichten können in einer Reihe von Systemen angewendet werden, in denen die erforderlichen Anrufinformationen durch die hierin beschriebenen Verfahren und Geräte oder durch andere Verfahren und Geräte erhalten werden kann. Es wird erkannt werden, daß die Verfahren zur Verarbeitung von Anrufen und Nachrichten nicht auf die Verwendung der offenbarten Verfahren und Geräte zum Erhalt von Anrufinformationen beschränkt sein sollen, ausgenommen wie in den Patenansprüchen spezifisch vorgesehen.The present invention is an integrated application-controlled call processing and messaging system for controlling the processing of calls and messages received on inbound telephone trunks. Although the following description relates particularly to PBX systems, the present invention anticipates the use of the disclosed application-controlled call processing and messaging system with other telephone switching systems such as a key system, a central office or centrex system, or hybrid system. The call and message processing methods described herein may be further implemented in a system utilizing an external voice messaging system, or may be equally implemented in a telephone switching system that provides the features of a voice messaging system as an integral function of the switching system. The call and message processing methods described herein may be used in a variety of systems in which the required call information may be obtained by the methods and apparatus described herein or by other methods and apparatus. It will be recognized that the call and message processing methods Messages should not be limited to the use of the disclosed methods and apparatus for obtaining call information, except as specifically provided in the claims.
In Figur 1 ist ein dem Stand der Technik entsprechendes Anrufverarbeitungs- und Nachrichtensystem dargestellt. Wie gezeigt sind Verbindungsleitungen 101 an eine PBX 100 angeschlossen. Zum direkten Anschluß von Telefonapparaten sind einzelne Telefonleitungen 151 bereitgestellt. Einzelne Telefonleitungen 102 verbinden die PBX 100 mit einem Sprachnachrichtensystem (VMS) 105. Ein derartiges Sprachnachrichtensystem ist das vom Übertragungsempfänger der vorliegenden Erfindung hergestellte Direct Access Link (D.I.A.L). Eine Speichervorrichtung für Sprachnachrichten 109 ist an das Sprachnachrichtensystem 105 angeschlossen. Eine Steuerleitung 103 verbindet die PBX 100 mit dem VMS 105. Die Steuerleitung 103 versorgt das VMS 105 mit brauchbarer Information hinsichtlich der Herkunft des Anrufs.A prior art call processing and messaging system is shown in Figure 1. As shown, trunk lines 101 are connected to a PBX 100. Individual telephone lines 151 are provided for direct connection of telephone sets. Individual telephone lines 102 connect the PBX 100 to a voice messaging system (VMS) 105. One such voice messaging system is the Direct Access Link (D.I.A.L.) established by the transceiver of the present invention. A voice message storage device 109 is connected to the voice messaging system 105. A control line 103 connects the PBX 100 to the VMS 105. The control line 103 provides the VMS 105 with useful information regarding the origin of the call.
Bei Verwendung des Sprachnachrichtensystems wie in Figur 1 können auf Telefon-Verbindungsleitungen 101 eingehende Anrufe zu einem aus einer Vielzahl von an die Telefonleitungen 151 angeschlossenen Telefonen übermittelt werden. Falls das so angeschlossene Telefon besetzt ist oder nicht antwortet, kann der Anruf zur weiteren Verarbeitung an das VMS 105 weitergeleitet werden. Auf den Telefon- Verbindungsleitungen 101 eingehende Anrufe können alternativ direkt an die richtige der Telefonleitungen 102 übermittelt werden. Das VMS 105 kann danach den eingehenden Telefonanruf unter Verwendung einer automatisierten Bedienungsfähigkeit oder einer Fähigkeit zur Sprachbenachrichtigung oder Zweiweg-Sprachbenachrichtigung mit einer auf der Speichervorrichtung für Sprachnachrichten 109 gespeicherten Sprachmailbox abwickeln. Die Speichereinrichtung 109 enthält eine Vielzahl von Mailboxen, jeweils zum Speichern einer Vielzahl von Sprachnachrichten. Im System nach dem Stand der Technik gehört jede auf der Speichervorrichtung 109 gespeicherte Mailbox zu einer der zu den Telefonleitungen 151 gehörenden Nebenstellen oder zu einem vorbestimmten Teilnehmer.Using the voice messaging system as shown in Figure 1, calls received on telephone trunks 101 may be transmitted to one of a plurality of telephones connected to telephone lines 151. If the telephone so connected is busy or does not answer, the call may be forwarded to VMS 105 for further processing. Calls received on telephone trunks 101 may alternatively be transmitted directly to the appropriate one of telephone lines 102. VMS 105 may then handle the incoming telephone call using an automated operator capability or a voice messaging or two-way voice messaging capability with a voice mailbox stored on voice message storage device 109. Storage device 109 includes a plurality of mailboxes, each for storing a plurality of voice messages. In the prior art system, each mailbox stored on storage device 109 corresponds to one of the telephone lines 102. 151 extensions or to a predetermined subscriber.
Mit Bezug auf Figur 2 wird nun das integrierte anwendungsgesteuerte Anrufverarbeitungs- und Nachrichtensystem der vorliegenden Erfindung dargestellt. Wie gezeigt ist die bevorzugte Ausführungsform an Komponenten aus dem Stand der Technik gekoppelt. Besonders die PBX 100, das VMS 105 und der Speicher für Sprachnachrichten 109 sind wie in Figur 1 und 2 gezeigt Komponenten nach dem Stand der Technik. Die Hardwarekomponenten der vorliegenden Erfindung beinhalten wie in Figur 2 gezeigt einen Anwendungsprozessor 110, ein optionales Konfigurations-Anwendungsterminal (CAT) 112, eine CAT-Datenspeicherkomponente 113, einen optionalen Hostrechner 106 und eine Host-Datenspeichereinheit 107. Bei der bevorzugten Ausführungsform der vorliegenden Erfindung ist der Anwendungsprozessor 110 eine Schaltungskarte, die ein einen verfügbaren Steckplatz im VMS 105 eingesetzt wird. Fachleute werden erkennen, daß sich der Anwendungsprozessor 110 nicht auf einer separaten Schaltungskarte befinden muß. Ein Anwendungsprozessor kann zum Beispiel als interne Komponente eines Anruf- und Nachrichtenverarbeitungssystems entsprechend dem Stand der Technik enthalten sein. Ein Anruf- und Nachrichtenverarbeitungssystem entsprechend dem Stand der Technik und ein zugehöriges Betriebssystem können auch modifiziert werden, um die Funktion zur Anwendungsverarbeitung der vorliegenden Erfindung auszuführen. Die vorliegende Erfindung ist somit nicht auf die spezifische Architektur der bevorzugten Ausführungsform beschränkt.Referring now to Figure 2, the integrated application-driven call processing and messaging system of the present invention is illustrated. As shown, the preferred embodiment is coupled to prior art components. In particular, the PBX 100, the VMS 105, and the voice message store 109 are prior art components as shown in Figures 1 and 2. The hardware components of the present invention include an application processor 110, an optional configuration application terminal (CAT) 112, a CAT data storage component 113, an optional host computer 106, and a host data storage unit 107 as shown in Figure 2. In the preferred embodiment of the present invention, the application processor 110 is a circuit card that is inserted into an available slot in the VMS 105. Those skilled in the art will appreciate that the application processor 110 need not be located on a separate circuit board. For example, an application processor may be included as an internal component of a prior art call and message processing system. A prior art call and message processing system and associated operating system may also be modified to perform the application processing function of the present invention. The present invention is thus not limited to the specific architecture of the preferred embodiment.
Mit Bezug auf Figur 3 enthält der Anwendungsprozessor 110 eine Mikroprozessor-CPU 120, Speicher mit wahlfreiem Zugriff (RAM) 121 und eine Plattenspeichervorrichtung 122 zum Speichern lokaler Daten. Der Anwendungsprozessor 110 enthält auch eine VMS-Schnittstelle 123, eine Hostschnitt stelle 124 und eine CAT-Schnittstelle 125. Die VMS-Schnittstelle 123 ist eine interne Hochgeschwindigkeitsbefehlsverbindung, die es ermöglicht, Befehlssignale und Ereignisse und Statusinformationen zwischen dem VMS 105 und dem Anwendungsprozessor 110 zu übertragen. Die Hostschnittstelle 124 ist in der bevorzugten Ausführungsform eine IBM 3270 SNA/ SDLC kompatible Schnittstelle. Ein derartiges Schnittstel lenprotokoll ist im Stand der Technik bekannt. Die Hostschnittstelle 124 wird optional dazu verwendet, den Anwendungsprozessor 110 an einen Hostrechner zu koppeln, um auf darauf befindliche Daten zuzugreifen. Der Durchschnittsfachmann wird erkennen, daß zum Anschluß an einen Hostrech ner alternative Schnittstellenprotokolle verwendet werden können. Die CAT-Schnittstelle 125 stellt ein Mittel zur Konfiguration der Arbeitsweise des Anwendungsprozessors 110 und zum Erzeugen und Modifizieren von Anrufabläufen bereit. In der bevorzugten Ausführungsform wird ein Personal-Computer als CAT 112 verwendet, an den eine Plattenspeichervorrichtung 113 gekoppelt ist. In dieser Ausführungsform ist die CAT-Schnittstelle 125 eine im Stand der Technik bekannte RS232 Schnittstelle. In alternativen Ausführungsformen kann die CAT-Schnittstelle 125 unter Verwendung anderer Schnittstellenprotokolle implementiert werden. Alternative Ausführungsformen können entsprechend etwas anderes als einen Personal-Computer als Koiifigurations-Anwendungsterminal verwenden. Zum Beispiel kann ein Standard-ACSII- Terminal für diesen Zweck verwendet werden. Ist die Konfiguration erfolgt, erfordert der Betrieb der vorliegenden Erfindung den Anschluß des CAT 112 nicht.Referring to Figure 3, the application processor 110 includes a microprocessor CPU 120, random access memory (RAM) 121, and a disk storage device 122 for storing local data. The application processor 110 also includes a VMS interface 123, a host interface 124, and a CAT interface 125. The VMS interface 123 is an internal high-speed command link that allows command signals and events and to transfer status information between the VMS 105 and the application processor 110. The host interface 124, in the preferred embodiment, is an IBM 3270 SNA/SDLC compatible interface. Such an interface protocol is known in the art. The host interface 124 is optionally used to couple the application processor 110 to a host computer to access data thereon. Those of ordinary skill in the art will recognize that alternative interface protocols may be used to interface with a host computer. The CAT interface 125 provides a means for configuring the operation of the application processor 110 and for creating and modifying call flows. In the preferred embodiment, a personal computer is used as the CAT 112 to which a disk storage device 113 is coupled. In this embodiment, the CAT interface 125 is an RS232 interface known in the art. In alternative embodiments, the CAT interface 125 may be implemented using other interface protocols. Accordingly, alternative embodiments may use something other than a personal computer as the configuration application terminal. For example, a standard ACSII terminal may be used for this purpose. Once configured, operation of the present invention does not require connection of the CAT 112.
Die vorliegende Erfindung integriert die Nachrichtenverarbeitungsfähigkeiten des VMS 105 mit der flexiblen Steuerung einer Verarbeitungssprache für Anrufabläufe, um eine leistungsfähige Umgebung zur Abwicklung von Anrufen und Nachrichten bereitzustellen. Die Anrufablaufsprache der vorliegenden Erfindung ist eine Programmiersprache zum Spezifizieren einer anwendungsspezifischen Folge von Ereignissen und Operationen als Reaktion auf einen eingehenden Telefonanruf oder ein Systemereignis. Die Anrufablaufsprache ermöglicht einem Ablaufprogrammierer, angepaßte Anwendungen zu entwerfen und zu erstellen, die verschiedene Anruf- und Benachrichtigungseigenschaften beinhalten. In der bevorzugten Ausführungsform verwendet der Anwendungsprozessor 110 die Fähigkeiten des VMS 105 zur Abwicklung und Speicherung von Sprachnachrichten, während er erlaubt, daß der Betrieb des VMS 105 unter Steuerung des Anwendungsprozessors 110 und der darin ausgeführten Befehle der Anrufablaufsprache erfolgt. Fachleute werden erkennen, daß der Bereich der vorliegenden Erfindung nicht auf eine Architektur beschränkt ist, die die Fähigkeiten des VMS 105 zur Abwicklung und Speicherung von Sprachnachrichten verwendet. Es können äquivalente alternative Ausführungsformen implementiert werden, in denen Abwicklung und Speicherung von Nachrichten direkt durch den Anwendungsprozessor gesteuert werden.The present invention integrates the message processing capabilities of the VMS 105 with the flexible control of a call flow processing language to provide a powerful environment for handling calls and messages. The call flow language of the present invention is a programming language for specifying an application-specific sequence of events and operations in response to an incoming telephone call or system event. The call flow language enables a flow programmer to design and create customized applications that handle various call and notification features. In the preferred embodiment, the application processor 110 utilizes the capabilities of the VMS 105 to handle and store voice messages while allowing the operation of the VMS 105 to be under control of the application processor 110 and the call flow language commands executed therein. Those skilled in the art will recognize that the scope of the present invention is not limited to an architecture that utilizes the capabilities of the VMS 105 to handle and store voice messages. Equivalent alternative embodiments may be implemented in which message handling and storage are directly controlled by the application processor.
Unter Verwendung der Anrufablaufsprache können Anrufabläufe für verschiedene Anwendungen einer Organisation erzeugt und für den Zugriff durch den Anwendungsprozessor 110 gespeichert werden. Jeder Ablauf ist ein Skript, das die Operationen zum Abwickeln eines eingehenden Telefonanrufs definiert. Unter Verwendung dieses Verfahrens werden eingehende Anrufe und zugehörige Nachrichten durch einen Anwendungsablauf und nicht durch eine Mailbox gesteuert. Außerdem kann zum Abwickeln eines bestimmten eingehenden Anrufs mehr als ein Anrufablauf verwendet werden. Ein bestimmter Anrufablauf kann auch gleichzeitig von mehr als einem eingehenden Anruf verwendet werden.Using the call flow language, call flows for various applications of an organization can be created and stored for access by the application processor 110. Each flow is a script that defines the operations for handling an incoming telephone call. Using this technique, incoming calls and associated messages are controlled by an application flow rather than a mailbox. In addition, more than one call flow can be used to handle a particular incoming call. A particular call flow can also be used by more than one incoming call at the same time.
Im Betrieb werden eingehende Telefonanrufe vom VMS 105 auf Telefonleitungen 102 empfangen. Die anfängliche Aufgabe der vorliegenden Erfindung ist es, einem bestimmten eingehenden Anruf einen Anrufablauf zuzuordnen. Der Anruf wird danach abhängig von der in dem bestimmten Anrufablauf codierten Befehlsfolge verarbeitet. In der bevorzugten Ausführungsform werden eingehende Anrufe unter Verwendung eines Satzes von Systemkonfigurationstabellen, die sich im Anwendungsprozessor 110 befinden, einem Anrufablauf zugeordnet.In operation, incoming telephone calls are received by the VMS 105 on telephone lines 102. The initial object of the present invention is to associate a particular incoming call with a call flow. The call is then processed in accordance with the sequence of commands encoded in the particular call flow. In the preferred embodiment, incoming calls are associated with a call flow using a set of system configuration tables located in the application processor 110.
Wenn vom VMS 105 ein eingehender Anruf empfangen wird, kann das VMS 105 so konfiguriert sein, daß es die Anrufsteuerung über die Schnittstelle 111 an den Anwendungsprozessor 110 überträgt. Unter Verwendung der über die Steuerleitung 103 an das VMS 105 übergebenen PBX Integrationsinformation, wird die Anrufsteuerungsinforrnation durch das VMS 105 an den Anwendungsprozessor 110 übergeben. Diese Anrufsteuerungsinforrnation enthält zum Beispiel die Verbindungsleitungsnummer des eingehenden Anrufs, die zum einge henden Anruf gehörende Port-Nummer, Erweiterungsnummer oder Mailboxnummer und in manchen Fällen Statusinformation, die einen Grund angibt, weshalb der Anruf übergeben wurde (d.h. die Nebenstelle war belegt). Das VMS 105 kann auch die ID des angerufenen Teilnehmers und/oder die ID-Nummer des anrufenden Teilnehmers an den Anwendungsprozessor 110 übergeben. Wenn der Anwendungsprozessor 110 die Anrufinformation empfängt, wird der Anruf unter Verwendung von Informationen in den Systemkonfigurationstabellen verarbeitet.When an incoming call is received by the VMS 105, the VMS 105 may be configured to transmit call control to the application processor 110 via interface 111. Using the PBX integration information passed to the VMS 105 via control line 103, the call control information is passed by the VMS 105 to the application processor 110. This call control information includes, for example, the trunk number of the incoming call, the port number, extension number or mailbox number associated with the incoming call, and in some cases, status information indicating a reason why the call was transferred (i.e., the extension was busy). The VMS 105 may also pass the called party ID and/or the calling party ID number to the application processor 110. When the application processor 110 receives the call information, the call is processed using information in the system configuration tables.
Mit Bezug auf Figur 5 prüft der Anwendungsprozessor 110 als erstes eine CALLID Tabelle 600, um die dem Anruf zuzuordnende Dienstekennung (COS) zu bestimmen. Falls das VMS 105 eine ID des angerufenen Teilnehmers an den Anwendungsprozessor 110 übergibt, durchsucht der Anwendungsprozessor 110 die CALLID Tabelle 600 nach einem Eintrag, der mit der ID-Nummer des angerufenen Teilnehmers übereinstimmt. Falls der Anwendungsprozessor 110 auf die CALLID Tabelle 600 zugreift und keinen der zum Anruf gehörenden Nummer entsprechenden Eintrag findet, greift der Anwendungsprozessor 110 auf die PORTS Tabelle 601 zu. Die PORTS Tabelle 601 wird dazu verwendet, die dem Anruf zuzuordnende Dienstekennung (COS) zu bestimmen, wenn keine ID des angerufenen Teilnehmers verfügbar ist.Referring to Figure 5, the application processor 110 first checks a CALLID table 600 to determine the service identifier (COS) to be associated with the call. If the VMS 105 provides a called party ID to the application processor 110, the application processor 110 searches the CALLID table 600 for an entry that matches the called party ID number. If the application processor 110 accesses the CALLID table 600 and does not find an entry that matches the number associated with the call, the application processor 110 accesses the PORTS table 601. The PORTS table 601 is used to determine the service identifier (COS) to be associated with the call if a called party ID is not available.
Nachdem dem Anruf eine COS zugeordnet ist, wählt der Anwendungsprozessor eine aus einer Vielzahl von Plantabel len 604 aus, von denen jede einer bestimmten COS entspricht. Die spezifische Plantabelle 604, die ausgewählt wird, basiert auf dem Wochentag und der Tageszeit, zu denen der Anruf empfangen wird. Jeder Plan kann in der bevorzugten Ausführungsform bis zu acht Zeitperioden haben. Der Anwendungsprozessor 110 verwendet die Nummer der ausgewählten Plantabelle, um die dem Anruf zuzuordnende Informationstabellennummer zu lokalisieren. Dann prüft der Anwendungsprozessor 110 die der Informationstabellennummer entsprechende Informationstabelle 606, um den Namen des zur Verarbeitung des Anrufs zu verwendenden Ablaufs zu bestimmen. Die Informationstabelle 606 verknüpft einen Informationstabellennummer mit einem Ablaufnamen, der dann dem Anruf zugewiesen wird. Falls die Informationstabelle 606 keinen dem Anruf entsprechenden Ablaufnameii enthält, wird ein Benutzerfehler protokolliert. Nachdem dem Anruf unter Verwendung der Informationstabelle 606 ein Ablaufname zugeordnet ist, überprüft der Anwendungsprozessor 110 die Ablauftabelle 608, um den richtigen auszuführenden Ablauf zu finden. Die Ablauftabelle 608 verknüpft den zugewiesenen Ablaufnamen mit einem einen Satz von Befehlen enthaltenden Ablauf. An diesem Punkt beginnt der Anwendungsprozessor 110 damit, die Anweisungen im zugewiesenen Ablauf auszuführen. Figur 7 zeigt die Folge von Operationen, die vom Empfang eines eingehenden Anrufs bis zur Ausführung eines zugewiesenen Anrufablaufs ausgeführt werden.After a COS is assigned to the call, the application processor selects one of a plurality of schedule tables 604, each of which corresponds to a particular COS. The specific schedule table 604 that is selected is based on the day of the week and the time of day at which the call is received. Each schedule can have up to eight time periods in the preferred embodiment. The application processor 110 uses the selected schedule table number to locate the information table number associated with the call. The application processor 110 then examines the information table 606 corresponding to the information table number to determine the name of the flow to be used to process the call. The information table 606 associates an information table number with a flow name, which is then assigned to the call. If the information table 606 does not contain a flow name corresponding to the call, a user error is logged. After a flow name is assigned to the call using the information table 606, the application processor 110 examines the flow table 608 to find the correct flow to execute. The flow table 608 associates the assigned flow name with a flow containing a set of instructions. At this point, the application processor 110 begins executing the instructions in the assigned flow. Figure 7 shows the sequence of operations performed from receiving an incoming call to executing an assigned call flow.
Nachdem ein Anrufablauf mit der Verarbeitung eines Anrufs beginnt, werden zusätzliche anwendungsspezifische Tabellen zur Abwicklung eines eingehenden Anrufs bereitgestellt. Diese zusätzlichen Tabellen beinhalten: eine HOST Tabelle, eine PROMPT bzw. AUFFORDERUNG Tabelle, eine SCREEN bzw. BILDSCHIRM Tabelle, eine SESSION bzw. SITZUNG Tabelle, eine TRANSLATION bzw. ÜBERTRAGUNG Tabelle, eine LOCAL DATA bzw. LOKALE DATEN Tabelle und eine SYSTEM PARAMETER Tabel le. Eine bestimmte Anwendung muß nicht alle oben aufgeführten Konfigurationstabellen erfordern. Tatsächlich braucht ein Ablauf überhaupt nicht auf eine Tabelle zuzugreifen. Falls ein Ablauf zum Beispiel keine Host-Anwendung erfordert, greift der Ablauf für die Anwendung nicht auf die HOST Tabelle, die SCREEN Tabelle oder die SESSION Tabelle zu. Figur 6 zeigt die Verknüpfung zwischen den verfügbaren Konfigurationstabellen und Befehle innerhalb der Ablauftabelle 608.After a call flow begins processing a call, additional application-specific tables are provided to handle an incoming call. These additional tables include: a HOST table, a PROMPT table, a SCREEN table, a SESSION table, a TRANSLATION table, a LOCAL DATA table, and a SYSTEM PARAMETER table. A particular application may not require all of the configuration tables listed above. In fact, a flow may not need to access any table at all. For example, if a flow does not require a host application, the flow does not access the HOST table, the SCREEN table, or the SESSION table for the application. Figure 6 shows the link between the available configuration tables and commands within the sequence table 608.
Die HOST Tabelle 713 wird verwendet, um zu beschreiben, wie der Anwendungsprozessor mit dem Hostrechner kommuniziert, an den er optional angeschlossen ist. Zu jedem Eintrag der HOST Tabelle gibt es zwei Gesichtspunkte: die physikalische Verbindung zwischen dem Anwendungsprozessor und dem Host und die Datenverbindung der Hostverbindung. Die physikalische Verbindung beschreibt die Eigenschaften der Verbindung zwischen dem Hostrechner und dem Anwendungsprozessor. Diese Information besteht aus: Hostname, Anzahl von Sitzungen, Leitungsmodus, Datencodierverfahren und Verbindungsart. Der Hostname ist der dem mit dem Anwendungsprozessor verbundenen Host zugeordnete Name. Die Anzahl von Sitzungen stellt die gesamten in der SESSION Tabelle konfigurierten Sitzungen dar. Sitzungen werden unten ausführlicher beschrieben. Der Leitungsmodus spezifiziert, ob die Datenkommunikationsleitung 108 im Vollduplex- oder Halbduplexmodus betrieben wird. Das Datencodierverfahren bezieht sich auf die Art und Weise, auf die die Bits 0 und 1 codiert werden. Die Verbindungsart spezifiziert, ob die Verbindung zwischen dem Anwendungsprozessor und dem Host vermittelt über ein Modem oder nicht vermittelt über Direktleitungen verläuft.The HOST table 713 is used to describe how the application processor communicates with the host to which it is optionally connected. There are two aspects to each HOST table entry: the physical connection between the application processor and the host, and the data connection of the host connection. The physical connection describes the characteristics of the connection between the host and the application processor. This information consists of: host name, number of sessions, line mode, data encoding method, and connection type. The host name is the name assigned to the host connected to the application processor. The number of sessions represents the total sessions configured in the SESSION table. Sessions are described in more detail below. The line mode specifies whether the data communication line 108 operates in full duplex or half duplex mode. The data encoding method refers to the manner in which bits 0 and 1 are encoded. The connection type specifies whether the connection between the application processor and the host is mediated via a modem or non-mediated via direct lines.
Der zweite Gesichtspunkt jedes Eintrages der HOST Tabelle enthält Information über die Datenverbindungsstufe der Hostverbindung. Dieser Teil des Eintrags in der HOST Tabelle beschreibt die Art von Vorrichtung, die vom Anwendungsprozessor emuliert wird. Der Datenverbindungsteil eines Eintrags der HOST Tabelle beschreibt die Verbindung des Anwendungsprozessors zu einem Hostrechner. Dieser Teil des Eintrags der HOST Tabelle enthält folgende Informationen: Stationsadresse, Leitungskonfiguration und XID (Vermittlungsidentifikation). Die Stationsadresse spezifiziert über die Datenkommunikationsleitung des Hostrechners angeschlossene Ursprungs- und Zielstationen. Die Leitungskonfiguration spezifiziert, ob die Datenkommunikationsleitung zwischen zwei oder mehreren Stationen angeschlossen ist. Falls eine Leitung zum Beispiel zwei Stationen verbindet, wird die Leitungskonfiguration auf einen Wert von 2 gesetzt. Falls eine Leitung mehr als zwei Stationen verbindet, wird die Leitungskonfiguration auf einen Wert gesetzt, der einer Mehrpunktverbindung entspricht. XID ist eine Abkürzung mit der Bedeutung Vermittlungsidentifikation. XID besteht aus Produktidentifikation und Installationsidentifikation. In der bevorzugten Ausführungsforrn emuliert der Anwendungsprozessor einen IBM 3274 Gruppencontroller. Die Produktidentifikation ist in diesem Fall 017.The second aspect of each HOST table entry contains information about the data link level of the host connection. This part of the HOST table entry describes the type of device being emulated by the application processor. The data link part of a HOST table entry describes the application processor's connection to a host computer. This part of the HOST table entry contains the following information: station address, line configuration, and XID (switch identification). The station address specifies source and destination stations connected via the host computer's data communication line. The line configuration specifies whether the data communication line is connected between two or more stations. For example, if a line connects two stations, the line configuration is set to a value of 2. If a line connects more than two stations, the line configuration is set to a value corresponding to a multidrop connection. XID is an acronym meaning switch identification. XID consists of product identification and installation identification. In the preferred embodiment, the application processor emulates an IBM 3274 group controller. The product identification in this case is 017.
Die PROMPT Tabelle 712 enthält Information über Sprachaufforderungsmeldungen. Die PROMPT Tabelle enthält Namen von Aufforderungsmeldungen und bis zu 128 Zeichen Aufforderungstext. Wenn ein Anrufablauf auf einen Aufforderungsnamen Bezug nimmt, wird die PROMPT Tabelle dazu verwendet, die Sprachmailbox zu finden, in der die Aufforderung gespeichert ist.The PROMPT Table 712 contains information about voice prompt messages. The PROMPT Table contains prompt message names and up to 128 characters of prompt text. When a call flow references a prompt name, the PROMPT Table is used to find the voice mailbox in which the prompt is stored.
Die SCREEN Tabelle 710 wird dazu verwendet, jeden Hostanwendungsbildschirrn zu identifizieren, auf den vom Anwendungsprozessor zugegriffen wird. Ein Hostanwendungsbildschirm oder Hostbildschirm wird vom Hostrechner erzeugt. Ein Hostbildschirm enthält Felder, in die Daten zur Verarbeitung oder zum Abruf von zu einem eingehenden Telefonanruf gehörenden Informationen eingegeben werden. Einige Felder auf einem Hostbildschirm werden nur durch den Host verwendet; andere werden sowohl durch den Anwendungsprozessor als auch durch den Hostrechner verwendet. Jeder Eintrag der SCREEN Tabelle entspricht einem Hostbildschirm. Die SCREEN Tabelle enthält eine Liste von Felddefinitionen für alle Felder, die für eine bestimmte Anwendung von Bedeutung sind. Jede Bildschirmtabelle enthält die folgenden Felddefinitionen: Feldname, Basisversatz, Feldversatz, Schutzstufe und Datentyp. Der Feldname ist ein einem Feld im Hostbildschirm zugeordneter Name. Dieser Feldname wird in Anrufabläufen dazu verwendet, den Ort für die Dateneingabe oder den Datenabruf zu spezifizieren. Der Basisversatz ist ein Parameter, der spezifiziert, ob der Feldversatz absolut oder relativ zur Einfügemarke ist. Der Feldversatz ist der exakte Ort, der spezifiziert, wo das Feld beginnt. Die Feldlänge spezifiziert, wie viele Zeichen das Feld einnimmt. Die Schutzstufe ist ein Datum, das angibt, wann die Daten nur abgerufen werden können (nur Lesen) oder ungeschützt, wenn die Daten eingegeben, abgerufen oder angeordnet werden können (Lesen/Schreiben). Der Parameter Datentyp wird dazu verwendet, anzugeben, ob das Feld alphanumerisch oder rein numerisch ist.The SCREEN table 710 is used to identify each host application screen accessed by the application processor. A host application screen, or host screen, is generated by the host computer. A host screen contains fields into which data is entered for processing or retrieving information associated with an incoming telephone call. Some fields on a host screen are used only by the host; others are used by both the application processor and the host computer. Each SCREEN table entry corresponds to a host screen. The SCREEN table contains a list of field definitions for all fields relevant to a particular application. Each screen table contains the following field definitions: field name, base offset, field offset, protection level, and data type. The field name is a name associated with a field on the host screen. This field name is used in call flows to indicate the location for data entry. or to specify data retrieval. The base offset is a parameter that specifies whether the field offset is absolute or relative to the insertion point. The field offset is the exact location that specifies where the field begins. The field length specifies how many characters the field takes up. The protection level is a date that indicates when the data can only be retrieved (read only) or unprotected when the data can be entered, retrieved or arranged (read/write). The data type parameter is used to specify whether the field is alphanumeric or purely numeric.
Die SESSION Tabelle 708 wird dazu verwendet, Hostsitzungen zu Pools zu gruppieren. Eine Sitzung ist eine logische Verbindung zwischen dem Anwendungsprozessor und einem Hostrechner. Eine Sitzung verbindet den Anwendungsablauf im Anwendungsprozessor mit dem Hostrechner. Durch eine Sitzung greift der Anwendungsprozessor auf den Hostrechner zu, um die vom Anwendungsablauf angeforderte Information zu erhalten. Ein Sitzungspool enthält im allgemeinen alle in einer gegebenen Anwendung ausgeführten Sitzungen. Durch Gruppieren der Sitzungen zu Pools können mehrere Anrufer gleichzeitig auf eine Anwendung zugreifen, während eine andere Gruppe von Anrufern auf eine unterschiedliche Anwendung (oder einen anderen Pool) zugreifen kann. Für jede Anwendung gibt es einen Eintrag in der SESSION Tabelle. Jeder Eintrag in der SESSION Tabelle enthält folgendes: Poolname, Hostname, Bereich von Sitzungsnummern, Anmeldungs-Ablaufname, Bereinigungs-Ablaufname, Leerlauf-Ablaufname und maximale Leerlaufzeit. Der Poolname ist ein vom Anwendungsablauf verwendeter Name zum Bezug auf den Sitzungspool. Ein Ablauf kann eine Sitzung aus diesem Pool erhalten. Der Hostname ist ein dem Host gegebener Name. Dieser Name muß derselbe wie ein in der HOST Tabelle definierter sein. Der Bereich von Sitzungsnummern ist die Anzahl von für einen bestimmten Pool belegten Sitzungen. Der Anmeldungs-Ablaufname ist der Name des Ablaufs, der zu verwenden ist, wenn der Anwendungsprozessor nach einem Leistung-an-Ereignis einer Sitzung als erstes mit dem Host kommuniziert. Der Bereinigungs-Ablaufname ist der Name des Ablaufs, der dazu verwendet wird, den ersten Bildschirm einer bestimmten Anwendung erscheinen zu lassen, wenn ein Ablauf die Sitzung explizit freigegeben hat, eine ENDFLOW Anweisung erreicht hat oder plötzlich abgebrochen hat. Der Leerlauf-Ablaufname ist der Name des Ablaufs, der verwendet wird, um zu verhindem daß sich die Sitzung abmeldet, wenn während einer Zeitspanne (Leerlaufzeit) kein Hostzugriff erfolgt. Die maximale Leerlaufzeit ist der Zeitbereich in dem der Leerlaufablauf ausgeführt wird.The SESSION table 708 is used to group host sessions into pools. A session is a logical connection between the application processor and a host. A session connects the application process in the application processor to the host. Through a session, the application processor accesses the host to obtain information requested by the application process. A session pool generally contains all the sessions running in a given application. By grouping sessions into pools, several callers can access one application at the same time, while another group of callers can access a different application (or a different pool). There is an entry in the SESSION table for each application. Each entry in the SESSION table contains the following: pool name, host name, range of session numbers, login process name, cleanup process name, idle process name, and maximum idle time. The pool name is a name used by the application process to refer to the session pool. A process can obtain a session from this pool. The host name is a name given to the host. This name must be the same as one defined in the HOST table. The range of session numbers is the number of sessions allocated for a particular pool. The login flow name is the name of the flow to use when the application processor logs off after a power-on event. of a session first communicates with the host. The cleanup flow name is the name of the flow used to cause the first screen of a particular application to appear when a flow has explicitly released the session, reached an ENDFLOW statement, or terminated suddenly. The idle flow name is the name of the flow used to prevent the session from logging off if no host access occurs during a period of time (idle time). The maximum idle time is the time range during which the idle flow will run.
Die TRANSLATION Tabelle 705 enthält einzelne Sätze von Übersetzungseinträgen, die paarweise verwendet werden, um ein Verhältnis in Form eines SEARCH-ITEM bzw. Sucheintrags und eines RETURN-ITEM bzw. Rückgabeeintrags zu erzeugen. Eine Übersetzung bezieht sich auf einen einzelnen Eintra in einer TRANSLATION Tabelle, zum Beispiel einen SEARCH- ITEM, der durch Übersetzung zu einem RETURN-ITEM wird. In der TRANSLATION Tabelle werden SEARCH-ITEMS dazu verwendet, einen entsprechenden RETURN-ITEM zu finden. RETURN-ITEMS werden dazu verwendet, dem Anrufer Informationen zu liefern. Diese Information entspricht dem RETURN-ITEM, der so konf iguriert ist, daß er mit einem SEARCH-ITEM übereinstimmt. Falls zum Beispiel der Anrufablauf den Anrufer anweist, einen Code (der für einen SEARCH-ITEM steht) einzugeben, würde der Anwendungsprozessor diese Eingabe dazu verwenden, die Liste der in der TRANSLATION Tabelle konfigurierten SEARCH-ITEMS zu überprüfen. Wird der Eintrag in der Tabelle gefunden, kann der Anwendungsprozessor dem Anruf er den übereinstimmenden Eintrag (RETURN-ITEM) in gesprochener Form übermitteln.The TRANSLATION table 705 contains individual sets of translation entries that are used in pairs to create a relationship in the form of a SEARCH-ITEM and a RETURN-ITEM. A translation refers to a single entry in a TRANSLATION table, for example a SEARCH-ITEM that becomes a RETURN-ITEM when translated. In the TRANSLATION table, SEARCH-ITEMS are used to find a corresponding RETURN-ITEM. RETURN-ITEMS are used to provide information to the caller. This information corresponds to the RETURN-ITEM that is configured to match a SEARCH-ITEM. For example, if the call flow instructs the caller to enter a code (representing a SEARCH-ITEM), the application processor would use this input to check the list of SEARCH-ITEMs configured in the TRANSLATION table. If the entry is found in the table, the application processor can send the matching entry (RETURN-ITEM) to the caller in spoken form.
Die LOCAL DATA Tabelle 711 enthält Informationen über lokale Datenbanken. Jeder Tabelleneintrag dient als Definition einer Datenbank und identifiziert Struktur und Art der Datenbank. Eine Datenbank besteht aus einer Sammlung von Datensätzen, von denen jeder mehrere Datenfelder enthält. Wenn eine lokale Datenbank durch Erstellen eines Eintrags in der LOCAL DATA Tabelle definiert wird, wird der Datenbank eine Struktur zuwiesen, die das Format der einzelnen Datensätze in der Datenbank beschreibt. Diese Struktur besteht aus einer Gruppe von Feldnamen. Ein Feldname in der Gruppe kann optional als das Indexfeld zuwiesen werden. Jede lokale Datenbank hat einen Datenbanktyp, der bestimmt, welche Ablaufbefehle verwendet werden können, um auf Datensätze zuzugreifen. Zusätzlich identifiziert der Datenbanktyp, ob Abläufe Datensätze modifizieren oder Datensätze einfach abrufen können. Die vorliegende Erfindung stellt wenigstens drei unterschiedliche Datenbanktypen bereit: nur Suchen, Lesen/Schreiben und sequentiell. Die Nur-Suchen- Datenbank erlaubt es Anrufabläufen nur, Informationen abzuruf en. Die Lese/Schreib-Datenbank erlaubt es Abläufen, in vorhandenen Datensätzen gespeicherte Informationen abzurufen und zu modifizieren. Die sequentielle Datenbank erlaubt es Abläufen, in vorhandenen Datensätzen gespeicherte Informationen der Reihe nach abzurufen und zu modifizieren.The LOCAL DATA table 711 contains information about local databases. Each table entry serves as a definition of a database and identifies the structure and type of the database. A database consists of a collection of records, each of which contains several data fields. When a local database is created by creating an entry defined in the LOCAL DATA table, the database is assigned a structure that describes the format of each record in the database. This structure consists of a group of field names. One field name in the group can optionally be assigned as the index field. Each local database has a database type that determines which flow commands can be used to access records. In addition, the database type identifies whether flows can modify records or simply retrieve records. The present invention provides at least three different database types: search only, read/write, and sequential. The search only database only allows call flows to retrieve information. The read/write database allows flows to retrieve and modify information stored in existing records. The sequential database allows flows to retrieve and modify information stored in existing records in sequence.
Eine SYSTEM PARAMETER Tabelle enthält Werte, die sich auf alle Aktivitäten beim Betrieb der vorliegenden Erfindung beziehen. Diese Aktivitäten können in fünf Hauptbereiche eingeteilt werden: systemspezifisch, Berichtserstellung, Ablaufsteuerung, Ablaufeingaben und Ablaufzustände. Die systemspezifischen Parameter beinhalten den Systemnamen, die System-ID und die Standard-Baudrate. Berichtserstellungsparamter beinhalten die Anzahl der auf jeder Seite eines Berichts zu druckenden Zeilen. Ablaufsteuerparameter beinhalten die maximale Dauer aller Abläufe. Ablaufeingabeparameter legen das Format für die Eingabe von durch den Anwendungsprozessor zu verarbeitenden Einträgen fest. Ablaufzustandsparanmeter spezifizieren die Werte für verschiedene Zeitüberschreitungs- und Fehlerzustände, die während des Betriebs des Systems auftreten.A SYSTEM PARAMETER table contains values that relate to all activities in the operation of the present invention. These activities can be divided into five main areas: system specific, report generation, scheduling, scheduling inputs, and scheduling states. The system specific parameters include the system name, system ID, and default baud rate. Report generation parameters include the number of lines to print on each page of a report. Sequencing parameters include the maximum duration of all scheduling. Sequencing input parameters specify the format for entering entries to be processed by the application processor. Sequencing state parameters specify the values for various timeout and error conditions that occur during the operation of the system.
Die bevorzugte Ausführungsform der vorliegenden Erfindung verwendet die Fähigkeiten zur Bearbeitung und Speicherung von Sprachnachrichten des VMS 105, während sie erlaubt, das VMS 105 unter Steuerung von Befehlen der Ablaufsprache zu betreiben. Fachleute werden erkennen, daß der Bereich der vorliegenden Erfindung nicht auf eine Architektur beschränkt ist, die die Fähigkeiten des VMS 105 zur Behandlung und Speicherung von Sprachnachrichten verwendet.The preferred embodiment of the present invention utilizes the voice message processing and storage capabilities of the VMS 105 while allowing the VMS 105 to be controlled by sequential language commands Those skilled in the art will recognize that the scope of the present invention is not limited to an architecture that utilizes the capabilities of the VMS 105 to handle and store voice messages.
Es können äquivalente alternative Ausführungsformen implementiert werden, in denen die Handhabung und Speicherung von Nachrichten direkt durch den Anwendungsprozessor gesteuert wird.Equivalent alternative embodiments may be implemented in which the handling and storage of messages is controlled directly by the application processor.
Durch den Anwendungsprozessor 110 manipulierte Sprachnachrichten werden durch Verwendung einer Nachrichtennummer gespeichert und identifiziert. Die Nachrichtennummer für jede Nachricht wird vom Anwendungsprozessor 110 für späteren Zugriff durch einen Anrufablauf erhalten. Diese Nachrichtennummern werden entweder in einer Hostdatenbank oder in einer lokalen Datenbank des Anwendungsprozessors gespeichert.Voice messages manipulated by the application processor 110 are stored and identified using a message number. The message number for each message is obtained by the application processor 110 for later access by a call flow. These message numbers are stored either in a host database or in a local database of the application processor.
Nachdem die Hardware und die Systemumgebung der vorliegenden Erfindung beschrieben wurde, wird in den folgenden Abschnitten die Anrufablauf-Programmiersprache der vorliegenden Erfindung beschrieben. Die Call Flow-Sprache ist eine Sammlung von Befehlen und Anweisungen, die vom Anwendungsprozessor zur Behandlung eines eingehenden Telefonanrufs und zugehöriger Nachrichten verwendet wird. Unter Verwendung der Anrufablaufsprache erlauben die Fähigkeiten zur Anrufverarbeitung und Benachrichtigung die Entwicklung und Anpassung von Anrufverarbeitungs- und Nachrichtenanwendungen. Diese Fähigkeiten zur Anrufverarbeitung und Benachrichtigung sind Anrufverarbeitung, Sprachbenachrichtigung, interaktive Sprachantwort, Zugriff auf Hostdatenbanken, Anrufvermittlungsmerkmale und lokalen Datenbankzugriff. Anrufabläufe für Anwendungen werden aus der Anrufablauf- Programmiersprache abgeleitet, um Anwendungen mit Sprachantwort zu entwickeln und anzupassen. Ein Anwendungsablauf ist der auf der Anrufablaufsprache basierende Programmcode.Having described the hardware and system environment of the present invention, the following sections describe the call flow programming language of the present invention. The call flow language is a collection of commands and instructions used by the application processor to handle an incoming telephone call and associated messages. Using the call flow language, the call processing and notification capabilities allow the development and customization of call processing and messaging applications. These call processing and notification capabilities are call processing, voice notification, interactive voice response, host database access, call switching features, and local database access. Application call flows are derived from the call flow programming language to develop and customize voice response applications. An application flow is the program code based on the call flow language.
Ein Anrufablauf besteht aus einer Reihe von Anweisungen, die der Syntax der Anrufablaufsprache folgen. Der Anwendungsprozessor interpretiert die Anrufabläufe zu verwendbaren Anwendungen und führt diese aus. Ein Anwendungsablauf oder Anrufablauf besteht aus einer Reihe von Ablaufanweisungen, die der Reihe nach auszuführen sind. Die meisten Anweisungen beginnen mit einem Schlüsselwort, das die von der Anweisung ausgeführte Operation identifiziert. Abhängig von der Anweisung wird das Schlüsselwort von zusätzlichen Informationen gefolgt, die mit der für die Art der Anweisung geeigneten Syntax oder Struktur übereinstimmen müssen. Allen Anweisungen ist eine Anweisungsnummer zugeordnet.A call flow consists of a series of statements that follow the syntax of the call flow language. The application processor interprets the call flows into usable applications and executes them. An application flow or call flow consists of a series of flow statements that must be executed in sequence. Most statements begin with a keyword that identifies the operation performed by the statement. Depending on the statement, the keyword is followed by additional information that must conform to the syntax or structure appropriate for the type of statement. All statements are assigned a statement number.
Anweisungsnummern werden vom System erzeugt, wenn das Ablaufprogramm unter Verwendung des Konfigurations-Anwendungsterminals 112 eingegeben wird.Instruction numbers are generated by the system when the sequence program is entered using the configuration application terminal 112.
Ein Ablaufprogramm besteht aus drei Abschnitten: VARIABLES, DEFAULTS und COMMANDS. Anrufablaufanweisungen werden in der Reihenfolge dieser Abschnitte geschrieben und organisiert. VARIABLES sind zur Speicherung und zum Abruf von Informationen verwendete Einträge. VARIABLES sind durch die Verwendung beschreibender Namen, die im Variablenabschnitt eines Anrufablaufs zugewiesen werden, einfach zu identifizieren. Der aktuelle Wert einer Variablen kann während der Ausführung eines Anrufablaufs verändert werden. Der Wert einer VARIABLE kann während der Ausführung eines Ablaufs durch die Befehle CAPTURE, GET, INPUT oder TRANSLATE verändert werden. Die Anrufablaufsprache der vorliegenden Erfindung erlaubt auch die Verwendung von numerischen und Zeichenkonstanten in Anrufablaufanweisungen. Die Anrufablaufsprache verwendet auch einige Systemkonfigurationstabellen und anwendungsspezifischen Tabellen direkt. Diese Tabellen werden verwendet, um zur Verarbeitung eines Anrufs benötigte Information zu erlangen.A flow program consists of three sections: VARIABLES, DEFAULTS, and COMMANDS. Call flow statements are written and organized in the order of these sections. VARIABLES are entries used to store and retrieve information. VARIABLES are easily identified by using descriptive names assigned in the variable section of a call flow. The current value of a variable can be changed during the execution of a call flow. The value of a VARIABLE can be changed during the execution of a flow by using the CAPTURE, GET, INPUT, or TRANSLATE commands. The call flow language of the present invention also allows the use of numeric and character constants in call flow statements. The call flow language also uses some system configuration tables and application specific tables directly. These tables are used to obtain information needed to process a call.
Alle in einem Ablaufprogramm verwendeten Variablen werden im Abschnitt VARIABLES deklariert. Die Syntax der Anweisungen im Abschnitt VARIABLES enthält den Typ der deklarierten Variablen, die Länge der Variablen (optional abhängig vom Typ der Variablen) und den Namen der Variablen. Jede Variable hat einen zugehörigen Typ. Die von der vorliegenden Erfindung unterstützten Typen von Variablen sind: NUM, CHAR und PROMPT. Der Variablentyp NUM wird dazu verwendet, eine in arithmetischen Operationen verwendete Variable zu deklarieren. Falls eine NUM Variable einen Dezimalpunkt benötigt, muß die Anzahl signifikanter Stellen rechts vom Dezimalpunkt im Längenteil der Anweisung enthalten sein. Falls die Anzahl von Dezimalstellen nicht spezifiziert ist, wird die Variable als ganzzahlig betrachtet. Die Anzahl der spezifizierten Dezimalstellen bestimmt den Bereich von Werten, der in der Zahl gespeichert werden kann. Der Variablentyp CHAR wird dazu verwendet, eine Variable zu deklarieren, die Zeichenketten enthält. Beim Deklarieren einer CHAR Variablen ist ein Längenwert erforderlich. Ein Längenwert spezifiziert die maximale Länge jeder in dieser Variablen gespeicherten Zeichenkette. Die für eine CHAR Deklaration erlaubte maximale Länge ist 132. CHAR Variablen können auch dazu verwendet werden, Zweiton-Mehrfrequenzvariablen (DTMF) zu definieren. Diese Zeichenvariablen werden in der Ablaufsprache dazu verwendet, eine Nebenstelle zu wählen. Sie werden typischerweise mit der Anweisung CALL verwendet. DTMF-Zeichen können auch verwendet werden, um durch die Anweisung SPEAK DTMF-Ziffern auszugeben. Ein Beispiel für diese Verwendung ist DTMF- Signalgabe für mögliche Netzwerkanwendungen. Um DTMF-Zeichen in einem Anrufablauf zu verwenden, muß eine Variable als CHAR Variable deklariert werden und ihr dann unter Verwendung eines Befehls wie LET oder TRANSLATE ein Wert zugewiesen werden.All variables used in a sequence program are declared in the VARIABLES section. The syntax of the statements in the VARIABLES section includes the type of the declared variable, the length of the variable (optionally depending on the type of the variable) and the name of the variable. Each variable has an associated type. The types of variables supported by the present invention are: NUM, CHAR, and PROMPT. The NUM variable type is used to declare a variable used in arithmetic operations. If a NUM variable requires a decimal point, the number of significant digits to the right of the decimal point must be included in the length part of the statement. If the number of decimal places is not specified, the variable is considered an integer. The number of decimal places specified determines the range of values that can be stored in the number. The CHAR variable type is used to declare a variable that contains character strings. When declaring a CHAR variable, a length value is required. A length value specifies the maximum length of any character string stored in that variable. The maximum length allowed for a CHAR declaration is 132. CHAR variables can also be used to define dual-tone multi-frequency (DTMF) variables. These character variables are used in the sequential function chart to dial an extension. They are typically used with the CALL statement. DTMF characters can also be used to output DTMF digits through the SPEAK statement. An example of this use is DTMF signaling for possible network applications. To use DTMF characters in a call flow, a variable must be declared as a CHAR variable and then assigned a value using a command such as LET or TRANSLATE.
Der Variablentyp PROMPT wird dazu verwendet, Variablen zu deklarieren, die einen Identifizierer einer Aufforderungsmeldung enthalten. Aufforderungsmeldungen werden dazu verwendet, einen Anrufer dazu zu bringen, eine spezifizierte Handlung vorzunehmen oder eine gültige Menüauswahl zu treffen. Variablen vom Typ PROMPT können nur durch einen Befehl TRANSLATE oder LET zugewiesen werden und werden dann unter Verwendung des Befehls SPEAK gesprochen. Die Deklaration eines PROMPT erfordert keine Längenangabe.The PROMPT variable type is used to declare variables that contain a prompt message identifier. Prompt messages are used to prompt a caller to perform a specified action or make a valid menu selection. PROMPT type variables can only be assigned by a TRANSLATE or LET command and are then spoken using the SPEAK command. The declaration of a PROMPT does not require a length specification.
In der bevorzugten Ausführungsform der vorliegenden Erfindung können Variablennamen aus Buchstaben, Ziffern und Unterstrichen bestehen. Das erste Zeichen eines Variablennamens muß ein Buchstabe sein. In Variablennamen sind keine Leerzeichen erlaubt. Ein Variablenname besteht aus höchstens 16 Zeichen. Es wird ein Fehler erzeugt, wenn ein Variablenname mit mehr als 16 Zeichen deklariert wird.In the preferred embodiment of the present invention, variable names can consist of letters, numbers and underscores. The first character of a variable name must be a letter. No spaces are allowed in variable names. A variable name consists of a maximum of 16 characters. An error is generated if a variable name is declared with more than 16 characters.
In einer Anrufablaufanweisung können auch dynamische Variablen definiert werden. Eine dynamische Variable enthält dynamische Laufzeitdaten. Die Werte in diesen Variablen sind installations- oder anrufspezifisch. Der Wert einer dynamischen Variablen kann unter Verwendung des Befehls LET einer Ablaufvariablen zugewiesen werden. Dynamische Variable werden durch ein aus zwei Zeichen bestehendes Typ-Präfix, ein Dollarzeichen und den die Variable beschreibenden Identifizierer eindeutig identifiziert. Die von der bevorzugten Ausführungsform bereitgestellten fünf Typen von dynamische Variablen sind: eine Systemvariable, eine Anrufvariable, eine hostspezifische Variable, eine lokale Datenvariable und eine ablaufspezifische Variable. Dynamische Systemvariable werden dazu verwendet, auf durch einen Anrufablauf erforderte systemweite Werte Bezug zu nehmen. Diese Wert beinhalten den aktuellen Tag, den aktuellen Monat/das aktuelle Jahr, die aktuelle Zeit in Stunden, Minuten und Sekunden, den aktuellen Wochentag, einen Zufallszahlengenerator und einen Wert, der die Anzahl der gegenwärtig im System verwendeten Ports angibt. Dynamische Anrufvariablen geben spezifische Informationen über den gerade ausgeführten Anrufablauf. Diese Variablen enthalten Informationen wie beispielsweise die ursprüngliche ID des angerufenen Teilnehmers, die ursprüngliche ID des anrufenden Teilnehmers, eine in ein Menü eingegebene Anruferziffer oder den gerade vom aktuellen Anruf verwendeten Port.Dynamic variables can also be defined in a call flow statement. A dynamic variable contains dynamic runtime data. The values in these variables are installation or call specific. The value of a dynamic variable can be assigned to a flow variable using the LET command. Dynamic variables are uniquely identified by a two-character type prefix, a dollar sign, and the identifier describing the variable. The five types of dynamic variables provided by the preferred embodiment are: a system variable, a call variable, a host-specific variable, a local data variable, and a flow-specific variable. Dynamic system variables are used to reference system-wide values required by a call flow. These values include the current day, the current month/year, the current time in hours, minutes, and seconds, the current day of the week, a random number generator, and a value indicating the number of ports currently in use in the system. Dynamic call variables provide specific information about the call flow that is currently in progress. These variables contain information such as the original ID of the called party, the original ID of the calling party, a caller digit entered into a menu, or the port currently being used by the current call.
Unter Verwendung von Informationen, die durch die PBX- Integrationsleitung und das VMS geliefert werden, kann ein eingehender Anruf in vier verschiedene Typen klassifiziert werden: interner direkter, interner weitergeleiteter, externer direkter und externer weitergeleiteter Anruf. Ein interner direkter Anruf ist ein von einer internen Nebenstelle direkt an das VMS getätigter Anruf. Ein interner weitergeleiteter Anruf ist ein von einer internen Nebenstelle zu einer anderen Nebenstelle getätigter Anruf, der durch das VMS im Zustand besetzt oder RNA nicht verfügbar usw. weitergeleitet wird. Ein externer direkter Anruf ist ein Anruf von einer externen Verbindungsleitung, den die PBX direkt mit dem VMS verbunden hat. Ein externer weitergeleiteter Anruf ist ein Anruf von einer externen Verbindungsleitung zu einer internen Nebenstelle, der auf einen Zustand besetzt oder RNA nicht verfügbar usw. hin an das VMS weitergeleitet wird.Using information provided by the PBX integration line and the VMS, an incoming call can be classified into four different types: internal direct, internal forwarded, external direct and external forwarded call. An internal direct call is a call made from an internal extension directly to the VMS. An internal forwarded call is a call made from an internal extension to another extension that is forwarded by the VMS in a busy or RNA unavailable etc. state. An external direct call is a call from an external trunk that the PBX has connected directly to the VMS. An external forwarded call is a call from an external trunk to an internal extension that is forwarded to the VMS in a busy or RNA unavailable etc. state.
Eine hostspezifische Variable gibt spezifische Information über die dem Ablauf zugeordnete gegenwärtige Hostsitzung. Diese dynamischen Variablen werden dazu verwendet, die gegenwärtige Nummer der Hostsitzung abzurufen. Ablaufspezifische Variable geben Informationen über den gegenwärtig ausgeführten Ablauf. Diese Informationen beinhalten die Ausführungszeit des Ablaufs in Sekunden und den Ablaufstatus von der letzten ausgeführten Anweisung. Dynamische lokale Datenbankvariablen werden dazu verwendet, den aktuellen Wert der von einem Anrufablauf verwendeten aktuellen Datensatznummer zu erhalten.A host-specific variable gives specific information about the current host session associated with the flow. These dynamic variables are used to retrieve the current host session number. Flow-specific variables give information about the currently executing flow. This information includes the flow execution time in seconds and the flow status from the last statement executed. Dynamic local database variables are used to get the current value of the current record number used by a call flow.
Der Abschnitt DEFAULTS eines Ablaufprogramms wird dazu verwendet, Standard-Handler für Zustände zu spezifizieren, die innerhalb eines Anrufablaufs auftreten können. Falls zum Beispiel ein Anrufer mit einem Auswahlmenü aufgefordert wird und gebeten wird, durch Eingabe einer Nummer unter Verwendung der DTMF-Tastatur eine Auswahl vorzunehmen, kann bei der Eingabe eine Zeitüberschreitung auftreten, wenn keine Auswahl vorgenommen wird. Falls die Zeitüberschreitung mehrmals nacheinander auftritt, wird ein Zustand für die Zeitüberschreitungsgrenze gesetzt. Unter Verwendung des Abschnitts DEFAULTS der vorliegenden Erfindung kann die Standardbehandlung anderer Systemfehlerzustände spezifiziert werden.The DEFAULTS section of a flow program is used to specify default handlers for conditions that may occur within a call flow. For example, if a caller is presented with a selection menu and is asked to make a selection by entering a number using the DTMF keypad, the entry may time out if no selection is made. If the time out occurs multiple times in a row, a condition is set for the time out limit. Using the DEFAULTS section of the present invention, the default handling of other system error conditions may be specified.
Der Abschnitt COMMANDS, der der Hauptteil des Ablaufprogramms ist, enthält die eigentlichen Ablaufanweisungen, die steuern, wie ein Anruf abgewickelt wird. Die Anweisungen werden der Reihe nach ausgeführt, es sei denn, eine GOTO oder GOSUB Anweisung überträgt die Steuerung einer anderen Stelle im Programm oder ein Zustand überträgt die Ausführung einem Standard-Handler. Der Hauptteil eines Ablaufprogramms beginnt mit der ersten ausführbaren Anweisung. Alle Anweisungen im Abschnitt COMMANDS werden als Teil des Hauptteils des Programms betrachtet. Die Ausführung eines Ablaufs endet immer dann, wenn eine Anweisung zur Beendigung des Ablaufs auftritt. Der folgende Abschnitt beschreibt jeden der von der Anrufablaufsprache der vorliegenden Erfindung bereitgestellten Befehle. Die Syntax jedes Befehls und spezifische Beispiele für die Verwendung jedes Befehls werden ebenfalls bereitgestellt.The COMMANDS section, which is the body of the flow program, contains the actual flow statements that control how a call is handled. The statements are executed in order unless a GOTO or GOSUB statement transfers control elsewhere in the program or a state transfers execution to a default handler. The body of a flow program begins with the first executable statement. All statements in the COMMANDS section are considered part of the body of the program. Execution of a flow ends whenever a flow termination statement occurs. The following section describes each of the commands provided by the call flow language of the present invention. The syntax of each command and specific examples of using each command are also provided.
Die Anweisung CALL tätigt einen Anruf zu der spezifizierten Nummer. Der zu verwendende Port wird automatisch als der nächste freie VMS-Port zugewiesen, der für abgehende Anrufe konf iguriert ist. Die Anweisung CALL ist nur gültig, falls der Ablauf nicht bereits mit einem Port verbunden ist. CALL versetzt den Ablauf an einem Port in den Zustand verbunden.The CALL statement makes a call to the specified number. The port to be used is automatically assigned as the next free VMS port configured for outgoing calls. The CALL statement is only valid if the flow is not already connected to a port. CALL puts the flow on a port into the connected state.
Die Syntax für den Befehl CALL ist wie folgt:The syntax for the CALL command is as follows:
CALL < charvar> CALL <charvar>
Falls die spezifizierte Variable < charvar> mehr als 8 Ziffern enthält, wird angenommen, daß es sich um einen externen Anruf handelt. Falls die spezifizierte Variable eine gültige VMS-Mailbox enthält, wird die Mailboxnebenstelle angerufen. Andernfalls wird die in der spezifizierten Variablen enthaltene Nebenstellennummer angerufen. Die Nebenstellennummer muß gültige DTMF-Zeichen enthalten.If the specified variable < charvar> contains more than 8 digits, it is assumed that it is an external call. If the specified variable contains a valid VMS mailbox, the mailbox extension is called. Otherwise, the extension number contained in the specified variable is called. The extension number must contain valid DTMF characters.
Es folgt ein Beispiel für den Befehl CALL:The following is an example of the CALL command:
CALL AGENTEXTCALL AGENTEXT
Die Anweisung CAPTURE ruft Daten von einem Hostbildschirm ab, der vorher unter Verwendung des Befehls HOSTRCV empfangen worden ist.The CAPTURE statement retrieves data from a host screen that was previously received using the HOSTRCV command.
Die Syntax für den Befehl CAPTURE ist wie folgt: CAPTURE < charvar> AT < field> ON < screen> .The syntax for the CAPTURE command is as follows: CAPTURE < charvar> AT < field> ON < screen> .
CAPTURE ruft die Inhalte eines Feldes auf einem Hostbildschirm ab und weist sie dann einer im Abschnitt VARIABLES definierten CHAR Variablen zu. < screen> bezieht sich auf einen vorher in der SCREEN Tabelle definierten Bildschirmnamen. < field> muß der Name eines vorher in diesem speziellen Bildschirmeintrag definierten Feldes sein.CAPTURE retrieves the contents of a field on a host screen and then assigns it to a CHAR variable defined in the VARIABLES section. < screen> refers to a screen name previously defined in the SCREEN table. < field> must be the name of a field previously defined in this particular screen entry.
Es folgt ein Beispiel für den Befehl CAPTURE:The following is an example of the CAPTURE command:
CAPTURE PASSWORD AT PASSFIELD ON LOGONSCRCAPTURE PASSWORD AT PASSFIELD ON LOGONSCR
Die Anweisung CONNECT wird dazu verwendet, eine er folgreiche Übermittlung eines Anrufs an eine Mailbox oder Nebenstelle abzuschließen (siehe Befehl TRANSFER)The CONNECT statement is used to complete a successful transfer of a call to a mailbox or extension (see TRANSFER command)
Die Syntax für den Befehl CONNECT ist wie folgt:The syntax for the CONNECT command is as follows:
CONNECTCONNECT
Es folgt ein Beispiel für den Befehl CONNECT:The following is an example of the CONNECT command:
"Übermittlung an Agenten versuchen"Attempt to send to agent
TRANSFER AGENTEXTTRANSFER AGENCY TEXT
ON CN$FAIL GOTO NOAGENTON CN$FAIL GOTO NOAGENT
"TRANSFER erfolgreich, also Anrufer mit dem Agenten verbinden"TRANSFER successful, so connect caller to agent
CONNECTCONNECT
Die Anweisung DESELECT wird dazu verwendet, einen gegenwärtigen Zugriff auf eine lokale Datenbank freizugeben. Eine Datenbank, die mit SELECT geöffnet ist, muß mit DESELECT geschlossen werden, bevor ein Ablauf eine GOFLOW An weisung erfolgreich ausführen kann. Eine lokale Datenbank wird implizit geschlossen, wenn ein Ablauf beendet wird.The DESELECT statement is used to release current access to a local database. A database opened with SELECT must be closed with DESELECT before a flow can successfully execute a GOFLOW statement. A local database is implicitly closed when a flow terminates.
Die Syntax für den Befehl DESELECT ist wie folgt:The syntax for the DESELECT command is as follows:
Es folgt ein Beispiel für den Befehl DESELECT:The following is an example of the DESELECT command:
DESELECT TRAVELDESELECT TRAVEL
Die Anweisung EDIT wird dazu verwendet, Zeichen und Teilzeichenketten aus Zeichenketten zu entfernen, die während der Ausführung eines Ablaufs in CHAR Variablen gespeichert sind.The EDIT statement is used to remove characters and substrings from strings stored in CHAR variables during the execution of a sequence.
Die Syntax für den Befehl EDIT ist wie folgt:The syntax for the EDIT command is as follows:
EDIT < charvar> REMOVE CHARS < string> EDIT <charvar> REMOVE CHARS <string>
Es folgt ein Beispiel für den Befehl EDIT: (1) 330: LET BAD_CHARS =",$"The following is an example of the EDIT command: (1) 330: LET BAD_CHARS =",$"
340: CAPTURE ACCT_BALANCE AT BALANCE ON ACCT_INFO340: CAPTURE ACCT_BALANCE AT BALANCE ON ACCT_INFO
350: EDIT ACCT_BALANCE REMOVE CHARS 'BAD_CHARS'350: EDIT ACCT_BALANCE REMOVE CHARS 'BAD_CHARS'
(2) 340: CAPTURE SOC SEC NUM AT SSN ON ACCT_INFO(2) 340: CAPTURE SOC SEC NUM AT SSN ON ACCT_INFO
350: EDIT SOC_SEC_NUM REMOVE STRING 'SSN' FIRST350: EDIT SOC_SEC_NUM REMOVE STRING 'SSN' FIRST
Die Anweisung ENDFLOW schließt die Verarbeitung eines Ablaufs ab. Sie führt ein implizites HANGUP des dem Ablauf zugewiesenen VMS-Ports durch.The ENDFLOW statement completes the processing of a flow. It performs an implicit HANGUP of the VMS port assigned to the flow.
Die Syntax für den Befehl ENDFLOW ist wie folgt:The syntax for the ENDFLOW command is as follows:
ENDFLOW [CONDITION]ENDFLOW [CONDITION]
Das Schlüsselwort CONDITION kann zu einer ENDFLOW Anweisung hinzugefügt werden, um gemäß dem letzten im Ablauf gesetzten Zustand den Grund für die Beendung eines Ablaufs anzugeben.The CONDITION keyword can be added to an ENDFLOW statement to specify the reason for terminating a flow according to the last state set in the flow.
Es folgt ein Beispiel für den Befehl ENDFLOW:The following is an example of the ENDFLOW command:
ENDFLOWENDFLOW
ERR:ERROR:
ENDFLOW CONDITIONEND FLOW CONDITION
Die Anweisung ENDSUB beendet die Unterroutine und weist den Ablauf an eine Unterroutine zu verlassen. Die Ausführung wird bei der Anweisung unmittelbar nach dem GOSUB, das die Unterrautine aufgerufen hat, fortgesetzt (siehe auch RETURN). Sie ist die letzte Anweisung in einer Unterroutine. Jede Unterroutine muß genau eine ENDSUB Anweisung besitzen.The ENDSUB statement ends the subroutine and instructs the flow to exit a subroutine. Execution continues at the statement immediately after the GOSUB that called the subroutine (see also RETURN). It is the last statement in a subroutine. Each subroutine must have exactly one ENDSUB statement.
Die Syntax für den Befehl ENDSUB ist wie folgt:The syntax for the ENDSUB command is as follows:
ENDSUBENDSUB
Es folgt ein Beispiel für den Befehl ENDSUB:The following is an example of the ENDSUB command:
ENDSUBENDSUB
Die Anweisung ERASE löscht eine vorher aufgezeichnete Nachricht.The ERASE statement deletes a previously recorded message.
Die Syntax für den Befehl ERASE ist wie folgt:The syntax for the ERASE command is as follows:
ERASE < numvar> ERASE <numvar>
Die Nachricht ist eine mit dem Typ NUM:0 deklarierte Variable, der durch einen vorhergehenden RECORD Befehl ein Nachrichtenwert zugewiesen wurde.The message is a variable declared with the type NUM:0, to which a message value was assigned by a previous RECORD command.
Es folgt ein Beispiel für den Befehl ERASE:The following is an example of the ERASE command:
SEND CUSTMSG TO AGTMBOXSEND CUSTMSG TO AGTMBOX
ERASE CUSTMSGERASE CUSTOMMSG
Die Anweisung FIND sucht unter Verwendung einer TRANSLATION Tabelle nach einem Eintrag oder sucht in einer LOCAL DATA Tabelle nach einem Eintrag.The FIND statement searches for an entry using a TRANSLATION table or searches for an entry in a LOCAL DATA table.
Die Syntax für den Befehl FIND ist wie folgt:The syntax for the FIND command is as follows:
FIND < variable> USING < tablename> FIND < variable> USING < table name>
< variable> enthält die Daten, die in der TRANSLATION Tabelle gesucht werden, die durch < tablename> spezifiziert wird. < tablename> muß der Name einer vorher definierten TRANSLATION Tabelle sein. Falls < variable> nicht in der TRANSLATION Tabelle gefunden wird, wird der Zustand CN$FAIL gesetzt.<variable> contains the data to be searched in the TRANSLATION table specified by <tablename>.<tablename> must be the name of a previously defined TRANSLATION table. If <variable> is not in the TRANSLATION table is found, the state CN$FAIL is set.
Die Anweisung FIND wird auch dazu verwendet, Zugriff auf einen bestimmten Datensatz in der Datenbank zu erhalten. FINDET ein Ablauf einen Datensatz, kann er GET verwenden, um Informationen aus dem Datensatz zu erhalten, oder PUT verwenden, um die Information in einem Datensatz abzulegen. Die Information im Datensatz kann dann unter Verwendung von WRITEDB, um einen modifizierten Datensatz in die Datenbank zurückzuschreiben, aktualisiert werden.The FIND statement is also used to gain access to a specific record in the database. When a flow FINDs a record, it can use GET to get information from the record or PUT to put the information into a record. The information in the record can then be updated using WRITEDB to write a modified record back to the database.
Jeder der FIND Befehle hat ein bestimmtes Schlüsselwort (NEW, NTH, NEXT, FIRST) , das spezifiziert, wie auf die Datenbank zugegriffen wird, um den angeforderten Datensatz zu FINDEN. Für einen spezifischen Typ von Datenbank sind nur bestimmte FIND Anweisungen erlaubt: SEQ, RW oder LU.Each of the FIND commands has a specific keyword (NEW, NTH, NEXT, FIRST) that specifies how to access the database to FIND the requested record. For a specific type of database, only certain FIND statements are allowed: SEQ, RW or LU.
FIND NEW RECORD USING < database> FIND NEW RECORD USING <database>
Dieses Schlüsselwort reserviert einen nicht initiallsierten Datensatz am Ende der aktuellen sequentiellen Datenbank (SEQ). Nach einer Anweisung FIND NEW sind die einzigen erlaubten Anweisungen unter Verwendung der lokalen Datenbank PUT gefolgt von einem WRITEDB. Eine Datensatznummer wird zugewiesen, nachdem die Anweisung WRITEDB ausgeführt ist. Diese Datensatznummer wird in der dynamischen Variablen DB$RECORDNUM gespeichert.This keyword reserves an uninitialized record at the end of the current sequential database (SEQ). After a FIND NEW statement, the only statements allowed using the local database are PUT followed by a WRITEDB. A record number is assigned after the WRITEDB statement is executed. This record number is stored in the dynamic variable DB$RECORDNUM.
FIND FIRST RECORD WITH < index> < op> < var> USING < database> FIND FIRST RECORD WITH < index> < op> < var> USING < database>
o < index> ist ein Datenfeldo < index> is a data field
o < op> kann =, < > , > , < , > = oder < = seino < op> can be =, < > , > , < , > = or < =
o < var> ist eine spezifische zu suchende Variableo < var> is a specific variable to search for
o < database> ist der Name der Datenbanko < database> is the name of the database
Diese Schlüsselwort durchsucht die durch < index> spezifizierte Datenbank und findet den ersten mit der spezifizierten Suchbedingung übereinstimmenden Datensatz. Die Datenbank muß auch einen definierten Index besitzen.This keyword searches the database specified by < index> and finds the first record that matches the specified search condition. The database must also have a defined index.
FIND NEXT RECORD WITH < index> < op< < var> USING < database> FIND NEXT RECORD WITH < index> < op< < var> USING < database>
Dieses Schlüsselwort arbeitet ähnlich wie FIND FIRST, außer daß es die Datenbank beginnend mit dem aktuellen Datensatz durchsucht stätt vom Anfang der Datenbank aus zu suchen. Die Datenbank muß auch einen definiert Index besitzen.This keyword works similarly to FIND FIRST, except that it searches the database starting with the current record instead of searching from the beginning of the database. The database must also have a defined index.
FIND NTH RECORD WITH RECORD = < integer> USING < database> FIND NTH RECORD WITH RECORD = < integer> USING < database>
o < integer> ist eine ganzzahlige Variable oder Konstanteo < integer> is an integer variable or constant
o < database> ist der Name der Datenbanko < database> is the name of the database
Dieses Schlüsselwort greift auf einen bestimmten, durch die Datensatznummer spezifizierten Datensatz zu. Die Datensatznummer wird durch Verwendung einer ganzzahligen Variablen oder Konstanten spezifiziert. Diese Zugriffsart ist für alle Typen von Datenbanken erlaubt.This keyword accesses a specific record specified by the record number. The record number is specified using an integer variable or constant. This type of access is allowed for all types of databases.
Es folgt ein Beispiel für den Befehl FIND:The following is an example of the FIND command:
(1) FIND ERRCODE USING ERRTBL(1) FIND ERRCODE USING ERRTBL
falls der Fehlercode nicht in der Tabelle zu finden ist, bedeutet das kein Fehlerif the error code is not found in the table, it means there is no error
ON CN$FAIL GOTO NOERRON CN$FAIL GOTO NOERR
(2) FIND ACCOUNT USING VALACNTS ON CN$FAIL GOTO INVALIDACNT(2) FIND ACCOUNT USING VALACNTS ON CN$FAIL GOTO INVALIDACNT
(1) FIND FIRST RECORD WITH ZIPCODE = INPUTZIP USING LOCATE(1) FIND FIRST RECORD WITH ZIPCODE = INPUTZIP USING LOCATE
(2) FIND NEW RECORD USING SAVEINFO(2) FIND NEW RECORD USING SAVEINFO
(3) FIND NEXT RECORD WITH BALANCE ) 10000.00 USING ACCOUNTS(3) FIND NEXT RECORD WITH BALANCE ) 10000.00 USING ACCOUNTS
(4) FIND NTH RECORD WITH RECORD = RCNUM USING ORDERS(4) FIND NTH RECORD WITH RECORD = RCNUM USING ORDERS
Die Anweisung FREESESSION gibt die gegenwärtig vom Ablauf gehaltene Hostsitzung frei. Falls in der SESSION Tabelle ein Bereinigungsablauf mit dem Pool verknüpft ist, zu dem diese Sitzung gehört, dann wird der Bereinigungsablauf mit dieser Sitzung im Modus BACKGROUND ausgeführt.The FREESESSION statement frees the host session currently held by the process. If a cleanup process is associated with the pool to which this session belongs in the SESSION table, then the cleanup process runs with this session in BACKGROUND mode.
Die Syntax für den Befehl FREESESSION ist wie folgt:The syntax for the FREESESSION command is as follows:
FREESESSION [RESET] Falls die Option RESET spezifiziert wird, wird die Sitzung nach der Freigabe zurückgesetzt. Diese Option sollte gewählt werden, falls die Sitzung in einem unbekannten Zustand ist und das Ablaufprogramm sie nicht in einen bekannten Zustand bringen kann. Nachdem eine Zurücksetzung vollendet ist, geht die Sitzung durch die normalen Anmeldeprozeduren und wird schließlich in einen bekannten Zustand gebracht. Falls in der SESSION Tabelle ein Anmeldeablauf mit der Sitzung verknüpft ist, wird er mit der Sitzung im Modus BACKGROUND ausgeführt.FREESESSION [RESET] If the RESET option is specified, the session is reset after release. This option should be chosen if the session is in an unknown state and the sequencer cannot bring it to a known state. After a reset is completed, the session goes through the normal logon procedures and is finally brought to a known state. If a logon sequence is associated with the session in the SESSION table, it is executed with the session in BACKGROUND mode.
Es folgt ein Beispiel für den Befehl FREESESSION:The following is an example of the FREESESSION command:
FREESESSIONFREE SESSION
FREESESSION RESETFREESESSION RESET
Dieser Befehl ruft Daten aus einem Feld oder einem Datensatz einer lokalen Datenbank ab.This command retrieves data from a field or record in a local database.
Die Syntax für den Befehl GET ist wie folgt:The syntax for the GET command is as follows:
GET < variable> AT < index> USING < arrayname> GET < variable> AT < index> USING < array name>
Als Felder deklarierte Variablen können nur In GET und PUT Anweisungen verwendet werden. Der Variablentyp muß mit dem Feldtyp übereinstimmen. < index> muß entweder eine NUM:0 Variable oder eine ganzzahlige Konstante sein.Variables declared as fields can only be used in GET and PUT statements. The variable type must match the field type. <index> must be either a NUM:0 variable or an integer constant.
GET < variable> AT < field> USING < database> GET < variable> AT < field> USING < database>
GET weist unter Verwendung des gegenwärtig ausgewählten Datensatzes in der Datenbank der Ablaufvariablen den Inhalt des spezifizierten Feldes zu. Ein Datensatz muß für den Zugriff mit dem Befehl FIND ausgewählt werden. Andernfalls tritt ein Fehler auf, falls bei der Ausführung von GET kein Datensatz ausgewählt ist. Die Ablaufvariable und das Feld, die in der GET Anweisung verwendet werden, müssen vom selben deklarierten Typ sein.GET assigns the contents of the specified field to the flow variable using the currently selected record in the database. A record must be selected for access using the FIND command. Otherwise, an error occurs if no record is selected when GET is executed. The flow variable and the field used in the GET statement must be of the same declared type.
Es folgt ein Beispiel für den Befehl GET:The following is an example of the GET command:
Abrufen von Daten aus einem FeldRetrieving data from a field
GET TEMPCHECK AT INDEX USING CHECKSGET TEMPCHECK AT INDEX USING CHECKS
Abrufen von Daten aus einer lokalen DatenbankRetrieving data from a local database
GET TELL_CALLER AT LOC PROMPT USING LOCATEGET TELL_CALLER AT LOC PROMPT USING LOCATE
Die Anweisung GETSESSION weist eine Hostsitzung für einen Ablauf aus einem spezifizierten Sitzungspool zu.The GETSESSION statement allocates a host session for a flow from a specified session pool.
Die Syntax des Befehls GETSESSION ist wie folgt: GETSESSION < session pool> The syntax of the GETSESSION command is as follows: GETSESSION < session pool>
Falls der zu dem SESSION Tabelleneintrag "session pool" gehörende Host deaktiviert oder außer Betrieb ist, wird die dynamische Variable CN$HOSTDOWN gesetzt; falls der Host in Betrieb ist und falls eine im "session pool" konfigurierte Sitzung verfügbar ist, wird sie für den Ablauf reserviert; andernfalls wird CN$FAIL gesetzt. Ein Ablauf muß eine GETSESSION Anweisung erfolgreich ausführen, bevor er irgendwelche anderen Anweisungen zur Hostkommunikation wie PLACE, CAPTURE usw. verwenden kann.If the host associated with the SESSION table entry "session pool" is disabled or down, the dynamic variable CN$HOSTDOWN is set; if the host is up and running and a session configured in the "session pool" is available, it is reserved for the process; otherwise CN$FAIL is set. A process must successfully execute a GETSESSION statement before it can use any other host communication statements such as PLACE, CAPTURE, etc.
Es folgt ein Beispiel für den Befehl GETSESSION:The following is an example of the GETSESSION command:
GETSESSION CHECKINGGET SESSION CHECKING
ON CN$HOSTDOWN GOTO HOSTDOWNON CN$HOSTDOWN GOTO HOSTDOWN
ON CN$FAJL GOTO NOSESSIONON CN$FAJL GOTO NOSESSION
Die Anweisung GODIAL übergibt die Steuerung des Anrufs an das VMS.The GODIAL statement passes control of the call to the VMS.
Die Syntax für den Befehl GODIAL ist wie folgt:The syntax for the GODIAL command is as follows:
GODIAL < charvar> GODIAL < charvar>
Der Anrufer wird wie ein neuer Anrufer behandelt, der die als eine CHAR Variable spezifizierte Mailbox eingegeben hat. Die CHAR Variable muß gültige DTMF Ziffern enthalten. Falls die erste Ziffer der CHAR Variablen ein '#' enthält, durchläuft der Anrufer durch die normale Anmeldesequenz der Mailbox.The caller is treated as a new caller who has entered the mailbox specified as a CHAR variable. The CHAR variable must contain valid DTMF digits. If the first digit of the CHAR variable contains a '#', the caller goes through the normal mailbox login sequence.
Es folgt ein Beispiel für den Befehl GODIAL:The following is an example of the GODIAL command:
(1) LET ASSISTEXTN = '333'(1) LET ASSISTTEXT = '333'
GODIAL ASSISTEXTNGODIAL ASSISTTEXTN
(2) LET USERMBOX = '#5930'(2) LET USER_BOX = '#5930'
GODIAL USERMBOXGODIAL USER BOX
ON CN$FAIL GOTO INVALIDON CN$FAIL GOTO INVALID
Die Anweisung GOFLOW schließt die Verarbeitung des Ablaufs, der gerade ausgeführt wird, ab und beginnt mit der Verarbeitung des spezifizierten Ablaufs.The GOFLOW statement completes processing of the flow that is currently executing and begins processing of the specified flow.
Die Syntax des Befehis GOFLOW ist wie folgt:The syntax of the GOFLOW command is as follows:
GOFLOW < flowname> GOFLOW < flowname>
Es folgt ein Beispiel für den Befehl GOFLOW:The following is an example of the GOFLOW command:
GOFLOW ORDERSGOFLOW ORDERS
Die Anweisung GOSUB weist den Ablauf an, die spezifizierte Unterroutine auszuführen. Wenn die Unterroutine vollendet ist, kehrt er zurück und wird bei der Anweisung unmittelbar nach dem GOSUB fortgesetzt.The GOSUB statement instructs the flow to execute the specified subroutine. When the subroutine is completed, it returns and continues at the statement immediately following the GOSUB.
Die Syntax für den Befehl GOSUB ist wie folgt:The syntax for the GOSUB command is as follows:
GOSUB < name> GOSUB <name>
Es folgt ein Beispiel für den Befehl GOSUB:The following is an example of the GOSUB command:
GOSUB INITIALIZEGOSUB INITIALIZE
Die Anweisung GOTO überträgt die Steuerung des Ablaufprogramms an einen durch eine Marke spezifizierten anderen Abschnitt des Programms.The GOTO statement transfers control of the sequence program to another section of the program specified by a label.
Die Syntax für den Befehl GOTO ist wie folgt:The syntax for the GOTO command is as follows:
GOTO < label> GOTO < label>
Es folgt ein Beispiel für den Befehl GOTO:Here is an example of the GOTO command:
"den Anrufer erneut auffordern"request the caller
GOTO ASKAGAINGOTO ASKAGAIN
Die Anweisung HANGUP hängt den zu einem bestimmten Anruf gehörenden VMS-Port auf und macht ihn frei für die Abwicklung anderer Anrufe. Der Ablauf wird fortgesetzt, bis eine ENDFLOW Anweisung ausgeführt wird.The HANGUP statement hangs up the VMS port associated with a specific call and frees it to handle other calls. The process continues until an ENDFLOW statement is executed.
Die Syntax und ein Beispiel für den Befehl HANGUP sind wie folgt:The syntax and an example of the HANGUP command are as follows:
HANGUPHANGUP
Die Anweisung HOSTRCV wartet auf einen Bildschirm mit Daten vom Hostrechner.The HOSTRCV instruction waits for a screen of data from the host computer.
Die Syntax für den Befehl HOSTRCV ist wie folgt:The syntax for the HOSTRCV command is as follows:
HOSTRCVHOSTRCV
Es folgt ein Beispiel für den Befehl HOSTRCV:The following is an example of the HOSTRCV command:
HOSTRCVHOSTRCV
ON CN$FAIL GOTO HOSTTIMEOUTON CN$FAIL GOTO HOSTTIMEOUT
Die Anweisung HOSTSND sendet einen Bildschirm mit Daten an einen Hostrechner.The HOSTSND statement sends a screen of data to a host computer.
Die Syntax für den Befehl HOSTSND ist wie folgt:The syntax for the HOSTSND command is as follows:
HOSTSND [aid]HOSTSND [aid]
"aid" ist eine an den Host gesendete Achtung-Kennzeichner-Terminaltaste, zur Anforderung einer Aktion. Das spezifische zu verwendende aid ist dieselbe Taste, die der Bediener des Terminals drücken würde, um die Funktion auszuführen und hängt von der Hostanwendung ab. ENTER ist die Standardtaste, die verwendet wird, falls keine spezifiziert ist. Die gültigen Tasten sind:"aid" is an attention-qualifying terminal key sent to the host to request an action. The specific aid to use is the same key the terminal operator would press to perform the function and depends on the host application. ENTER is the default key used if none is specified. The valid keys are:
aid Taste Funktionaid button function
ENTER Verarbeitet den Bildschirm (Senden der Taste Enter)ENTER Processes the screen (sending the Enter key)
CLEAR Senden der Taste CLEARCLEAR Sending the CLEAR key
ATTN Senden der Taste ATTNATTN Sending the ATTN key
PF1 bis PF24 Programmierbare Funktions-tasten (anwendungsabhängig)PF1 to PF24 Programmable function keys (application dependent)
PA1 bis PA3 Programmierbare Funktions-tasten (anwendungsabhängig)PA1 to PA3 Programmable function keys (application dependent)
Es folgt eine Beispiel für den Befel HOSTSND:The following is an example of the HOSTSND command:
(1) HOSTSND ENTER(1) HOSTSND ENTER
(2) HOSTSD PF11 HOSTRCV(2) HOSTSD PF11 HOSTRCV
Die Anweisung IF vergleicht zwei Variablen oder vergleicht eine Variable mit einer Konstanten. Die erlaubten Vergleichsoperatoren sind:The IF statement compares two variables or compares a variable with a constant. The permitted comparison operators are:
o Gleich =o Equal =
o Ungleich < > o Not equal < >
o Größer als > o Greater than >
o Kleiner als < o Less than <
o Größer als oder gleich > =o Greater than or equal to > =
o Kleiner als oder gleich < =o Less than or equal to < =
Die Anweisung IF wird unmittelbar von einer Anweisung THEN GOTO < label> gefolgt. Der Ablauf geht zu < label> über, wenn der Vergleich richtig ist.The IF statement is immediately followed by a THEN GOTO < label> statement. Flow proceeds to < label> if the comparison is correct.
Die Syntax für den Befehl IF ist wie folgt: PIF < variable> {=, < > , > , < , < =, > =} < variable> The syntax for the IF command is as follows: PIF < variable> {=, < > , > , < , < =, > =} < variable>
THEN GOTO (label)THEN GOTO (label)
IF < variable> {=, < > , > , < , < =, > =} (constant)IF < variable> {=, < > , > , < , < =, > =} (constant)
THEN GOTO (label)THEN GOTO (label)
Die Variablen oder Konstanten im Vergleicht müssen vom selben Typ sein. Zum Vergleich von CHAR Typen werden beim Vergleich die ASCII-Werte der ersten Zeichen, die sich in den Variablen unterscheiden, verwendet. Falls auch die gegenwärtige Länge der Variablen unterschiedlich ist, aber alle Zeichen bis zur Länge der kürzeren Zeichenkette dieselben sind, wird die kürzere Zeichenkette als kleiner als (0 die längere Zeichenkette betrachtet. Werden NUM Variablen mit unterschiedlicher Genauigkeit verglichen, wird die gesamte Genauigkeit verwendet.The variables or constants being compared must be of the same type. When comparing CHAR types, the ASCII values of the first characters that differ in the variables are used in the comparison. If the current length of the variables is also different, but all characters up to the length of the shorter string are the same, the shorter string is considered smaller than the longer string. When comparing NUM variables with different precision, the entire precision is used.
Es folgt ein Beispiel für den Befehl IF:Here is an example of the IF command:
(1) IF ENTRDPSS = 'HOSTPSS' THEN GOTO GOODPASS(1) IF ENTRDPSS = 'HOSTPSS' THEN GOTO GOODPASS
(2) IF ACCNTBAL < = 0 THEN GOTO OVERDRWN(2) IF ACCNTBAL < = 0 THEN GOTO OVERDRWN
(3) LET A = 3.1 LET B = 3.10001 "das folgende mißlingt, A< B gelingt(3) LET A = 3.1 LET B = 3.10001 "the following fails, A< B succeeds
IF A = B THEN GOTO ABEQUALIF A = B THEN GOTO ABEQUAL
Die Anweisung INPUT nimmt DTMF-Eingaben von der Person entgegen, die gerade mit dem Ablauf verbunden ist. Die Eingabe kann entweder in einer NUM oder einer CHAR Variablen untergebracht werdenThe INPUT statement accepts DTMF input from the person who is currently connected to the process. The input can be placed in either a NUM or a CHAR variable
Die Syntax für den Befehl INPUT ist wie folgt:The syntax for the INPUT command is as follows:
INPUT < numvar> RANGE < numeric> TO < numeric> INPUT < charvar> LENGTH < numeric> TO < numeric> INPUT < numvar> RANGE < numeric> TO < numeric> INPUT < charvar> LENGTH < numeric> TO < numeric>
Im ersten Beispiel liest der Befehl eine numerische Eingabe von der DTMF-Tastatur und bringt sie in der NUM Variablen unter, wobei sichergestellt wird, daß der Wert im spezifizierten Bereich liegt. Der zweite Befehl dient zum Eingeben von Daten in eine CHAR Variable, wobei geprüft wird, um sicherzustellen, daß die Länge der eingegebenen Zeichenkette gültig ist. Es können bestimmte Systemkonfigurationsparameter gesetzt werden, die beeinflussen, wie INPUT behandelt wird. Diese sind:In the first example, the command reads a numeric input from the DTMF keyboard and places it in the NUM variable, ensuring that the value is in the specified range. The second command is used to enter data into a CHAR variable, checking to ensure that the length of the entered string is valid. Certain system configuration parameters can be set that affect how INPUT is handled. These are:
o Ob "#" als Abschluß der Eingabe erforderlich isto Whether "#" is required to terminate the input
o Ob "*" bei numerischer Eingabe als Dezimalpunkt, negatives Vorzeichen oder beides verwendet werden soll (z . B. : "*" , "0" , "*" , "3", "5" wäre - 0, 35)o Whether "*" should be used as a decimal point, negative sign or both in numeric input (e.g.: "*", "0", "*", "3", "5" would be - 0, 35)
o Die Anzahl von Sekunden, die auf ein einzugebendes Zeichen gewartet wird, vor dem Setzen von CN$TIMEOUTo The number of seconds to wait for a character to be entered before setting CN$TIMEOUT
o Die Anzahl aufeinanderfolgender Zeitüberschreitungen vor dem Setzen von CN$TMOLIMIT.o The number of consecutive timeouts before setting CN$TMOLIMIT.
o Die Anzahl von aufeinanderfolgenden ungültigen Eingaben vor dem Setzen von CN$INVLIMIT.o The number of consecutive invalid entries before CN$INVLIMIT is set.
Es folgt ein Beispiel für den Befehl INPUT:The following is an example of the INPUT command:
(1) INPUT WRAPUP RANGE 0 TO 99999(1) INPUT WRAPUP RANGE 0 TO 99999
(2) INPUT VISANUM LENGTH 16 TO 16(2) INPUT VISA NUMBER LENGTH 16 TO 16
In Beispiel zwei ist VISANUM als eine CHAR Variable deklariert, da es zum Speichern als NUM Variable zu groß ist.In example two, VISANUM is declared as a CHAR variable because it is too large to store as a NUM variable.
Die Anweisung LET weist einer Variablen einen neuen Wert zu. Der zugewiesene Wert kann sein:The LET statement assigns a new value to a variable. The assigned value can be:
o Eine Konstante.o A constant.
o Das Ergebnis einer arithmetischen Operation mit entweder zwei Variablen oder einer Konstanten und einer Variablen.o The result of an arithmetic operation on either two variables or a constant and a variable.
o Eine Variable.o A variable.
o Eine Laufzeitvariable.o A runtime variable.
o Eine Aufforderungsmeldung.o A prompt message.
Die Syntax für den Befehl LET ist wie folgt: LET weist entweder einer CHAR Variablen, einer NUM Variablen oder einer PROMPT Variablen einen Wert zu.The syntax for the LET command is as follows: LET assigns a value to either a CHAR variable, a NUM variable, or a PROMPT variable.
(1) LET < numvar> = < numvar> {+,-,*,/} < numeric> NUM Variablen kann eine numerische Konstante zugewiesen werden oder sie können das Ergebnis einer arithmetischen Operation mit Variablen oder einer Variablen und einer Konstanten sein.(1) LET < numvar> = < numvar> {+,-,*,/} < numeric> NUM variables can be assigned a numeric constant or they can be the result of an arithmetic operation on variables or a variable and a constant.
(2) LET < numvar> = < numvar> MOD < numeric> NUM:0 Variablen werden dividiert, um einen Rest zu bilden.(2) LET < numvar> = < numvar> MOD < numeric> NUM:0 Variables are divided to form a remainder.
(3) LET < numvar> = -< numeric> (3) LET <numvar> = -<numeric>
Das Minuszeichen (-) kann ebenfalls zum Negieren eines Werts verwendet werden.The minus sign (-) can also be used to negate a value.
(4) LET < charvar> = < charvar> CONCAT {charvar, character}(4) LET < charvar> = < charvar> CONCAT {charvar, character}
(5) LET < charvar> = {LEFTJUST, RIGHTJUST, UPPER, LOWER} < charvar> (5) LET < charvar> = {LEFTJUST, RIGHTJUST, UPPER, LOWER} < charvar>
Zeichenkettenoperatoren (CONCAT, LEFTJUST, RIGHTJUST, UP- PER, LOWER) sind nur für CHAR Variablen gültig. Der Opera tor CONCAT arbeitet mit zwei CHAR Variablen oder einer CHAR Variablen und einer Konstanten. Die anderen vier Operatoren haben eine einzelne CHAR Variable als Operanden.String operators (CONCAT, LEFTJUST, RIGHTJUST, UPPER, LOWER) are only valid for CHAR variables. The CONCAT operator works with two CHAR variables or one CHAR variable and a constant. The other four operators have a single CHAR variable as an operand.
(6) LET < charvar> = SUBSTR < charvar, numeric, numeric> (6) LET <charvar> = SUBSTR <charvar, numeric, numeric>
Der Operator SUBSTR entnimmt eine Zeichenkette aus einer CHAR Variablen, wobei die Zeichenkette jeweils durch einen numerischen Versatz und eine Länge spezifiziert wird. Der Versatz beginnt bei 1 für das erste Zeichen in der Quell- Zeichenkette.The SUBSTR operator extracts a character string from a CHAR variable, where the character string is specified by a numeric offset and a length. The Offset starts at 1 for the first character in the source string.
(7) LET < variable> = {LENGTH, MAKENUM, MAKECHAR} < variable> (7) LET < variable> = {LENGTH, MAKENUM, MAKECHAR} < variable>
Dieses Konstrukt wird für gemischte Operationen verwendet, bei denen eine Operation auf eine Variable eines Typs angewendet wird und das Ergebnis einen unterschiedlichen Typ hat. MAKENUM und LENGTH übernehmen einen CHAR Operanden und das Ergebnis ist ein NUM, während MAKECHAR einen NUM Operanden übernimmt und ein CHAR Ergebnis erzeugt. Ein unbeschriebener oder leerer CHAR Operand hat einen Wert von 0. Im folgenden Beispiel wird der Wert 0 in NUM RESULT gespeichert:This construct is used for mixed operations, where an operation is applied to a variable of one type and the result is of a different type. MAKENUM and LENGTH take a CHAR operand and the result is a NUM, while MAKECHAR takes a NUM operand and produces a CHAR result. A blank or empty CHAR operand has a value of 0. In the following example, the value 0 is stored in NUM RESULT:
LET EMPTY_STRING = ''LET_EMPTY_STRING = ''
LET NUM_RESULT = MAKENUM EMPTY_STRINGLET NUM_RESULT = MAKENUM EMPTY_STRING
(8) LET < prompt< = < promptname> (8) LET < prompt< = < prompt name>
Diese Form weist einer PROMPT Variablen einen Kennzeichner einer Aufforderungsmeldung zu. Dies kann erforderlich sein, wenn es nötig ist, eine Reihe von Aufforderungen zu übermitteln, die durch die Eingabe eines Anrufers bestimmt wurden.This form assigns a prompt message identifier to a PROMPT variable. This may be necessary when it is necessary to convey a series of prompts determined by a caller's input.
(9) LET < variable> = < XX$variable> [FOR tablename](9) LET < variable> = < XX$variable> [FOR tablename]
Weist einer Ablaufvariablen den Wert einer dynamischen Laufzeitvariablen zu. XX kann eines von SY, CL, HT, FL oder DB sein. Wenn DB verwendet wird, muß der FOR Teil enthalten sein, um die lokale Datentabelle zu identifizieren, wobei tablename ein Eintrag in den Konfigurationstabellen ist.Assigns the value of a dynamic runtime variable to a runtime variable. XX can be one of SY, CL, HT, FL, or DB. If DB is used, the FOR part must be included to identify the local data table, where tablename is an entry in the configuration tables.
Es folgt ein Beispiel für den Befehl LET:Here is an example of the LET command:
Variablen erneut Werte zuweisenReassign values to variables
(1) LET ERRFIELD = 'ERROR'(1) LET ERRFIELD = 'ERROR'
(2) LET VALUE = 99.999(2) LETVALUE = 99.999
(3) LET ACCOUNT = MAKENUM BALANCE(3) LET ACCOUNT = MAKENUM BALANCE
Zuweisen des Ergebnisses einer arithmetischen OperationAssigning the result of an arithmetic operation
(4) LET I = I + 1(4) LET I = I + 1
(5) LET INTEREST = ACCOUNT * .065(5) LET INTEREST = ACCOUNT * .065
Zuweisen eines RestsAssigning a remainder
(6) LET STOCK LEFT = TOTAL SHARES MOD SHARES_PER_BLOCK(6) LET STOCK LEFT = TOTAL SHARES MOD SHARES_PER_BLOCK
Zuweisen eines negativen WertsAssigning a negative value
(7) LET NEGBAL = -BAL(7) LET NEGBAL = -BAL
Anh ngen einer ZeichenketteAppending a string
(8) LET FULLNAME = FIRST CONCAT LAST(8) LET FULLNAME = FIRST CONCAT LAST
Umwandeln eines Zeichenwerts in einen numerischen WertConverting a character value to a numeric value
(9) LET SELECTION = MAKENUM ITEMNUM(9) LET SELECTION = MAKENUM ITEMNUM
Extrahieren einer Unterzeichenkette aus einer ZeichenketteExtracting a substring from a string
(10) LET MIDDLE = SUBSTR(LONGSTRING, 10, 10)(10) LET MIDDLE = SUBSTR(LONGSTRING, 10, 10)
Zuweisen eines Aufforderungsnamens an eine AufforderungsvariableAssigning a prompt name to a prompt variable
(11) LET GREET = OFFHOURS(11) LET GREET = OFFHOURS
Zuweisen einer dynamischen Laufzeitvariablen an eine numerische VariableAssigning a dynamic runtime variable to a numeric variable
(12) LET SYSDAY = SY$DAY(12) LET SYSDAY = SY$DAY
Die Anweisung MENU verzweigt auf der Grundlage der Eingabe einer einzelnen Ziffer durch den Anrufer zu einer Auswahl von Marken.The MENU statement branches to a selection of brands based on the caller’s entry of a single digit.
Die Syntax des Befehls MENU ist wie folgt:The syntax of the MENU command is as follows:
MENUMENU
ON [X} ...ON [X} ...
ON [Y] ...ON [Y] ...
ON [Z] ...ON [Z] ...
GOTO ...GO TO ...
Die Anweisung MENU enthält alle folgenden ON Anweisungen als Teil des MENU. Falls für das eingegebene Zeichen keine entsprechenden ON Anweisungen vorhanden sind oder der Benutzer eine ungültige Eingabe gemacht hat, wird der Ablauf sequentiell mit der folgenden Anweisung fortgesetzt, was im unteren Beispiel die Anweisung GOTO TRYAGAIN ist.The MENU statement contains all the following ON statements as part of the MENU. If there are no corresponding ON statements for the entered character or the user has entered an invalid value, the flow continues sequentially with the following statement, which in the example below is the GOTO TRYAGAIN statement.
Es folgt ein Beispiel für den Befehl MENU:Here is an example of the MENU command:
MENUMENU
ON CN$TIMEOUT GOTO REPROMPTON CN$TIMEOUT GOTO REPROMPT
ON [0] GOTO LAB0ON [0] GOTO LAB0
ON [1] GOTO LAB1ON [1] GOTO LAB1
ON [*] GOTO LABSTARON [*] GOTO LABSTAR
ON L#] GOTO LABPNDON L#] GOTO LABPND
GOTO TRYAGAINGOTO TRYAGAIN
Die Anweisung ON behandelt Zustände, die während der Ausführung eines Ablaufs auftreten können. Sie wird auch dazu verwendet, als Teil eines MENU Befehls auf eine spezifische DTMF-Ziffer zu prüfen.The ON instruction handles conditions that may occur during the execution of a sequence. It is also used to check for a specific DTMF digit as part of a MENU command.
Die Syntax für den Befehl ON ist wie folgt:The syntax for the ON command is as follows:
(1) ON [{0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D}] GOTO < label> (1) ON [{0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D}] GOTO < label>
(2) ON [{0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D}] GOSUB < subroutine> (2) ON [{0,1,2,3,4,5,6,7,8,9,*,#,A,B,C,D}] GOSUB < subroutine>
(3) ON CN$condition GOSUB (subroutine)(3) ON CN$condition GOSUB (subroutine)
Die Syntaxanweisungen 1 und 2 zeigen die Syntax nach einem MENU Befehl Die Zeichen A, B, C, D beziehen sich auf DTMF-Töne und nicht auf Tasten auf dem Telefon. Bei dieser Verwendung des ON Befehls sind Klammern [] zum Umgeben der MENU Auswahlen erforderlich. Die Syntaxanweisungen 3 und 4 zeigen die Verwendung von ON zur Behandlung eines Zustands. Die Syntax in der Anweisung 4 wird nur im Abschnitt COMMANDS eines Ablaufs verwendet; sie kann nicht im Abschnitt DEFAULTS verwendet werden.Syntax statements 1 and 2 show the syntax after a MENU command. The characters A, B, C, D refer to DTMF tones and not to keys on the phone. This use of the ON command requires brackets [] to surround the MENU selections. Syntax statements 3 and 4 show the use of ON to handle a condition. The syntax in statement 4 is only used in the COMMANDS section of a procedure; it cannot be used in the DEFAULTS section.
Es folgt ein Beispiel für den Befehl ON:Here is an example of the ON command:
(1) ON [1] GOTO FIRSTCHOICE(1) ON [1] GOTO FIRST-HOICE
(2) ON CN$FAIL GOTO ASSIST(2) ON CN$FAIL GOTO ASSIST
Die Anweisung PLACE bringt den Inhalt einer Variablen auf einen Hostbildschirm.The PLACE statement places the contents of a variable on a host screen.
Die Syntax für den Befehl PLACE ist wie folgt:The syntax for the PLACE command is as follows:
PLACE < charvar> AT < field> ON < screen> PLACE < charvar> AT < field> ON < screen>
PLACE bringt den Wert einer CHAR Variablen oder Konstanten in ein Bildschirmfeld. Der Bildschirm und das Feld, in denen die Variable untergebracht werden soll, werden durch ihre Namen identifiziert, wie sie in der SCREEN Tabelle spezifiziert sind.PLACE places the value of a CHAR variable or constant into a screen field. The screen and field in which the variable is to be placed are identified by their names as specified in the SCREEN table.
Es folgt ein Beispiel für den Befehl PLACE:Here is an example of the PLACE command:
PLACE ITEMNUM AT ITEMPOS ON SCREEN 1PLACE ITEMNUM AT ITEMPOS ON SCREEN 1
Dieser Befehl bringt Daten in Felder oder in einen Datensatz einer lokalen Datenbank.This command puts data into fields or into a record of a local database.
Die Syntax für den Befehl PUT ist wie folgt:The syntax for the PUT command is as follows:
PUT (value) AT < index> USING < arrayname> PUT (value) AT < index> USING < array name>
Als Felder deklarierte Werte werden nur in den Ablaufanweisungen PUT und GET verwendet. Der Wert muß denselben Datentyp wie das Feld haben.Values declared as fields are only used in the PUT and GET statements. The value must have the same data type as the field.
value kann sein:value can be:
o Eine numerische Konstante.o A numeric constant.
o Eine Zeichenkonstante.o A character constant.
o Ein Name einer NUM Variablen.o A name of a NUM variable.
o Ein Name einer CHAR Variablen.o A name of a CHAR variable.
Der Wert von index muß sein:The value of index must be:
o Ein Name einer NUM:0 Variablen.o A name of a NUM:0 variable.
o Eine ganzzahlige Konstante.o An integer constant.
Der Wert von index kann eine Variable oder eine ganzzahlige Konstante sein. In beiden Fällen muß index ein positiver, von null verschiedener Wert sein, der kleiner als die oder gleich der maximalen Anzahl von für das Feld deklarierten Elementen ist. Falls < index> eine Variable ist, muß sie als NUM:0 deklariert sein.The value of index can be a variable or an integer constant. In both cases, index must be a positive, nonzero value that is less than or equal to the maximum number of elements declared for the array. If < index> is a variable, it must be declared as NUM:0.
PUT < variable> AT < field> USING < database> PUT < variable> AT < field> USING < database>
Die Ablaufvariable und das Feld, die in der Anweisung PUT verwendet werden, müssen vom selben deklarierten Typ sein. PUT bringt die Inhalte der Ablaufvariablen unter Verwendung des gerade ausgewählten Datensatzes der Datenbank in das spezifizierte Feld. Ein Datensatz der Datenbank wird unter Verwendung des Befehls FIND zum Zugriff ausgewählt. Es tritt ein Fehler auf, falls bei der Ausführung von PUT kein Datensatz ausgewählt ist. PUT bringt die Variable in den Datensatz der Datenbank, die Datenbank wird jedoch nicht aktualisiert, bis der Datensatz unter Verwendung des Befehls WRITEDB auf Platte geschrieben wird. Eine PUT Operation auf ein Indexfeld ist nicht erlaubt.The flow variable and the field used in the PUT statement must be of the same declared type. PUT brings the contents of the flow variable into the field using of the currently selected database record into the specified field. A database record is selected for access using the FIND command. An error occurs if no record is selected when PUT is executed. PUT puts the variable into the database record, but the database is not updated until the record is written to disk using the WRITEDB command. A PUT operation on an index field is not allowed.
Es folgt ein Beispiel für den Befehl PUT:The following is an example of the PUT command:
Daten in Felder bringenPutting data into fields
PUT TEMPCHECK AT INDEX USING CHECKSPUT TEMPCHECK AT INDEX USING CHECKS
Daten in lokale Datenbank bringenBring data into local database
FIND NEW RECORD USING SAVEINFOFIND NEW RECORD USING SAVEINFO
ON CN$FAIL GOTO FULLDATABASEON CN$FAIL GOTO FULLDATABASE
PUT REQUEST AT REQ_ITEM USING SAVEINFOPUT REQUEST AT REQ_ITEM USING SAVEINFO
PUT MSG_NUMBER AT SAVE_MSG USING SAVEINFOPUT MSG_NUMBER AT SAVE_MSG USING SAVEINFO
WRITEDB RECNUM SAVEINFOWRITEDB RECNUM SAVEINFO
Zeichnet eine neue Nachricht auf oder zeichnet eine Nachricht am Ende einer vorhandenen Nachricht auf. Die Ausführung des Ablaufs wird fortgesetzt, wenn die Aufzeichnung endet.Records a new message or records a message at the end of an existing message. The flow continues executing when the recording ends.
Die Syntax für den Befehl RECORD ist wie folgt:The syntax for the RECORD command is as follows:
Aufzeichnen einer neuen NachrichtRecording a new message
RECORD < numvar> NEWRECORD <numvar> NEW
Wobei < numvar> die Nachrichten ID ist und eine Variable vom Typ NUM:0 ist. Die < message id> wird für spätere Verwendung zurückgeliefert, nachdem die Anweisung ausgeführt ist. Nachfolgende RECORD NEW Anweisungen sind jedoch illegal, bis die Nachricht unter Verwendung von SAVE oder ERASE explizit gespeichert oder gelöscht ist. Keine andere Aufforderung kann auf die Nachricht zugreifen bis eine SAVE Anweisung ausgeführt ist. Falls eine neue Nachricht bei ENDFLOW aussteht, wird sie automatisch gelöscht und es wird ein Fehler protokolliert.Where <numvar> is the message ID and is a variable of type NUM:0. The < message id> is returned for later use after the statement is executed. However, subsequent RECORD NEW statements are illegal until the message is explicitly saved or deleted using SAVE or ERASE. No other request can access the message until a SAVE statement is executed. If a new message is received at ENDFLOW is pending, it is automatically deleted and an error is logged.
Anh ngen einer NachrichtAttaching a message
RECORD < numvar> APPENDRECORD <numvar> APPEND
Wobei < numvar> die Nachrichten ID vom Typ NUM:0 ist und vorher in einer Anweisung RECORD NEW verwendet worden sein muß. Dieser Nachrichtenidentifikator kann in ERASE, SPEAK, SEND und SAVE Anweisungen verwendet werden. Die Nachricht wird am Ende der durch die Nachrichten ID spezifizierten vorhandenen Nachricht aufgezeichnet. Während der Ausführung von RECORD ... APPEND wird jeglicher Nachrichtenzugriff auf diese Nachricht durch andere Kanäle ausgeschlossen.Where < numvar> is the message ID of type NUM:0 and must have been used previously in a RECORD NEW statement. This message identifier can be used in ERASE, SPEAK, SEND and SAVE statements. The message is recorded at the end of the existing message specified by the message ID. During the execution of RECORD ... APPEND, any message access to this message by other channels is excluded.
Es folgt ein Beispiel für den Befehl RECORD:The following is an example of the RECORD command:
RECORD CUSTMSG NEWRECORD CUSTOMMSG NEW
ON CN$FAIL GOTO NOMSGON CN$FAIL GOTO NOMSG
RECORD CUSTMSG APPENDRECORD CUSTMSG APPEND
Die Anweisung RETURN weist den Ablauf an, die Unterroutine zu verlassen und die Ausführung bei der Anweisung unmittelbar nach dem GOSUB, das die Unterroutine aufgerufen hat, fortzusetzen. Eine ENDSUB Anweisung führt ein implizites RETURN aus.The RETURN statement tells the flow to exit the subroutine and continue execution at the statement immediately following the GOSUB that called the subroutine. An ENDSUB statement performs an implicit RETURN.
Die Syntax für den Befehl RETURN ist wie folgt:The syntax for the RETURN command is as follows:
RETURNRETURN
Es folgt ein Beispiel für den Befehl RETURN:Here is an example of the RETURN command:
RETURN 29. SAVE Die Anweisung SAVE ermöglicht die interne Speicherung einer mit RECORD NEW erzeugten Nachricht zum Zugriff durch einen nachfolgenden Ablauf. Nach einer RECORD NEW Anweisung wird die erzeugte Nachricht als "geöffnet" betrachtet. Die Nachricht muß vor dem Ende des Ablaufs gespeichert oder gelöscht werden (durch Verwendung der Befehle SAVE oder ERASE). Andernfalls wird die Nachricht automatisch gelöscht und ein Benutzerfehler wird protokolliert. Die Anweisung SAVE ist nur einmal für die durch die Anweisung RECORD NEW innerhalb des Ablaufs erzeugte Nachricht gültig. Damit andere Abläufe auf eine Nachricht zugreifen, sind die folgenden zwei Schritte nötig:RETURN 29. SAVE The SAVE statement allows a message created with RECORD NEW to be stored internally for access by a subsequent sequence. After a RECORD NEW statement, the created message is considered "opened". The message must be saved or deleted (using the SAVE or ERASE commands) before the end of the sequence. Otherwise, the message is automatically deleted and a user error is logged. The SAVE statement is only valid once for the message generated by the RECORD NEW statement within the process. In order for other processes to access a message, the following two steps are necessary:
(1) < numvar> mit PLACE auf den Hostbildschirm bringen und an den Host senden oder die < msgid> mit WRITEDB in die lokale Datenbank schreiben(1) Place < numvar> on the host screen using PLACE and send it to the host or write the < msgid> to the local database using WRITEDB
(2) < numvar> nur nach erfolgreichem HOSTSND oder WRITEDB mit SAVE sichern.(2) Only save < numvar> after successful HOSTSND or WRITEDB with SAVE.
Die Syntax für den Befehl SAVE ist wie folgt: SAVE < numvar> The syntax for the SAVE command is as follows: SAVE < numvar>
Wobei < numvar> die Nachrichten ID vom Variablentyp NUM:0 ist, die vorher in einer RECORD Anweisung verwendet worden sein muß. Dieser Nachrichtenidentifikator kann in den Anweisungen ERASE, SPEAK, SEND und SAVE verwendet werden.Where < numvar> is the message ID of variable type NUM:0, which must have been previously used in a RECORD statement. This message identifier can be used in the ERASE, SPEAK, SEND and SAVE statements.
Es folgt ein Beispiel für den Befehl SAVE:The following is an example of the SAVE command:
SAVE CUSTMSGSAVE CUSTOMMSG
Die Anweisung SELECT wird dazu verwendet, Zugriff auf eine lokale Datenbank zu erhalten. Eine Datenbank muß mit SELECT ausgewählt werden, bevor die Befehle FIND, GET oder PUT im Ablaufprogramm erscheinen.The SELECT statement is used to access a local database. A database must be selected with SELECT before the FIND, GET or PUT commands appear in the sequence program.
Die Syntax für den Befehl SELECT ist wie folgt:The syntax for the SELECT command is as follows:
SELECT < database> SELECT <database>
Wobei < database> der Name einer in der Tabelle für lokale Daten definierten Datenbank sein muß.Where < database> must be the name of a database defined in the table for local data.
Es folgt ein Beispiel für den Befehl SELECT:The following is an example of the SELECT command:
ON CN$FAIL GOTO RECORDS_NT_AVAIL 31. SEND Dieser Befehl sendet eine Nachricht an eine Zielmailbox. Die Nachricht wird als von der Absendermailbox gesendet markiert, was ermöglicht, daß eine Antwort oder Fehlermeldung automatisch zum spezifizierten Absender zurückkehrt. Falls kein Absender spezifiziert ist, wird standardmäßig die im VMS konfigurierte Fehlermailbox als Absender verwendet. Die Zielmailbox kann eine Netzwerkadresse sein. Wird sie nicht explizit mit ERASE gelöscht, bleibt die Nachricht verfügbar, nachdem SEND ausgeführt ist.ON CN$FAIL GOTO RECORDS_NT_AVAIL 31. SEND This command sends a message to a destination mailbox. The message is marked as sent from the sender mailbox, which allows a reply or error message automatically returns to the specified sender. If no sender is specified, the error mailbox configured in the VMS is used as the sender by default. The destination mailbox can be a network address. If it is not explicitly deleted with ERASE, the message remains available after SEND is executed.
Die Syntax für den Befehl SEND ist wie folgt:The syntax for the SEND command is as follows:
SEND < numvar> TO < mbox> [FROM creator]SEND <numvar> TO <mbox> [FROM creator]
Wobei < numvar> die Nachrichten ID und eine als NUM:0 deklarierte Variable ist, die eine durch einen vorherigen RECORD Befehl eingerichteten Nachrichtenidentifikator enthält. Die Zielmailbox für die Nachricht muß als CHAR Variable spezifiziert werden. Falls die optionale Absendermailbox spezifiziert wird, wird eine Antwort oder ein Fehler an die Absendermailbox geleitet. Andernfalls wird die im VMS spezifizierte Systemfehlermailbox als Standardabsender verwendet. Die Absendermailbox muß als CHAR Variable spezifiziert werden.Where <numvar> is the message ID and a variable declared as NUM:0 containing a message identifier established by a previous RECORD command. The destination mailbox for the message must be specified as a CHAR variable. If the optional sender mailbox is specified, a response or error is directed to the sender mailbox. Otherwise, the system error mailbox specified in the VMS is used as the default sender. The sender mailbox must be specified as a CHAR variable.
Es folgt ein Beispiel für den Befehl SEND:Here is an example of the SEND command:
(1) RECORD CUSTMSG NEW TRANSLATE AGENTCODE TO AGENTMBOX USING AGTABLE SEND CUSTMSG TO AGENTMBOX ERASE CUSTMSG(1) RECORD CUSTMSG NEW TRANSLATE AGENTCODE TO AGENTMBOX USING AGTABLE SEND CUSTMSG TO AGENTMBOX ERASE CUSTMSG
(2) SEND INQUIRE TO SVCMBOX FROM GUESTBOX(2) SEND INQUIRE TO SVCMBOX FROM GUESTBOX
Die Anweisung SPEAK übermittelt Informationen an die mit dem Ablauf verbundene Person.The SPEAK statement transmits information to the person associated with the process.
Die Syntax für den Befehl SPEAK ist wie folgt:The syntax for the SPEAK command is as follows:
(1) SPEAK < variable> [AS < speaktype> ](1) SPEAK < variable> [AS < speaktype> ]
(2) SPEAK < promptname> [AS PROMPT](2) SPEAK < prompt name> [AS PROMPT]
SPEAK wird dazu verwendet, eine Variable oder eine Aufforderungsmeldung an den Anrufer oder den Vermittler auszugeben. Eine Variable kann in mehreren Sprechweisen ausgegeben werden, die unten beschrieben sind. Falls keine Angabe über die Sprechweise spezifiziert ist, wird auf der Grundlage des Typs der Variablen ein Standard gewählt.SPEAK is used to output a variable or prompt message to the caller or operator. A variable can be output in several different ways, which are described below. If no If no language specification is given, a default is chosen based on the type of variable.
Sprechweise DefinitionDefinition of speech
MONEY Der Wert 100.35 würde als "One hundred dollars and thirty-five cents" gesprochen werden. Gültig nur für NUM Variablen.MONEY The value 100.35 would be spoken as "One hundred dollars and thirty-five cents". Valid only for NUM variables.
DIGITS Alle alphanumerischen Zeichen (A-Z und 0-9) werden als einzelne Zeichen gesprochen. Der Wert 100.35 würde als "One zero zero pomt three five" gesprochen werden. Der Wert 'HELLO' würde als 'H-E-L-L-O' buchstabiert werden. DIGITS ist die standardmäßige Sprechweise für CHAR Variablen. Gültig für alle NUM und CHAR Variablen.DIGITS All alphanumeric characters (A-Z and 0-9) are spoken as single characters. The value 100.35 would be spoken as "One zero zero pomt three five". The value 'HELLO' would be spelled as 'H-E-L-L-O'. DIGITS is the standard way of speaking for CHAR variables. Valid for all NUM and CHAR variables.
NUMERIC Der Wert 100.35 wird als "One hundred pomt three five" gesprochen. Dies ist der Standard für NUM Variablen und ist nur für NUM Variablen gültig.NUMERIC The value 100.35 is spoken as "One hundred pomt three five". This is the standard for NUM variables and is only valid for NUM variables.
MONTH Die Variable muß vom Typ NUM:0 sein und einen Wert im Bereich 1012 haben. Der Wert 3 würde zum Beispiel als "March" gesprochen werden.MONTH The variable must be of type NUM:0 and have a value in the range 1012. For example, the value 3 would be spoken as "March".
DAY Der Wert muß vom Typ NUM:0 sein und eine Wert im Bereich 1-7 haben. Der Wert 3 würde zum Beispiel als "Tuesday" gesprochen werden.DAY The value must be of type NUM:0 and have a value in the range 1-7. The value 3 would, for example, be spoken as "Tuesday".
PROMPT Die Variable enthält einen vorher durch eine LET oder TRANSLATE Anweisung zugewiesenen Aufforderungsidentifikator. Dies ist der Standardwert und die einzige erlaubte Sprechweise für PROMPT Variablen.PROMPT The variable contains a prompt identifier previously assigned by a LET or TRANSLATE statement. This is the default value and the only allowed way of speaking for PROMPT variables.
MESSAGE Die Variable enthält einen vorher durch RECORD gesetzten Nachrichtenidentifikator. Nur gültig für NUM:0 Variablen.MESSAGE The variable contains a message identifier previously set by RECORD. Only valid for NUM:0 variables.
DTMF Der Wert wird als DTMF- Zeichenkette ausgegeben. Die Variable muß ein CHAR Typ sein und gültige DTMF-Zeichen enthalten.DTMF The value is output as a DTMF string. The variable must be a CHAR type and contain valid DTMF characters.
Es folgt ein Beispiel für den Befehl SPEAK:The following is an example of the SPEAK command:
(1) SPEAK BALANCE AS MONEY(1) SPEAK BALANCE AS MONEY
(2) NUM:5 VALUE . .(2) NUM:5 VALUE . .
"standardmäßige Sprechweise ist numerisch wenn nicht spezifiziert SPEAK VALUE"default speaking is numeric if not specified SPEAK VALUE
(3) SPEAK AGENTMSG AS MESSAGE(3) SPEAK AGENTMSG AS MESSAGE
STARTSUB ist die erste Anweisung in einer Unterroutine. Sie identifiziert den Namen der Unterroutine. Jede Unterroutine muß eine Anweisung STARTSUB besitzen.STARTSUB is the first statement in a subroutine. It identifies the name of the subroutine. Every subroutine must have a STARTSUB statement.
Die Syntax für den Befehl STARTSUB ist wie folgt:The syntax for the STARTSUB command is as follows:
STARTSUB (name)STARTSUB (name)
Name identifiziert den Namen der Unterroutine.Name identifies the name of the subroutine.
Es folgt ein Beispiel für den Bfehl SUBROUTINE:The following is an example of the SUBROUTINE command:
Die Anweisung TRANSFER legt den aktuellen Anrufer auf Halten und ruft die spezifizierte Mailbox oder Nebenstelle. Der Verlauf des Anrufs wird überwacht. Falls TRANSFER erfolgreich ist, ist die Anweisung CONNECT erforderlich, um die Übergabe abzuschließen. Auf der Grundlage der verwendeten INFORMATION Tabelle wird entweder der Standard- oder der alternative Übergabecode ausgewählt. Die INFORMATION Tabelle entspricht der Mailbox oder dem Port, falls die spezifizierte Variable keine gültige Mailbox enthält.The TRANSFER statement puts the current caller on hold and calls the specified mailbox or extension. The progress of the call is monitored. If TRANSFER is successful, the CONNECT statement is required to complete the transfer. Based on the INFORMATION table used, either the default or alternate transfer code is selected. The INFORMATION table corresponds to the mailbox or port if the specified variable does not contain a valid mailbox.
Die Syntax für den Befehl TRANSFER ist wie folgt:The syntax for the TRANSFER command is as follows:
TRANSFER < charvar> TRANSFER <charvar>
Falls die spezifizierte Variable eine gültige VMS Mailbox enthält, wird die Nebenstelle der Mailbox verwen det. Andernfalls wird die in der spezifizierten Variablen enthaltene Nebenstellennummer verwendet. Die Nebenstellennummer muß gültige DTMF Zeichen enthalten.If the specified variable contains a valid VMS mailbox, the mailbox extension is used. Otherwise, the extension number contained in the specified variable is used. The extension number must contain valid DTMF characters.
Es folgt ein Beispiel für den Befehl TRANSFER:The following is an example of the TRANSFER command:
LET ASSISTEXT = '300'LET ASSISTEXT = '300'
TRANSFER ASSISTEXTTRANSFER ASSIST TEXT
Die Anweisung TRANSLATE wird dazu verwendet, unter Verwendung einer TRANSLATION Tabelle einen Datenwert in einen anderen umzuwandeln. Eine vorher definierte TRANSLATION Tabelle wird durchsucht, um zu sehen, ob sie den Wert der besonderen Anweisung in einer Variablen enthält. Falls dies der Fall ist, wird der Tabelleneintrag für diese Variable einer neuen Variablen zugewiesen.The TRANSLATE statement is used to convert one data value to another using a TRANSLATION table. A previously defined TRANSLATION table is searched to see if it contains the value of the particular statement in a variable. If If this is the case, the table entry for this variable is assigned to a new variable.
Die Syntax für den Befehl TRANSLATE ist wie folgt:The syntax for the TRANSLATE command is as follows:
TRANSLATE < search_var> TO < return_var> USING < tablename> TRANSLATE < search_var> TO < return_var> USING < tablename>
In der obigen Anweisung enthält die erste Variable die Daten, die in einen neuen Wert übersetzt werden und auf der Grundlage des Inhalts der durch den Tabellennamen spezifizierten Tabelle in der zweiten Variablen untergebracht werden. Die Such- und Rückgabevariablen müssen mit ihren entsprechenden Typen in der spezifizierten Tabelle übereinstimmen. Der Tabellenname muß vorher unter Verwendung der Software des Konfigurations-Anwendungsterminals in der TRANSLATION Tabelle definiert werden.In the above statement, the first variable contains the data that will be translated into a new value and placed in the second variable based on the contents of the table specified by the table name. The lookup and return variables must match their corresponding types in the specified table. The table name must be previously defined in the TRANSLATION table using the configuration application terminal software.
Es folgt ein Beispiel für den Befehl TRANSLATE:Here is an example of the TRANSLATE command:
TRANSLATE ITEMNUM TO ITEMPRMP USING ITEMTBLTRANSLATE ITEMNUM TO ITEMPRMP USING ITEMTBL
Die Anweisung WAIT verzögert die Ausführung des Ablaufprogramms, bis die spezifizierte Anzahl Sekunden vergangen ist. Die maximale Zeit beträgt 65536 Sekunden.The WAIT statement delays the execution of the sequence program until the specified number of seconds have passed. The maximum time is 65536 seconds.
Die Syntax für den Befehl WAIT ist wie folgt:The syntax for the WAIT command is as follows:
WAIT < numeric> WAIT < numeric>
Numeric ist entweder eine NUM:0 Variable oder eine Konstante, die die Anzahl Sekunden spezifiziert, um die zu verzögern ist, bevor das Ablaufprogramm reaktiviert wird.Numeric is either a NUM:0 variable or a constant that specifies the number of seconds to delay before reactivating the sequence program.
Es folgt ein Beispiel für den Befehl WAIT:The following is an example of the WAIT command:
LOOP: TRANSFER AGTEXT ON CN$FAIL GOTO DELAY CONNECT GOTO ENDLOOP: TRANSFER AGTEXT ON CN$FAIL GOTO DELAY CONNECT GOTO END
DELAY: SPEAK PLSHOLD PROMPT WAIT 30 GOTO LOOPDELAY: SPEAK PLSHOLD PROMPT WAIT 30 GOTO LOOP
Die Anweisung WRITEDB wird dazu verwendet, den gegenwärtig ausgewählten Datensatz an die lokalen Datenbankdatei auszugeben und gibt dann die Nummer des geschriebenen Datensatzes zurück.The WRITEDB statement is used to output the currently selected record to the local database file and then returns the number of the written record.
Die Syntax für den Befehl WRITEDB ist wie folgt:The syntax for the WRITEDB command is as follows:
WRITEDB < numvar> < database> WRITEDB <numvar> <database>
Nachdem ein Datensatz an die Datei ausgegeben ist, hat der Ablauf nicht länger einen ausgewählten Datensatz für die Datenbank und muß ein erneutes FIND ausführen, bevor jegliche PUT oder GET Befehle ausgeführt werden können. Die Datensatznummer für den gerade geschriebenen Datensatz wird in einer im WRITEDB Befehl spezifizierten ganzzahligen Variablen < numvar> zurückgeliefert. Diese Variable muß eine NUM:0 Variable sein.After a record is written to the file, the process no longer has a selected record for the database and must perform another FIND before any PUT or GET commands can be executed. The record number for the record just written is returned in an integer variable < numvar> specified in the WRITEDB command. This variable must be a NUM:0 variable.
Es folgt ein Beispiel für den Befehl WRITEDB:The following is an example of the WRITEDB command:
PUT REQUEST AT REQ_ITEM USING SAVEINFOPUT REQUEST AT REQ_ITEM USING SAVEINFO
PUT MSG_NUMBER AT SAVE MSG USING SAVEINFOPUT MSG_NUMBER AT SAVE MSG USING SAVEINFO
WRITEDB RECNUM SAVEINFOWRITEDB RECNUM SAVEINFO
ON CN$FAIL GOTO SORRYON CN$FAIL GOTO SORRY
Das Konfigurations-Anwendungsterminal (CAT) 112 ist ein Computer, der dazu verwendet wird, die Arbeitsweise des Anwendungsprozessors 110 und seiner zugehörigen Anrufabläufe zu konfigurieren. Das CAT 112 hat im allgemeinen mehrere Funktionen: 1) Durchführung einer Terminalemulation zur Kommunikation mit dem Anwendungsprozessor 110, 2) Sichern und Wiederherstellen von Systemkonfigurationstabellen und anwendungsspezifischen Tabellen, 3) Sichern und Wiederher stellen lokaler Datenbanken, 4) Übertragen eines Anrufablaufprogramms zur Off-line-Bearbeitung und 5) Aktualisieren der Systemsoftware des Anwendungsprozessors. Eine typische Architektur des Konfigurations-Anwendungsterminals 112 ist in Figur 4 gezeigt.The configuration application terminal (CAT) 112 is a computer used to configure the operation of the application processor 110 and its associated call flows. The CAT 112 generally has several functions: 1) performing terminal emulation to communicate with the application processor 110, 2) backing up and restoring system configuration tables and application-specific tables, 3) backing up and restoring local databases, 4) transferring a call flow program for off-line processing, and 5) updating the application processor system software. A typical architecture of the configuration application terminal 112 is shown in Figure 4.
Die Terminalemulation ermöglicht dem CAT, mit dem Anwendungsprozessor direkt über eine Kabelverbindung oder im Fernzugriff über ein Modem zu kommunizieren. Auf der Tastatur des CAT getippte Zeichen werden an den Anwendungsprozessor 110 gesendet und Informationen vom Anwendungsprozessor 110 werden auf dem CAT Monitor angezeigt. Der einzige Zeitpunkt, zu dem das CAT keine Terminalemulation durchführt ist, wenn Menüs angezeigt werden. Zu diesem Zeitpunkt wird die Kommunikation mit dem Anwendungsprozessor 110 zeitweise unterbrochen, da die Menüs das Terminal steuern.Terminal emulation allows the CAT to communicate with the application processor directly via a cable connection or remotely via a modem. On the keyboard Characters typed on the CAT are sent to the application processor 110 and information from the application processor 110 is displayed on the CAT monitor. The only time the CAT is not performing terminal emulation is when menus are displayed. At this time, communication with the application processor 110 is temporarily interrupted because the menus control the terminal.
Das CAT verwendet zur Übertragung von Informationen zwischen dem Anwendungsprozessor 110 und dem CAT ein paketorientiertes fehlerkorrigierendes Datenübertragungsprotokoll bei Geschwindigkeiten von bis zu 19200 Baud. Die Datenübertragung wird durch Menüauswahl eingeleitet und wird durch im CAT vorhandene Software durchgeführt. Diese CAT Software beinhaltet eine Sicherungsfunktion, eine Wiederherstellungsfunktion und eine Aktualisierungsfunktion. Die Sicherungsfunktion überträgt Daten vom Anwendungsprozessor 110 an das CAT Festplattenlaufwerk 113. Die Wiederherstellungs- und Aktualisierungsoptionen übertragen Daten vom CAT Festplattenlaufwerk 113 an den Anwendungsprozessor 110.The CAT uses a packet-oriented error-correcting data transfer protocol to transfer information between the application processor 110 and the CAT at speeds of up to 19200 baud. The data transfer is initiated by menu selection and is performed by software resident in the CAT. This CAT software includes a backup function, a restore function, and an update function. The backup function transfers data from the application processor 110 to the CAT hard disk drive 113. The restore and update options transfer data from the CAT hard disk drive 113 to the application processor 110.
Die CAT Software enthält auch Dienstprogramme zur Verwaltung individueller Systemkonfigurationen des Anwendungsprozessors. Systemkonfigurationen, einschließlich des Inhalts der Systemkonfigurationstabellen und anwendungsspezifischen Tabellen können hinzugefügt, gelöscht und modifi ziert werden. Gesicherte Systemkonfigurationen können auf eine Floppy-Diskette archiviert werden und von dieser wiederhergestellt werden.The CAT software also includes utilities for managing individual system configurations of the application processor. System configurations, including the contents of the system configuration tables and application-specific tables, can be added, deleted and modified. Saved system configurations can be archived to and restored from a floppy disk.
Die CAT Software enthält auch Dienstprogramme zur Verwaltung von Protokolidateien, die Kommunikationssitzungen vom Anwendungsprozessor 110 erfassen. Für jede in der CAT Software definierte Systemkonfiguration des Anwendungsprozessors 110 können mehrere Protokolidateien gespeichert, angezeigt, gedruckt und gelöscht werden.The CAT software also includes utilities for managing log files that capture communication sessions from the application processor 110. For each system configuration of the application processor 110 defined in the CAT software, multiple log files can be saved, viewed, printed, and deleted.
Um die Hardware und die Verarbeitungslogik für die Anrufablaufsprache der vorliegenden Erfindung darzustellen, werden hierin drei Beispiele für die Arbeitsweise der bevorzugten Ausführungsform beschrieben und in Figur 8, 9a-9f und 10a-10e gezeigt. Figur 8 zeigt ein Beispiel für ein Flußdiagramm der Anwendungsverarbeitung. Der in Figur 8 gezeigte Anwendungsverarbeitungsablauf stellt ein Ablaufprogramm dar, das durch den Anwendungsprozessor 110 als Reaktion auf einen vom VMS 105 auf die oben beschriebene Art und Weise empfangenen eingehenden Telefonanruf aktiviert und ausgeführt wird. Wurde der Anwendungsablauf eingeleitet, beginnt der Verarbeitungsablauf beim Feld 901. Zu Beginn wird eine Ansage unter Verwendung des Befehls SPEAK der Anrufablaufsprache hörbar an den Anrufer übermittelt (Verarbeitungsfeld 902). Die Hardwareeinrichtung zum Aufzeichnen und Wiedergeben hörbarer Sprache ist ein im Stand der Technik bekanntes Gerät. Die im Verarbeitungsfeld 902 gesprochene oder an den Anrufer übermittelte Ansage enthält ein Menü von für den Anrufer bereitgestellten Optionen und eine Aufforderung an den Bediener, eine der bereitgestellten Optionen einzugeben. Optionen werden von einem Anrufer unter Verwendung der numerischen Tasten auf dem Telefon eingegeben. Diese Knöpfe erzeugen Zweiton-Mehrfrequenzsignale (DTMF), die verwendet dazu werden können, die verschiedenen von einem Anrufer eingegebenen Optionen zu unterscheiden. Die Technik der Verwendung von DTMF Signalen ist aus dem Stand der Technik bekannt. Wurde der Anrufer durch eine Nachricht im Verarbeitungsfeld 902 aufgefordert, wird durch den Anwendungsprozessor 110 ein INPUT Befehl ausgeführt, um die Auswahl des Anrufers zu ermitteln (Verarbeitungsfeld 903). Falls der Anrufer innerhalb einer vorbestimmten Zeitspanne keine Auswahl eingibt, kehrt die Steuerung der Ausführung zum Verarbeitungsfeld 902 zurück, wo das Menü und die Aufforderungsnachricht erneut übertragen werden. Falls der Anrufer die Taste 1 am Telefon eingibt (Entscheidungsfeld 904), wird der Verarbeitungsweg 905 zum Verarbeitungsfeld 907 genommen. Da die Eingabe einer Taste 1 im Beispiel von Figur 8 mit einer Anfrage nach Zinsen verknüpft ist, wird ein weiterer SPEAK Befehl ausgeführt, um die aktuellen Zinsen anzugeben, wie sie unter Verwendung der Befehle SELECT, FIND und GET aus einer internen Datenbank entnommen werden. Ist der SPEAK Befehl im Verarbeitungsfeld 907 ausgeführt, fährt der Verarbeitungsablauf bei dem mit A bezeichneten Feld fort, wo die Ansage, das Menü und die Anforderung im Verarbeitungsfeld 902 erneut gesprochen werden.To illustrate the hardware and processing logic for the call flow language of the present invention, three examples of the operation of the preferred embodiment are described herein and shown in Figures 8, 9a-9f, and 10a-10e. Figure 8 shows an example of an application processing flow chart. The application processing flow shown in Figure 8 represents a flow program that is activated and executed by the application processor 110 in response to an incoming telephone call received by the VMS 105 in the manner described above. Once the application flow has been initiated, the processing flow begins at block 901. Initially, an announcement is audibly transmitted to the caller using the call flow language SPEAK command (processing block 902). The hardware means for recording and playing back audible speech is a device well known in the art. The announcement spoken or transmitted to the caller in processing field 902 includes a menu of options provided to the caller and a prompt for the operator to enter one of the options provided. Options are entered by a caller using the numeric keys on the telephone. These keys generate dual tone multi-frequency (DTMF) signals which can be used to distinguish the various options entered by a caller. The technique of using DTMF signals is well known in the art. If the caller has been prompted by a message in processing field 902, an INPUT command is executed by the application processor 110 to determine the caller's selection (processing field 903). If the caller does not enter a selection within a predetermined period of time, control of execution returns to processing field 902 where the menu and prompt message are retransmitted. If the caller presses the 1 key on the telephone (decision box 904), processing path 905 is taken to processing box 907. Since the entry of a key 1 in the example of Figure 8 is associated with a request for interest, another SPEAK command is executed to specify the current interest as obtained from an internal database using the SELECT, FIND and GET commands. Once the SPEAK command in processing box 907 is executed, processing continues at the box labeled A where the announcement, menu and request in processing box 902 are spoken again.
Falls der Anrufer die Taste 2 eingibt (Entscheidungsfeld 908), verarbeitet das Beispiel von Figur 8 eine Abfrage eines Kontostands. Als erstes wird der Anrufer aufgefordert, seine Kontonummer einzugeben (Verarbeitungsfeld 911). Der Anrufer gibt die Kontonummer unter Verwendung der Telefontastatur ein. Ein INPUT Befehl wird ausgeführt, um die vom Anrufer eingegebene Kontonummer zu holen (Verarbeitungsfeld 912). Wurde eine Kontonummer vom Anrufer empfangen, wird die Kontonummer im Entscheidungsfeld 913 auf Gültigkeit überprüft. Die vom Anrufer eingegebene Kontonummer kann aus mehreren Gründen ungültig sein. Erstens kann eine falsche Anzahl von Ziffern eingegeben worden sein. Zweitens wird die eingegebene Kontonummer mit einem FIND Befehl dazu verwendet, auf eine Datenbank zuzugreifen, die gültige Kontonummern enthält. Falls die vom Anrufer eingegebene Kontonummer nicht gefunden wird oder für den Anruf er nicht zugänglich ist, wird die Kontonummer ungültig gemacht. Für eine ungültige Kontonummer (Verarbeitungsweg 915) wird eine Nachricht an den Anruf er gesprochen, die angibt, daß das Konto ungültig ist und den Anrufer auffordert, eine einer nachfolgend auszuführenden Aktion entsprechende Auswahl einzugeben (Verarbeitungsfeld 917). Dann wird ein INPUT Befehl ausgeführt, um die vom Anruf er für eine ungültige Kontonummer getätigte Auswahl zu holen (Verarbeitungsfeld 918) Falls der Benutzer die Taste 3 eingibt (Entscheidungsfeld 919), wird eine Beendigungsnachricht an den Anrufer gesprochen (Entscheidungsfeld 922) und die Verarbeitungslogik des Anrufablaufs von Figur 8 endet bei dem Endfeld 924. Falls der Benutzer beim Entscheidungsfeld 919 nicht die Taste 3 eingibt, wird der Anruf beim Verarbei tungsfeld 923 an einen Sachbearbeiter übermittelt, wo der Anruf manuell und ohne weitere Steuerung durch die Logik des Anrufablaufs von Figur 8 behandelt wird. Der Anruf wird im Verarbeitungsfeld 923 durch Ausführung des TRANSFER Befehls und des CONNECT Befehls an die Direktunterstützung übermittelt.If the caller presses the 2 key (decision box 908), the example of Figure 8 processes an account balance inquiry. First, the caller is prompted to enter his account number (processing box 911). The caller enters the account number using the telephone keypad. An INPUT command is executed to retrieve the account number entered by the caller (processing box 912). If an account number is received from the caller, the account number is checked for validity in decision box 913. The account number entered by the caller may be invalid for several reasons. First, an incorrect number of digits may have been entered. Second, the entered account number is used with a FIND command to access a database containing valid account numbers. If the account number entered by the caller is not found or is not accessible for the call, the account number is invalidated. For an invalid account number (processing path 915), a message is spoken to the caller indicating that the account is invalid and prompting the caller to enter a selection corresponding to an action to be performed subsequently (processing field 917). Then an INPUT command is executed to retrieve the selection made by the caller for an invalid account number (processing field 918). If the user enters key 3 (decision field 919), a termination message is sent to the caller. spoken (decision box 922) and the processing logic of the call flow of Figure 8 ends at the end box 924. If the user does not enter the 3 key at the decision box 919, the call is transferred to an agent at the processing box 923 where the call is handled manually and without further control by the call flow logic of Figure 8. The call is transferred to direct support at the processing box 923 by executing the TRANSFER command and the CONNECT command.
Falls beim Entscheidungsfeld 913 eine gültige Kontonummer eingegeben wird (Verarbeitungsweg 914), wird ein weiterer SPEAK Befehl ausgeführt, um den aktuellen Stand der vorher eingegebenen Kontonummer hörbar zum Anruf er zu übertragen (Verarbeitungsfeld 916). Der Kontostand wird unter Verwendung der Befehle SELECT, FIND und GET aus einer Kontodatenbank geholt. Wurde der Kontostand dem Anruf er im Verarbeitungsfeld 916 übermittelt, springt die Verarbeitung über das mit A bezeichnete Feld in Figur 8 zurück zum Verarbeitungsfeld 902.If a valid account number is entered in decision field 913 (processing path 914), another SPEAK command is executed to audibly transmit the current status of the previously entered account number to the caller (processing field 916). The account balance is retrieved from an account database using the SELECT, FIND and GET commands. If the account balance was transmitted to the caller in processing field 916, processing jumps back to processing field 902 via the field labeled A in Figure 8.
Werden wiederum beim Entscheidungsfeld 908 durch den Anrufer als Reaktion auf die Aufforderung im Verarbeitungsfeld 902 nicht die Zifferntasten 1 oder 2 gedrückt, wird der Verarbeitungsweg 901 zum Entscheidungsfeld 925 genom men. Falls der Anrufer die Taste 3 eingibt (Verarbeitungsweg 926), wird die Steuerung der Verarbeitung an das mit B bezeichnete Feld übergeben, wo der Anruf mit einer Endnachricht beendet wird (Verarbeitungsfeld 922). Falls die Taste 3 nicht gedrückt wird oder eine Zeitüberschreitung auftritt, wird die Verarbeitung wieder an das in Figur 8 gezeigte mit A bezeichnete Feld übertragen. In diesem ersten Beispiel wird somit eine Einrichtung zur Abwicklung eines eingehenden Anrufs unter Verwendung der Hardware für die Anwendungssteuerung und der Verarbeitungslogik für die Anrufablaufsprache der vorliegenden Erfindung dargestellt. Ein Skript für die Abwicklung eines eingehenden Anruf 5 wie in diesem ersten Beispiel befindet sich in LISTING A, das unmittelbar vor dem Abschnitt mit den Patentansprüchen dieser Patentanmeldung erscheint.Again, at decision box 908, if the caller does not press the digit keys 1 or 2 in response to the prompt in processing box 902, processing path 901 is taken to decision box 925. If the caller presses key 3 (processing path 926), control of processing is transferred to the box labeled B where the call is terminated with an end message (processing box 922). If key 3 is not pressed or a timeout occurs, processing is again transferred to the box labeled A shown in Figure 8. Thus, in this first example, an apparatus for handling an incoming call is shown using the application control hardware and call flow language processing logic of the present invention. A script for handling an incoming call 5 as in this first example is shown in LISTING A, which appears immediately before the claims section of this patent application.
In Figur 9a bis 9f ist ein zweites Beispiel für die Arbeitsweise der vorliegenden Erfindung dargestellt. Figur 9a bis 9f zeigen die Verarbeitungslogik für Anrufabläufe zur Behandlung von Serviceanrufen an eine Unterstützungsstelle. Bei dieser Anwendung rufen Anrufer mit Problemen oder Fragen eine allgemeine Hilfsnummer an, um ihre Fragen zu lösen. Die vorliegende Erfindung dient zur Erleichterung schneller und effektiver Kommunikation zwischen Anrufern mit Problemen und Spezialisten, die ihnen helfen können. Zusätzlich verwaltet und verfolgt die vorliegende Erfindung automatisch Informationen über die von den Anrufern vorgebrachten Probleme und die diesen durch Spezialisten der Organisation gelieferten Ergebnisse oder Antworten. Bei einer Anwendung für eine Unterstützungsstelle können Systeme nach dem Stand der Technik das weite Feld von Problemen und Fragen der Anrufer, die auf eine Unterstützungsstelle mit einer Telefonnummer zukommen, nicht effektiv handhaben. Mit der vorliegenden Erfindung wird die Anwendung für die Unterstützungsstelle jedoch wirkungsvoll automatisiert, wie durch die Logik in den Figuren 9a bis 9f dargestellt wird.A second example of the operation of the present invention is shown in Figures 9a through 9f. Figures 9a through 9f show the call flow processing logic for handling service calls to a support center. In this application, callers with problems or questions call a general helpline number to resolve their questions. The present invention is designed to facilitate quick and effective communication between callers with problems and specialists who can help them. In addition, the present invention automatically manages and tracks information about the problems raised by callers and the results or answers provided to them by specialists within the organization. In a support center application, prior art systems cannot effectively handle the wide range of problems and questions that callers present to a support center with a telephone number. However, the present invention effectively automates the support center application, as illustrated by the logic in Figures 9a through 9f.
In Figur 9a wird der Anrufablauf für die Anwendung für Unterstützungsstellen des zweiten Beispiels dargestellt.Figure 9a shows the call flow for the support center application of the second example.
Nachdem der Anrufablauf auf die früher beschriebene Art und Weise eingeleitet wurde, beginnt die Verarbeitung beim Feld 1001. Unter Verwendung der von der PBX 100 und dem VMS 105 empfangenen Integrationsinformation bestimmt der Anwendungsprozessor 100, daß die angerufene ID diejenige der Unterstützungsstelle ist (Verarbeitungsfeld 1002). Unter Verwendung des SPEAK Befehls werden eine Anfangsansage, ein Menü von Optionen und eine Aufforderungsnachricht an den Anruf er gesprochen (Verarbeitungsfeld 1003). Dann wird unter Verwendung des Befehls INPUT die Auswahl des Anrufers empfangen (Verarbeitungsfeld 1004). Abhängig von der durch den Anrufer eingegebenen Taste wird einer von mehreren möglichen Verarbeitungswegen genommen. Für die Eingabe der Taste 1 auf der Telefontastatur wird zum Beispiel der Verarbeitungsweg 1007 zum Verarbeitungsfeld 1008 genommen. In diesem zweiten Beispiel ist die Taste 1 mit dem Wunsch eines Anrufers verknüpft, eine Anfrage für die Unterstützungsstelle aufzuzeichnen. Falls der Anrufer die Taste 2 eingibt, wird der Verarbeitungsweg 1066 zu dem in Figur 9f dargestellten mit P bezeichneten Feld genommen. In diesem zweiten Beispiel ist die Taste 2 mit dem Wunsch eines Anrufers verknüpft, eine bereits von einer früheren Transaktion mit der Unterstützungsstelle her vorhandene Anfrage zu aktualisieren. Falls der Anrufer die Taste 3 auf der Telefontastatur eingibt, wird der Verarbeitungsweg 1069 zu dem in Figur 9e dargestellten mit N bezeichneten Feld genommen. In diesem zweiten Beispiel ist die Taste 3 mit dem Wunsch des Anrufers verknüpft, auf eine Antwort auf eine vorher an die Unterstützungsstelle gestellte Anfrage hin zu prüfen. Falls durch den Anrufer die Nulltaste eingegeben wird, wird der Verarbeitungsweg 1073 zum Verarbeitungsfeld 1074 genommen, wo der Anruf zur weiteren manuellen Verarbeitung an einen Sachbearbeiter übermittelt wird. Falls eine andere als die Tasten 0 bis 3 eingegeben wird oder falls eine Zeitüberschreitung auftritt, wird der Verarbeitungsweg 1072 zu dem in Figur 9a gezeigten mit K bezeichneten Feld genommen, wo die Anfangsansage, das Menü und die Aufforderung wiederholt werden (Verarbeitungsfeld 1003).After the call flow is initiated in the manner described earlier, processing begins at field 1001. Using the integration information received from the PBX 100 and the VMS 105, the application processor 100 determines that the called ID is that of the support center (processing field 1002). Using the SPEAK command, an initial announcement, a menu of options, and a prompt message are spoken to the caller (processing field 1003). Then, using the INPUT command, the caller's selection is received (processing field 1004). Depending on the key entered by the caller, one of several possible processing paths is taken. For entering the For example, key 1 on the telephone keypad takes processing path 1007 to processing field 1008. In this second example, key 1 is associated with a caller's desire to record a request for the support center. If the caller presses key 2, processing path 1066 is taken to the field labeled P in Figure 9f. In this second example, key 2 is associated with a caller's desire to update a request already existing from a previous transaction with the support center. If the caller presses key 3 on the telephone keypad, processing path 1069 is taken to the field labeled N in Figure 9e. In this second example, key 3 is associated with a caller's desire to check for a response to a request previously made to the support center. If the zero key is entered by the caller, processing path 1073 is taken to processing box 1074 where the call is transferred to an agent for further manual processing. If a key other than 0 through 3 is entered, or if a timeout occurs, processing path 1072 is taken to the box labeled K shown in Figure 9a where the initial announcement, menu and prompt are repeated (processing box 1003).
Beginnend bei dem in Figur 9a gezeigten Verarbeitungsfeld 1008 wird die Anrufverarbeitung als Reaktion auf die Auswahl der Taste 1 durch den Bediener dargestellt. Die beim Verarbeitungsfeld 1008 gestartete Verarbeitung behandelt einen Wunsch eines Anrufers, eine neue Anfrage für die Unterstützungsstelle aufzunehmen. Um diese Aufgabe zu erfüllen, wird unter Verwendung des Befehls SELECT auf eine Anfragedatenbank zugegriffen. In der Anfragedatenbank wird unter Verwendung der Konstrukts FIND NEW des Befehls FIND ein neuer Datensatz erzeugt. Ein Befehl PUT gefolgt von einem Befehl WRITEDB wird dazu verwendet, den neuen Datensatz zu initialisieren und eine zu dem neuen Datensatz gehörende Datensatznummer zu erzeugen (Verarbeitungsfeld 1008). Wurde im Verarbeitungsfeld 1008 ein neuer Anfragedatensatz initialisiert, wird der Befehl SPEAK dazu verwendet, den Anrufer aufzufordern, eine Telefonnummer mit sieben Stellen einzugeben (Verarbeitungsfeld 1016). Dann wird der Befehl INPUT dazu verwendet, die vom Anruf er eingegebene Telefonnummer zu holen (Verarbeitungsfeld 1017). Beim Verarbeitungsfeld 1018 wird eine neue Sprachnachricht zum Aufzeichnen einer Anfrage durch den Anrufer erzeugt. Zu diesem Zweck kann das Befehlskonstrukt RECORD NEW der Anrufablaufsprache verwendet werden. Unter Verwendung des Befehls RECORD können Informationen wie Zeit, Datum, Telefonnummer des Anrufers, usw. in die neue Nachricht integriert oder aufgezeichnet werden. Der Befehl RECORD liefert eine zu der neuen Nachricht gehörende Nachrichtennummer zur Verwendung in der späteren Verarbeitung des Anrufablaufs zurück. Dann wird die Verarbeitung bei dem in Figur 9b mit L bezeichneten Feld fortgesetzt.Beginning at processing box 1008 shown in Figure 9a, call processing is illustrated in response to the operator's selection of key 1. The processing initiated at processing box 1008 handles a caller's request to record a new request for the support center. To accomplish this task, a request database is accessed using the SELECT command. A new record is created in the request database using the FIND NEW construct of the FIND command. A PUT command followed by a WRITEDB command is used to initialize the new record and to assign a (processing field 1008). If a new request record has been initialized in processing field 1008, the SPEAK command is used to prompt the caller to enter a seven-digit telephone number (processing field 1016). Then the INPUT command is used to get the telephone number entered by the caller (processing field 1017). At processing field 1018, a new voice message is generated to record a request from the caller. For this purpose, the RECORD NEW command construct of the call flow language can be used. Using the RECORD command, information such as time, date, caller's telephone number, etc. can be incorporated or recorded into the new message. The RECORD command returns a message number associated with the new message for use in later processing of the call flow. Processing then continues at the field labeled L in Figure 9b.
In Figur 9b wird die Verarbeitung des Anrufablaufs für eine Anwendung für Unterstützungsstellen des zweiten Beispiels fortgesetzt. Nach der Erzeugung einer neuen Nachricht zur Aufzeichnung der Anfrage des Anrufers wird der Befehl SPEAK verwendet, um den Anrufer aufzufordern, seinen/ihren Namen zur Aufzeichnung in die neue Nachricht zu sagen (Verarbeitungsfeld 1019). Der Name des Anrufers wird im Verarbeitungsfeld 1020 in die neue Nachricht aufgenommen. Als nächstes wird wieder der Befehl SPEAK verwendet, um den Bediener aufzufordern, beim Tonsignal seine/ihre Anfrage einzugeben und seine/ihre Anfrage durch Drücken der Pfundtaste (#) abzuschließen (Verarbeitungsfeld 1022). Der Befehl RECORD wird wieder dazu verwendet, eine Sprachnachricht vom Anrufer aufzuzeichnen, deren Inhalt seine/ihre Anfrage an die Unterstützungsstelle darstellt (Verarbeitungsfeld 1023). Nach der Aufzeichnung von Name und Anfrage des Anrufers wird unter Verwendung der Befehle SELECT und FIND auf eine Technikerdatenbank zugegriffen. Unter Verwendung des Befehlskonstrukts FIND NEW wird ein neuer Datensatz in der Technikerdatenbank eröffnet. Wurde der neue Datensatz in der Technikerdatenbank erzeugt, wird die zu der zur Aufzeichnung von Name und Anfrage des Anrufers verwendeten Nachricht gehörende Nachrichtennummer unter Ver wendung des Befehls PUT an den neuen Datensatz in der Technikerdatenbank übermittelt. Eine eindeutige zu der Anfrage des Anrufers gehörende Anfragekennzahl wird erzeugt und neben der zugehörigen Nachrichtennummer in die Technikerdatenbank eingefügt (Verarbeitungsfeld 1021). Unter Verwen dung des Befehis RECORD wird eine neue Nachricht erzeugt, die die Anf ragekennzahl in eine Abschlußnachricht an den Anrufer integriert (Verarbeitungsfeld 1024). Dann endet die Verarbeitung des Anrufablaufs für die neue Anfrage beim Abschlußfeld 1025.Referring to Figure 9b, processing of the call flow for a support center application of the second example continues. After generating a new message to record the caller's request, the SPEAK command is used to prompt the caller to say his/her name for recording in the new message (processing box 1019). The caller's name is included in the new message in processing box 1020. Next, the SPEAK command is again used to prompt the operator to enter his/her request at the tone and to complete his/her request by pressing the pound key (#) (processing box 1022). The RECORD command is again used to record a voice message from the caller, the content of which represents his/her request to the support center (processing box 1023). After recording the caller's name and request, a technician database is accessed using the SELECT and FIND commands. Using the command construct FIND NEW, a new data record is in the technician database. Once the new record has been created in the technician database, the message number associated with the message used to record the caller's name and request is transferred to the new record in the technician database using the PUT command. A unique request identifier associated with the caller's request is generated and inserted into the technician database alongside the associated message number (processing field 1021). A new message is generated using the RECORD command that incorporates the request identifier into a closing message to the caller (processing field 1024). Call flow processing for the new request then ends at closing field 1025.
Wiederum in Figur 9a wird eine Anforderung zur Aktualisierung einer Anfrage spezifiziert, falls ein Anrufer die Taste 2 der Telefontastatur drückt (Verarbeitungsfeld 1066). In diesem Fall geht die Verarbeitung des Anrufablaufs zu dem in Figur 9f dargestellten mit P bezeichneten Feld über. In Figur 9f ist die Verarbeitung des Anrufablaufs zum Aktualisieren einer vorhandenen Anfrage dargestellt. Als erstes wird der Befehl SPEAK dazu verwendet, den Anrufer aufzufordern, die Nummer der vorhandenen Anfrage einzugeben (Verarbeitungsfeld 1057). Der Befehl INPUT wird dazu verwendet, die vom Anrufer eingegebene Anfragenummer zu holen (Verarbeitungsfeld 1058). Als nächstes wird unter Verwendung des Befehls SELECT und des Befehls FIND auf die Anfragedatenbank zugegriffen. Die zu der vom Anrufer eingegebenen Anfragekennzahl gehörende Anfragenachrich tennummer wird geholt (Verarbeitungsfeld 1061). Dann wird SPEAK dazu verwendet, den Anrufer aufzufordern, die Anfrageaktualisierung einzugeben (Verarbeitungsfeld 1060). Der Befehl RECORD wird dazu verwendet, die Aktualisierung der Anfrage aufzuzeichnen (Verarbeitungsfeld 1059). Das Befehlskonstrukt RECORD APPEND kann dazu verwendet werden, eine neue Nachricht an eine vorhandene Nachricht anzuhängen. Zusätzlich können Daten wie Zeit, Datum und ID des Anrufers in die Nachricht integriert werden. Hat der Anrufer die Aktualisierung der Anfrage vollendet, wird die Ablaufverarbeitung bei dem in Figur 9a dargestellten Feld K fortgesetzt. Beim Feld K werden wieder die Anfangsansage, das Auswahlmenü und die Aufforderung zur Eingabe einer Auswahl an den Anrufer gesprochen.Referring again to Figure 9a, a request to update a request is specified if a caller presses the 2 key on the telephone keypad (processing box 1066). In this case, call flow processing proceeds to the box labeled P in Figure 9f. Figure 9f illustrates call flow processing for updating an existing request. First, the SPEAK command is used to prompt the caller to enter the number of the existing request (processing box 1057). The INPUT command is used to retrieve the request number entered by the caller (processing box 1058). Next, the request database is accessed using the SELECT command and the FIND command. The request message number associated with the request code entered by the caller is retrieved (processing box 1061). Then, SPEAK is used to prompt the caller to enter the request update (processing box 1060). The RECORD command is used to record the update of the request (processing field 1059). The command construct RECORD APPEND can be used to append a new message to an existing message. In addition, data such as time, date and ID of the caller's message. Once the caller has completed updating the request, the processing continues at field K shown in Figure 9a. At field K, the initial announcement, the selection menu and the request to enter a selection are again spoken to the caller.
Falls wiederum bei Figur 9a von einem Anrufer die Taste 3 auf der Telefontastatur gedrückt wird, wird der Verarbeitungsweg 1069 zu dem in Figur 9e dargestellten Feld N genommen. In Figur 9e ist die Verarbeitung als Reaktion auf den Wunsch eines Bedieners, auf eine Antwort auf eine frühere Anfrage hin zu prüfen, dargestellt. Als erstes wird der Befehl SPEAK dazu verwendet, den Anrufer zur Eingabe der Anfragenummer aufzufordern (Verarbeitungsfeld 1051).Again, in Figure 9a, if the 3 key on the telephone keypad is pressed by a caller, processing path 1069 is taken to box N shown in Figure 9e. Figure 9e illustrates processing in response to an operator's request to check for a response to a previous request. First, the SPEAK command is used to prompt the caller to enter the request number (processing box 1051).
Als nächstes wird der Befehl INPUT dazu verwendet, die von Anrufer eingegebene Anfragenummer zu holen (Verarbeitungsfeld 1052). Dann wird auf die Anfragedatenbank zugegriffen. Unter Verwendung der vom Anrufer eingegebenen Anfragenummer wird der zu der Anfrage gehörende Anfragedatensatz geholt. Entsprechend wird die zu der ursprünglichen Anfragenachricht gehörende Nachrichtennummer geholt (Verarbeitungsfeld 1053). Unter Verwendung der Nachrichtennummer der ursprünglichen Anfrage wird die ursprüngliche Anfragenachricht unter Verwendung des Befehls SPEAK gesprochen an den Anrufer ausgegeben (Verarbeitungsfeld 1054). Als nächstes wird die Nachrichtennummer der Antwort des Technikers auf die ursprüngliche Anfragenachricht aus dem Anfragedatensatz in der Anfragedatenbank geholt (Verarbeitungsfeld 1055). Die Antwort des Technikers wird unter Verwendung des Befehls-SPEAK gesprochen an den Anruf er ausgegeben (Verarbeitungsfeld 1056). Aktuelle Information wie beispielsweise Datum und Zeit kann ebenfalls in die Nachricht integriert werden. Dann wird die Verarbeitung des Anrufablaufs zurück an das in Figur 9a dargestellte mit K bezeichnete Feld übertragen, wo die Anfangsansage, das Menü zur Befehlsauswahl und die Aufforderung gesprochen an den Anruf er ausgegeben werden. Damit ist die Verarbeitung des Anrufablaufs für einen von einem Anrufer, der eine Anfrage stellt, empfangenen Anruf in einer Anwendung für eine Unterstützungsstelle beschrieben.Next, the INPUT command is used to retrieve the request number entered by the caller (processing field 1052). The request database is then accessed. Using the request number entered by the caller, the request record associated with the request is retrieved. Similarly, the message number associated with the original request message is retrieved (processing field 1053). Using the message number of the original request, the original request message is spoken to the caller using the SPEAK command (processing field 1054). Next, the message number of the technician's response to the original request message is retrieved from the request record in the request database (processing field 1055). The technician's response is spoken to the caller using the SPEAK command (processing field 1056). Current information such as date and time can also be included in the message. Then the processing of the call flow is transferred back to the field marked K in Figure 9a, where the initial announcement, the menu for selecting commands and the request are spoken to the caller. This completes the processing of the call flow for one of A call received in a support center application is described by a caller who makes a request.
Ein zugehöriger Anrufablauf der Anwendung für die Unterstützungsstelle ist in Figur 9c und 9d dargestellt. Figur 9c und 9d zeigen die Verarbeitung des Anrufablaufs für einen von einem Techniker empfangenen Anruf, der einen eingehenden Anruf auf einer für Techniker oder Spezialisten, die Anrufer bedienen, die Anfragen an die Unterstützungsleitung richten, reservierten Leitung macht. Dieser Anrufablauf wird auf ähnliche Art und Weise eingeleitet wie der vorher beschriebene.An associated call flow of the support center application is shown in Figures 9c and 9d. Figures 9c and 9d show the processing of the call flow for a call received by a technician making an inbound call on a line reserved for technicians or specialists who serve callers who make requests to the support line. This call flow is initiated in a similar manner to the one previously described.
In Figur 9c wird ein Anrufablauf für einen durch das Anrufverarbeitungs- und Nachrichtensystem von einem Anfra gen an eine Unterstützungsstelle bearbeitenden Techniker oder Spezialisten empfangenen eingehenden Anruf dargestellt. Wenn der Ablauf eingeleitet wird, beginnt die Verarbeitung an dem mit 1030 bezeichneten Feld. Unter Verwendung von von der PBX und dem VMS empfangener Informationen identifiziert der Anwendungsprozessor die ID des Anrufer als einen Techniker (Verarbeitungsfeld 1031). Wenn dies geschieht, wird unter Verwendung des Befehls SELECT und des Befehls FIND auf die Anfragedatenbank zugegriffen. Die Anfragedatenbank wird nach neuen Anfragen durchsucht. Falls eine neue Anfrage gefunden wird, wird die zu der neuen Anfrage gehörende Nachrichtennummer aus der Datenbank geholt (Verarbeitungsfeld 1032). Unter Verwendung des Befehls SPEAK wird die in der Anfragedatenbank gefundene Anfrage dem Techniker vorgesprochen (Verarbeitungsfeld 1033). Zusätzlich werden der Name des die Anfrage stellenden Anrufers, die Tageszeit und das Datum in die dem Techniker vorgesprochene Nachricht eingefügt. Nachdem die Anfrage dem Techniker vorgesprochen wurde, wird der Techniker aufgefordert, eine Auswahl einzugeben, die der gewünschten nachfolgend zu tätigenden Aktion entspricht. In dem in Figur 9c dargestellten Beispiel wird der Techniker dazu aufgefordert, eine 1 zu drücken, um auf die Anfrage zu antworten und die Antwort jetzt weiterzuleiten, 2 zu drücken, um spater auf die Nachricht zu antworten, oder 3 zu drücken, um direkt mit dem die Anfrage stellenden Anrufer zu sprechen. Der Befehl INPUT wird dazu verwendet, die vom Anrufer getätigte Auswahl zu empfangen (Verarbeitungsfeld 1034). Falls der Techniker die Taste 1 eingibt (Verarbeitungsweg 1037), wird unmittelbar beginnend bei dem Verarbeitungsfeld 1044 eine Antwort auf die Anfrage verarbeitet. Falls der Techniker die Taste 2 eingibt (Verarbeitungsweg 1040), endet der Anrufablauf beim Abschlußfeld 1041. Falls der Techniker die Taste 3 eingibt (Verarbeitungsweg 1070), wählt der Anwendungsprozessor die vom Anrufer während der Aufzeichnung der ursprünglichen Anfrage eingegebene Telefonnummer (Verarbeitungsfeld 1043). Der Anruf wird unter Verwendung des von der Anrufablaufsprache der vorliegenden Erfindung bereitgestellten Befehls CALL getätigt. Wurde der Anruf getätigt, wird die nachfolgende automatische Verarbeitung des Anrufablaufs entzogen. Falls der Techniker nicht die Tasten 1, 2 oder 3 eingibt oder bei der Eingabe einer der Tasten eine Zeitüberschreitung auftritt, geht die Verarbeitung auf das in Figur 9c dargestellte mit J bezeichnete Feld über. Beim Feld J in Figur 9c wird der Techniker erneut aufgefordert, eine Auswahl einzugeben.Figure 9c illustrates a call flow for an inbound call received by the call processing and messaging system from a technician or specialist handling requests to a support center. When the flow is initiated, processing begins at field 1030. Using information received from the PBX and VMS, the application processor identifies the caller's ID as a technician (processing field 1031). When this occurs, the request database is accessed using the SELECT command and the FIND command. The request database is searched for new requests. If a new request is found, the message number associated with the new request is retrieved from the database (processing field 1032). Using the SPEAK command, the request found in the request database is spoken to the technician (processing field 1033). In addition, the name of the caller making the request, the time of day, and the date are inserted into the message spoken to the technician. After the request is presented to the technician, the technician is prompted to enter a choice that corresponds to the desired subsequent action. In the example shown in Figure 9c, the technician is prompted to press 1 to respond to the request and forward the response now, press 2 to respond to the message later, or press 3 to speak directly to the inquiring caller. The INPUT command is used to receive the selection made by the caller (processing box 1034). If the technician enters key 1 (processing path 1037), a response to the inquiry is processed immediately beginning at processing box 1044. If the technician enters key 2 (processing path 1040), the call flow ends at termination box 1041. If the technician enters key 3 (processing path 1070), the application processor dials the telephone number entered by the caller during recording of the original inquiry (processing box 1043). The call is placed using the CALL command provided by the call flow language of the present invention. Once the call is placed, subsequent automatic processing of the call flow is withdrawn. If the technician does not enter keys 1, 2, or 3, or if a timeout occurs while entering one of the keys, processing proceeds to the field labeled J in Figure 9c. At field J in Figure 9c, the technician is again prompted to enter a selection.
Wiederum beim Verarbeitungsfeld 1044 in Figur 9c hat der anrufende Techniker sich entschieden, auf die neue Anfrage zu antworten und seine Antwort unmittelbar weiterzuleiten. Unter Verwendung des Befehlskonstrukts RECORD NEW wird eine neue Sprachnachricht zur Speicherung der Antwort des Technikers auf die Anfrage erzeugt. Zusätzliche Infor mationen wie beispielsweise Datum und Zeit werden ebenfalls in die Nachricht integriert (Verarbeitungsfeld 1044). Dann geht die Verarbeitung des Anrufablaufs auf das beginnend in Figur 9d dargestellte mit M bezeichnete Feld über. In Figur 9d wird der Befehl SPEAK dazu verwendet, den Techniker auf zufordern, seine Antwort auf die durch den ursprünglichen Anrufer der Unterstützungsstelle gestellte Anfrage zu sprechen (Verarbeitungsfeld 1045). Unter Verwendung des Befehls RECORD wird die vom Techniker gesprochene Sprachantwort aufgezeichnet und in der neuen Nachricht gespeichert (Verarbeitungsfeld 1046). Hat der Techniker die Eingabe seiner Antwort vollendet, wird auf die Anfragedatenbank zugegriffen und die Nachrichtennummer der Antwort wird im Anfragedatensatz gespeichert (Verarbeitungsfeld 1047). Dann endet die Verarbeitung für diesen Anrufablauf beim Verarbeitungsfeld 1048. Damit sind ein Verfahren und eine Einrichtung zur Implementierung einer Unterstützungsstelle unter Verwendung der vorliegenden Erfindung beschrieben.Returning to processing box 1044 in Figure 9c, the calling technician has chosen to respond to the new request and forward his response immediately. Using the RECORD NEW command construct, a new voice message is created to store the technician's response to the request. Additional information such as date and time is also incorporated into the message (processing box 1044). Call flow processing then moves to the box labeled M beginning in Figure 9d. In Figure 9d, the SPEAK command is used to prompt the technician to speak his response to the request made by the original caller to the support center (processing box 1045). Using the RECORD NEW command, the call flow then continues to the box labeled M beginning in Figure 9d. RECORD, the voice response spoken by the technician is recorded and stored in the new message (processing box 1046). Once the technician has finished entering his response, the query database is accessed and the message number of the response is stored in the query record (processing box 1047). Processing for this call flow then ends at processing box 1048. Thus, a method and apparatus for implementing a support center using the present invention is described.
Ein drittes Beispiel für die Arbeitsweise der vorliegenden Erfindung ist in Figur 10a bis 10e dargestellt. Der in Figur 10a bis 10e dargestellte Anrufablauf implementiert ein rationelles System zur Eingabe und Verfolgung von Be stellungen unter Verwendung der Anwendungshardware und Verarbeitungslogik für Anrufabläufe der vorliegenden Erfindung. Auf eine der Arbeitsweise in den oben dargestellten ersten beiden Beispielen ähnliche Art und Weise werden die Befehle der Anrufablaufsprache dazu verwendet, einen Anruf zur Eingabe einer Bestellung bei jedem Schritt in der Anwendung zu verarbeiten. Unter Verwendung von durch die Anrufablaufsprache bereitgestellten Befehlen wird während der Bearbeitung des Anrufs auf verschiedene Inforrnationsdatenbanken zugegriffen und diese werden aktualisiert. Die vorliegende Erfindung stellt somit ein flexibles und dynamisches Anrufverarbeitungs- und Nachrichtensystem bereit, das nahtlosen Zugriff auf Daten und Sprachnachrichten bietet.A third example of the operation of the present invention is shown in Figures 10a through 10e. The call flow shown in Figures 10a through 10e implements a streamlined order entry and tracking system using the application hardware and call flow processing logic of the present invention. In a manner similar to the operation in the first two examples shown above, the call flow language commands are used to process a call to enter an order at each step in the application. Using commands provided by the call flow language, various information databases are accessed and updated as the call is processed. The present invention thus provides a flexible and dynamic call processing and messaging system that provides seamless access to data and voice messages.
Es wird somit ein integriertes anwendungsgesteuertes Anrufverarbeitungs- und Nachrichtensystem für verbesserte Anrufverarbeitung und Sprachnachrichten offenbart. Obwohl die Erfindung hierin mit Bezug auf eine besondere Ausführungsform beschrieben worden ist, werden Fachleute leicht auf viele Modifikationen und Variationen darin kommen. Folglich sind alle derartigen Variationen und Modifikationen im beabsichtigten Bereich der vorliegenden Erfindung eingeschlossen, wie er durch die folgenden Patentansprüche definiert ist.There is thus disclosed an integrated application-driven call processing and messaging system for enhanced call processing and voice messaging. Although the invention has been described herein with reference to a particular embodiment, many modifications and variations therein will readily occur to those skilled in the art. Accordingly, all such variations and modifications are included within the intended scope of the present invention as defined by the following claims.
10 NUM: 4 RATE10 NUM: 4 RATE
20 CHAR:8 ACCTNUM20 CHAR:8 ACCTNUM
30 NUM:2 ACCTBAL30 NUM:2 ACCTBAL
40 CHAR: 3 ASSISTEXT40 CHAR: 3 ASSIST TEXT
50 DEFAULT ON CN$FAIL GOTO ASSISTANCE50 DEFAULT ON CN$FAIL GOTO ASSISTANCE
60 DEFAULT ON CN$TMOLIMIT GOTO ENDCALL60 DEFAULT ON CN$TMOLIMIT GOTO ENDCALL
70 DEFAULT ON CN$INVLIMIT GOTO ASSISTANCE70 DEFAULT ON CN$INVLIMIT GOTO ASSISTANCE
80 DEFAULT ON CN$LOCKED GOTO ASSISTANCE80 DEFAULT ON CN$LOCKED GOTO ASSISTANCE
90 "NEBENSTELLE ASSIST UND LOKALE DATENBANK INITIALISIEREN90 "INITIALIZE EXTENSION ASSIST AND LOCAL DATABASE
100 LET ASSISTEXT = '333'100 LET ASSISTTEXT = '333'
110 SELECT LDINTRST110 SELECT LDINTRST
120 SELECT LDBAL120 SELECT LDBAL
130 "INTERAKTION MIT DEM ANRUFER BEGINNEN130 "BEGIN INTERACTION WITH THE CALLER
140 SPEAK WELCOME AS PROMPT140 SPEAK WELCOME AS PROMPT
150 GIVOPTS:150 GIVOPTS:
160 SPEAK SELECTIO AS PROMPT160 SPEAK SELECT AS PROMPT
170 MENU170 MENU
180 ON CN$TIMEOUT GOTO GIVOPTS180 ON CN$TIMEOUT GOTO GIVOPTS
190 ON [1] GOSUB RATEINFO190 ON [1] GOSUB RATEINFO
200 ON [2] GOTO SAVEINFO200 ON [2] GOTO SAVEINFO
210 ON [3] GOTO ENDCALL210 ON [3] GOTO ENDCALL
220 GOTO GIVOPTS220 GOTO GIVOPTS
230 "--NACH KONTONUMMER FRAGEN230 "--ASK FOR ACCOUNT NUMBER
240 SAVEINFO:240 SAVEINFO:
250 SPEAK INACCT AS PROMPT250 SPEAK INACCT AS PROMPT
260 INPUT ACCTNUM LENGTH 4 TO 8260 INPUT ACCTNUM LENGTH 4 TO 8
270 ON CN$TIMEOUT GOTO SAVEINFO270 ON CN$TIMEOUT GOTO SAVEINFO
280 ON CN$INVALID GOTO BADNUM280 ON CN$INVALID GOTO BADNUM
290 "LOKALE DATENBANK ZUR ÜBERPRÜFUNG DES KONTOS VERWENDEN290 "USE LOCAL DATABASE TO VERIFY ACCOUNT
300 "FALLS FIND MISSLINGT, IST ES EIN UNGÜLTIGES KONTO300 "IF FIND FAILS, IT IS AN INVALID ACCOUNT
310 FIND FIRST RECORD WITH ACCTFLD = ACCTNUM USING LDBAL310 FIND FIRST RECORD WITH ACCTFLD = ACCTNUM USING LDBAL
320 ON CN$FAIL GOTO BADNUM320 ON CN$FAIL GOTO BADNUM
330 GET ACCTBAL AT BALFLD USING LDBAL330 GET ACCTBAL AT BALFLD USING LDBAL
340 SPEAK BALANCIS AS PROMPT340 SPEAK BALANCIS AS PROMPT
350 SPEAK ACCTBAL AS NUMERIC350 SPEAK ACCEPTABLE AS NUMERIC
360 GOTO GIVOPTS360 GOTO GIVOPTS
370 "--UNGÜLTIGES KONTO EINGEGEBEN370 "--INVALID ACCOUNT ENTERED
380 BADNUN:380 BADNUN:
390 SPEAK INVACCT AS PROMPT390 SPEAK INVACCT AS PROMPT
400 "--ANRUFER AN SACHBEARBEITER VERMITTELN400 "--TRANSFER CALLER TO CLERK
450 ASSISTANCE:450 ASSISTANCES:
460 TRANSFER ASSISTEXT460 TRANSFER ASSIST TEXT
470 ON CN$FAIL GOTO XFERFAIL470 ON CN$FAIL GOTO XFERFAIL
480 CONNECT480 CONNECT
490 ENDFLOW490 ENDFLOW
500 XFERFAIL:500 XFERFAIL:
510 SPEAK PLSWAIT AS PROMPT510 SPEAK PLSWAIT AS PROMPT
520 WAIT 10520 WAIT10
530 GOTO ASSISTANCE530 GOTO ASSISTANCE
540 ENDCALL:540 ENDCALL:
550 SPEAK THANKYOU AS PROMPT550 SPEAK THANKYOU AS PROMPT
560 ENDFLOW560 ENDFLOW
570 "-- INFORMATION ÜBER AKTUELLEN ZINS GEBEN570 "-- PROVIDE INFORMATION ON CURRENT INTEREST RATE
580 STARTSUB RATEINFO580 STARTSUB RATEINFO
590 FIND NTH RECORD WITH RECORD = 1 USING LDINTRST590 FIND NTH RECORD WITH RECORD = 1 USING LDINTRST
600 GET RATE AT RATEFLD USING LDINTRST600 GET RATE AT RATEFLD USING LDINTRST
610 SPEAK CURRATE AS PROMPT610 SPEAK CURRENT AS PROMPT
620 SPEAK RATE AS NUMERIC620 SPEAK RATE AS NUMERIC
630 ENDEUB630 ENDEUB
Claims (24)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US66027991A | 1991-02-21 | 1991-02-21 | |
PCT/US1992/001248 WO1992015166A1 (en) | 1991-02-21 | 1992-02-19 | Integrated application controlled call processing and messaging system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69213436D1 DE69213436D1 (en) | 1996-10-10 |
DE69213436T2 true DE69213436T2 (en) | 1997-01-09 |
Family
ID=24648851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69213436T Expired - Lifetime DE69213436T2 (en) | 1991-02-21 | 1992-02-19 | INTEGRATED APPLICATION CONTROLLED CALL PROCESSING AND MESSAGE SYSTEM |
Country Status (5)
Country | Link |
---|---|
US (1) | US5355406A (en) |
EP (1) | EP0572544B1 (en) |
JP (1) | JPH06505602A (en) |
DE (1) | DE69213436T2 (en) |
WO (1) | WO1992015166A1 (en) |
Families Citing this family (69)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6785021B1 (en) * | 1988-09-22 | 2004-08-31 | Audiofax, Ip, Llc | Facsimile telecommunications system and method |
US5703937A (en) * | 1991-06-28 | 1997-12-30 | Dictahone Corporation | Voice dictation consulting system and method |
GB9209081D0 (en) * | 1992-04-27 | 1992-06-10 | Spectal Electronics Ltd | Hotel interactive communication apparatus |
US7082106B2 (en) | 1993-01-08 | 2006-07-25 | Multi-Tech Systems, Inc. | Computer-based multi-media communications system and method |
US6009082A (en) | 1993-01-08 | 1999-12-28 | Multi-Tech Systems, Inc. | Computer-based multifunction personal communication system with caller ID |
US5481597A (en) * | 1993-03-09 | 1996-01-02 | At&T Corp. | Sent message cancellation arrangement |
EP0634860B1 (en) * | 1993-07-15 | 2000-02-23 | Siemens Business Communication Systems, Inc. (a Delaware corp.) | Methods and apparatus for coordinating and controlling the operation of AMIS analog voice messaging system networks in response to message delivery session status signals |
US5506901A (en) * | 1993-10-04 | 1996-04-09 | At&T Corp. | Call eavesdropping arrangement |
CA2119086C (en) * | 1994-03-15 | 1998-06-16 | Thomas A. Gray | Help desk improvement |
US5724406A (en) * | 1994-03-22 | 1998-03-03 | Ericsson Messaging Systems, Inc. | Call processing system and method for providing a variety of messaging services |
US5757801A (en) | 1994-04-19 | 1998-05-26 | Multi-Tech Systems, Inc. | Advanced priority statistical multiplexer |
US5682386A (en) | 1994-04-19 | 1997-10-28 | Multi-Tech Systems, Inc. | Data/voice/fax compression multiplexer |
EP0774191B1 (en) * | 1994-08-04 | 1998-10-07 | BRITISH TELECOMMUNICATIONS public limited company | Intelligent communications networks |
US5537466A (en) * | 1994-08-04 | 1996-07-16 | British Telecommunications, Plc. | Intelligent communications networks |
AUPM940594A0 (en) * | 1994-11-11 | 1994-12-08 | Telecom Technologies Pty Ltd | Purpose-built centrex enhancing telephone system |
US5646981A (en) * | 1995-01-10 | 1997-07-08 | Lucent Technologies Inc. | Arrangement for automated delivery of voice-mail messages for software processes |
AUPN053595A0 (en) * | 1995-01-13 | 1995-02-09 | Voicecard International Corporation Pty Ltd | A gift article voice greeting system |
US5974118A (en) * | 1995-04-03 | 1999-10-26 | Unisys Corporation | System for coordinating on-line updates of call flows, functions and voice prompts of a telephony applications |
US5881142A (en) * | 1995-07-18 | 1999-03-09 | Jetstream Communications, Inc. | Integrated communications control device for a small office configured for coupling within a scalable network |
US5925108A (en) * | 1995-11-03 | 1999-07-20 | Novell, Inc. | Event notification in a computer system |
US5787150A (en) * | 1995-12-29 | 1998-07-28 | Mci Communications Corporation | Method and system for automated collect call messaging |
US6192112B1 (en) | 1995-12-29 | 2001-02-20 | Seymour A. Rapaport | Medical information system including a medical information server having an interactive voice-response interface |
US5926526A (en) * | 1995-12-29 | 1999-07-20 | Seymour A. Rapaport | Method and apparatus for automated patient information retrieval |
US5875234A (en) | 1996-02-14 | 1999-02-23 | Netphone, Inc. | Computer integrated PBX system |
US6975708B1 (en) | 1996-04-17 | 2005-12-13 | Convergys Cmg Utah, Inc. | Call processing system with call screening |
US5867562A (en) * | 1996-04-17 | 1999-02-02 | Scherer; Gordon F. | Call processing system with call screening |
US7421066B1 (en) * | 1996-06-12 | 2008-09-02 | Estech Systems, Inc. | Telephone call/voice processing system |
US5850428A (en) * | 1996-07-17 | 1998-12-15 | Day; Robert Allen | Message management system and method |
GB9620082D0 (en) | 1996-09-26 | 1996-11-13 | Eyretel Ltd | Signal monitoring apparatus |
US5913195A (en) * | 1996-12-27 | 1999-06-15 | Intervoice Limited Partnership | System and method for developing VRU voice dialogue |
US6775264B1 (en) | 1997-03-03 | 2004-08-10 | Webley Systems, Inc. | Computer, internet and telecommunications based network |
US6097791A (en) * | 1997-07-15 | 2000-08-01 | Octel Communications Corporation | Voice-messaging system with non-user outcalling and auto-provisioning capabilities |
WO1999016229A1 (en) * | 1997-09-23 | 1999-04-01 | Intervoice Limited Partnership | Dynamic distributions of applications and associated resource utilization |
US6483911B1 (en) | 1997-11-05 | 2002-11-19 | Unisys Corporation | Methods and apparatus for providing external access to executable call flows of a network application |
US20010047263A1 (en) * | 1997-12-18 | 2001-11-29 | Colin Donald Smith | Multimodal user interface |
US6301349B1 (en) * | 1998-06-04 | 2001-10-09 | Bellsouth Intellectual Property Corporation | Method and system to connect an unanswered forwarded communication directly to a voice mail service |
US6338089B1 (en) | 1998-10-06 | 2002-01-08 | Bull Hn Information Systems Inc. | Method and system for providing session pools for high performance web browser and server communications |
AU769083B2 (en) * | 1998-12-07 | 2004-01-15 | Keith Benson | Telecommunication method and apparatus |
AUPP757198A0 (en) * | 1998-12-07 | 1999-01-07 | Benson, Keith | Telecommunication method and apparatus |
US6643705B1 (en) * | 1999-03-29 | 2003-11-04 | Microsoft Corporation | Routing of electronic messages using a routing map and a stateful script engine |
US7769147B1 (en) * | 1999-07-29 | 2010-08-03 | Unisys Corporation | Voice messaging system with enhanced customizability |
US6625260B1 (en) * | 1999-10-29 | 2003-09-23 | Lucent Technologies Inc. | System and method to enable the calling party to change the content of previously recorded voice mail messages |
US6718014B2 (en) | 1999-12-27 | 2004-04-06 | Albert M. Haim | Discrete stress-reducing human-telecommunications interface |
US6721705B2 (en) | 2000-02-04 | 2004-04-13 | Webley Systems, Inc. | Robust voice browser system and voice activated device controller |
US7516190B2 (en) | 2000-02-04 | 2009-04-07 | Parus Holdings, Inc. | Personal voice-based information retrieval system |
US7653377B1 (en) * | 2000-07-07 | 2010-01-26 | Bellsouth Intellectual Property Corporation | Pre-paid wireless interactive voice response system with variable announcements |
US7356328B1 (en) | 2000-07-07 | 2008-04-08 | At&T Delaware Intellectual Property, Inc. | Pre-paid wireless interactive voice response system with variable announcements |
US7088987B1 (en) | 2000-07-07 | 2006-08-08 | Bellsouth Intellectual Property Corporation | Pre-paid wireless interactive voice response system with variable announcements |
US6487401B2 (en) * | 2000-12-18 | 2002-11-26 | Sbc Technology Resources, Inc. | Prepaid wireless telephone account regeneration in a wireless access protocol system |
US7215942B1 (en) * | 2001-08-09 | 2007-05-08 | Bellsouth Intellectual Property Corp. | Architecture for managing prepaid wireless communications services |
US6778644B1 (en) | 2001-12-28 | 2004-08-17 | Vocada, Inc. | Integration of voice messaging and data systems |
US7460654B1 (en) | 2001-12-28 | 2008-12-02 | Vocada, Inc. | Processing of enterprise messages integrating voice messaging and data systems |
US6862343B1 (en) | 2002-03-27 | 2005-03-01 | West Corporation | Methods, apparatus, scripts, and computer readable media for facilitating secure capture of sensitive data for a voice-based transaction conducted over a telecommunications network |
US7251657B2 (en) | 2002-05-10 | 2007-07-31 | Oracle International Corporation | Method and system for implementing dynamic cache of database cursors |
US7403967B1 (en) | 2002-06-18 | 2008-07-22 | West Corporation | Methods, apparatus, and computer readable media for confirmation and verification of shipping address data associated with a transaction |
US7539629B1 (en) * | 2002-06-20 | 2009-05-26 | At&T Intellectual Property I, L.P. | System and method for replenishing a wireless terminal account |
US7209890B1 (en) * | 2002-06-20 | 2007-04-24 | Bellsouth Intellectual Property Corp. | System and method for replenishing a wireless terminal account |
KR100455177B1 (en) * | 2003-03-12 | 2004-11-06 | 엘지전자 주식회사 | Call error protection for mobile communication terminal |
US7333809B2 (en) | 2003-03-18 | 2008-02-19 | At&T Mobility Ii Llc | Multi-standard prepaid communication services |
US7706792B1 (en) | 2005-08-10 | 2010-04-27 | At&T Mobility Ii Llc | Intelligent customer care support |
US8090343B2 (en) * | 2007-05-29 | 2012-01-03 | At&T Mobility Ii Llc | Optimized camel triggering for prepaid calling |
US7983655B2 (en) * | 2007-06-20 | 2011-07-19 | At&T Mobility Ii Llc | Conditional call treatment for prepaid calls |
US8090344B2 (en) * | 2007-07-23 | 2012-01-03 | At&T Mobility Ii Llc | Dynamic location-based rating for prepaid calls |
US8774798B2 (en) * | 2007-08-28 | 2014-07-08 | At&T Mobility Ii Llc | Determining capability to provide dynamic local time updates in a prepaid terminating call |
US20090061856A1 (en) * | 2007-08-28 | 2009-03-05 | Cingular Wireless Ii, Llc | Peak off-peak rating for prepaid terminating calls |
US20090061868A1 (en) * | 2007-08-28 | 2009-03-05 | Cingular Wireless Ii, Llc | Decisionmaking for dynamic local time updates in a prepaid terminating call |
US8180321B2 (en) * | 2007-09-26 | 2012-05-15 | At&T Mobility Ii Llc | Recovery of lost revenue in prepaid calls |
US20140341362A1 (en) * | 2014-08-01 | 2014-11-20 | Innovation Software, Llc | Interactive voice response system with electronic signature functionality |
CN106572270B (en) * | 2015-10-13 | 2020-01-21 | 中国电信股份有限公司 | Method and system for presenting additional information of incoming call, additional information platform and client |
Family Cites Families (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3111561A (en) * | 1959-11-23 | 1963-11-19 | American Telephone & Telegraph | Intercept equipment |
US3347988A (en) * | 1963-06-17 | 1967-10-17 | Bolt Beranek & Newman | Method of and system for remotelocation computer communication via telephone |
US3510598A (en) * | 1965-10-22 | 1970-05-05 | Emmett R Salzberg | Telephone call diverter and answering device |
US3482057A (en) * | 1966-01-28 | 1969-12-02 | Ibm | Automatic intercept system |
US3614328A (en) * | 1969-06-24 | 1971-10-19 | Kenneth Eugene Mcnaughton | Automatic subscriber answering service |
US3793487A (en) * | 1971-11-22 | 1974-02-19 | J Kilby | System for screening telephone calls |
US3825693A (en) * | 1972-09-25 | 1974-07-23 | Tele Resources Inc | Time division multiplex branch exchange |
US3867582A (en) * | 1973-06-12 | 1975-02-18 | United Business Communications | Remote control for private automatic branch telephone exchange |
US3859473A (en) * | 1973-07-31 | 1975-01-07 | Stromberg Carlson Corp | Centralized attendant service arrangement for PABX complex |
US4200772A (en) * | 1973-08-29 | 1980-04-29 | Graphic Scanning Corp. | Computer controlled telephone answering system |
US3985971A (en) * | 1974-07-22 | 1976-10-12 | Colpoys John R | Telephony |
US3989901A (en) * | 1975-04-30 | 1976-11-02 | Message Center Systems, Inc. | Optional telephone answering system |
US3978294A (en) * | 1975-06-16 | 1976-08-31 | Western Electric Company | Return answer-supervisory circuit |
JPS5286706A (en) * | 1976-01-14 | 1977-07-19 | Hitachi Ltd | Key telephone receiver for audio sound response |
JPS5327332A (en) * | 1976-08-26 | 1978-03-14 | Hitachi Ltd | Sound response unit of entirely double type |
US4086438A (en) * | 1977-03-07 | 1978-04-25 | Teletech Corporation | Automatic interconnection system |
US4112261A (en) * | 1977-05-16 | 1978-09-05 | The Anaconda Company | Key telephone system and method |
US4125748A (en) * | 1977-10-31 | 1978-11-14 | Bell Telephone Laboratories, Incorporated | Communication system call transfer arrangement |
US4152547A (en) * | 1977-11-29 | 1979-05-01 | Theis Peter F | Selective monitor for an automatic telephone answering system |
US4232199A (en) * | 1978-10-18 | 1980-11-04 | Summa Four, Inc. | Special services add-on for dial pulse activated telephone switching office |
US4255618A (en) * | 1979-04-18 | 1981-03-10 | Gte Automatic Electric Laboratories, Incorporated | Digital intercept recorder/announcer system |
US4371752A (en) * | 1979-11-26 | 1983-02-01 | Ecs Telecommunications, Inc. | Electronic audio communication system |
US4602129A (en) * | 1979-11-26 | 1986-07-22 | Vmx, Inc. | Electronic audio communications system with versatile message delivery |
US4420656A (en) * | 1979-11-27 | 1983-12-13 | Michael Freeman | Interactive telephone answering system |
JPS5690663A (en) * | 1979-12-25 | 1981-07-22 | Hitachi Ltd | Acceptance system for extension connection information |
JPS56129469A (en) * | 1980-03-14 | 1981-10-09 | Fujitsu Ltd | Transfer system of incoming call |
US4327251A (en) * | 1980-03-17 | 1982-04-27 | Radionics Inc. | Automatic telephone directory message system |
CA1146245A (en) * | 1980-05-16 | 1983-05-10 | Patrick R. Beirne | Keyless and indicatorless local telephone switching system |
JPS5754492A (en) * | 1980-09-19 | 1982-03-31 | Nec Corp | Incoming call detour system in private branch of exchange |
US4356351A (en) * | 1980-10-14 | 1982-10-26 | Ford Industries, Inc. | Digital memory audio playback apparatus |
US4446553A (en) * | 1981-10-29 | 1984-05-01 | Gte Automatic Electric Labs Inc. | Arrangement for multiple custom calling |
US4439635A (en) * | 1982-02-09 | 1984-03-27 | Peter F. Theis | Message delivery system |
US4488005A (en) * | 1982-05-13 | 1984-12-11 | Texas Instruments Incorporated | Telephone answering apparatus with call-screening capabilities |
US4413158A (en) * | 1982-05-13 | 1983-11-01 | Danford Glenn S | Automatic call forwarding telephone apparatus |
US4484031A (en) * | 1982-06-21 | 1984-11-20 | Zale Corporation | Interface circuit for a telephone system |
US4625081A (en) * | 1982-11-30 | 1986-11-25 | Lotito Lawrence A | Automated telephone voice service system |
US4600814A (en) * | 1983-10-05 | 1986-07-15 | Manufacturing Administrations Management Systems, Inc. | Automated system for establishing telephone voice connections |
CA1222586A (en) * | 1983-11-11 | 1987-06-02 | Tadahiko Akiyama | Personal-servicing communication system |
US4792968A (en) * | 1985-07-10 | 1988-12-20 | Fdr Interactive Technologies | Statistical analysis system for use with public communication facility |
EP1487185A1 (en) * | 1985-07-10 | 2004-12-15 | Ronald A. Katz Technology Licensing, L.P., a California limited partnership | Operations control |
US4809321A (en) * | 1986-09-22 | 1989-02-28 | Dytel Corporation | Busy/no-answer call completion equipment |
US4878240A (en) * | 1988-01-25 | 1989-10-31 | Bell Communications Research, Inc. | Multi-service telephone switching system |
US4926462A (en) * | 1988-02-24 | 1990-05-15 | Vmx/Opcom | Interface to and operation of a voice messaging system |
GB2225916B (en) * | 1988-11-14 | 1993-03-10 | Telsis Ltd | Messaging apparatus and a method of operating the apparatus |
US5003577A (en) * | 1989-04-05 | 1991-03-26 | At&T Bell Laboratories | Voice and data interface to a voice-mail service system |
-
1992
- 1992-02-19 WO PCT/US1992/001248 patent/WO1992015166A1/en active IP Right Grant
- 1992-02-19 DE DE69213436T patent/DE69213436T2/en not_active Expired - Lifetime
- 1992-02-19 EP EP92907415A patent/EP0572544B1/en not_active Expired - Lifetime
- 1992-02-19 JP JP4507315A patent/JPH06505602A/en active Pending
-
1993
- 1993-03-01 US US08/024,796 patent/US5355406A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP0572544B1 (en) | 1996-09-04 |
JPH06505602A (en) | 1994-06-23 |
EP0572544A1 (en) | 1993-12-08 |
EP0572544A4 (en) | 1994-08-24 |
DE69213436D1 (en) | 1996-10-10 |
WO1992015166A1 (en) | 1992-09-03 |
US5355406A (en) | 1994-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69213436T2 (en) | INTEGRATED APPLICATION CONTROLLED CALL PROCESSING AND MESSAGE SYSTEM | |
DE69420293T2 (en) | Call center with a unified control system | |
DE69331264T2 (en) | AUTOMATED PERIPHERAL TELECOMMUNICATION SYSTEM | |
DE69129449T2 (en) | LARGE SPACE VOICE RESPONSE NETWORK | |
DE69118138T2 (en) | Generalized arrangement for telecommunications customer signaling | |
DE69327625T2 (en) | Automatic telephone system | |
DE69506716T2 (en) | INTELLIGENT COMMUNICATION NETWORKS | |
DE69129354T2 (en) | Automatic call forwarding system | |
DE69219815T2 (en) | Method and device for addressing users in a network | |
DE69620045T2 (en) | Method and system for archiving information over a communication network | |
DE69415820T2 (en) | METHOD FOR ALLOWING REAL TIME CHANGES OF CALLING CHARACTERISTICS FOR PARTICIPANTS | |
DE69516155T2 (en) | AN INTELLIGENT TELECOMMUNICATIONS NETWORK | |
DE69528498T2 (en) | Establishing telephone connections in intelligent networks | |
DE69505262T2 (en) | INTELLIGENT COMMUNICATION NETWORKS | |
DE10060972A1 (en) | Mixed media contact notification manager has connection list with rules can locate specific individuals easily | |
DE4330031C2 (en) | Arrangement for the integration of EDP systems and telephone systems connected to the public telephone network | |
DE4424896A1 (en) | Procedure for setting up and getting a phone user profile | |
DE19813463A1 (en) | Telecommunications system managing method for call forwarding | |
DE69836524T2 (en) | Method and device for call diversion to an agent location | |
DE69226774T2 (en) | TALKING DEVICE | |
DE60123544T2 (en) | System and method for using a telephone set to access information in a call center | |
DE69729159T2 (en) | Compatibility between a provider telephone service and an ISDN caller identification service | |
DE19515856A1 (en) | Connection establishment procedure as well as service computer for it and communication network with it | |
DE4439339A1 (en) | Information system for a private branch exchange | |
DE69826191T2 (en) | Location-dependent method and system for message storage processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |