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