PTLib  Version 2.10.4
PVXMLSession Class Reference

#include <vxml.h>

Inheritance diagram for PVXMLSession:
PIndirectChannel PChannel PObject

List of all members.

Public Types

enum  TransferType { BridgedTransfer, BlindTransfer, ConsultationTransfer }

Public Member Functions

 PVXMLSession (PTextToSpeech *tts=NULL, PBoolean autoDelete=false)
virtual ~PVXMLSession ()
PTextToSpeech * SetTextToSpeech (PTextToSpeech *tts, PBoolean autoDelete=false)
PTextToSpeech * SetTextToSpeech (const PString &ttsName)
PTextToSpeech * GetTextToSpeech () const
virtual PBoolean Load (const PString &source)
virtual PBoolean LoadFile (const PFilePath &file, const PString &firstForm=PString::Empty())
virtual PBoolean LoadURL (const PURL &url)
virtual PBoolean LoadVXML (const PString &xml, const PString &firstForm=PString::Empty())
virtual PBoolean IsLoaded () const
virtual PBoolean Open (const PString &mediaFormat)
virtual PBoolean Close ()
 Close the channel.
virtual PBoolean Execute ()
PVXMLChannelGetAndLockVXMLChannel ()
void UnLockVXMLChannel ()
PMutexGetSessionMutex ()
virtual PBoolean LoadGrammar (PVXMLGrammar *grammar)
virtual PBoolean PlayText (const PString &text, PTextToSpeech::TextType type=PTextToSpeech::Default, PINDEX repeat=1, PINDEX delay=0)
PBoolean ConvertTextToFilenameList (const PString &text, PTextToSpeech::TextType type, PStringArray &list, PBoolean useCacheing)
virtual PBoolean PlayFile (const PString &fn, PINDEX repeat=1, PINDEX delay=0, PBoolean autoDelete=false)
virtual PBoolean PlayData (const PBYTEArray &data, PINDEX repeat=1, PINDEX delay=0)
virtual PBoolean PlayCommand (const PString &data, PINDEX repeat=1, PINDEX delay=0)
virtual PBoolean PlayResource (const PURL &url, PINDEX repeat=1, PINDEX delay=0)
virtual PBoolean PlayTone (const PString &toneSpec, PINDEX repeat=1, PINDEX delay=0)
virtual PBoolean PlayElement (PXMLElement &element)
virtual PBoolean PlaySilence (PINDEX msecs=0)
virtual PBoolean PlaySilence (const PTimeInterval &timeout)
virtual PBoolean PlayStop ()
virtual void SetPause (PBoolean pause)
virtual void GetBeepData (PBYTEArray &data, unsigned ms)
virtual PBoolean StartRecording (const PFilePath &fn, PBoolean recordDTMFTerm, const PTimeInterval &recordMaxTime, const PTimeInterval &recordFinalSilence)
virtual PBoolean EndRecording ()
virtual void OnUserInput (const PString &str)
PString GetXMLError () const
virtual void OnEndDialog ()
virtual void OnEndSession ()
virtual bool OnTransfer (const PString &, TransferType)
void SetTransferComplete (bool state)
const PStringToStringGetVariables ()
virtual PCaselessString GetVar (const PString &str) const
virtual void SetVar (const PString &ostr, const PString &val)
virtual PString EvaluateExpr (const PString &oexpr)
virtual PBoolean RetreiveResource (const PURL &url, PString &contentType, PFilePath &fn, PBoolean useCache=true)
 PDECLARE_NOTIFIER (PThread, PVXMLSession, VXMLExecute)
bool SetCurrentForm (const PString &id, bool fullURI)
bool GoToEventHandler (PXMLElement &element, const PString &eventName)
virtual void OnEndRecording ()
virtual void Trigger ()
virtual PBoolean TraverseAudio (PXMLElement &element)
virtual PBoolean TraverseBreak (PXMLElement &element)
virtual PBoolean TraverseValue (PXMLElement &element)
virtual PBoolean TraverseSayAs (PXMLElement &element)
virtual PBoolean TraverseGoto (PXMLElement &element)
virtual PBoolean TraverseGrammar (PXMLElement &element)
virtual PBoolean TraverseRecord (PXMLElement &element)
virtual PBoolean TraversedRecord (PXMLElement &element)
virtual PBoolean TraverseIf (PXMLElement &element)
virtual PBoolean TraverseExit (PXMLElement &element)
virtual PBoolean TraverseVar (PXMLElement &element)
virtual PBoolean TraverseSubmit (PXMLElement &element)
virtual PBoolean TraverseMenu (PXMLElement &element)
virtual PBoolean TraversedMenu (PXMLElement &element)
virtual PBoolean TraverseChoice (PXMLElement &element)
virtual PBoolean TraverseProperty (PXMLElement &element)
virtual PBoolean TraverseDisconnect (PXMLElement &element)
virtual PBoolean TraverseForm (PXMLElement &element)
virtual PBoolean TraversedForm (PXMLElement &element)
virtual PBoolean TraversePrompt (PXMLElement &element)
virtual PBoolean TraverseField (PXMLElement &element)
virtual PBoolean TraversedField (PXMLElement &element)
virtual PBoolean TraverseFilled (PXMLElement &element)
virtual PBoolean TraverseNoInput (PXMLElement &element)
virtual PBoolean TraverseNoMatch (PXMLElement &element)
virtual PBoolean TraverseError (PXMLElement &element)
virtual PBoolean TraverseCatch (PXMLElement &element)
virtual PBoolean TraverseTransfer (PXMLElement &element)
virtual PBoolean TraversedTransfer (PXMLElement &element)
__inline PVXMLChannelGetVXMLChannel () const

Static Public Member Functions

static PTimeInterval StringToTime (const PString &str)

Protected Types

enum  { NotRecording, RecordingInProgress, RecordingComplete }
enum  { NotTransfering, TransferInProgress, TransferFailed, TransferSuccessful }

Protected Member Functions

virtual bool ProcessNode ()
virtual bool ProcessEvents ()
virtual bool ProcessGrammar ()
virtual bool NextNode (bool skipChildren)
void SayAs (const PString &className, const PString &text)
void SayAs (const PString &className, const PString &text, const PString &voice)
PURL NormaliseResourceName (const PString &src)

Protected Attributes

PMutex m_sessionMutex
PURL m_rootURL
PXML m_xml
PTextToSpeech * m_textToSpeech
bool m_autoDeleteTextToSpeech
PThreadm_vxmlThread
bool m_abortVXML
PSyncPoint m_waitForEvent
PXMLObjectm_currentNode
bool m_xmlChanged
bool m_speakNodeData
PVXMLGrammarm_grammar
char m_defaultMenuDTMF
PStringToString m_variables
PString m_variableScope
std::queue< char > m_userInputQueue
PMutex m_userInputMutex
enum PVXMLSession:: { ... }  m_recordingStatus
bool m_recordStopOnDTMF
enum PVXMLSession:: { ... }  m_transferStatus
PTime m_transferStartTime

Member Enumeration Documentation

anonymous enum [protected]
Enumerator:
NotRecording 
RecordingInProgress 
RecordingComplete 
anonymous enum [protected]
Enumerator:
NotTransfering 
TransferInProgress 
TransferFailed 
TransferSuccessful 
Enumerator:
BridgedTransfer 
BlindTransfer 
ConsultationTransfer 

Constructor & Destructor Documentation

PVXMLSession::PVXMLSession ( PTextToSpeech *  tts = NULL,
PBoolean  autoDelete = false 
)
virtual PVXMLSession::~PVXMLSession ( ) [virtual]

Member Function Documentation

virtual PBoolean PVXMLSession::Close ( ) [virtual]

Close the channel.

This will detach itself from the read and write channels and delete both of them if they are auto delete.

Returns:
true if the channel is closed.

Reimplemented from PIndirectChannel.

PBoolean PVXMLSession::ConvertTextToFilenameList ( const PString text,
PTextToSpeech::TextType  type,
PStringArray list,
PBoolean  useCacheing 
)
virtual PBoolean PVXMLSession::EndRecording ( ) [virtual]
virtual PString PVXMLSession::EvaluateExpr ( const PString oexpr) [virtual]
virtual PBoolean PVXMLSession::Execute ( ) [virtual]
virtual void PVXMLSession::GetBeepData ( PBYTEArray data,
unsigned  ms 
) [virtual]
PTextToSpeech* PVXMLSession::GetTextToSpeech ( ) const [inline]

References m_textToSpeech.

virtual PCaselessString PVXMLSession::GetVar ( const PString str) const [virtual]

References m_variables.

bool PVXMLSession::GoToEventHandler ( PXMLElement element,
const PString eventName 
)
virtual PBoolean PVXMLSession::IsLoaded ( ) const [inline, virtual]

References PXML::IsLoaded(), and m_xml.

virtual PBoolean PVXMLSession::Load ( const PString source) [virtual]
virtual PBoolean PVXMLSession::LoadFile ( const PFilePath file,
const PString firstForm = PString::Empty() 
) [virtual]
virtual PBoolean PVXMLSession::LoadGrammar ( PVXMLGrammar grammar) [virtual]
virtual PBoolean PVXMLSession::LoadURL ( const PURL url) [virtual]
virtual PBoolean PVXMLSession::LoadVXML ( const PString xml,
const PString firstForm = PString::Empty() 
) [virtual]
virtual bool PVXMLSession::NextNode ( bool  skipChildren) [protected, virtual]
PURL PVXMLSession::NormaliseResourceName ( const PString src) [protected]
virtual void PVXMLSession::OnEndDialog ( ) [virtual]
virtual void PVXMLSession::OnEndRecording ( ) [virtual]
virtual void PVXMLSession::OnEndSession ( ) [virtual]
virtual bool PVXMLSession::OnTransfer ( const PString ,
TransferType   
) [inline, virtual]
virtual void PVXMLSession::OnUserInput ( const PString str) [virtual]
virtual PBoolean PVXMLSession::Open ( const PString mediaFormat) [virtual]
virtual PBoolean PVXMLSession::PlayCommand ( const PString data,
PINDEX  repeat = 1,
PINDEX  delay = 0 
) [virtual]
virtual PBoolean PVXMLSession::PlayData ( const PBYTEArray data,
PINDEX  repeat = 1,
PINDEX  delay = 0 
) [virtual]
virtual PBoolean PVXMLSession::PlayElement ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::PlayFile ( const PString fn,
PINDEX  repeat = 1,
PINDEX  delay = 0,
PBoolean  autoDelete = false 
) [virtual]
virtual PBoolean PVXMLSession::PlayResource ( const PURL url,
PINDEX  repeat = 1,
PINDEX  delay = 0 
) [virtual]
virtual PBoolean PVXMLSession::PlaySilence ( PINDEX  msecs = 0) [virtual]
virtual PBoolean PVXMLSession::PlaySilence ( const PTimeInterval timeout) [virtual]
virtual PBoolean PVXMLSession::PlayStop ( ) [virtual]
virtual PBoolean PVXMLSession::PlayText ( const PString text,
PTextToSpeech::TextType  type = PTextToSpeech::Default,
PINDEX  repeat = 1,
PINDEX  delay = 0 
) [virtual]
virtual PBoolean PVXMLSession::PlayTone ( const PString toneSpec,
PINDEX  repeat = 1,
PINDEX  delay = 0 
) [virtual]
virtual bool PVXMLSession::ProcessEvents ( ) [protected, virtual]
virtual bool PVXMLSession::ProcessGrammar ( ) [protected, virtual]
virtual bool PVXMLSession::ProcessNode ( ) [protected, virtual]
virtual PBoolean PVXMLSession::RetreiveResource ( const PURL url,
PString contentType,
PFilePath fn,
PBoolean  useCache = true 
) [virtual]
void PVXMLSession::SayAs ( const PString className,
const PString text 
) [protected]
void PVXMLSession::SayAs ( const PString className,
const PString text,
const PString voice 
) [protected]
bool PVXMLSession::SetCurrentForm ( const PString id,
bool  fullURI 
)
virtual void PVXMLSession::SetPause ( PBoolean  pause) [virtual]
PTextToSpeech* PVXMLSession::SetTextToSpeech ( PTextToSpeech *  tts,
PBoolean  autoDelete = false 
)
PTextToSpeech* PVXMLSession::SetTextToSpeech ( const PString ttsName)
void PVXMLSession::SetTransferComplete ( bool  state)
virtual void PVXMLSession::SetVar ( const PString ostr,
const PString val 
) [virtual]
virtual PBoolean PVXMLSession::StartRecording ( const PFilePath fn,
PBoolean  recordDTMFTerm,
const PTimeInterval recordMaxTime,
const PTimeInterval recordFinalSilence 
) [virtual]
static PTimeInterval PVXMLSession::StringToTime ( const PString str) [static]
virtual PBoolean PVXMLSession::TraverseAudio ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseBreak ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseCatch ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseChoice ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraversedField ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraversedForm ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseDisconnect ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraversedMenu ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraversedRecord ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraversedTransfer ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseError ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseExit ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseField ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseFilled ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseForm ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseGoto ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseGrammar ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseIf ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseMenu ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseNoInput ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseNoMatch ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraversePrompt ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseProperty ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseRecord ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseSayAs ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseSubmit ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseTransfer ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseValue ( PXMLElement element) [virtual]
virtual PBoolean PVXMLSession::TraverseVar ( PXMLElement element) [virtual]
virtual void PVXMLSession::Trigger ( ) [virtual]

References m_sessionMutex.


Member Data Documentation

bool PVXMLSession::m_abortVXML [protected]
enum { ... } PVXMLSession::m_recordingStatus [protected]
PTextToSpeech* PVXMLSession::m_textToSpeech [protected]

Referenced by GetTextToSpeech().

enum { ... } PVXMLSession::m_transferStatus [protected]
std::queue<char> PVXMLSession::m_userInputQueue [protected]

Referenced by IsLoaded().

bool PVXMLSession::m_xmlChanged [protected]

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines