The ipTTY application is a voice-over-ip software application. From a PBX or Switch standpoint, the ipTTY is an end point, like a physical or a soft phone might be. A typical softphone is an application which runs on a computer, which controls a headset and microphone to allow audio to pass between the person using the softphone, and the remote participant. The ipTTY application is a unique softphone, in that the audio streams do not pass to/from the user of the softphone but are kept in the application for the purposes of sending and receiving TTY (baudot) protocol text characters. In essence, ipTTY is a Voice-over IP, TTY machine emulator.
ipTTY works by being configured as a “SIP Endpoint” or “Softphone” on your network. It registers itself to your SIP compatible phone system as an extension. Once ipTTY has been assigned an extension, it can receive and place calls just like any other extension. Audio is conveyed between the PSTN (Public Switched Telephone Network), and the ipTTY application through the computer’s network connection.
Calling using the Dial Window
The dial window can be used to dial a phone number or SIP endpoint. The dial window is invoked by either selecting “Place a phone call” from the task pane, or by selecting “Dial” from the phone menu. Type a phone number or SIP destination in the text box area and click on OK to begin dialing.
Calling using the Speed Dial List
Once the speed dial list is created, it allows you to immediately place a call by selecting the associated hot key. The hot keys are ordered from F2 through F11. You can store up to 10 speed dial numbers.
Calling using the Call Log List
The call log list, allows you to immediately place a call by double clicking a previous call in the list using your mouse, or by pressing the spacebar after a call in the list is highlighted.
You may also select an item from the Call History list. Select the Dial button to place the call.
ipTTY will receive an inbound call notification if it is currently not participating in a call. Depending on the settings, the application will either prompt the user to answer the call, answer the call automatically, or ignore the call. Once the call has been answered, the status will change to “Active Call”, and the conversation window will allow text to be typed.
Incoming Call Settings
The Incoming Call Settings allow the user to decide how the application will behave when an inbound call arrives, whether to answer it, ignore it, or prompt for an answer. The application can also repeatedly play an audio (wav) file when an inbound call arrives. Changing this behavior can be done by accessing the Settings menu. See the picture below:
Prompt for Answer
Instructs the program to present a message box when this application is being called by a remote location. The message box allows the user to either answer or reject the call. This is the default setting.
Don’t Answer
Instructs the program to silently ignore incoming calls.
Automatically answer call
Instructs the program to immediately answer the call without presenting an option to the user. This may be useful for call center situations.
Forward the call to the following address
Instructs the program to immediately forward the call to another address (extension, phone number, or sip address) without presenting an option to the user.
Play the following audio file when receiving an incoming call
This checkbox allows an audio file to be played as a notification of an incoming call. A typical usage might be to play an audio file that sounds like a ringing phone. The audio file to be played is entered in the text box.
Repeat every XX seconds
This instructs the application to repeatedly play the audio file until the call is either answered, rejected, or cancelled.
Display flashing windows
This instructs the application to display flashing windows near the four corners of the computer screen with flashing text when there is an incoming call.
Setting an Answer Greeting
When an inbound call has been answered, the application has an ability to automatically send a greeting. The greeting to be sent out is configured on the Answering Settings tab of the Settings dialog as shown below:
Don’t send a greeting
This instructs the application to not transmit any text at the start of an answered incoming call.
Automatically send the following greeting
This instructs the application to transmit the contents of the text box at the start of an answered incoming call.
Inbound Call Notification
It is possible to perform other activities when an inbound call arrives. These might include flashing a light or sending a message to a pager. ipTTY has the ability to launch a series of third party applications and scripts when certain events occur. One of these events is when an incoming call arrives. See “Notifications” for more details.
Conversation Window
The conversation window is a special text window which displays the received (remote) text, as well as (local) text to transmit. The font settings for the local and remote text can be set independently. Only one conversation can take place at a time.
Sound Notification
There is a visual indicator when sound is detected within a call. It turns orange with black text when sound is present. See image:
Transmit Notification
There is a visual indicator when text is currently being transmitted within a call. Transmission speed for Baudot is typically slower than typing speed so characters often need to be buffered internally prior to transmission. This indicator allows the user to know when transmission of all characters has been completed. See image:
Transmitting DTMF tones
ipTTY can transmit DTMF tones. These are transmitted from the keyboard during a conversation. If the “Send numbers as DTMF” is checked as shown below, any numbers, as well as the star * and the pound # characters will be transmitted as DTMF and not as Baudot text. This value can be toggled during a conversation.
Hanging up a Call
A conversation can be terminated by selecting the “Hangup” button below the conversation window area.
An alternative approach is to use the Phone Hang-up on the Settings menu item. This causes the conversation to immediately end.
Remote side hanging up
If the remote side terminates a call, the application will end the call and return to the idle state.
Saving conversation options
There are 3 different options for how the program behaves when a conversation has terminated. The application will either prompt the user for a save location, automatically save the conversation, or automatically discard the conversation.
Saved conversations are stored in a standard Rich Text Format (.RTF). They can be viewed through WordPad, MS Word, WordPerfect or various other editors. The save conversation options are configured through the “Save Conversation” tab of the Settings Dialog as shown below:
Prompt for Save Location
This instructs the application to prompt the user with a "File Save" dialog box when a conversation has been terminated.
Don’t Save Conversation
This instructs the application to silently discard the contents of a conversation upon termination of a call.
Automatically Save Conversation
This instructs the application to automatically save the contents of a conversation to the folder specified and based on the file naming convention present.
Folder:
Specifies the file system folder where conversations should be stored.
File Naming Convention:
Specifies the convention to use to name the saved conversations. There are two special tags defined which may be included within the text of the file naming convention. They are <COMPUTER>, and <TIMESTAMP>. When a file is saved, these tags will be replaced with the computer name and a date/timestamp respectively. So, for instance, a file naming convention of:
"TTY_<COMPUTER>_<TIMESTAMP>.RTF"
Might cause the following file to be created:
TTY_MYCOMPUTER_08_03_2005_04_26_07_PM.RTF
"Notifications" is a mechanism to extend the functionality of ipTTY by allowing 3rd Party applications and scripts to be invoked when certain "events" occur within the ipTTY application. For each of these events, one or more command lines, separated by semi-colons may be listed. Call information is passed to 3rd Party applications through setting a collection of environment variables. This mechanism is very similar to a web server invoking a CGI script. A list of the specific environment variables set is listed beneath each event description.
As a call progresses, all of the environment variables set as a call proceeds are stored and duplicated for all subsequent event notifications. So, for instance, if an incoming call is answered and a conversation starts. The "Start Call Event" will have all of the notification messages from the "Incoming Call Event" and "Perform Answer Event": along with the ones for "Start Call Event." The entire list for this example would be:
Variable Name | Comments |
VR_EVENT | "Start Call Event" |
VR_REMOTE_ADDRESS | The SIP address of the remote participant. |
VR_LOCAL_ADDRESS | The SIP address of local participant. |
VR_CALL_ID | A unique identifier to the current call. |
VR_INCOMING_CALL_TIME | The timestamp when the application received the incoming call notification. |
VR_ANSWER_CALL_TIME | The timestamp when the application issued an answer to the incoming call notification. |
VR_START_CALL_TIME | The timestamp when the call started. |
VR_CONNECTION_TYPE | The type of connection, either Baudot 45, Baudot 50, T140, or RED. |
Call Ended Event
This is invoked when a call has ended.
Variable Name | Comments |
VR_EVENT | "Call Ended Event" |
VR_CALL_ID | A unique identifier to the current call. |
VR_CALL_ENDED_TIME | The timestamp when the call ended. |
VR_FILE_LOCATION | The location of the saved conversation file, if applicable. |
Incoming Call Event
This event occurs when an incoming call notification has arrived at the application.
Variable Name | Comments |
VR_EVENT | "Incoming Call Event" |
VR_REMOTE_ADDRESS | The SIP address of the remote participant. |
VR_LOCAL_ADDRESS | The SIP address of local participant. |
VR_CALL_ID | A unique identifier to the current call. |
VR_INCOMING_CALL_TIME | The timestamp when the application received the incoming call notification. |
Perform Answer Event
This event occurs when the application has issued an answer in response to an Incoming Call Event.
Variable Name | Comments |
VR_EVENT | "Perform Answer Event" |
VR_REMOTE_ADDRESS | The SIP address of the remote participant. |
VR_LOCAL_ADDRESS | The SIP address of local participant. |
VR_CALL_ID | A unique identifier to the current call. |
VR_ANSWER_CALL_TIME | The timestamp when the application issued an answer to the incoming call notification. |
Perform Dial Event
This event occurs when the application has initiated an out-dial attempt.
Variable Name | Comments |
VR_EVENT | "Perform Answer Event" |
VR_REMOTE_ADDRESS | The SIP address of the intended remote participant. This is effectively the number being dialed. |
VR_LOCAL_ADDRESS | The SIP address of local participant. |
VR_CALL_ID | A unique identifier to the current call. |
VR_DIAL_CALL_TIME | The timestamp when the application attempted the out-dial. |
Perform Hang-up Event
This is invoked when the application performs a hangup event. This can be used to cancel a dialing operation, to reject an inbound call, or to hangup an active conversation.
Variable Name | Comments |
VR_EVENT | "Perform Hang-up Event" |
VR_REMOTE_ADDRESS | The SIP address of the remote participant. |
VR_LOCAL_ADDRESS | The SIP address of local participant. |
VR_CALL_ID | A unique identifier to the current call. |
VR_HANGUP_CALL_TIME | The timestamp when the application issued a hangup. |
Start Call Event
This is invoked when a call has started, either from successfully answering a call, or by a remote participant answering a call.
Variable Name | Comments |
VR_EVENT | "Start Call Event" |
VR_REMOTE_ADDRESS | The SIP address of the remote participant. |
VR_LOCAL_ADDRESS | The SIP address of local participant. |
VR_CALL_ID | A unique identifier to the current call. |
VR_START_CALL_TIME | The timestamp when the call started. |
SIP Extension
This is the phone number or phone extension assigned to your phone. If you leave this field blank, a default address will be created for you.
Outbound Proxy
This is the IP address or domain name of the SIP proxy through which all outbound requests are placed. A port is optional. If a port is included, it is preceded by a colon:
Example: 192.168.0.10:5060
Authentication User
This is your SIP username if you are registering your client with a SIP registrar.
Password
This is your SIP password if you are registering your client with a SIP registrar.
Registrar
This is the address of a SIP registrar. It can be either an IP address or a domain name with an optional port value. If a port value is included, the port value is preceded by a colon.
SIP Port
This is the IP port on which SIP communication occurs. This is by default 5060.
Realm
This is the SIP realm used if you are registering your client with a SIP registrar.
RTP Settings
Audio: RTP Base Port
This is the UDP port assigned for incoming audio. The only audio format supported is G.711. The default value is 8000.
Audio: Transmit Size in ms
This is the size of the audio data which is transmitted. It is measured in milliseconds. The default value is 20.
Audio: QoS DSCP value
This is the value of the IP_TOS bit in a UDP packet used for Quality of Service. If the value is set to 0, quality of service is disabled.
Text: Initial Baud Rate
This specifies the baud rate to use at the start of each phone call when transmitting baudot audio over ip. The default in the U.S. is 45. The default in the U.K. is 50.
Text: Enable RFC4103 Negotiation
If enabled, ipTTY will advertise that it can support RFC 4103 as it attempts to place or answer calls. For some PBX systems this is not supported, in which case, text will be sent in-band as baudot audio over IP.
Text: RTP Base Port
This is the UDP port assigned for text-based communications based on RFC 4103.
Text: Buffer time in ms
The Buffer time for text specified in milliseconds. See RFC 4103 for more details.
Text: Max incoming CPS
The maximum number of characters per second allowed. See RFC 4103 for more details.
Text: RED generations
The number of redundant generations of packets to transmit. See RFC 4103 for more details about redundant packets.
Audio Settings
This form allows you to enable audio for hearing carry-over and phone conversations. The drop-down combo boxes will be populated with the available speaker and microphone options that have been previously installed on the user’s machine.
Call Log Entries
This allows you to specify the maximum number of entries that are listed in the call log display on the main application screen. Old calls will be discarded as new calls are placed or received.
The conversation window is the text area where received text is displayed. It also is the means by which text is transmitted, by typing text within the window. Received text and transmitted text can have separate font characteristics, set through the "Edit" menu.
Conversations with a baudot machine are half-duplex. This means that only one party may type at a time. The conversation will automatically add blank lines as necessary to visually separate received text from typed text.
When the program is idle, the conversation window is displayed with a gray background, and does not allow text input. When a conversation has been established, the gray background changes to a white background, and text input is accepted.
The history window displays a chronology of calls either placed or received. The number of the call, whether it was an inbound or outbound call, as well as start and end times are displayed.
Dial
Select an item from the history list and click on dial to dial that number.
Export
Creates a comma-delimited list of the information within the history window.
Clear
Clears the history list.
The speed dial list allows 10 numbers to be listed with an associated name. The "key" is a hotkey which can be used to quickly dial the number. The numbers are setup through this dialog window, and then they are accessed through the task pane.
File -> Save
Saves the current conversation to a rich text edit file (RTF) format. This format allows the conversation to be viewed with wordpad, ms word and other text editors.
File -> Save As
Saves the current conversation to a new file location.
File -> Exit
Exits the application.
Phone -> Dial
Launches the dial window for out-dialing.
Phone -> Transfer
Launches the transfer window to allow a transfer destination to be entered.
Phone -> Hangup
Hangs up the current call.
Phone -> Send numbers as DTMF
Checkbox which toggles the characters "0123456789*#" to be either transmitted as DTMF characters or as Text. If they are sent as DTMF characters, they are transmitted using RFC 2833 with a fallback to the SIP Info dtmf-relay application type.
Phone -> History
Launches the history window.
Phone -> Speed Dial
Launches the speed dial window.
Edit -> Copy
Copies the selected conversation text to the clipboard.
Edit -> Paste
Pastes clipboard text into the conversation window.
Edit -> Select All
Selects all the conversation text.
Edit -> Settings
Launches the settings dialog.
Edit -> Font -> Local Participant
Launches the font dialog to change the local participant’s font. The local participant is the person using the application.
Edit->Font->Remote Participant
Launches the font dialog to change the remote participant’s font.
View -> Toolbars -> Tasks Pane
Toggles view of the Tasks Pane.
View -> Toolbars -> Standard Toolbar
Toggles view of the toolbar.
View -> Toolbars -> Output
Toggles view of the output window.
View -> Always on Top
If checked, forces the ipTTY application to be on top of all other application windows.
Help -> About ipTTY
Provides a screen showing information about the application, including the version number of the product.
Help -> Contents
Views this help file.
Help -> Tenacity Website
Views the manufacturer's website.
Ctrl+D….. Dial
Ctrl+T….. Transfer
Ctrl+H….. Hangup
Ctrl+K….. Send numbers as DTMF
Ctrl+F….. History
Ctrl+E….. Speed Dials
Ctrl+M…. Settings
Ctrl+L….. Fonts -> Local Participant
Ctrl+R….. Fonts -> Remote Participant
Ctrl+J….. Always on top