A Channel driver module.
More...
#include <yatephone.h>
|
| 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) |
|
| Module (const char *name, const char *type=0, bool earlyInit=false) |
|
virtual | ~Module () |
|
virtual void | initialize () |
|
void | setup () |
|
bool | relayInstalled (int id) const |
|
bool | installRelay (int id, unsigned priority=100) |
|
bool | installRelay (const char *name, unsigned priority=100) |
|
bool | installRelay (int id, const char *name, unsigned priority=100) |
|
bool | installRelay (MessageRelay *relay) |
|
bool | uninstallRelay (MessageRelay *relay, bool delRelay=true) |
|
bool | uninstallRelay (int id, bool delRelay=true) |
|
bool | uninstallRelays () |
|
virtual bool | received (Message &msg, int id) |
|
virtual void | genUpdate (Message &msg) |
|
virtual void | msgTimer (Message &msg) |
|
virtual void | msgStatus (Message &msg) |
|
virtual bool | msgRoute (Message &msg) |
|
virtual bool | msgCommand (Message &msg) |
|
virtual void | statusModule (String &str) |
|
virtual void | statusParams (String &str) |
|
virtual void | statusDetail (String &str) |
|
virtual bool | commandExecute (String &retVal, const String &line) |
|
virtual bool | commandComplete (Message &msg, const String &partLine, const String &partWord) |
|
virtual bool | setDebug (Message &msg, const String &target) |
|
void | debugName (const char *name) |
|
|
class | Router |
|
class | Channel |
|
|
static unsigned int | updateDelay () |
|
static void | updateDelay (unsigned int delay) |
|
static bool | itemComplete (String &itemList, const String &item, const String &partWord) |
|
static void * | getObject (const String &name, const GenObject *obj) |
|
static bool | getObjCounting () |
|
static void | setObjCounting (bool enable) |
|
static NamedCounter * | getObjCounter (const String &name, bool create=true) |
|
static ObjList & | getObjCounters () |
|
static int | count () |
|
static int | locks () |
|
static bool | efficientTimedLock () |
|
static void | wait (unsigned long maxwait) |
|
static unsigned long | wait () |
|
static void | startUsingNow () |
|
static void | enableSafety (bool safe=true) |
|
static bool | safety () |
|
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 const char * | messageName (int id) |
|
static int | relayId (const char *name) |
|
enum TelEngine::Module:: { ... } | RelayID |
|
A Channel driver module.
Driver is a module specialized for implementing channel drivers
◆ Driver()
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. |
◆ canAccept()
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
◆ 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()
Get the number of running channels
- Returns
- Number of channels running at this time
◆ channels()
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
-
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.
◆ dropAll()
virtual void dropAll |
( |
Message & |
msg | ) |
|
|
virtual |
Drop all current channels
- Parameters
-
◆ dtmfDups()
void dtmfDups |
( |
bool |
duplicates | ) |
|
|
inlineprotected |
Set the DTMF duplicates allowed flag
- Parameters
-
duplicates | True to allow DTMF duplicate messages |
◆ find()
Find a channel by id
- Parameters
-
id | Unique 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
-
Reimplemented from Module.
◆ getObject()
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.
◆ hasLine()
virtual bool hasLine |
( |
const String & |
line | ) |
const |
|
protectedvirtual |
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
◆ 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]
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
-
ncalls | Number 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
-
ncalls | Number of calls to route simultaneously, zero to accept all |
◆ msgExecute()
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.
◆ 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
-
- Returns
- True to stop processing the message, false to try other handlers
Reimplemented from Module.
Reimplemented in ClientDriver.
◆ 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
-
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.
◆ routed()
Get the number of calls successfully routed
- Returns
- Number of calls that have gone past the routing stage
◆ routing()
Get the number of calls currently in the routing stage
- Returns
- Number of router threads currently running
◆ setDebug()
Set the local debugging level
- Parameters
-
msg | Debug setting message |
target | String 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
-
prefix | Prefix to use with channels of this driver |
minimal | Install just a minimal set of message relays |
◆ statusDetail()
virtual void statusDetail |
( |
String & |
str | ) |
|
|
protectedvirtual |
Build the channel list part of the status answer
- Parameters
-
Reimplemented from Module.
◆ statusModule()
virtual void statusModule |
( |
String & |
str | ) |
|
|
protectedvirtual |
Build the module identification part of the status answer
- Parameters
-
Reimplemented from Module.
◆ statusParams()
virtual void statusParams |
( |
String & |
str | ) |
|
|
protectedvirtual |
Build the parameter reporting part of the status answer
- Parameters
-
Reimplemented from Module.
◆ timeout() [1/2]
Get the default driver timeout
- Returns
- Timeout value in milliseconds
◆ timeout() [2/2]
Set the default driver timeout
- Parameters
-
tout | New timeout in milliseconds or zero to disable |
◆ total()
Get the total number of calls ever created
- Returns
- Number of channels ever created for this driver
◆ varchan() [1/2]
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
-
variable | True if the channels are dynamic, false for fixed |
The documentation for this class was generated from the following file: