Yate
ClientDriver Class Referenceabstract

Base Driver with client specific functions. More...

#include <yatecbase.h>

Inheritance diagram for ClientDriver:
Driver Module Plugin Mutex MessageReceiver GenObject DebugEnabler Lockable GenObject

Public Member Functions

virtual void initialize ()=0
virtual bool msgExecute (Message &msg, String &dest)
virtual void msgTimer (Message &msg)
virtual bool msgRoute (Message &msg)
virtual bool received (Message &msg, int id)
const StringactiveId () const
bool setActive (const String &id=String::empty())
ClientChannel * findLine (int line)
Public Member Functions inherited from Driver
virtual void * getObject (const String &name) const
const Stringprefix () const
bool varchan () const
ObjListchannels ()
virtual Channel * find (const String &id) const
virtual bool isBusy () const
virtual void dropAll (Message &msg)
virtual bool canAccept (bool routers=true)
virtual bool canRoute ()
unsigned int nextid ()
unsigned int lastid () const
int timeout () const
int routing () const
int routed () const
int total () const
int chanCount () const
int maxChans () const
Public Member Functions inherited from Module
const Stringtype () const
void changed ()
bool filterInstalled () const
bool filterDebug (const String &item) const
Public Member Functions inherited from Plugin
 Plugin (const char *name, bool earlyInit=false)
virtual ~Plugin ()
virtual const StringtoString () const
const Stringname () const
NamedCounterobjectsCounter () const
bool earlyInit () const
Public Member Functions inherited from GenObject
 GenObject ()
virtual ~GenObject ()
virtual bool alive () const
virtual void destruct ()
virtual const StringtraceId () const
NamedCountergetObjCounter () const
NamedCountersetObjCounter (NamedCounter *counter)
Public Member Functions inherited from DebugEnabler
 DebugEnabler (int level=TelEngine::debugLevel(), bool enabled=true)
int debugLevel () const
int debugLevel (int level)
bool debugEnabled () const
void debugEnabled (bool enable)
const char * debugName () const
bool debugAt (int level) const
bool debugChained () const
void debugChain (const DebugEnabler *chain=0)
void debugCopy (const DebugEnabler *original=0)
void debugSet (const char *desc)
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
virtual MutexlockableMutex ()
Public Member Functions inherited from Lockable
virtual ~Lockable ()
virtual bool check (long maxwait=-1)
virtual bool unlockAll ()
virtual SemaphorelockableSemaphore ()
virtual RWLocklockableRWLock ()

Static Public Member Functions

static ClientDriver * self ()
static const Stringdevice ()
static void dropCalls (const char *reason=0)
static bool setAudioTransfer (const String &id, const String &target=String::empty())
static bool setConference (const String &id, bool in, const String *confName=0, bool buildFromChan=false)
static ClientChannel * findChan (const String &id)
static ClientChannel * findChanByPeer (const String &peer)
static ClientChannel * findActiveChan ()
static void dropChan (const String &chan, const char *reason=0, bool peer=false)
Static Public Member Functions inherited from Module
static unsigned int updateDelay ()
static void updateDelay (unsigned int delay)
static bool itemComplete (String &itemList, const String &item, const String &partWord)
static bool itemComplete (String &itemList, const ObjList &list, const String &partWord)
static bool itemComplete (String &itemList, const TokenDict *dict, const String &partWord)
static bool itemComplete (String &itemList, const TokenDict64 *dict, const String &partWord)
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

static String s_confName
static bool s_dropConfPeer

Protected Member Functions

void setup ()
Protected Member Functions inherited from Driver
 Driver (const char *name, const char *type=0)
void setup (const char *prefix=0, bool minimal=false)
virtual void genUpdate (Message &msg)
virtual bool hasLine (const String &line) const
virtual bool commandComplete (Message &msg, const String &partLine, const String &partWord)
virtual void statusModule (String &str)
virtual void statusParams (String &str)
virtual void statusDetail (String &str)
virtual bool setDebug (Message &msg, const String &target)
virtual void loadLimits ()
virtual bool canStopCall () const
void varchan (bool variable)
void timeout (int tout)
void maxRoute (int ncalls)
void maxChans (int ncalls)
void dtmfDups (bool duplicates)
Protected Member Functions inherited from Module
 Module (const char *name, const char *type=0, bool earlyInit=false)
virtual ~Module ()
void setup ()
bool relayInstalled (int id) const
bool installRelay (int id, unsigned priority=100, NamedString *filter=0)
bool installRelay (const char *name, unsigned priority=100, NamedString *filter=0)
bool installRelay (int id, const char *name, unsigned priority=100, NamedString *filter=0)
bool installRelay (MessageRelay *relay)
bool uninstallRelay (MessageRelay *relay, bool delRelay=true)
bool uninstallRelay (int id, bool delRelay=true)
bool uninstallRelays ()
virtual void msgStatus (Message &msg)
virtual bool msgCommand (Message &msg)
virtual bool commandExecute (String &retVal, const String &line)
Protected Member Functions inherited from DebugEnabler
void debugName (const char *name)

Protected Attributes

String m_activeId
Protected Attributes inherited from Module
enum TelEngine::Module:: { ... }  RelayID

Static Protected Attributes

static ClientDriver * s_driver
static String s_device

Friends

class ClientChannel

Additional Inherited Members

Protected Types inherited from Module
enum  {
  Status = 0x00000001 , Timer = 0x00000002 , Level = 0x00000004 , Command = 0x00000008 ,
  Help = 0x00000010 , Halt = 0x00000020 , Route = 0x00000040 , Stop = 0x00000080 ,
  Execute = 0x00000100 , Drop = 0x00000200 , Locate = 0x00000400 , Masquerade = 0x00000800 ,
  Ringing = 0x00001000 , Answered = 0x00002000 , Tone = 0x00004000 , Text = 0x00008000 ,
  Progress = 0x00010000 , Update = 0x00020000 , Transfer = 0x00040000 , Control = 0x00080000 ,
  MsgExecute = 0x00100000 , PubLast = 0x00ffffff , Private = 0x01000000
}
Static Protected Member Functions inherited from Module
static const char * messageName (int id)
static int relayId (const char *name)

Detailed Description

Base Driver with client specific functions.

Abstract client Driver that implements some of the specific functionality

Member Function Documentation

◆ activeId()

const String & activeId ( ) const
inline

Get the active channel's id

Returns
The active channel's id

Referenced by findActiveChan().

◆ device()

const String & device ( )
inlinestatic

Get the current audio device's name

Returns
The current audio device's name

◆ dropCalls()

void dropCalls ( const char * reason = 0)
static

Drop all calls belonging to the active driver

Parameters
reasonOptional drop reason

◆ dropChan()

void dropChan ( const String & chan,
const char * reason = 0,
bool peer = false )
static

Drop a channel

Parameters
chanChannel id
reasonOptional reason
peerSet it to true to drop a client channel peer used to reconnect

◆ findActiveChan()

ClientChannel * findActiveChan ( )
inlinestatic

Get the active channel

Returns
Referenced ClientChannel pointer or 0

References activeId(), findChan(), and self().

◆ findChan()

ClientChannel * findChan ( const String & id)
static

Get a referenced channel found by its id

Parameters
idThe id of the channel to find
Returns
Referenced ClientChannel pointer or 0

Referenced by findActiveChan().

◆ findChanByPeer()

ClientChannel * findChanByPeer ( const String & peer)
static

Get a referenced channel whose stored peer is the given one

Parameters
peerPeer id to check
Returns
Referenced ClientChannel pointer or 0

◆ findLine()

ClientChannel * findLine ( int line)

Find a channel by its line

Parameters
lineThe line to find
Returns
ClientChannel pointer of 0

◆ initialize()

virtual void initialize ( )
pure virtual

This method is called to initialize the loaded module

Reimplemented from Driver.

◆ msgExecute()

virtual bool msgExecute ( Message & msg,
String & dest )
virtual

Create an outgoing calling channel

Parameters
msgCall execute message
destDestination of the new call
Returns
True if outgoing call was created

Implements Driver.

◆ msgRoute()

virtual bool msgRoute ( Message & msg)
virtual

Routing message handler. The default implementation routes to this driver if it owns a line named in the "account" or "line" parameter.

Parameters
msgCall routing message
Returns
True to stop processing the message, false to try other handlers

Reimplemented from Driver.

◆ msgTimer()

virtual void msgTimer ( Message & msg)
virtual

Timer message handler.

Parameters
msgTime message

Reimplemented from Module.

◆ received()

virtual bool received ( Message & msg,
int id )
virtual

Message receiver handler

Parameters
msgThe received message
idThe identifier with which the relay was created
Returns
True to stop processing, false to try other handlers

Reimplemented from Driver.

◆ self()

ClientDriver * self ( )
inlinestatic

Get the global client driver object's address

Returns
The global client driver object's address

Referenced by findActiveChan().

◆ setActive()

bool setActive ( const String & id = String::empty())

Set/reset the active channel. Does nothing if the selected channel is the active one. Put the active channel on hold before trying to set the active channel

Parameters
idThe new active channel's id. Set to empty if don't want to set a new active channel
Returns
True on success

References String::empty().

◆ setAudioTransfer()

bool setAudioTransfer ( const String & id,
const String & target = String::empty() )
static

Attach/detach client channels peers' source/consumer

Parameters
idThe id of the channel to tranfer
targetThe transfer target. Leave blank to reset the channel's transfer id
Returns
True on success

References String::empty().

◆ setConference()

bool setConference ( const String & id,
bool in,
const String * confName = 0,
bool buildFromChan = false )
static

Attach/detach a client channel to/from a conference room

Parameters
idThe id of the channel to process
inTrue to enter the conference room, false to exit from it
confNameOptional id of the conference. Set to 0 to use the default one Ignored if 'in' is false
buildFromChanBuild conference name from channel id if true
Returns
True on success

Member Data Documentation

◆ s_confName

String s_confName
static

The name to use when the client is in conference

◆ s_dropConfPeer

bool s_dropConfPeer
static

Indicates wether a channel should drop its former peer when terminated while in conference


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