56 #define VXML_PCM16 PSOUND_PCM16
57 #define VXML_G7231 "G.723.1"
58 #define VXML_G729 "G.729"
156 virtual void Start();
292 virtual bool Open(
const PString & mediaFormat,
unsigned sampleRate = 8000,
unsigned channels = 1);
301 virtual PBoolean PlayText(
const PString & text, PTextToSpeech::TextType type = PTextToSpeech::Default, PINDEX repeat = 1, PINDEX delay = 0);
387 static bool SetSignLanguageAnalyser(
const PString & dllName);
388 #endif // P_VXML_VIDEO
398 virtual bool NextNode(
bool processChildren);
418 friend class PVXMLSignLanguageAnalyser;
433 virtual PBoolean SetFrameData(
const FrameData & frameData);
434 int GetAnalayserInstance()
const {
return m_analayserInstance; }
437 int m_analayserInstance;
446 ~VideoSenderDevice() {
Close(); }
447 virtual void SetActualDevice(
PVideoInputDevice * actualDevice,
bool autoDelete =
true);
449 bool IsRunning()
const {
return m_running; }
451 virtual bool InternalGetFrameData(BYTE * buffer, PINDEX & bytesReturned,
bool & keyFrame,
bool wait);
454 VideoSenderDevice m_videoSender;
455 #endif // P_VXML_VIDEO
703 virtual bool Open(
PVXMLSession * session,
unsigned sampleRate,
unsigned channels);
744 {
return QueuePlayable(
"File", fn, repeat, delay, autoDelete); }
747 {
return QueuePlayable(
"Command", cmd, repeat, delay,
true); }
798 #endif // PTLIB_VXML_H
char m_defaultMenuDTMF
Definition: vxml.h:473
PTextToSpeech * GetTextToSpeech() const
Definition: vxml.h:278
void SetMaxDuration(const PTimeInterval &v)
Definition: vxml.h:528
enum PVXMLSession::@42 m_transferStatus
virtual bool SetSampleRate(unsigned rate)=0
PINDEX m_maxDigits
Definition: vxml.h:221
void SetTimeout(const PTimeInterval &timeout)
virtual PBoolean WriteFrame(const void *buf, PINDEX len)=0
help keyword
Definition: vxml.h:165
virtual PBoolean PlayElement(PXMLElement &element)
PTones m_tones
Definition: vxml.h:638
virtual PBoolean TraverseGoto(PXMLElement &element)
PString m_lastXMLError
Definition: vxml.h:461
virtual PBoolean PlaySilence(PINDEX msecs=0)
PDECLARE_MUTEX(m_sessionMutex)
bool OnStart(PVXMLChannel &incomingChannel)
virtual PBoolean TraverseElse(PXMLElement &element)
virtual PBoolean TraverseGrammar(PXMLElement &element)
PVXMLCache * m_ttsCache
Definition: vxml.h:413
PVXMLPlayable * m_currentPlayItem
Definition: vxml.h:769
This class represents a disk file.
Definition: file.h:57
virtual PBoolean TraversedIf(PXMLElement &element)
bool ExecuteCondition(PXMLElement &element)
PVXMLChannel(unsigned frameDelay, PINDEX frameSize)
virtual void InternalStartVXML()
This class defines an arbitrary time interval to millisecond accuracy.
Definition: timeint.h:51
PINDEX frameSize
Definition: delaychan.h:241
PBoolean Open(const PString &arg)
#define PCLASSINFO(cls, par)
Declare all the standard PTLib class information.
Definition: object.h:2164
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
GrammarState GetState() const
Definition: vxml.h:168
virtual PBoolean TraversePrompt(PXMLElement &element)
#define PQUEUE(cls, T)
Declare a queue class.
Definition: lists.h:554
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:464
virtual void SetVar(const PString &ostr, const PString &val)
virtual PBoolean IsPlaying() const
Definition: vxml.h:750
virtual PBoolean QueuePlayable(const PString &type, const PString &str, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
PTimer m_timer
Definition: vxml.h:184
virtual PBoolean ReadFrame(void *buffer, PINDEX amount)=0
virtual bool OnStart(PVXMLChannel &incomingChannel)=0
PString m_newFormName
Definition: vxml.h:462
virtual bool Get(const PString &prefix, const PString &key, const PString &suffix, PFilePath &filename)
TransferType
Definition: vxml.h:326
bool IsRecording() const
Definition: vxml.h:730
This class defines an absolute time and date.
Definition: ptime.h:49
virtual PBoolean TraverseField(PXMLElement &element)
void SetFormat(const PString &fmt)
Definition: vxml.h:576
virtual PBoolean TraverseForm(PXMLElement &element)
virtual PBoolean TraverseDisconnect(PXMLElement &element)
PAutoPtr< PXML > m_newXML
Definition: vxml.h:460
This class can be used to generate PCM data for tones (such as telephone calling tones and DTMF) at a...
Definition: dtmf.h:103
void SetRecordDirectory(const PDirectory &dir)
Definition: vxml.h:283
virtual PBoolean TraverseSubmit(PXMLElement &element)
virtual PBoolean TraverseBreak(PXMLElement &element)
virtual PBoolean TraversedField(PXMLElement &element)
virtual bool Open(PVXMLSession *session, unsigned sampleRate, unsigned channels)
virtual PBoolean Close()
Close the channel.
virtual PBoolean Close()
Close the channel.
PString m_recordingName
Definition: vxml.h:490
This is a dictionary collection class of PString objects, keyed by another string.
Definition: pstring.h:3151
void SetSilence(unsigned msecs)
This class describes a full description for a file on the particular platform.
Definition: filepath.h:61
virtual PFilePath CreateFilename(const PString &prefix, const PString &key, const PString &suffix)
virtual PBoolean Read(void *buffer, PINDEX amount)
Low level read from the file channel.
virtual PBoolean IsLoaded() const
Definition: vxml.h:290
virtual PBoolean LoadURL(const PURL &url)
virtual void OnEndDialog()
virtual PBoolean PlayResource(const PURL &url, PINDEX repeat=1, PINDEX delay=0)
bool EndRecording(bool timedOut)
virtual bool PutWithLock(const PString &prefix, const PString &key, const PString &suffix, PFile &file)
virtual PString GetAudioFormat() const =0
virtual PBoolean IsOpen() const
Determine if the channel is currently open and read and write operations can be executed on it...
This is a channel that operates indirectly through another channel(s).
Definition: indchan.h:45
PTimeInterval m_timeout
Definition: vxml.h:183
got something that matched the grammar
Definition: vxml.h:162
This class is a variation of a string that ignores case.
Definition: pstring.h:2012
enum PVXMLSession::@41 m_recordingStatus
virtual void InternalThreadMain()
PString m_command
Definition: vxml.h:655
GrammarState
Definition: vxml.h:159
const PTimeInterval & GetMaxDuration() const
Definition: vxml.h:527
virtual PBoolean IsOpen() const
Determine if the channel is currently open and read and write operations can be executed on it...
This is an array collection class of PString objects.
Definition: pstring.h:2365
virtual bool ProcessEvents()
PChannel * readChannel
Channel for read operations.
Definition: indchan.h:362
virtual PBoolean TraverseElseIf(PXMLElement &element)
virtual void FlushQueue()
PVXMLQueue m_playQueue
Definition: vxml.h:768
bool m_autoDelete
Definition: vxml.h:587
PINDEX m_delay
Definition: vxml.h:585
virtual PBoolean TraversedForm(PXMLElement &element)
const PTimeInterval & GetFinalSilence() const
Definition: vxml.h:524
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)
virtual void OnEndRecording(PINDEX bytesRecorded, bool timedOut)
PStringToString GetVariables() const
bool m_recordStopOnDTMF
Definition: vxml.h:489
virtual bool NextNode(bool processChildren)
std::map< std::string, unsigned > m_eventCount
Definition: vxml.h:469
Class to represent a directory in the operating system file system.
Definition: pdirect.h:173
PString m_format
Definition: vxml.h:586
PThread * m_vxmlThread
Definition: vxml.h:457
virtual PBoolean TraverseTransfer(PXMLElement &element)
PAutoPtr< PXML > m_currentXML
Definition: vxml.h:463
virtual PBoolean Open(const PString &arg)=0
bool SetCurrentForm(const PString &id, bool fullURI)
PChannel * m_subChannel
Definition: vxml.h:583
void SetTransferComplete(bool state)
Array of unsigned characters.
Definition: array.h:605
virtual bool Start(PVXMLSession &, PXMLElement &) const
Definition: vxml.h:786
PVXMLSession & m_session
Definition: vxml.h:179
PVXMLDigitsGrammar(PVXMLSession &session, PXMLElement &field, PINDEX minDigits, PINDEX maxDigits, PString terminators)
PVXMLSession(PTextToSpeech *tts=NULL, PBoolean autoDelete=false)
#define P_REMOVE_VIRTUAL(type, fn, ret)
Definition: object.h:146
Class for implementing a "delay line" channel.
Definition: delaychan.h:157
PTextToSpeech * m_textToSpeech
Definition: vxml.h:412
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
virtual PINDEX GetDelay() const
Definition: vxml.h:573
virtual unsigned GetChannels() const =0
void SetPause(PBoolean pause)
Definition: vxml.h:752
PXMLElement & m_field
Definition: vxml.h:180
virtual PBoolean IsSilenceFrame(const void *buf, PINDEX len) const =0
GrammarState m_state
Definition: vxml.h:182
virtual bool ProcessNode()
PXMLElement * FindElementWithCount(PXMLElement &parent, const PString &name, unsigned count)
timeout or still waiting to match
Definition: vxml.h:163
friend class PVXMLTraverseEvent
Definition: vxml.h:505
virtual PINDEX CreateSilenceFrame(void *buffer, PINDEX amount)=0
bool m_closed
Definition: vxml.h:760
virtual PBoolean LoadVXML(const PString &xml, const PString &firstForm=PString::Empty())
virtual bool IsFilled()
Definition: vxml.h:177
PVXMLChannel * m_vxmlChannel
Definition: vxml.h:582
virtual PCaselessString GetVar(const PString &str) const
bool IsMediaPCM() const
Definition: vxml.h:713
virtual PBoolean QueueResource(const PURL &url, PINDEX repeat=1, PINDEX delay=0)
const PDirectory & GetRecordDirectory() const
Definition: vxml.h:284
void UnLockVXMLChannel()
Definition: vxml.h:296
PString m_value
Definition: vxml.h:181
virtual PINDEX GetRepeat() const
Definition: vxml.h:570
virtual void OnEndSession()
PBoolean OnFrame(PBoolean isSilence)
Abstract class defining I/O channel semantics.
Definition: channel.h:103
virtual PBoolean PlayText(const PString &text, PTextToSpeech::TextType type=PTextToSpeech::Default, PINDEX repeat=1, PINDEX delay=0)
#define VXML_PCM16
Definition: vxml.h:56
This class defines a thread-safe object in a collection.
Definition: safecoll.h:123
PINDEX m_totalData
Definition: vxml.h:762
virtual PBoolean TraversedMenu(PXMLElement &element)
bool PBoolean
Definition: object.h:174
virtual PBoolean QueueCommand(const PString &cmd, PINDEX repeat=1, PINDEX delay=0)
Definition: vxml.h:746
virtual bool InternalLoadVXML(const PString &xml, const PString &firstForm)
static PTimeInterval StringToTime(const PString &str, int dflt=0)
PFilePath m_fileName
Definition: vxml.h:548
virtual bool Finish(PVXMLSession &, PXMLElement &) const
Definition: vxml.h:789
bool m_autoDeleteTextToSpeech
Definition: vxml.h:414
virtual PBoolean PlayTone(const PString &toneSpec, PINDEX repeat=1, PINDEX delay=0)
PDirectory m_recordDirectory
Definition: vxml.h:492
The character string class.
Definition: pstring.h:108
bool m_bargingIn
Definition: vxml.h:467
virtual PBoolean PlayCommand(const PString &data, PINDEX repeat=1, PINDEX delay=0)
PStringToString m_variables
Definition: vxml.h:475
PMutex & GetSessionMutex()
Definition: vxml.h:297
virtual void GetBeepData(PBYTEArray &data, unsigned ms)
void SetIdle()
Definition: vxml.h:169
Not yet started.
Definition: vxml.h:160
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
virtual bool OnTransfer(const PString &, TransferType)
Definition: vxml.h:331
std::queue< char > m_userInputQueue
Definition: vxml.h:481
recognized something but didn't match the grammar
Definition: vxml.h:164
PTextToSpeech * SetTextToSpeech(PTextToSpeech *tts, PBoolean autoDelete=false)
PVXMLRecordable * m_recordable
Definition: vxml.h:765
virtual PBoolean Write(const void *buf, PINDEX len)
Low level write to the file channel.
PDECLARE_MUTEX(m_recordingMutex)
virtual PBoolean TraverseBlock(PXMLElement &element)
virtual bool Open(const PString &mediaFormat, unsigned sampleRate=8000, unsigned channels=1)
virtual PBoolean TraverseExit(PXMLElement &element)
void SetFinalSilence(const PTimeInterval &v)
Definition: vxml.h:525
virtual PBoolean TraverseSayAs(PXMLElement &element)
PURL m_rootURL
Definition: vxml.h:410
This class defines a thread mutual exclusion object.
Definition: mutex.h:101
This class defines a thread of execution in the system.
Definition: thread.h:66
__inline PVXMLChannel * GetVXMLChannel() const
Definition: vxml.h:381
virtual void OnUserInput(const char ch)=0
#define PDECLARE_ScriptFunctionNotifier(cls, fn)
Definition: script.h:243
virtual void OnStop()
Definition: vxml.h:520
const PDirectory & GetDirectory() const
Definition: vxml.h:251
static const PString & Empty()
Return an empty string.
virtual PString EvaluateExpr(const PString &oexpr)
PDECLARE_NOTIFIER(PTimer, PVXMLGrammar, OnTimeout)
virtual PBoolean TraverseRecord(PXMLElement &element)
Grammar awaiting input.
Definition: vxml.h:161
Class for a factory to create concrete class instances without parameters during construction.
Definition: pfactory.h:396
virtual PBoolean TraverseVar(PXMLElement &element)
PTimeInterval m_maxDuration
Definition: vxml.h:534
A wrapper around a scripting language instance.
Definition: script.h:43
PVXMLGrammar(PVXMLSession &session, PXMLElement &field)
PStringArray m_fileNames
Definition: vxml.h:685
virtual PBoolean TraverseIf(PXMLElement &element)
PSimpleTimer m_silenceTimer
Definition: vxml.h:531
virtual bool QueueRecordable(PVXMLRecordable *newItem)
bool m_bargeIn
Definition: vxml.h:466
virtual void GetBeepData(PBYTEArray &, unsigned)
Definition: vxml.h:735
PSyncPoint m_waitForEvent
Definition: vxml.h:459
PFactory< PVXMLNodeHandler, PCaselessString > PVXMLNodeFactory
Definition: vxml.h:793
virtual PString GetMediaFileSuffix() const
PDirectory m_directory
Definition: vxml.h:261
PTime m_recordingStartTime
Definition: vxml.h:491
virtual PBoolean LoadGrammar(PVXMLGrammar *grammar)
virtual void OnUserInput(const char ch)
virtual void InternalStartThread()
virtual unsigned GetSampleRate() const =0
This class defines a video output device.
Definition: videoio.h:712
PBYTEArray m_data
Definition: vxml.h:623
PINDEX m_currentIndex
Definition: vxml.h:686
virtual PBoolean Open(PVXMLChannel &chan, const PString &arg, PINDEX delay, PINDEX repeat, PBoolean autoDelete)
PSimpleTimer m_silenceTimer
Definition: vxml.h:770
void SetData(const PBYTEArray &data)
friend class VideoReceiverDevice
Definition: vxml.h:504
virtual PBoolean TraverseAudio(PXMLElement &element)
unsigned frameDelay
Definition: delaychan.h:240
virtual bool SetChannels(unsigned channels)=0
PVXMLChannel * GetAndLockVXMLChannel()
virtual PBoolean TraversedPrompt(PXMLElement &element)
bool m_abortVXML
Definition: vxml.h:458
PINDEX m_minDigits
Definition: vxml.h:220
PTimeInterval m_finalSilence
Definition: vxml.h:533
bool m_delayDone
Definition: vxml.h:588
PTime m_transferStartTime
Definition: vxml.h:501
PVXMLGrammar * m_grammar
Definition: vxml.h:472
virtual PChannel * OpenMediaFile(const PFilePath &fn, bool recording)
virtual PBoolean TraverseValue(PXMLElement &element)
virtual PBoolean PlayStop()
PString GetXMLError() const
Definition: vxml.h:321
virtual PBoolean QueueFile(const PString &fn, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
Definition: vxml.h:743
PINDEX m_repeat
Definition: vxml.h:584
PFilePath m_filePath
Definition: vxml.h:669
void SetCache(PVXMLCache &cache)
unsigned m_promptCount
Definition: vxml.h:470
virtual PBoolean TraverseScript(PXMLElement &element)
virtual void SetPause(PBoolean pause)
virtual bool AdjustMediaFilename(const PFilePath &ifn, PFilePath &ofn)
Ultimate parent class for all objects in the class library.
Definition: object.h:2204
This class defines a thread synchronisation object.
Definition: syncpoint.h:63
virtual PBoolean PlayFile(const PString &fn, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
virtual PBoolean OnFrame(PBoolean)
Definition: vxml.h:522
PVXMLSession * m_vxmlSession
Definition: vxml.h:756
virtual PBoolean PlayData(const PBYTEArray &data, PINDEX repeat=1, PINDEX delay=0)
This class describes a Universal Resource Locator.
Definition: url.h:56
void SetDirectory(const PDirectory &directory)
bool m_speakNodeData
Definition: vxml.h:465
virtual PBoolean TraversedTransfer(PXMLElement &element)
PSimpleTimer m_recordTimer
Definition: vxml.h:532
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:609
virtual void SetRepeat(PINDEX v)
Definition: vxml.h:567
virtual PBoolean TraverseProperty(PXMLElement &element)
virtual PBoolean TraverseMenu(PXMLElement &element)
PString m_variableScope
Definition: vxml.h:476
virtual PBoolean QueueData(const PBYTEArray &data, PINDEX repeat=1, PINDEX delay=0)
bool m_paused
Definition: vxml.h:761
PString m_terminators
Definition: vxml.h:222
PURL NormaliseResourceName(const PString &src)
virtual PBoolean Load(const PString &source)