Yate
JGSession0 Class Reference

The version 0 of a jingle session. More...

#include <yatejingle.h>

Inheritance diagram for JGSession0:
JGSession RefObject Mutex GenObject Lockable

Public Member Functions

virtual ~JGSession0 ()
 
virtual bool accept (const ObjList &contents, String *stanzaId=0)
 
- Public Member Functions inherited from JGSession
virtual ~JGSession ()
 
Version version () const
 
JGEngineengine () const
 
bool outgoing () const
 
const Stringsid () const
 
const JabberIDlocal () const
 
const JabberIDremote () const
 
State state () const
 
int flag (int mask) const
 
void setFlags (int value)
 
void * userData ()
 
void userData (void *userdata)
 
const Stringline () const
 
void line (const String &acc)
 
Action getAction (XmlElement *xml)
 
bool acceptIq (XMPPUtils::IqType type, const JabberID &from, const JabberID &to, const String &id, XmlElement *xml)
 
bool confirmResult (XmlElement *xml)
 
bool confirmError (XmlElement *&xml, XMPPError::Type error, const char *text=0, XMPPError::ErrorType type=XMPPError::TypeModify)
 
virtual bool hangup (XmlElement *reason=0)
 
virtual XmlElementcreateRtpInfoXml (RtpInfo info)
 
virtual XmlElementcreateReason (int reason, const char *text=0, XmlElement *child=0)
 
virtual XmlElementcreateTransferReason (int reason)
 
virtual XmlElementcreateRtpSessionReason (int reason)
 
bool sendContent (Action action, const JGSessionContent *content, String *stanzaId=0)
 
virtual bool sendStreamHosts (const ObjList &hosts, String *stanzaId=0)
 
virtual bool sendStreamHostUsed (const char *jid, const char *stanzaId)
 
void buildSocksDstAddr (String &buf)
 
bool sendInfo (XmlElement *xml, String *stanzaId=0, XmlElement *extra=0)
 
bool sendDtmf (const char *dtmf, unsigned int msDuration=0, String *stanzaId=0)
 
bool hasFeature (XMPPNamespace::Type feature)
 
- Public Member Functions inherited from RefObject
 RefObject ()
 
virtual ~RefObject ()
 
virtual void * getObject (const String &name) const
 
virtual bool alive () const
 
bool ref ()
 
bool deref ()
 
int refcount () const
 
virtual void destruct ()
 
- Public Member Functions inherited from GenObject
 GenObject ()
 
virtual ~GenObject ()
 
virtual const StringtoString () const
 
virtual const StringtraceId () const
 
NamedCountergetObjCounter () const
 
NamedCountersetObjCounter (NamedCounter *counter)
 
- Public Member Functions inherited from Mutex
 Mutex (bool recursive=false, const char *name=0)
 
 Mutex (const Mutex &original)
 
 ~Mutex ()
 
Mutexoperator= (const Mutex &original)
 
virtual bool lock (long maxwait=-1)
 
virtual bool unlock ()
 
virtual bool locked () const
 
const char * owner () const
 
bool recursive () const
 
- Public Member Functions inherited from Lockable
virtual ~Lockable ()
 
virtual bool check (long maxwait=-1)
 
virtual bool unlockAll ()
 

Protected Member Functions

 JGSession0 (JGEngine *engine, const JabberID &caller, const JabberID &called)
 
 JGSession0 (JGEngine *engine, const JabberID &caller, const JabberID &called, XmlElement *xml, const String &id)
 
virtual bool initiate (const ObjList &contents, XmlElement *extra, const char *subject=0)
 
virtual bool sendContent (Action action, const ObjList &contents, String *stanzaId=0)
 
virtual JGEventdecodeJingle (XmlElement *&xml, XmlElement *child)
 
virtual XmlElementcreateJingle (Action action, XmlElement *element1=0, XmlElement *element2=0, XmlElement *element3=0)
 
virtual XmlElementcreateDtmf (const char *dtmf, unsigned int msDuration=0)
 
- Protected Member Functions inherited from JGSession
 JGSession (Version ver, JGEngine *engine, const JabberID &caller, const JabberID &called)
 
 JGSession (Version ver, JGEngine *engine, const JabberID &caller, const JabberID &called, XmlElement *xml, const String &id)
 
virtual JGEventgetEvent (u_int64_t time)
 
virtual void destroyed ()
 
bool sendStanza (XmlElement *stanza, String *stanzaId=0, bool confirmation=true, bool ping=false, unsigned int toutMs=0)
 
bool sendPing (u_int64_t msecNow)
 
virtual JGEventprocessJingleSetEvent (JGEvent *&ev)
 
virtual JGEventprocessJabberIqResponse (bool result, XmlElement *&xml)
 
virtual JGEventprocessFileTransfer (bool set, XmlElement *&xml, XmlElement *child)
 
void eventTerminated (JGEvent *event)
 
void changeState (State newState)
 
- Protected Member Functions inherited from RefObject
virtual void zeroRefs ()
 
bool resurrect ()
 

Protected Attributes

String m_sessContentName
 
Action m_candidatesAction
 
- Protected Attributes inherited from JGSession
Version m_version
 
State m_state
 
int m_flags
 
u_int64_t m_timeToPing
 
JGEnginem_engine
 
bool m_outgoing
 
String m_sid
 
JabberID m_local
 
JabberID m_remote
 
XmlFragment m_queue
 
JGEventm_lastEvent
 
bool m_recvTerminate
 
void * m_private
 
String m_localSid
 
u_int32_t m_stanzaId
 
ObjList m_sentStanza
 
String m_line
 

Friends

class JGEvent
 
class JGEngine
 

Additional Inherited Members

- Public Types inherited from JGSession
enum  Version { Version0 = 0 , Version1 = 1 , VersionUnknown }
 
enum  Reason {
  ReasonUnknown = 0 , ReasonOk , ReasonBusy , ReasonDecline ,
  ReasonCancel , ReasonExpired , ReasonConn , ReasonFailApp ,
  ReasonFailTransport , ReasonGone , ReasonParams , ReasonMedia ,
  ReasonTransport , ReasonApp , ReasonSecurity , ReasonTimeout ,
  ReasonGeneral , ReasonAltSess , Transferred , CryptoRequired ,
  InvalidCrypto
}
 
enum  RtpInfo { RtpActive , RtpHold , RtpMute , RtpRinging }
 
enum  State {
  Idle = 0 , Pending = 1 , Active = 2 , Ending = 3 ,
  Destroy = 4
}
 
enum  Action {
  ActAccept , ActInitiate , ActTerminate , ActReject ,
  ActInfo , ActTransportInfo , ActTransportAccept , ActTransportReject ,
  ActTransportReplace , ActCandidates , ActContentAccept , ActContentAdd ,
  ActContentModify , ActContentReject , ActContentRemove , ActContentInfo ,
  ActDescriptionInfo , ActTransfer , ActRinging , ActTrying ,
  ActReceived , ActHold , ActActive , ActMute ,
  ActDtmf , ActStreamHost , ActCount
}
 
enum  SessionFlag { FlagNoPing = 0x0001 , FlagRingNsRtp = 0x0002 , FlagNoOkInitiate = 0x0004 }
 
- Static Public Member Functions inherited from JGSession
static XmlElementbuildTransfer (const String &transferTo, const String &transferFrom, const String &sid=String::empty())
 
static Version lookupVersion (const char *value, Version def=VersionUnknown)
 
static const char * lookupVersion (int value, const char *def="unknown")
 
static int lookupReason (const char *value, int def=ReasonOk)
 
static const char * lookupReason (int value, const char *def=0)
 
static const char * lookupState (int state)
 
static const char * lookupAction (int act, Version ver)
 
static Action lookupAction (const char *str, Version ver)
 
- Static Public Member Functions inherited from RefObject
static bool alive (const RefObject *obj)
 
static bool efficientIncDec ()
 
- Static Public Member Functions inherited from GenObject
static void * getObject (const String &name, const GenObject *obj)
 
static bool getObjCounting ()
 
static void setObjCounting (bool enable)
 
static NamedCountergetObjCounter (const String &name, bool create=true)
 
static ObjListgetObjCounters ()
 
- Static Public Member Functions inherited from Mutex
static int count ()
 
static int locks ()
 
static bool efficientTimedLock ()
 
- Static Public Member Functions inherited from Lockable
static void wait (unsigned long maxwait)
 
static unsigned long wait ()
 
static void startUsingNow ()
 
static void enableSafety (bool safe=true)
 
static bool safety ()
 
- Static Public Attributes inherited from JGSession
static const TokenDict s_versions []
 
static const TokenDict s_reasons []
 
static const TokenDict s_rtpInfo []
 
static const TokenDict s_states []
 
static const TokenDict s_actions0 []
 
static const TokenDict s_actions1 []
 
static const TokenDict s_flagName []
 

Detailed Description

The version 0 of a jingle session.

A session implementing the old jingle protocol

Constructor & Destructor Documentation

◆ ~JGSession0()

virtual ~JGSession0 ( )
virtual

Destructor

◆ JGSession0() [1/2]

JGSession0 ( JGEngine * engine,
const JabberID & caller,
const JabberID & called )
protected

Constructor. Create an outgoing session

Parameters
engineThe engine owning this session
callerThe caller's full JID
calledThe called party's full JID

References JGSession::engine().

◆ JGSession0() [2/2]

JGSession0 ( JGEngine * engine,
const JabberID & caller,
const JabberID & called,
XmlElement * xml,
const String & id )
protected

Constructor. Create an incoming session.

Parameters
engineThe engine owning this session
callerThe caller's full JID
calledThe called party's full JID
xmlA valid Jabber Jingle xml with action session initiate
idSession id

References JGSession::engine().

Member Function Documentation

◆ accept()

virtual bool accept ( const ObjList & contents,
String * stanzaId = 0 )
virtual

Accept a Pending incoming session. This method is thread safe

Parameters
contentsThe list of accepted contents
stanzaIdOptional string to be filled with sent stanza id (used to track the response)
Returns
False if send failed

Reimplemented from JGSession.

◆ createDtmf()

virtual XmlElement * createDtmf ( const char * dtmf,
unsigned int msDuration = 0 )
protectedvirtual

Create a dtmf XML element

Parameters
dtmfThe dtmf string
msDurationThe tone duration in miliseconds. Ignored if 0
Returns
Valid XmlElement pointer or 0

Implements JGSession.

◆ createJingle()

virtual XmlElement * createJingle ( Action action,
XmlElement * element1 = 0,
XmlElement * element2 = 0,
XmlElement * element3 = 0 )
protectedvirtual

Create an 'iq' of type 'set' with a 'jingle' child

Parameters
actionThe action of the Jingle stanza
element1Optional child element
element2Optional child element
element3Optional child element
Returns
Valid XmlElement pointer

Implements JGSession.

◆ decodeJingle()

virtual JGEvent * decodeJingle ( XmlElement *& xml,
XmlElement * child )
protectedvirtual

Decode a jingle element

Parameters
xmlThe element to decode
childThe element's first child
Returns
JGEvent pointer or 0

Implements JGSession.

◆ initiate()

virtual bool initiate ( const ObjList & contents,
XmlElement * extra,
const char * subject = 0 )
protectedvirtual

Build and send the initial message on an outgoing session

Parameters
contentsThe session contents to be sent with session initiate element
extraOptional extra child to be added to the session initiate element
subjectOptional session subject
Returns
True on success

Implements JGSession.

◆ sendContent()

virtual bool sendContent ( Action action,
const ObjList & contents,
String * stanzaId = 0 )
protectedvirtual

Send a stanza with session content(s) This method is thread safe

Parameters
actionMust be a transport- action
contentsNon empty list with content(s) to send
stanzaIdOptional string to be filled with sent stanza id (used to track the response)
Returns
False if send failed

Reimplemented from JGSession.


The documentation for this class was generated from the following file: