API Interface

A user-created Custom Action DLL may call the following functions to retrieve call information or modify the Application behavior:

To allow the user-defined DLL to store and retrieve user data on a per call basis:

BOOL LVCA_SetUserData(HANDLE hCA, LPVOID Param);

BOOL LVCA_GetUserData(HANDLE hCA, LPVOID* Param);

BOOL LVCA SetUserDataA(HANDLE hCA, LPVOID Param, LPCSTR Identifier);

BOOL LVCA SetUserDataW(HANDLE hCA, LPVOID Param, LPCSTR Identifier);

BOOL LVCA GetUserDataA(HANDLE hCA, LPVOID* Param, LPCSTR Identifier);

BOOL LVCA GetUserDataW(HANDLE hCA, LPVOID* Param, LPCSTR Identifier);

Set how often the enter module event should fire (*set true in most cases in call start event):

BOOL LVCA_SetRobustEnterEvent(HANDLE hCA, BOOL Robust);

To get the current module's name:

BOOL LVCA_GetCurrentModuleA(HANDLE hCA, LPSTR Module, LONG * Size);

BOOL LVCA_GetCurrentModuleW(HANDLE hCA, LPWSTR Module, LONG * Size);

To display a message to the Platform Call Engine System Messages box:

BOOL LVCA_DisplayMessageA(HANDLE hCA, LPCSTR Message);

BOOL LVCA_DisplayMessageW(HANDLE hCA, LPCWSTRMessage);

BOOL LVCA_SystemMessageA(LPCSTR Message);

BOOL LVCA_SystemMessageW(LPCSTR Message);

To get the error message and code in the case of a Custom Action function failure:

LONG LVCA_GetLastCallErrorA(HANDLE hCA, LPSTR Message, LONG * Size);

LONG LVCA_GetLastCallErrorW(HANDLE hCA, LPWSTR Message, LONG * Size);

LONG LVCA_GetLastSystemErrorA(HANDLE hCA, LPSTR Message, LONG * Size);

LONG LVCA_GetLastSystemErrorW(HANDLE hCA, LPWSTR Message, LONG * Size);

To insert audio into the call flow:

BOOL LVCA_AddMainAudio(HANDLE hCA, LPVOID Data, LONG Size);

BOOL LVCA_AddOneTimeAudio(HANDLE hCA, LPVOID Data, LONG Size);

BOOL LVCA_AddMainLibraryAudioA(HANDLEhCA, LPCSTR Description);

BOOL LVCA_AddMainLibraryAudioW(HANDLE hCA, LPCWSTR Description);

BOOL LVCA_AddOneTimeLibraryAudioA(HANDLE hCA, LPCSTR Description);

BOOL LVCA_AddOneTimeLibraryAudioW(HANDLE hCA, LPCWSTR Description);

BOOL LVCA_AddOneTimeTTSAudioA(HANDLE hCA, LPCSTR Text);

BOOL LVCA_AddOneTimeTTSAudioW(HANDLE hCA, LPCWSTR Text);

BOOL LVCA_AddOneTimeAudioFromVAPA(HANDLE hCA, LPCSTR VapFileName, LONG Position, Long Type = VOX_ULAW);

BOOL LVCA_AddOneTimeAudioFromVAPW(HANDLE hCA, LPCWSTR VapFileName, LONG Position, Long Type = VOX_ULAW);

BOOL LVCA_AddPause(HANDLE hCA, LONG TenthOfSeconds);

BOOL LVCA_PlayAudioUninterupted(HANDLE hCA);

To stop the current audio playing on a line:

BOOL LVCA_StopChannelByLineNumber(LONG Line);

To remove all audio in the queue from the call flow:

BOOL LVCA_ClearAudioQueue(HANDLE hCA);

To add or remove concepts for recognizer matching:

BOOL LVCA_AddConceptA(HANDLE hCA, LPCSTR Concept, LPCSTR Phrase);

BOOL LVCA_AddConceptW(HANDLE hCA, LPCSTR Concept, LPCSTR Phrase);

BOOL LVCA_AddStandardGrammar(HANDLE hCA, LONG Grammar);

BOOL LVCA_RemoveConceptA(HANDLE hCA, LPCSTR Concept);

BOOL LVCA_RemoveConceptW(HANDLE hCA, LPCSTR Concept);

BOOL LVCA_ResetGrammar(HANDLE hCA);

To change the "delay after audio played" property:

BOOL LVCA_SetRecognitionTimeout(HANDLE hCA, LONG Seconds);

To set the method of determining the end of speech:

BOOL LVCA_SetAfterSpeechDelay(HANDLE hCA, LONG EndOfSpeechDetection);

To provide the current condition of the recognition (match, no match, no input):

BOOL LVCA_GetCondition(HANDLE hCA, LONG* Type);

To check if the concept is an API added or standard grammar:

BOOL LVCA_IsCustomConceptA(HANDLE hCA, BOOL * IsCustom, LPCSTR Concept);

The system automatically stores the last concept accepted within each module.  To retrieve those concepts:

BOOL LVCA_GetConceptA(HANDLE hCA, LPCSTR Module, LPSTR Concept, LONG * Size, LONG * Confidence);

BOOL LVCA_GetConceptW(HANDLE hCA, LPCWSTR Module,LPWSTR Concept,LONG * Size, LONG * Confidence);

BOOL LVCA_GetNatLangConceptA(HANDLE hCA, LPCSTR Module, LPSTR PriConcept, LONG * PriSize, LPSTR SecConcept, LONG * SecSize, LONG * Confidence);

BOOL LVCA_GetNatLangConceptW(HANDLE hCA, LPCWSTR Module,LPWSTR PriConcept,LONG * PriSize, LPWSTR SecConcept, LONG * SecSize, LONG *Confidence);

BOOL LVCA_GetMultiLevelCountA(HANDLE hCA, LPCSTR Module,LONG * Count);

BOOL LVCA_GetMultiLevelCountW(HANDLE hCA, LPCWSTR Module,LONG* Count);

BOOL LVCA_GetMultiLevelConceptA(HANDLE hCA, LPCSTR Module,LONG Level,LPSTR Concept, LONG *Size, LONG * Confidence);

BOOL LVCA_GetMultiLevelConceptW(HANDLE hCA, LPCWSTR Module, LONG Level, LPSTR Concept, LONG *Size, LONG * Confidence);

Right after the recognition occurs the raw recognition results are available for the current module. To retrieve these results:

BOOL LVCA_GetRawConceptCount(HANDLE hCA, LONG* Count);

BOOL LVCA_GetRawConceptA(HANDLE hCA, LONG Index, LPSTR Concept, LONG* Size, LONG Confidence);

BOOL LVCA_GetRawConceptW(HANDLEhCA, LONG Index, LPWSTR Concept, LONG* Size, LONG Confidence);

BOOL LVCA_GetRawTextA(HANDLEhCA, LONG Index, LPSTR RawText, LONG* RawTextSize);

BOOL LVCA_GetRawTextW(HANDLEhCA, LONG Index, LPWSTR RawText, LONG* RawTextSize);

BOOL LVCA_GetPhraseA(HANDLEhCA, LONG Index, LPSTR Phrase, LONG* PhraseSize);

BOOL LVCA_GetPhraseW(HANDLEhCA, LONG Index, LPWSTR Phrase, LONG* PhraseSize);

BOOL LVCA_GetPhonemeA(HANDLEhCA, LONG Index, LPSTR Phoneme, LONG* PhomeneSize);

BOOL LVCA_GetPhonemeW(HANDLEhCA, LONG Index, LPWSTR Phoneme, LONG* PhomeneSize);

To check if the response was DTMF:

BOOL LVCA_DTMFCheck(HANDLEhCA, BOOL*Present, BOOL*HandledByGram) ;

To retrieve the last caller-spoken audio:

BOOL LVCA_GetCallerAudioSize(HANDLEhCA, LONG * Size);

BOOL LVCA_GetCallerAudio(HANDLEhCA, LPVOID Audio, LONG * Size);

To play all prompts and record audio from the caller:

BOOL LVCA_RecordAudioToFileA(HANDLEhCA, LPCSTR FileName, LONG MaxLength_Seconds, LONG SilenceTimeOut_Seconds) ;

BOOL LVCA_RecordAudioToFileW(HANDLEhCA, LPCWSTR FileName, LONG MaxLength_Seconds, LONG SilenceTimeOut_Seconds);

BOOL LVCA_RecordAudioToWaveFileW(HANDLEhCA, LPCWSTR FileName, LONG MaxLength_Seconds, LONG SilenceTimeOut_Seconds);

BOOL LVCA_RecordAudioToWaveFileA(HANDLEhCA, LPCSTR FileName, LONG MaxLength_Seconds, LONG SilenceTimeOut_Seconds);

To change the immediate direction of the call flow:

BOOL LVCA_SetTransferA(HANDLEhCA, LPCSTR Transfer);

BOOL LVCA_SetTransferW(HANDLEhCA, LPCWSTR Transfer);

BOOL LVCA_SetGotoA(HANDLEhCA, LPCSTR Goto);

BOOL LVCA SetGotoW(HANDLEhCA, LPCSTR Goto);

BOOL LVCA_HangupCall(HANDLEhCA);

BOOL LVCA_RunProjectA(HANDLE hCA, LONG ProjectID, LPCSTR Repository);

BOOL LVCA_RunProjectW(HANDLE hCA, LONG ProjectID, LPCWSTR Repository);

To add fields to the speech engine log files read by the Speech Application Tuner:

BOOL LVCA_AddSRELogFieldW(HANDLE hCA, LPCWSTR Field, LPCWSTR Value);

BOOL LVCA_AddSRELogFieldA(HANDLE hCA, LPCSTR Field, LPCSTR Value);

BOOL LVCA_ClearSRELogFields(HANDLE hCA);

To find out which line a call is running on:

BOOL LVCA_GetLineNumber(HANDLE hCA, LONG * LineNumber);

To dial out:

BOOL LVCA_OutdialA(HANDLE hCA, LPCSTR Number, BOOL UseCallProgress, LONG * CallResult);

BOOL LVCA_OutdialW(HANDLE hCA, LPCWSTR Number, BOOL UseCallProgress, LONG * CallResult);

To evaluate the availability and the on-hook/off-hook status of a line:

LVCA_API LONG WINAPI LVCA_CheckLineState(LONG LineNumber, LONG * State);

To take a line off hook:

LONG LVCA_TakeLineOffHook(LONG LineNumber);

To retrieve total line count:  

LONG LVCA_AvailableLines();

To bridge two lines together:

LONG LVCA_Bridge(LONG SourceLine, CFECI_SC_TYPE SourceType, LONG DestinationLine, CFECI_SC_TYPE DestinationType, BOOL FullDuplex);

To retrieve caller identification information:

BOOL LVCA_GetANIA(HANDLE hCA, LPSTR ANI, LONG* Size);

BOOL LVCA_GetANIW(HANDLE hCA, LPWSTR ANI, LONG* Size);

BOOL LVCA_GetDNISA(HANDLE hCA, LPSTR DNIS, LONG* Size);

BOOL LVCA_GetDNISW(HANDLE hCA, LPWSTR DNIS, LONG* Size);

BOOL LVCA_GetANI_DNISA(HANDLE hCA, LPSTR DNIS, LONG* DNISSize, LPSTR ANI, LONG* ANISize);

BOOL LVCA_GetANI_DNISW(HANDLE hCA, LPWSTR DNIS, LONG* DNISSize, LPWSTR ANI, LONG* ANISize);

BOOL LVCA_GetCallerIDA(HANDLE hCA, LPSTR CallerID, LONG* Size);

BOOL LVCA_GetCallerIDW(HANDLE hCA, LPWSTR CallerID, LONG* Size);


Complete Help Topic List | Speech Platform Product Information