56 #define VXML_PCM16 "PCM-16" 57 #define VXML_G7231 "G.723.1" 58 #define VXML_G729 "G.729" 143 void Put(
const PString & prefix,
157 {
return directory; }
179 PTextToSpeech * SetTextToSpeech(PTextToSpeech * tts,
PBoolean autoDelete =
false);
180 PTextToSpeech * SetTextToSpeech(
const PString & ttsName);
200 virtual PBoolean PlayText(
const PString & text, PTextToSpeech::TextType type = PTextToSpeech::Default, PINDEX repeat = 1, PINDEX delay = 0);
203 virtual PBoolean PlayFile(
const PString & fn, PINDEX repeat = 1, PINDEX delay = 0,
PBoolean autoDelete =
false);
204 virtual PBoolean PlayData(
const PBYTEArray & data, PINDEX repeat = 1, PINDEX delay = 0);
205 virtual PBoolean PlayCommand(
const PString & data, PINDEX repeat = 1, PINDEX delay = 0);
206 virtual PBoolean PlayResource(
const PURL & url, PINDEX repeat = 1, PINDEX delay = 0);
207 virtual PBoolean PlayTone(
const PString & toneSpec, PINDEX repeat = 1, PINDEX delay = 0);
211 virtual PBoolean PlaySilence(PINDEX msecs = 0);
216 virtual void SetPause(
PBoolean pause);
217 virtual void GetBeepData(
PBYTEArray & data,
unsigned ms);
226 virtual void OnEndDialog();
227 virtual void OnEndSession();
235 void SetTransferComplete(
bool state);
248 bool SetCurrentForm(
const PString &
id,
bool fullURI);
252 virtual void OnEndRecording();
253 virtual void Trigger();
285 virtual bool InternalLoadVXML(
const PString & xml,
const PString & firstForm);
287 virtual bool ProcessNode();
288 virtual bool ProcessEvents();
289 virtual bool ProcessGrammar();
290 virtual bool NextNode(
bool processChildren);
350 virtual bool OnStart(
PVXMLChannel & incomingChannel) = 0;
356 { m_finalSilence = v > 0 ? v : 60000; }
359 {
return m_finalSilence; }
362 { m_maxDuration = v > 0 ? v : 86400000; }
365 {
return m_maxDuration; }
398 virtual bool OnStart() = 0;
399 virtual bool OnRepeat();
400 virtual bool OnDelay();
401 virtual void OnStop();
416 { m_sampleFrequency = rate; }
437 virtual bool OnStart();
447 virtual bool OnStart();
460 virtual bool OnStart();
461 virtual bool OnRepeat();
486 virtual bool OnStart();
487 virtual void OnStop();
500 virtual bool OnStart();
501 virtual bool OnRepeat();
502 virtual void OnStop();
516 virtual bool OnStart();
517 virtual bool OnRepeat();
518 virtual void OnStop();
542 virtual PBoolean Read(
void * buffer, PINDEX amount);
543 virtual PBoolean Write(
const void * buf, PINDEX len);
553 virtual PBoolean WriteFrame(
const void * buf, PINDEX len) = 0;
554 virtual PBoolean IsSilenceFrame(
const void * buf, PINDEX len)
const = 0;
558 PBoolean StartRecording(
const PFilePath & fn,
unsigned finalSilence = 3000,
unsigned maxDuration = 30000);
563 virtual PBoolean ReadFrame(
void * buffer, PINDEX amount) = 0;
564 virtual PINDEX CreateSilenceFrame(
void * buffer, PINDEX amount) = 0;
567 virtual PBoolean QueueResource(
const PURL & url, PINDEX repeat= 1, PINDEX delay = 0);
571 virtual PBoolean QueueData(
const PBYTEArray & data, PINDEX repeat = 1, PINDEX delay = 0);
574 {
return QueuePlayable(
"File", fn, repeat, delay, autoDelete); }
577 {
return QueuePlayable(
"Command", cmd, repeat, delay,
true); }
579 virtual void FlushQueue();
580 virtual PBoolean IsPlaying()
const {
return m_currentPlayItem != NULL || m_playQueue.GetSize() > 0; }
586 void SetSilence(
unsigned msecs);
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)
help keyword
Definition: vxml.h:79
PXML m_xml
Definition: vxml.h:300
PTones m_tones
Definition: vxml.h:476
unsigned GetSampleFrequency() const
Definition: vxml.h:584
PVXMLPlayable * m_currentPlayItem
Definition: vxml.h:608
bool m_xmlChanged
Definition: vxml.h:309
This class defines an arbitrary time interval to millisecond accuracy.
Definition: timeint.h:55
PQUEUE(PVXMLQueue, PVXMLPlayable)
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:1049
GrammarState GetState() const
Definition: vxml.h:82
const PString & GetMediaFormat() const
Definition: vxml.h:548
PXMLObject * m_currentNode
Definition: vxml.h:308
virtual PBoolean IsPlaying() const
Definition: vxml.h:580
PTimer m_timer
Definition: vxml.h:94
unsigned m_sampleFrequency
Definition: vxml.h:426
TransferType
Definition: vxml.h:229
This class defines an absolute time and date.
Definition: ptime.h:53
void SetFormat(const PString &fmt)
Definition: vxml.h:412
A class representing a WAV audio file.
Definition: pwavfile.h:172
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
This is a dictionary collection class of PString objects, keyed by another string.
Definition: pstring.h:2784
This class describes a full description for a file on the particular platform.
Definition: filepath.h:65
virtual PBoolean IsLoaded() const
Definition: vxml.h:187
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
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
void SetMaxDuration(unsigned v)
Definition: vxml.h:361
PVXMLQueue m_playQueue
Definition: vxml.h:607
bool m_autoDelete
Definition: vxml.h:427
PINDEX m_delay
Definition: vxml.h:424
bool m_recordStopOnDTMF
Definition: vxml.h:328
PString mediaFormat
Definition: vxml.h:592
PFilePath GetCacheDir() const
Definition: vxml.h:156
void SetFinalSilence(unsigned v)
Definition: vxml.h:355
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
unsigned m_finalSilence
Definition: vxml.h:603
unsigned GetFinalSilence()
Definition: vxml.h:358
PChannel * m_subChannel
Definition: vxml.h:422
const PStringToString & GetVariables()
Definition: vxml.h:237
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
Class for implementing a "delay line" channel.
Definition: delaychan.h:134
PTextToSpeech * m_textToSpeech
Definition: vxml.h:302
virtual PINDEX GetDelay() const
Definition: vxml.h:409
void SetPause(PBoolean pause)
Definition: vxml.h:582
PXMLElement & m_field
Definition: vxml.h:90
GrammarState m_state
Definition: vxml.h:92
unsigned GetMaxDuration()
Definition: vxml.h:364
timeout or still waiting to match
Definition: vxml.h:77
bool m_closed
Definition: vxml.h:597
PMutex m_mutex
Definition: vxml.h:95
PVXMLChannel * m_vxmlChannel
Definition: vxml.h:421
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
Abstract class defining I/O channel semantics.
Definition: channel.h:107
PINDEX m_totalData
Definition: vxml.h:599
virtual PBoolean QueueCommand(const PString &cmd, PINDEX repeat=1, PINDEX delay=0)
Definition: vxml.h:576
PBoolean IsMediaPCM() const
Definition: vxml.h:549
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
The character string class.
Definition: pstring.h:108
bool m_bargingIn
Definition: vxml.h:312
PStringToString m_variables
Definition: vxml.h:317
PMutex & GetSessionMutex()
Definition: vxml.h:196
Not yet started.
Definition: vxml.h:74
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
PVXMLRecordable * m_recordable
Definition: vxml.h:602
PURL m_rootURL
Definition: vxml.h:299
This class defines a thread of execution in the system.
Definition: thread.h:66
__inline PVXMLChannel * GetVXMLChannel() const
Definition: vxml.h:282
virtual void OnUserInput(const char ch)=0
virtual void OnStop()
Definition: vxml.h:351
PDECLARE_NOTIFIER(PTimer, PVXMLGrammar, OnTimeout)
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
PVXMLGrammar(PVXMLSession &session, PXMLElement &field)
PStringArray m_fileNames
Definition: vxml.h:520
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
PBoolean IsRecording() const
Definition: vxml.h:560
A class represeting a simple timer.
Definition: timer.h:58
PBYTEArray m_data
Definition: vxml.h:463
PINDEX m_currentIndex
Definition: vxml.h:521
PSimpleTimer m_silenceTimer
Definition: vxml.h:609
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 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
PFilePath m_filePath
Definition: vxml.h:504
Ultimate parent class for all objects in the class library.
Definition: object.h:1118
This class defines a thread synchronisation object.
Definition: syncpoint.h:67
virtual PBoolean OnFrame(PBoolean)
Definition: vxml.h:353
PVXMLSession * m_vxmlSession
Definition: vxml.h:589
This class describes a Universal Resource Locator.
Definition: url.h:54
bool m_speakNodeData
Definition: vxml.h:310
PSimpleTimer m_recordTimer
Definition: vxml.h:369
PURL m_url
Definition: vxml.h:449
virtual void SetRepeat(PINDEX v)
Definition: vxml.h:403
PString m_variableScope
Definition: vxml.h:318
bool m_paused
Definition: vxml.h:598
PString m_terminators
Definition: vxml.h:130