[159] in comp.os.os2.announce archive
NEW OS/2 DEVELOPMENT TOOL: Multi-Voice and Multi-Fax C Libraries
daemon@ATHENA.MIT.EDU (ggagnon@iti-logiciel.com)
Tue Sep 12 01:08:14 1995
To: os2ann.DISCUSS@bloom-picayune.MIT.EDU
Date: Tue, 12 Sep 1995 01:16:40 GMT
From: ggagnon@iti-logiciel.com
Reply-To: ggagnon@iti-logiciel.com
Submitted by: Gilles Gagnon (ggagnon@iti-logiciel.com)
Source: Gilles Gagnon (ggagnon@iti-logiciel.com)
Date received: 1995 September 11
Date posted: 1995 September 11
-------------------------------------------------------------------------------
Montreal, September 1995: ITI Logiciel (ITI Software) announce the release of
the OS/2 version of their Multi-Voice and Multi-Fax programmer's toolkit.
Multi-Voice and Multi-Fax can be used to create voice processing application
such as: voice mail, automated attendant, fax-on-demand, fax broadcasting,
interactive voice response. As a high level 'C' toolkit, it is as easy to use
as any script language, but offers speed and flexibility of the 'C' language.
Here's description of the two products.
#####
Multi-Voice Version 4.0
ITI Software proudly presents MULTI-VOICE Version 4.0, the complete set of
tools to write multi-line voice applications on OS/2 for most of the voice
processing boards available today.
Multi-Voice Product Description
MULTI-VOICE gives you a very high level C interface to the voice board
features. With a single function call, you can play or record a voice
file. You can play date and time, numbers, spell strings. Your Multi-Voice
programs can detect the callers Touch-Tones or rotary pulses, even voice
recognition is available in some versions. Never before has it been easier
to integrate a multi-line telephone interface to your C programs.
MULTI-VOICE has its own multi-tasking interface. You can run the same task on
all lines in the system or different tasks on certain lines. For most
applications, the multi-tasking is completely transparent and there is no
need for the programmer to have multi-tasking programming experience.
MULTI-VOICE brings the full power of voice processing boards to your finger
tips with the speed and ease of use of Borland's C/C++ 2.0 for OS/2.
Multi-Voice Example Programs
A Multi-User Multi-Line Telephone Answering program is provided to give
examples of how to call most functions in the library. The source code is
included, so this program can be modified to suit your own needs.
We also provide all the pre-recorded prompts used by this program. Many
other example programs are also provided with makefiles for all supported
compilers.
Voice Boards Supported
Dialogic D4xx, D12xx, AMX, VRxxx
Rhetorex RDSPxxxx
NewVoice NVx00
Bicom xLS
Linkon's FC3000 & FC4000
Pika's V12 and InLine Series
Talking Technology's Power Line II
Portability
The programs written with Multi-Voice for any voice board can be ported without
any modifications for use with other voice boards. ITI Software offers C
libraries for all the supported boards, which reduces the programmer's work to
simply recompiling programs for the appropriate hardware. And we're always
working to implement new manufacturer's products.
System Requirements
IBM PC or compatible running DOS 3.3 or higher (6.2 recommended)
Any of the supported Voice Processing boards
C/C++ Compiler: Borland's V2.0 for OS/2
Talking Clock Sample Program
/*
** This example program shows how easy and clear it is to program
** Multi-Line Voice Response applications using MULTI-VOICE Version 4.0.
**
** The program plays the current date and time on all lines available in
** the system. It answers the phone, plays a little introduction message,
** asks the user to press 1 for FRENCH, 2 for ENGLISH or 3 for SPANISH
** and it plays the date and time in the selected language, in the format
** Week Day, Month Day, Hour and Minutes.
*/
#include "stdio.h"
#include "MV_Util.h"
#include "MultiVox.h"
#define TIMEOUT 10
#define RETRY 3
#define PROMPT_DIR "PROMPTS"
void far LineHandler ( )
{
char answer;
MVU_LANGUAGE language;
MVU_DATE date;
MVU_DATE_FIELD date_field;
MV_StartLH ( );
while (MV_Running)
{
MV_Answer (1); /* answer phone after 1 ring */
if (MV_Result ( ) == MV_SUCCESS)
{
MV_Play ("intro.v", MV_AbortOnDtmf);
MVU_ReadMenu (PROMPT_DIR, "language.v", "err.v", & answer,
"123", TIMEOUT, RETRY);
if (MV_Result ( ) == MV_SUCCESS)
{
switch (answer)
{
case '1' : language = MVU_French; break;
case '2' : language = MVU_English; break;
case '3' : language = MVU_Spanish; break;
}
MVU_GetDateTime (date);
date_field = MVU_WDAY | MVU_MDAY | MVU_HOUR | MVU_MIN;
MVU_PlayDate (PROMPT_DIR, date, date_field,
MV_NoAbortOnDtmf, language);
MV_Play ("goodbye.v", MV_AbortOnDtmf);
}
}
MV_OnHook ( );
}
MV_StopLH ( );
}
void main (void)
{
MV_AllLineHandlers = LineHandler;
if (MV_Start ( ) == MV_SUCCESS)
{
MV_WaitEscape ( ); /* Waits until the ESCAPE key is pressed */
MV_Stop ( );
}
else
printf ("Initialization error");
}
Multi-Voice Version 4.0 Function List
Line Control Functions
MV_Answer MV_WaitRing MV_TimeAnswer
MV_TimeRing MV_Beep MV_Call
MV_InitDID MV_AnswerDID MV_InitDNIS
MV_AnswerDNIS MV_InitDistinctiveRinging MV_AnswerDistinctive
MV_WaitRingDistinctive MV_TimeAnswerDistinctive MV_TimeRingDistinctive
MV_WaitForSilence MV_WaitForSpeech
Voice File Control Functions
MV_Play MV_PlayEdit MV_RecordAppendV3
MV_RecordAppend MV_RecordV3 MV_Record
MV_OpenSeg MV_PlaySeg MV_PlaySegs
MV_CloseSeg
Channel Parameters Configuration
MV_SetCpbDtmfDetectLength MV_SetCpbDtmfEdge
MV_SetCpbMaxSilence MV_SetCpbRingsNoAnswer
MV_SetCpbTimeBeforeCPM MV_SetCpbMaxTimeCPM
MV_SetCpbLoopCurrentValidDelay MV_SetCpbLoopCurrentWaitDelay
MV_SetCpbHelloEdge MV_SetCpbSignalOrVoice
MV_SetCpbContinuousSignalDelay MV_SetCpbOnOffTolerance
MV_SetCpbBusyDetectTiming MV_SetCpbDeglitchTiming
MV_SetCpbDoubleRingDetectTiming MV_SetCpbOperatorInterceptMode
MV_SetCpbRingCadenceTiming MV_SetCpbBusyCadenceTiming
MV_SetCpbVoiceAnalysisFlag MV_SetCpbMaxAnswerAnalysis
MV_SetCpbSilenceToAnswer MV_SetCpbVoiceAnalysisLen
MV_SetCpbDialToneProperties MV_SetCpbSitFreqProperties
MV_SetCpbPAMDProperties MV_SetCpbMaxWaitAfterRing
MV_SetCpbMaxInterRingDelay
DTMF Control Functions
MV_ResetDtmfBuffer MV_WriteDtmf MV_ReadDtmf
MV_ConditionalGetDtmf MV_UnreadDtmf
Line Handler Control Functions
MV_StartLH MV_StopLH MV_OnHook
MV_OffHook MV_Wink MV_ClearEventPipe
MV_ChannelStop MV_AlreadyDisconnect MV_LineNo
MV_Result MV_LastEvent MV_LastDigitType
MV_SetResult
Line Configuration Functions
MV_SetDialMode MV_SetCompressionRate MV_SetSilenceCompression
MV_SetSilenceSuppression MV_SetSilenceDetection MV_SetNonSilenceDetection
MV_SetDtmfDetection MV_SetMaskedDtmf MV_SetEditPauseTime
MV_SetRingsNoAnswer MV_SetMaxTimeCPM MV_SetTimeBeforeCPM
Program Control Functions
MV_Start MV_Stop MV_StartMultiTask
MV_StopMultiTask MV_WaitEscape MV_TerminateAndStayResident
MV_WaitEndOfLineHandlers MV_StopAllLineHandlers
Utility Functions
MV_WaitCrt MV_ReleaseCrt MV_WaitLib
MV_ReleaseLib MV_PrintLog MV_Delay
MV_AllocStack MV_IsDtmf MV_Version
Group Functions
MVS_CreateGroup MVS_DeleteGroup MVS_AddLineToGroup
MVS_RemoveLineFromGroup MVS_GroupStatus
Rate ans Volume Control Functions
MVS_IncreaseVolume MVS_DecreaseVolume MVS_SetVolume
MVS_GetVolume MVS_SetDTMFVolume MVS_ResetDTMFVolume
MVS_IncreaseRate MVS_DecreaseRate MVS_SetRate
MVS_GetRate MVS_SetDTMFRate MVS_ResetDTMFRate
MVS_SetVolumeStep MVS_SetRateStep
Special Functions Unique To Specific Boards
MVS_MonitorCallProgress MVS_GetOemNumber MVS_GetSerialNumber
MVS_MicrophoneOn MVS_MicrophoneOff MVS_SpeakerOn
MVS_SpeakerOff MVS_SetAudioMode MVS_LoadCPMParams
MVS_SetSilenceLevel MVS_SetLinkMode MVS_GetSystemInfo
MVS_SetDtmfParam MVS_GenerateTones MVS_GenerateTone
MVS_SetRotaryDetection
Global Tone Detection Functions
MVS_BuildDualTone MVS_BuildDualToneWithCadence
MVS_BuildSingleTone MVS_BuildSingleToneWithCadence
MVS_DeleteTones MVS_EnableTone
MVS_DisableTone MVS_SetToneAmplitude
Dialogic's Perfect Call Functions
MVS_ChangePCDuration MVS_ChangePCFrequency
MVS_ChangePCRepCount MVS_InitPerfectCall
High Level Voice Response Utility Functions
MVU_ReadMenu MVU_PlayInteger MVU_PlayIntegerFrench
MVU_PlayIntegerEnglish MVU_PlayIntegerSpanish MVU_PlayNumber
MVU_PlayDateFrench MVU_PlayDateEnglish MVU_PlayDateSpanish
MVU_PlayDate MVU_GetDateTime MVU_SpellString
MVU_PlayPatternString MVU_SetPromptDir MVU_SetSegmentedFileDir
MVU_SetLanguage MVU_SetDateField MVU_SetDtmfAbort
MVU_SetGlobalParameters MVU_S_Playf MVU_S_PlayInteger
MVU_S_PlayNumber MVU_S_PlayDate MVU_S_SpellString
MVU_S_PlayPatternString
Multi-Tasking Functions
Task Control Functions
Keyboard Functions
Counter Functions
Mailbox Functions
Pipe Functions
Resource Functions
All this for only $799 US
#####
Multi-Fax Version 2.0
ITI Software introduces MULTI-FAX, the complete set of tools to write
multi-line fax applications for any CAS facsimile boards on OS/2.
Multi-Fax Product Description
The MULTI-FAX toolkit allows programmers (experienced or not) to write
applications which handle fax transmission. The toolkit can handle up
to ten fax boards simultaneously in a single PC.
MULTI-FAX will send any ASCII files, PCX or DCX graphic files without
format conversion. You can send multiple documents in a single call.
Used along with ITI Software's MULTI-VOICE toolkit, the MULTI-FAX toolkit
allows programmers to create highly sophisticated software to handle all
aspects of telephone interfacing. Applications such as Fax-Mail, Document
Broadcasting and Store-And-Forward can be implemented with minimum effort.
Multi-Fax Example Programs
Many example programs are provided to show how to call most procedures
and functions. You can modify these programs to suit your own needs.
System Requirements
IBM PC or compatible running DOS 3.3 or higher (5.0 recommended)
Any CAS compatible Fax Processing board.
C/C++ Compiler: Borland's V2.0..V4.5, Borland's Turbo V2.0..V3.0 or Microsoft
V5.1..V8.0.
Fax Sending Sample Program
#include "stdio.h"
#include "MultiFax.h"
void main (void)
{
int fax_handle
/* Start MULTI-FAX and verify if there is a FAX board in the PC */
if (MF_Start () == 0)
{
printf ("No board found. \n");
exit (-1);
}
/* Create a fax entry. */
fax_handle = MF_CreateFax ();
/* Add company logo on cover page. */
MF_AddLogo (fax_handle, "logo.pcx");
/* Add a message to the cover page. */
MF_AddCoverPageText (fax_handle, "This is the cover page message.");
/* Add ASCII text file "FAX.TXT" and graphic document "FAX.DCX". */
MF_AddDocument (fax_handle, MF_ASCII_80, "fax.txt", MF_LETTER);
MF_AddDocument (fax_handle, MF_DCX, "fax.dcx", MF_LETTER);
/* Send it using highest resolution */
MF_SetResolution (fax_handle, MF_FINE);
MF_SetDestinationName (fax_handle, "Your Name");
MF_SetSenderName (fax_handle, "ITI Software");
MF_Send (fax_handle, MF_ANY_BOARD, "555-1212");
MF_FreeFax (fax_handle);
}
Multi-Fax Version 2.0 Function List
Program Control Functions Send Fax Functions
MF_Start MF_QuickSend
MF_Stop MF_Send
MF_TestBoard MF_PolledSend
MF_UnloadResidentManager MF_SendNoCall
MF_AbortCurrentEvent MF_GetConnectionTime
MF_DisableAutoReceive MF_GetRemoteId
MF_EnableAutoReceive MF_GetPageCount
MF_GetPagesTransmitted
Fax Document Creation Functions MF_GetFilesTransmitted
MF_GetErrorCount
MF_CreateFax MF_GetBytesTransmitted
MF_FreeFax MF_GetFileSize
MF_AddDocument
MF_AddCoverPage Receive Fax Functions
MF_AddCoverPageText
MF_SetPageHeader MF_PolledReceived
MF_AddLogo MF_PolledReceiveNoCall
MF_SetDestinationName MF_GetFirstReceivedFax
MF_SetSenderName MF_GetNextReceivedFax
MF_SetResolution MF_MoveReceivedFax
MF_SetSendTime MF_SetReceivedFaxReadStatus
MF_SetSendDate MF_DeleteReceivedFax
MF_SetSendDateTime MF_DeleteAllReceivedFax
MF_SetDialMode MF_GetReceivedFaxStatus
Dcx File Manipulation Functions MF_GetReceivedFaxSenderId
MF_GetReceivedFaxPageCount
MF_BreakUpDcx MF_GetReceivedFaxReadStatus
MF_StripDcx
Queue Functions (QQQ can be Log, Receive or Task)
MF_GetFirstQQQ MF_GetQQQSenderName
MF_GetNextQQQ MF_GetQQQLogoFileName
MF_ReadQQQ MF_GetQQQCoverPageText
MF_GetQQQEventType MF_GetQQQDocumentFileType
MF_GetQQQTransferType MF_GetQQQDocumentTextSize
MF_GetQQQEventStatus MF_GetQQQDocumentFileStatus
MF_GetQQQDateTime MF_GetQQQDocumentBytesTransmitted
MF_GetQQQFileCount MF_GetQQQDocumentFileSize
MF_GetQQQPhoneNumber MF_GetQQQDocumentPagesTransmitted
MF_GetQQQConnectTime MF_GetQQQDocumentPageCount
MF_GetQQQPageCount MF_GetQQQDocumentFilename
MF_GetQQQPageTransmitted MF_GetQQQDocumentLength
MF_GetQQQFileTransmitted MF_DeleteQQQ
MF_GetQQQErrorCount MF_DeleteAllQQQ
MF_GetQQQRemoteCSID MF_DeleteAllQQQs
MF_GetQQQDestinationName
All this for only $299 US