Yate
Driver Class Referenceabstract

A Channel driver module. More...

#include <yatephone.h>

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

Public Member Functions

virtual void * getObject (const String &name) const
 
const Stringprefix () const
 
bool varchan () const
 
ObjListchannels ()
 
virtual Channelfind (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 ()
 
- Public Member Functions inherited from MessageReceiver

Protected Member Functions

 Driver (const char *name, const char *type=0)
 
virtual void initialize ()
 
void setup (const char *prefix=0, bool minimal=false)
 
virtual bool received (Message &msg, int id)
 
virtual void genUpdate (Message &msg)
 
virtual bool hasLine (const String &line) const
 
virtual bool msgRoute (Message &msg)
 
virtual bool msgExecute (Message &msg, String &dest)=0
 
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 msgTimer (Message &msg)
 
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)
 

Friends

class Router
 
class Channel
 

Additional Inherited Members

- 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 ()
 
- 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)
 
- Protected Attributes inherited from Module
enum TelEngine::Module:: { ... }  RelayID
 

Detailed Description

A Channel driver module.

Driver is a module specialized for implementing channel drivers

Constructor & Destructor Documentation

◆ Driver()

Driver ( const char * name,
const char * type = 0 )
protected

Constructor

Parameters
namePlugin name of this driver
typeType of the driver: "fixchans", "varchans", etc.

Member Function Documentation

◆ canAccept()

virtual bool canAccept ( bool routers = true)
virtual

Check if new connections can be accepted

Parameters
routersSet to true to check routing threads for incoming connections
Returns
True if at least one new connection can be accepted, false if not

◆ canRoute()

virtual bool canRoute ( )
virtual

Check if new incoming connections can be routed

Returns
True if at least one new connection can be routed, false if not

◆ canStopCall()

virtual bool canStopCall ( ) const
inlineprotectedvirtual

Module is able to simulate a call without generating anything at protocol layer

Returns
True if module is able

◆ chanCount()

int chanCount ( ) const
inline

Get the number of running channels

Returns
Number of channels running at this time

◆ channels()

ObjList & channels ( )
inline

Get the list of channels of this driver

Returns
A reference to the channel list

◆ commandComplete()

virtual bool commandComplete ( Message & msg,
const String & partLine,
const String & partWord )
protectedvirtual

Complete a command line

Parameters
msgMessage to return completion into
partLinePartial line to complete, excluding the last word
partWordPartial word to complete
Returns
True to stop processing the message, false to try other handlers

Reimplemented from Module.

◆ dropAll()

virtual void dropAll ( Message & msg)
virtual

Drop all current channels

Parameters
msgNotification message

◆ dtmfDups()

void dtmfDups ( bool duplicates)
inlineprotected

Set the DTMF duplicates allowed flag

Parameters
duplicatesTrue to allow DTMF duplicate messages

◆ find()

virtual Channel * find ( const String & id) const
virtual

Find a channel by id

Parameters
idUnique identifier of the channel to find
Returns
Pointer to the channel or NULL if not found

◆ genUpdate()

virtual void genUpdate ( Message & msg)
protectedvirtual

Opportunity to modify the update message

Parameters
msgStatus update message

Reimplemented from Module.

◆ getObject()

virtual void * getObject ( const String & name) const
virtual

Get a pointer to a derived class given that class name

Parameters
nameName of the class we are asking for
Returns
Pointer to the requested class or NULL if this object doesn't implement it

Reimplemented from Module.

◆ hasLine()

virtual bool hasLine ( const String & line) const
protectedvirtual

Check if driver owns a client line (registered to an external server)

Parameters
lineName of the line to check
Returns
True if this driver owns line with the specified name

◆ initialize()

virtual void initialize ( )
protectedvirtual

This method is called to initialize the loaded module

Reimplemented from Module.

Reimplemented in ClientDriver.

◆ isBusy()

virtual bool isBusy ( ) const
virtual

Check if the driver is actively used.

Returns
True if the driver is in use, false if should be ok to restart

Reimplemented from Plugin.

◆ lastid()

unsigned int lastid ( ) const
inline

Get the current (last used) unique numeric id from a sequence

Returns
The driver unique number

◆ loadLimits()

virtual void loadLimits ( )
protectedvirtual

Load the global limits from the main config file

◆ maxChans() [1/2]

int maxChans ( ) const
inline

Get the maximum number of running channels for this driver

Returns
Maximum number of calls to run simultaneously, zero to accept all

◆ maxChans() [2/2]

void maxChans ( int ncalls)
inlineprotected

Set the maximum number of running channels for this driver

Parameters
ncallsNumber of calls to run simultaneously, zero to accept all

◆ maxRoute()

void maxRoute ( int ncalls)
inlineprotected

Set the maximum number of routing messages for this driver

Parameters
ncallsNumber of calls to route simultaneously, zero to accept all

◆ msgExecute()

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

Create an outgoing calling channel

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

Implemented in ClientDriver.

◆ msgRoute()

virtual bool msgRoute ( Message & msg)
protectedvirtual

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 Module.

Reimplemented in ClientDriver.

◆ nextid()

unsigned int nextid ( )

Get the next unique numeric id from a sequence

Returns
A driver unique number that increments by 1 at each call

◆ prefix()

const String & prefix ( ) const
inline

Retrieve the prefix that is used as base for all channels

Returns
The driver's prefix

◆ received()

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

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 Module.

Reimplemented in ClientDriver.

◆ routed()

int routed ( ) const
inline

Get the number of calls successfully routed

Returns
Number of calls that have gone past the routing stage

◆ routing()

int routing ( ) const
inline

Get the number of calls currently in the routing stage

Returns
Number of router threads currently running

◆ setDebug()

virtual bool setDebug ( Message & msg,
const String & target )
protectedvirtual

Set the local debugging level

Parameters
msgDebug setting message
targetString to match for local settings

Reimplemented from Module.

◆ setup()

void setup ( const char * prefix = 0,
bool minimal = false )
protected

Install standard message relays and set up the prefix

Parameters
prefixPrefix to use with channels of this driver
minimalInstall just a minimal set of message relays

◆ statusDetail()

virtual void statusDetail ( String & str)
protectedvirtual

Build the channel list part of the status answer

Parameters
strString variable to fill up

Reimplemented from Module.

◆ statusModule()

virtual void statusModule ( String & str)
protectedvirtual

Build the module identification part of the status answer

Parameters
strString variable to fill up

Reimplemented from Module.

◆ statusParams()

virtual void statusParams ( String & str)
protectedvirtual

Build the parameter reporting part of the status answer

Parameters
strString variable to fill up

Reimplemented from Module.

◆ timeout() [1/2]

int timeout ( ) const
inline

Get the default driver timeout

Returns
Timeout value in milliseconds

◆ timeout() [2/2]

void timeout ( int tout)
inlineprotected

Set the default driver timeout

Parameters
toutNew timeout in milliseconds or zero to disable

◆ total()

int total ( ) const
inline

Get the total number of calls ever created

Returns
Number of channels ever created for this driver

◆ varchan() [1/2]

bool varchan ( ) const
inline

Check if this driver is for dynamic (variable number) channels

Returns
True if the channels are dynamic, false for fixed

◆ varchan() [2/2]

void varchan ( bool variable)
inlineprotected

Set if this driver is for dynamic (variable number) channels

Parameters
variableTrue if the channels are dynamic, false for fixed

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