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: