Driver Class Reference

A Channel driver module. More...

#include <yatephone.h>

Inheritance diagram for Driver:

Module Plugin Mutex MessageReceiver DebugEnabler GenObject GenObject ClientDriver

List of all members.

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

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 ()
void varchan (bool variable)
void timeout (int tout)
void maxRoute (int ncalls)
void maxChans (int ncalls)
void dtmfDups (bool duplicates)

Friends

class Router
class Channel


Detailed Description

A Channel driver module.

Driver is a module specialized for implementing channel drivers


Constructor & Destructor Documentation

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

Constructor

Parameters:
name Plugin name of this driver
type Type of the driver: "fixchans", "varchans", etc.


Member Function Documentation

virtual void* getObject ( const String name  )  const [virtual]

Get a pointer to a derived class given that class name

Parameters:
name Name 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.

const String& prefix (  )  const [inline]

Retrive the prefix that is used as base for all channels

Returns:
The driver's prefix

bool varchan (  )  const [inline]

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

Returns:
True if the channels are dynamic, false for fixed

ObjList& channels (  )  [inline]

Get the list of channels of this driver

Returns:
A reference to the channel list

virtual Channel* find ( const String id  )  const [virtual]

Find a channel by id

Parameters:
id Unique identifier of the channel to find
Returns:
Pointer to the channel or NULL if not found

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.

virtual void dropAll ( Message msg  )  [virtual]

Drop all current channels

Parameters:
msg Notification message

virtual bool canAccept ( bool  routers = true  )  [virtual]

Check if new connections can be accepted

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

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

unsigned int nextid (  ) 

Get the next unique numeric id from a sequence

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

unsigned int lastid (  )  const [inline]

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

Returns:
The driver unique number

int timeout (  )  const [inline]

Get the default driver timeout

Returns:
Timeout value in milliseconds

int routing (  )  const [inline]

Get the number of calls currently in the routing stage

Returns:
Number of router threads currently running

int routed (  )  const [inline]

Get the number of calls successfully routed

Returns:
Number of calls that have gone past the routing stage

int total (  )  const [inline]

Get the total number of calls ever created

Returns:
Number of channels ever created for this driver

virtual void initialize (  )  [protected, virtual]

This method is called to initialize the loaded module

Reimplemented from Module.

Reimplemented in ClientDriver.

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

Install standard message relays and set up the prefix

Parameters:
prefix Prefix to use with channels of this driver
minimal Install just a minimal set of message relays

virtual bool received ( Message msg,
int  id 
) [protected, virtual]

Message receiver handler

Parameters:
msg The received message
id The identifier with which the relay was created
Returns:
True to stop processing, false to try other handlers

Reimplemented from Module.

Reimplemented in ClientDriver.

virtual void genUpdate ( Message msg  )  [protected, virtual]

Opportunity to modify the update message

Parameters:
msg Status update message

Reimplemented from Module.

virtual bool hasLine ( const String line  )  const [protected, virtual]

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

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

virtual bool msgRoute ( Message msg  )  [protected, virtual]

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

Parameters:
msg Call routing message
Returns:
True to stop processing the message, false to try other handlers

Reimplemented from Module.

Reimplemented in ClientDriver.

virtual bool msgExecute ( Message msg,
String dest 
) [protected, pure virtual]

Create an outgoing calling channel

Parameters:
msg Call execute message
dest Destination of the new call
Returns:
True if outgoing call was created

Implemented in ClientDriver.

virtual bool commandComplete ( Message msg,
const String partLine,
const String partWord 
) [protected, virtual]

Complete a command line

Parameters:
msg Message to return completion into
partLine Partial line to complete, excluding the last word
partWord Partial word to complete
Returns:
True to stop processing the message, false to try other handlers

Reimplemented from Module.

virtual void statusModule ( String str  )  [protected, virtual]

Build the module identification part of the status answer

Parameters:
str String variable to fill up

Reimplemented from Module.

virtual void statusParams ( String str  )  [protected, virtual]

Build the parameter reporting part of the status answer

Parameters:
str String variable to fill up

Reimplemented from Module.

virtual void statusDetail ( String str  )  [protected, virtual]

Build the channel list part of the status answer

Parameters:
str String variable to fill up

Reimplemented from Module.

virtual bool setDebug ( Message msg,
const String target 
) [protected, virtual]

Set the local debugging level

Parameters:
msg Debug setting message
target String to match for local settings

Reimplemented from Module.

virtual void loadLimits (  )  [protected, virtual]

Load the global limits from the main config file

void varchan ( bool  variable  )  [inline, protected]

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

Parameters:
variable True if the channels are dynamic, false for fixed

void timeout ( int  tout  )  [inline, protected]

Set the default driver timeout

Parameters:
tout New timeout in milliseconds or zero to disable

void maxRoute ( int  ncalls  )  [inline, protected]

Set the maximum number of routing messages for this driver

Parameters:
ncalls Number of calls to route simultaneously, zero to accept all

void maxChans ( int  ncalls  )  [inline, protected]

Set the maximum number of running channels for this driver

Parameters:
ncalls Number of calls to run simultaneously, zero to accept all

void dtmfDups ( bool  duplicates  )  [inline, protected]

Set the DTMF duplicates allowed flag

Parameters:
duplicates True to allow DTMF duplicate messages


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

Generated on Mon Aug 11 16:18:52 2008 for Yate by  doxygen 1.5.6