56 #define VXML_PCM16 "PCM-16"
57 #define VXML_G7231 "G.723.1"
58 #define VXML_G729 "G.729"
200 virtual PBoolean PlayText(
const PString & text, PTextToSpeech::TextType type = PTextToSpeech::Default, PINDEX repeat = 1, PINDEX delay = 0);
290 virtual bool NextNode(
bool processChildren);
574 {
return QueuePlayable(
"File", fn, repeat, delay, autoDelete); }
577 {
return QueuePlayable(
"Command", cmd, repeat, delay,
true); }
632 #endif // PTLIB_VXML_H
char m_defaultMenuDTMF
Definition: vxml.h:315
PTextToSpeech * GetTextToSpeech() const
Definition: vxml.h:181
PINDEX m_maxDigits
Definition: vxml.h:129
void SetTimeout(const PTimeInterval &timeout)
virtual PBoolean WriteFrame(const void *buf, PINDEX len)=0
help keyword
Definition: vxml.h:79
virtual PBoolean PlayElement(PXMLElement &element)
PXML m_xml
Definition: vxml.h:300
PTones m_tones
Definition: vxml.h:476
virtual PBoolean TraverseGoto(PXMLElement &element)
unsigned GetSampleFrequency() const
Definition: vxml.h:584
virtual PBoolean PlaySilence(PINDEX msecs=0)
bool OnStart(PVXMLChannel &incomingChannel)
PBoolean StartRecording(const PFilePath &fn, unsigned finalSilence=3000, unsigned maxDuration=30000)
virtual PBoolean TraverseGrammar(PXMLElement &element)
PVXMLPlayable * m_currentPlayItem
Definition: vxml.h:608
virtual PBoolean StartRecording(const PFilePath &fn, PBoolean recordDTMFTerm, const PTimeInterval &recordMaxTime, const PTimeInterval &recordFinalSilence)
PVXMLChannel(unsigned frameDelay, PINDEX frameSize)
bool m_xmlChanged
Definition: vxml.h:309
This class defines an arbitrary time interval to millisecond accuracy.
Definition: timeint.h:55
PINDEX frameSize
Definition: delaychan.h:218
PBoolean Open(const PString &arg)
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
GrammarState GetState() const
Definition: vxml.h:82
virtual PBoolean TraversePrompt(PXMLElement &element)
#define PQUEUE(cls, T)
Declare a queue class.
Definition: lists.h:542
enum PVXMLSession::@39 m_transferStatus
const PString & GetMediaFormat() const
Definition: vxml.h:548
virtual PBoolean LoadFile(const PFilePath &file, const PString &firstForm=PString::Empty())
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
PXMLObject * m_currentNode
Definition: vxml.h:308
virtual void SetVar(const PString &ostr, const PString &val)
virtual PBoolean IsPlaying() const
Definition: vxml.h:580
virtual PBoolean QueuePlayable(const PString &type, const PString &str, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
PTimer m_timer
Definition: vxml.h:94
virtual PBoolean ReadFrame(void *buffer, PINDEX amount)=0
unsigned m_sampleFrequency
Definition: vxml.h:426
virtual bool OnStart(PVXMLChannel &incomingChannel)=0
TransferType
Definition: vxml.h:229
virtual PString AdjustWavFilename(const PString &fn)
This class defines an absolute time and date.
Definition: ptime.h:53
PDECLARE_NOTIFIER(PThread, PVXMLSession, VXMLExecute)
PFilePath CreateFilename(const PString &prefix, const PString &key, const PString &fileType)
virtual PBoolean TraverseField(PXMLElement &element)
void SetFormat(const PString &fmt)
Definition: vxml.h:412
A class representing a WAV audio file.
Definition: pwavfile.h:172
virtual PBoolean TraverseForm(PXMLElement &element)
virtual PBoolean TraverseDisconnect(PXMLElement &element)
unsigned m_silenceRun
Definition: vxml.h:604
This class can be used to generate PCM data for tones (such as telephone calling tones and DTMF) at a...
Definition: dtmf.h:102
virtual PBoolean TraverseSubmit(PXMLElement &element)
virtual PBoolean TraverseBreak(PXMLElement &element)
virtual PBoolean TraversedField(PXMLElement &element)
virtual PBoolean Close()
Close the channel.
virtual PBoolean Close()
Close the channel.
This is a dictionary collection class of PString objects, keyed by another string.
Definition: pstring.h:2784
void SetSilence(unsigned msecs)
This class describes a full description for a file on the particular platform.
Definition: filepath.h:65
virtual PBoolean Read(void *buffer, PINDEX amount)
Low level read from the file channel.
virtual PBoolean IsLoaded() const
Definition: vxml.h:187
virtual PBoolean LoadURL(const PURL &url)
virtual void OnEndDialog()
virtual PBoolean PlayResource(const PURL &url, PINDEX repeat=1, PINDEX delay=0)
This is a channel that operates indirectly through another channel(s).
Definition: indchan.h:49
PTimeInterval m_timeout
Definition: vxml.h:93
got something that matched the grammar
Definition: vxml.h:76
This class is a variation of a string that ignores case.
Definition: pstring.h:1708
PString m_command
Definition: vxml.h:490
GrammarState
Definition: vxml.h:73
virtual PBoolean IsOpen() const
Determine if the channel is currently open and read and write operations can be executed on it...
PVXMLCache(const PDirectory &directory)
unsigned m_maxDuration
Definition: vxml.h:371
unsigned m_sampleFrequency
Definition: vxml.h:591
This is an array collection class of PString objects.
Definition: pstring.h:2024
PDirectory directory
Definition: vxml.h:164
virtual bool ProcessEvents()
PChannel * readChannel
Channel for read operations.
Definition: indchan.h:301
void SetMaxDuration(unsigned v)
Definition: vxml.h:361
virtual void FlushQueue()
PVXMLQueue m_playQueue
Definition: vxml.h:607
bool m_autoDelete
Definition: vxml.h:427
PINDEX m_delay
Definition: vxml.h:424
virtual PBoolean TraversedForm(PXMLElement &element)
void SayAs(const PString &className, const PString &text)
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
virtual void OnUserInput(const PString &str)
bool GoToEventHandler(PXMLElement &element, const PString &eventName)
bool m_recordStopOnDTMF
Definition: vxml.h:328
PString mediaFormat
Definition: vxml.h:592
virtual bool NextNode(bool processChildren)
PFilePath GetCacheDir() const
Definition: vxml.h:156
void SetFinalSilence(unsigned v)
Definition: vxml.h:355
static PVXMLCache & GetResourceCache()
A class representing a system timer.
Definition: timer.h:181
PMutex m_channelWriteMutex
Definition: vxml.h:595
BOOL PBoolean
Definition: object.h:102
Class to represent a directory in the operating system file system.
Definition: pdirect.h:182
PString m_format
Definition: vxml.h:425
PThread * m_vxmlThread
Definition: vxml.h:305
virtual PBoolean TraverseTransfer(PXMLElement &element)
unsigned m_finalSilence
Definition: vxml.h:603
unsigned GetFinalSilence()
Definition: vxml.h:358
virtual PBoolean Open(const PString &arg)=0
bool SetCurrentForm(const PString &id, bool fullURI)
PChannel * m_subChannel
Definition: vxml.h:422
PBoolean Get(const PString &prefix, const PString &key, const PString &fileType, PString &contentType, PFilePath &fn)
const PStringToString & GetVariables()
Definition: vxml.h:237
void SetTransferComplete(bool state)
Array of unsigned characters.
Definition: array.h:670
virtual bool Start(PVXMLSession &, PXMLElement &) const
Definition: vxml.h:620
PVXMLSession & m_session
Definition: vxml.h:89
PVXMLDigitsGrammar(PVXMLSession &session, PXMLElement &field, PINDEX minDigits, PINDEX maxDigits, PString terminators)
PVXMLSession(PTextToSpeech *tts=NULL, PBoolean autoDelete=false)
Class for implementing a "delay line" channel.
Definition: delaychan.h:134
PTextToSpeech * m_textToSpeech
Definition: vxml.h:302
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
virtual PINDEX GetDelay() const
Definition: vxml.h:409
void SetPause(PBoolean pause)
Definition: vxml.h:582
PXMLElement & m_field
Definition: vxml.h:90
virtual PBoolean IsSilenceFrame(const void *buf, PINDEX len) const =0
GrammarState m_state
Definition: vxml.h:92
virtual bool ProcessNode()
unsigned GetMaxDuration()
Definition: vxml.h:364
timeout or still waiting to match
Definition: vxml.h:77
virtual PINDEX CreateSilenceFrame(void *buffer, PINDEX amount)=0
bool m_closed
Definition: vxml.h:597
PMutex m_mutex
Definition: vxml.h:95
virtual PBoolean LoadVXML(const PString &xml, const PString &firstForm=PString::Empty())
PVXMLChannel * m_vxmlChannel
Definition: vxml.h:421
virtual PCaselessString GetVar(const PString &str) const
void Put(const PString &prefix, const PString &key, const PString &fileType, const PString &contentType, const PFilePath &fn, PFilePath &dataFn)
virtual PBoolean QueueResource(const PURL &url, PINDEX repeat=1, PINDEX delay=0)
PMutex m_userInputMutex
Definition: vxml.h:321
void UnLockVXMLChannel()
Definition: vxml.h:195
PString m_value
Definition: vxml.h:91
virtual PINDEX GetRepeat() const
Definition: vxml.h:406
virtual void OnEndSession()
PBoolean OnFrame(PBoolean isSilence)
Abstract class defining I/O channel semantics.
Definition: channel.h:107
virtual PBoolean PlayText(const PString &text, PTextToSpeech::TextType type=PTextToSpeech::Default, PINDEX repeat=1, PINDEX delay=0)
PINDEX m_totalData
Definition: vxml.h:599
enum PVXMLSession::@38 m_recordingStatus
virtual PBoolean TraversedMenu(PXMLElement &element)
virtual PBoolean Open(PVXMLSession *session)
virtual PWAVFile * CreateWAVFile(const PFilePath &fn, PBoolean recording=false)
virtual PBoolean QueueCommand(const PString &cmd, PINDEX repeat=1, PINDEX delay=0)
Definition: vxml.h:576
PBoolean IsMediaPCM() const
Definition: vxml.h:549
virtual bool InternalLoadVXML(const PString &xml, const PString &firstForm)
static PTimeInterval StringToTime(const PString &str, int dflt=0)
PFilePath m_fileName
Definition: vxml.h:385
virtual bool Finish(PVXMLSession &, PXMLElement &) const
Definition: vxml.h:623
bool m_autoDeleteTextToSpeech
Definition: vxml.h:303
PMutex m_sessionMutex
Definition: vxml.h:297
virtual PBoolean PlayTone(const PString &toneSpec, PINDEX repeat=1, PINDEX delay=0)
The character string class.
Definition: pstring.h:108
bool m_bargingIn
Definition: vxml.h:312
virtual PBoolean PlayCommand(const PString &data, PINDEX repeat=1, PINDEX delay=0)
PStringToString m_variables
Definition: vxml.h:317
PMutex & GetSessionMutex()
Definition: vxml.h:196
virtual void GetBeepData(PBYTEArray &data, unsigned ms)
Not yet started.
Definition: vxml.h:74
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
static PString Empty()
Return an empty string.
void SetSampleFrequency(unsigned rate)
Definition: vxml.h:415
virtual bool OnTransfer(const PString &, TransferType)
Definition: vxml.h:234
std::queue< char > m_userInputQueue
Definition: vxml.h:320
PString wavFilePrefix
Definition: vxml.h:593
recognized something but didn't match the grammar
Definition: vxml.h:78
PTextToSpeech * SetTextToSpeech(PTextToSpeech *tts, PBoolean autoDelete=false)
PVXMLRecordable * m_recordable
Definition: vxml.h:602
virtual PBoolean Write(const void *buf, PINDEX len)
Low level write to the file channel.
virtual PBoolean TraverseExit(PXMLElement &element)
virtual PBoolean TraverseSayAs(PXMLElement &element)
PURL m_rootURL
Definition: vxml.h:299
This class defines a thread of execution in the system.
Definition: thread.h:66
bool IsLoaded() const
Definition: pxml.h:132
__inline PVXMLChannel * GetVXMLChannel() const
Definition: vxml.h:282
virtual void OnUserInput(const char ch)=0
virtual void OnStop()
Definition: vxml.h:351
virtual PString EvaluateExpr(const PString &oexpr)
PDECLARE_NOTIFIER(PTimer, PVXMLGrammar, OnTimeout)
virtual PBoolean TraverseRecord(PXMLElement &element)
unsigned m_finalSilence
Definition: vxml.h:370
Grammar awaiting input.
Definition: vxml.h:75
Template class for generic factories of an abstract class.
Definition: pfactory.h:144
virtual PBoolean TraverseVar(PXMLElement &element)
PVXMLGrammar(PVXMLSession &session, PXMLElement &field)
PStringArray m_fileNames
Definition: vxml.h:520
virtual PBoolean TraverseIf(PXMLElement &element)
PSimpleTimer m_silenceTimer
Definition: vxml.h:368
bool m_bargeIn
Definition: vxml.h:311
virtual void GetBeepData(PBYTEArray &, unsigned)
Definition: vxml.h:565
PSyncPoint m_waitForEvent
Definition: vxml.h:307
PFactory< PVXMLNodeHandler, PCaselessString > PVXMLNodeFactory
Definition: vxml.h:627
PMutex m_channelReadMutex
Definition: vxml.h:596
virtual PBoolean LoadGrammar(PVXMLGrammar *grammar)
virtual PBoolean EndRecording()
virtual void OnUserInput(const char ch)
PBoolean IsRecording() const
Definition: vxml.h:560
virtual PBoolean Execute()
A class represeting a simple timer.
Definition: timer.h:58
PBYTEArray m_data
Definition: vxml.h:463
virtual PBoolean RetreiveResource(const PURL &url, PString &contentType, PFilePath &fn, PBoolean useCache=true)
PINDEX m_currentIndex
Definition: vxml.h:521
virtual PBoolean QueueRecordable(PVXMLRecordable *newItem)
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
PSimpleTimer m_silenceTimer
Definition: vxml.h:609
void SetData(const PBYTEArray &data)
virtual PBoolean TraverseAudio(PXMLElement &element)
PFilePath GetRandomFilename(const PString &prefix, const PString &fileType)
unsigned frameDelay
Definition: delaychan.h:217
PVXMLChannel * GetAndLockVXMLChannel()
virtual PBoolean TraversedPrompt(PXMLElement &element)
bool m_abortVXML
Definition: vxml.h:306
PINDEX m_minDigits
Definition: vxml.h:128
bool m_delayDone
Definition: vxml.h:428
PTime m_transferStartTime
Definition: vxml.h:336
PVXMLGrammar * m_grammar
Definition: vxml.h:314
virtual bool ProcessGrammar()
virtual PBoolean TraverseValue(PXMLElement &element)
virtual PBoolean PlayStop()
PString GetXMLError() const
virtual PBoolean QueueFile(const PString &fn, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
Definition: vxml.h:573
PINDEX m_repeat
Definition: vxml.h:423
PBoolean ConvertTextToFilenameList(const PString &text, PTextToSpeech::TextType type, PStringArray &list, PBoolean useCacheing)
PFilePath m_filePath
Definition: vxml.h:504
virtual void SetPause(PBoolean pause)
Ultimate parent class for all objects in the class library.
Definition: object.h:1118
virtual PBoolean Open(const PString &mediaFormat)
This class defines a thread synchronisation object.
Definition: syncpoint.h:67
virtual PBoolean PlayFile(const PString &fn, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
virtual PBoolean OnFrame(PBoolean)
Definition: vxml.h:353
PVXMLSession * m_vxmlSession
Definition: vxml.h:589
virtual PBoolean PlayData(const PBYTEArray &data, PINDEX repeat=1, PINDEX delay=0)
This class describes a Universal Resource Locator.
Definition: url.h:54
bool m_speakNodeData
Definition: vxml.h:310
virtual PBoolean TraversedTransfer(PXMLElement &element)
PSimpleTimer m_recordTimer
Definition: vxml.h:369
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
virtual PBoolean TraversedRecord(PXMLElement &element)
virtual PBoolean TraverseChoice(PXMLElement &element)
PURL m_url
Definition: vxml.h:449
virtual void SetRepeat(PINDEX v)
Definition: vxml.h:403
virtual PBoolean TraverseProperty(PXMLElement &element)
virtual PBoolean TraverseMenu(PXMLElement &element)
PString m_variableScope
Definition: vxml.h:318
virtual PBoolean QueueData(const PBYTEArray &data, PINDEX repeat=1, PINDEX delay=0)
virtual void OnEndRecording()
bool m_paused
Definition: vxml.h:598
PString m_terminators
Definition: vxml.h:130
PURL NormaliseResourceName(const PString &src)
virtual PBoolean Load(const PString &source)