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 () |
|
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 () |
|
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 void | msgTimer (Message &msg) |
|
virtual void | msgStatus (Message &msg) |
|
virtual bool | msgCommand (Message &msg) |
|
virtual bool | commandExecute (String &retVal, const String &line) |
|
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 = 0x0fffffff,
Private = 0x10000000
} |
|
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 |
( |
const char * |
name, |
|
|
const char * |
type = 0 |
|
) |
| |
|
protected |
Constructor
- Parameters
-
name | Plugin name of this driver |
type | Type of the driver: "fixchans", "varchans", etc. |
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
Get the number of running channels
- Returns
- Number of channels running at this time
Get the list of channels of this driver
- Returns
- A reference to the channel list
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.
virtual void dropAll |
( |
Message & |
msg | ) |
|
|
virtual |
Drop all current channels
- Parameters
-
void dtmfDups |
( |
bool |
duplicates | ) |
|
|
inlineprotected |
Set the DTMF duplicates allowed flag
- Parameters
-
duplicates | True to allow DTMF duplicate messages |
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 void genUpdate |
( |
Message & |
msg | ) |
|
|
protectedvirtual |
Opportunity to modify the update message
- Parameters
-
Reimplemented from Module.
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.
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
virtual void initialize |
( |
| ) |
|
|
protectedvirtual |
This method is called to initialize the loaded module
Reimplemented from Module.
Reimplemented in ClientDriver.
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.
unsigned int lastid |
( |
| ) |
const |
|
inline |
Get the current (last used) unique numeric id from a sequence
- Returns
- The driver unique number
virtual void loadLimits |
( |
| ) |
|
|
protectedvirtual |
Load the global limits from the main config file
Get the maximum number of running channels for this driver
- Returns
- Maximum number of calls to run simultaneously, zero to accept all
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 |
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 |
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 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.
Get the next unique numeric id from a sequence
- Returns
- A driver unique number that increments by 1 at each call
const String& prefix |
( |
| ) |
const |
|
inline |
Retrieve the prefix that is used as base for all channels
- Returns
- The driver's prefix
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.
Get the number of calls successfully routed
- Returns
- Number of calls that have gone past the routing stage
Get the number of calls currently in the routing stage
- Returns
- Number of router threads currently running
Set the local debugging level
- Parameters
-
msg | Debug setting message |
target | String to match for local settings |
Reimplemented from Module.
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 void statusDetail |
( |
String & |
str | ) |
|
|
protectedvirtual |
Build the channel list part of the status answer
- Parameters
-
Reimplemented from Module.
virtual void statusModule |
( |
String & |
str | ) |
|
|
protectedvirtual |
Build the module identification part of the status answer
- Parameters
-
Reimplemented from Module.
virtual void statusParams |
( |
String & |
str | ) |
|
|
protectedvirtual |
Build the parameter reporting part of the status answer
- Parameters
-
Reimplemented from Module.
Get the default driver timeout
- Returns
- Timeout value in milliseconds
Set the default driver timeout
- Parameters
-
tout | New timeout in milliseconds or zero to disable |
Get the total number of calls ever created
- Returns
- Number of channels ever created for this driver
Check if this driver is for dynamic (variable number) channels
- Returns
- True if the channels are dynamic, false for fixed
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: