Amanda Work Group Manual
Have a look at the manual Amanda Work Group Manual online for free. It’s possible to download the document as PDF or print. UserManuals.tech offer 32 Amanda manuals and user’s guides for free. Share the user manual or guide on Facebook, Twitter or Google+.
Chapter 11: Programming Examples 171 Using Amanda’s Tokens This could be accomplished with tokens as follows: 1. To remember that a specific language was selected, we could use a storage (variable) token such as %S1 to have a value that represents the language. To assign %S1 a value, we use the =() token. For example, =(%S1,MEXICAN) stores the value MEXICAN into %S1. 2. To determine which language Instruction mailbox to access, we could use the I() token, often called the If token, which allows Amanda to continue processing at the correct mailbox. For example, I(%S1,=,MEXICAN,981) checks the value of %S1 for MEXICAN and if it matched, then continues processing at mailbox 981 (the Span- ish Caller Instructions mailbox in this example). Finally, to make sure that this occurs before playing the default Instruction mailbox (in this example mailbox 991) we need to insert this control mailbox between the Company Greeting mailbox (990) and the Instruction mailbox (991) as follows: This configuration now changes Amanda’s standard processing and keeps the caller connected to the correct language Instruction mailbox. It works because whenever a new call is answered, Amanda initializes the %S tokens to (the empty string). Therefore, if the caller never presses 1 for Spanish, then %S1 is never set to the value MEXICAN and control is always passed on to mailbox 991 from mailbox 992. Retrieving Order Shipment Information This example uses obtaining shipment information to illustrate how you can interact with data files to retrieve useful information that is given to callers by request. Application The application is as follows: 1. Ask the caller to enter an order number (let’s assume that it is five digits). 2. Determine whether or not the corresponding order has shipped.
172 Installing [email protected]/Windows 3. If the order has not shipped, inform the caller. Otherwise, tell the caller the date the order was shipped. In order for Amanda to determine an order’s shipped status and its ship date, the system needs to retrieve information from some source. One possible way the system can obtain the data is by using the serial, S(), token to request it from another computer. An alternative solution is to access the information by looking in a file on Amanda’s hard disk (or alternatively, a network server). For this example, we use the second implementation and assume that the following files exist on Amanda’s hard disk in the root directory. SHIPPED - An ASCII text file with order numbers that have been shipped (one per line), for example: 11111 22222 33333 12345 SHIPDATE - An ASCII text file where each line contains an order number and its ship date separated by a comma (one per line), for example: 11111,06301994 22222,07011994 33333,07061994 12345,07121994 Translating to Amanda’s Tokens: 1. To ask the caller for an order number, use R(G1,%S1,20) where Greeting 1 has the recording “Please enter the five-digit order number now.” After the caller enters the order number, Amanda can perform some additional checking. For example, to determine if a five-digit order number was entered, use I(LEN[%S1],!,5, mailbox). If the number of digits stored in %S1 is not equal to 5, Amanda continues processing with mailbox mailbox. 2. To determine whether or not the order shipped, you examine the file SHIPPED to find out if it contains the caller’s order number. Use ?(%S1,C:\\SHIPPED, mailbox)to find out whether or not a string (%S1), which contains the order number, is in a file SHIPPED. If it is, Amanda continues processing with mailbox mailbox. 3. If the order number is not in the file SHIPPED, Amanda continues processing at the token after the ?() token. Therefore, to tell the caller that an order has not shipped, you use P(G1) where Greeting 1 plays, “Sorry, but your order has not yet shipped, please call back tomorrow.” To tell the caller the order’s ship date, first determine that date using V(C:\\SHIPDATE,1,%S1,2,%S2), which scans the first column of the file SHIP- DATE for the value in %S1. After finding the first match, Amanda stores the value in the second column as %S2. Then you use P(G1)P(%S2,D) to tell the caller the date. Here Greeting 1 plays, “Your order was shipped on.”
Chapter 11: Programming Examples 173 Summary To summarize the above, the mailbox settings and tokens are as follows: Allowing One-call and Two-call Faxbacks You can use fax files and the token programming language to perform one-call and two- call faxbacks. Most of this functionality is preconfigured for you inside Amanda using specific mailboxes. A one-call faxback is a call from a fax machine so that a document can be faxed to the caller at that fax machine. Unless you have a toll-free telephone line, the faxing is at the caller’s expense. A two-call faxback requires two calls. Someone calls from his telephone, indicates what documents to fax, and leaves his fax number. Amanda calls the fax machine and sends the documents. This second call is at your expense, so you may want to do two-call faxbacks only in your area code or under other special circumstances. You must have already installed and configured an appropriate fax modem for Amanda before the following examples can work. Sending Faxes to Amanda Before you can send faxes from Amanda, the data to be faxed must be stored on the hard drive. Because Amanda uses a proprietary fax format, you must fax the data to her. You can set up a mailbox to do both of the following: Receive the data that you fax to Amanda Store the faxes with numbered names in the C:\FAX directory, from which they can be used in one-call and two-call faxbacks You can also create the documents to be faxed using Amanda Fax. Copy those documents to Amanda using Amanda Monitor. For more information about Amanda Fax, see Using [email protected] Workstation Features. If you decide to use a fax machine and a mailbox, the mailbox that performs these tasks must have: Extension Field:@R(G1,%S1,30)J(“C:/FAX/%S1”,””,”%X%FH”)G(999) DND: OFF Screen Calls: OFF mailboxExtension/RecordingDone Chain 2000@R(G1,%S1,20) I(LEN[%S1],!,5,2001)G(2002) 2001“Your order number must be five digits. Good-bye.”999 2002@?(%S1,SHIPPED,2003)P(G1)999 2003@V(SHIPDATE,1,%S1,2,%S2) P(G1)P(%S2,D)999
174 Installing [email protected]/Windows Store Messages: YES Greeting 1: Please enter the number of the fax that you are sending new. %S1 must not be used in any other application. %X must be defined in 1001.PBX. %F must be the extension that is physically connected to the fax modem and must be set in the install.cfg file, the file controlled by the Setup utility. Do not enter more than eight digits in response to this greeting (because of DOS nam- ing conventions). The number you enter becomes the name of the file. For example, if you type in 32, the fax is stored as C:\FAX\32. N OTE:You must have created the C:\FAX directory previously. Amanda does not create this directory for you. One-call Faxback To set up a one-call faxback, you need to use one mailbox for each document. If you have no more than ten documents, you need only one mailbox for the greeting that supplies the menu of available documents. The following example assumes that you have three documents and uses only four mailboxes. The documents are named TECH1, TECH2, and TECH3 to represent technical reports #1 through #3. They are stored in C:\FAX. It uses mailboxes 92000 to 92003, but you can use any mailboxes. Mailbox 92000 contains the menu. It should have the following settings and greetings: Extension Field: blank DND: ON Store Messages: NO Greeting 1: If you are calling from your fax machine, please press the number corresponding to the technical report you are interested in. For report #1 on SMDI, press 1. For report #2 on Service Plans, press 2. For re- port #3 on Upgrading Voice Boards, press 3. Menu 1: 92001 Menu 2: 92002 Menu 3: 92003 Mailbox 92001’s Extension field contains the tokens that send technical report #1. Extension Field:@T(C:/FAX/TECH1,,P(G1)%X%FH) DND: OFF Store Messages: NO Greeting 1: Please press the start button on your fax machine at the tone. Mailbox 92002’s Extension field contains the tokens that send technical report #2. Extension Field:@T(C:/FAX/TECH2,,P(G1)%X%FH) DND: OFF Store Messages: NO Greeting 1: Please press the start button on your fax machine at the tone. Mailbox 92003’s Extension field contains the tokens that send technical report #3. Extension Field:@T(C:/FAX/TECH3,,P(G1)%X%FH)
Chapter 11: Programming Examples 175 DND: OFF Store Messages: NO Greeting 1: Please press the start button on your fax machine at the tone. N OTE:All the quotation marks in these token examples are single quotation marks (although double quotation marks can be used). Forward slashes are used (although double backward slashes \\ can also be used with this token). Two-call Faxback This example allows the caller to select one or more fax documents, and leave his fax number. The steps are as follows: 1. Request the fax area code (this is to determine whether or not to set up for long distance dialing). 2. Confirm the area code. If it is not confirmed, go back to step 1. 3. Request the fax telephone number. 4. Confirm the telephone number. If it is not confirmed, go back to step 3. 5. Give the caller the fax document selections and allow him to make more than one selection. In this example, the documents are named TECH1, TECH2, and TECH3 to represent technical reports #1 through #3. The files are stored in C:\FAX. Mailbox 1000’s Extension field is programmed to ask the caller for his area code and store the DTMF tones entered by the caller as the variable %S1. Next it says the numbers that were entered by the caller so the caller can confirm, reenter, or exit the faxback routine. Extension Field:@R(G1,%S1,20)P(G2)P(%S1)M(G3,2,30) DND: OFF Store Messages: NO Greeting 1: Please enter the area code of your fax machine now. Greeting 2: You entered area code: Greeting 3: If this area code is correct, press 1 now. If this area code is not correct and you want to re-enter it, press 2 now. If you do NOT want to have documents faxed to you, press 3 to exit. Menu 1: 1001 Menu 2: 1000 Menu 3: 991 Mailbox 1001’s Extension field contains the tokens that determine whether or not the entered area code is local (assuming that the local area code is 714). If the area code is not local, it stores the long distance dialing digit 1 in the variable %S0. Extension Field:@I(%S1,=,714,1002)=(%S0,1)G(1003) DND: OFF Store Messages: NO
176 Installing [email protected]/Windows If the area code is local, mailbox 1002’s Extension field sets both the long distance dialing string and the area code string to (the empty string). Extension Field:@=(%S0,)=(%S1,)G(1003) DND: OFF Store Messages: NO Mailbox 1003’s Extension field contains the tokens that request the fax telephone number and stores it in the variable %S2. Extension Field:@R(G1,%S2,40)P(G2)P(%S2)M(G3,2,30) DND: OFF Store Messages: NO Greeting 1: Please enter the telephone number for your fax machine now. Greeting 2: You entered the fax telephone number: Greeting 3: If this fax telephone number is correct, press 1 now. If this number is not correct and you want to re-enter it, press 2 now. If you do NOT want to have documents faxed to you, press 3 to exit. Menu 1: 1004 Menu 2: 1003 Menu 3: 991 Mailbox 1004 contains a menu that lists the available documents. It should have the following settings and greetings: Extension Field:@(C:/FAX/TECH1)G(1005) DND: OFF Store Messages: NO Greeting 1: The technical report on SMDI will be faxed to you. Mailbox 10042’s Extension field contains the tokens that send technical report #2. Extension Field:@P(G1)>(C:/FAX/TECH2)G(1005) DND: OFF Store Messages: NO Greeting 1: The technical report on service plans will be faxed to you. Mailbox 10043’s Extension field contains the tokens that send technical report #3. Extension Field:@P(G1)>(C:/FAX/TECH3)G(1005)
Chapter 11: Programming Examples 177 DND: OFF Store Messages: NO Greeting 1: The technical report on upgrading voice boards will be faxed to you. Mailbox 1005 allows the caller to select another document to be faxed or to end the call (Menu 2 goes to 999). You might prefer to have Menu 2 return to the caller instructions mailbox 991. Extension Field: blank DND: ON Store Messages: NO Greeting 1: To request an additional document, press 1; to exit, press 2. Menu 1: 1004 Menu 2: 999 N OTE:All the quotation marks in these token examples are single quotation marks (although double quotation marks can be used). Forward slashes are used (although double backward slashes \\ can also be used with this token). Using IVR and Voice Form Applications This section provides guidelines for writing effective IVR (Interactive Voice Response) and voice form applications. It also provides examples of how to use Amanda’s menus, greetings, and messages as well as the Q(), M(), R(), and P() commands from Amanda’s Token Programming Language. Before you start, determine whether your application will be used by infrequent users, expert users, or both. You might need to design a training mode (which explains the choices—perhaps using a different voice for the explanations) and an expert mode (which offers minimal explanation). Consider using short-cut options that allow expert users to access information more quickly. Also think about the average user’s vocabulary and familiarity with similar systems as well as the type of telephone he will use and the location from which he will probably call. For example, don’t use technical terms with non-technical users. If you expect users to call from pay telephones, the noise around them might make voice response a poor choice. Making the User Comfortable To make users feel that they are in control of the application rather than at the mercy of it, the greetings should perform the following tasks in order: 1. Identify the company or service so that the user can determine whether he has placed his call correctly. 2. Identify the application as non-human so that the user does not expect human interac- tion.
178 Installing [email protected]/Windows For example, avoid personal pronouns in phrases. Use “Please enter the number” rather than “tell me the number.” 3. If necessary, separate callers using touch-tone telephones from those using dial-pulse telephones. Use something similar to “If you are calling from a touch-tone phone, please press 1 now. Otherwise, please remain on the line. An attendant will help you.” 4. Early on the first menu, offer the user access to a human attendant. 5. Offer access to a human attendant and call termination on each menu level. 6. Customize the greetings for the user. For example, if the user has only three of the five services you offer, never offer him the option of adding the services that he already has or the option of canceling the ser- vices that he does not have. Using Greetings The greetings used in your application will fall into the following categories: Menus that list options from which the users make selections Requests for responses Informational—providing answers to users’ requests or other user feedback Using Menus As you create your menus, do the following: Find logical topics for menus Offer topics in order: most likely to be selected to least likely. Make an exception to this rule when the topic itself contains a number. For example, use “To order the Series 3, press 3” rather than “To order the Series 3, press 1”—even when your most popular sales item is Series 3. Limit the number of options on each menu. If a menu contains more than eight op- tions (including reaching an attendant, returning to previous menu, and exiting), break this menu into submenus. Word your menus carefully using the following suggestions: State the result before the action. For example, use “For Accounts Payable, press 1” rather than “Press 1 for Accounts Payable.” Be consistent from option to option and menu to menu. For example, use “Please make your selection now” on each menu level to indicate that all the menu options have been offered. Use “Press” for a single-digit response or “Enter” for multi-digit response. Say the number on a key rather than a letter on that key—even if the letter is more significant. For example, say “Press 3” rather than “Press F.”
Chapter 11: Programming Examples 179 Making Requests Requests to users fall into the following categories: Request for single-digit response (such as 1 for Yes or 2 for No) Request for multi-digit response such as a telephone or credit card number Group of questions that comprise a voice form For example, you might ask the user a series of questions, the answers to which are essentially the fields on a paper form. These voice responses are saved as messages. For single-digit responses, you can use a greeting as a menu. For multi-digit responses, you can use the R() command to convert the DTMF tones to an ASCII number. For voice forms, you can use the Q() command to save the responses for up to 20 questions as a message. N OTE:Amanda can store a total of 65,536 voice message files. However, each of the up-to-20 questions in the Q() command count is stored in a sepa- rate voice message file, even though Amanda treats all the questions as one “message”. That means that a message total does not have to reach 65,536 to exceed the allowable number of files for voice messages. For example, a message total of 3276 could use every file available for stor- ing messages—if each of those “messages” contains 20 responses to the questions in a Q() command. Word your requests carefully using the following suggestions: Use consistent wording. For example, use “Please” to indicate that a request is coming. Make it clear what type of input is expected from the user (keypad input or voice response). For example, use “At the tone, please say your last name” or “On your touch-tone phone, please enter the letters of your last name.” Use “Press” for single choice, “Enter” for data, and “Say” for voice response. For voice response, end the request with “now” or start it with “At the tone, please say…”—whichever is appropriate. Providing Information and Feedback Be sure to provide some type of feedback for every user action and allow users to reverse unintended operations. For example, you can: Repeat the data provided by the user. For example, you can use the P() command to play the telephone number stored by the R() command or use the Q() command to give the caller the opportunity to edit (review, rerecord, append, or cancel) answers to questions on a voice form. Request confirmation. Play a greeting that indicates that the application has moved on to the next step. Repeat the current greeting when there is no response. If there is still no response, provide a message explaining what is happening and either connect the call to an attendant or disconnect it.
180 Installing [email protected]/Windows Play an error message, status message, or tone. Status messages, such has “We are still processing your order” should play after the first two seconds and then every seven to ten seconds. For an error message, provide a retry greeting (and perhaps suggest a remedy) before repeating the current greeting. Be sure to notify the user when returning to the main menu or transferring the user to an attendant after an error. Word your informational greetings carefully using the following suggestions: Don’t say Standard Time unless you do not shift to Daylight Savings Time. For example, on the west coast, say “Pacific Time.” Be brief. When that is impossible, allow the user to listen to the greeting again. When providing a telephone number, always repeat it. Eliminate unnecessary words. For example, use “Please press 1 ‘Yes’ or 2 for ‘No’” rather than “Please press the key with the 1 on it for ‘Yes’ or the key with the 2 on it for ‘No’.” When pairing opposite phrases, use words that sound differently. For example, avoid pairing Turn On and Turn Off because they sound so much alike. Don’t use open-ended or ambiguous questions. For example, use “Do you have your account number?” rather than “Have your account number ready.” Be polite, non-judgmental, and avoid humor. For example, use “That password is invalid” rather than “You entered the password incorrectly.” Using the Telephone Keypad If the users enter their choices via the telephone keypad, follow these guidelines: Assign keys consistently. This is especially true for Delete and other destructive options. For example, don’t use 3 for Delete on one menu and Save on another. Offer alternates to * and # keys because those keys might be disabled. Use keys 1 and 2 for the most frequently selected options. Users expect to use the 1 and 2 keys most often. Avoid using keys 1, 2, 5, and 8 as destructive options. You might want to avoid 5 and 8 entirely as they are the most error-prone key choices. (These two keys are the only ones with a key in each direction.) Use the rows and columns of the keypad effectively. Use the left column for actions that precede or are lower than others. Use the right column for actions that follow or are higher than others. For example use a number in the left column to lower a volume and the corresponding number in the right column to increase a volume. Consider using a key in the top row as a response to a greeting that says “Go to the top” and a key in the bottom row in response to “Go to the bottom.”