Bayonne2 / Common C++ 2 Framework
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | Friends
ost::BayonneDriver Class Reference

The principle driver node for a given collection of spans and sessions of a given Bayonne driver family type. More...

#include <bayonne.h>

Inheritance diagram for ost::BayonneDriver:
Inheritance graph
[legend]
Collaboration diagram for ost::BayonneDriver:
Collaboration graph
[legend]

Public Types

enum   interface_t {
  IF_PSTN, IF_SPAN, IF_ISDN, IF_SS7,
  IF_INET, IF_NONE, IF_POTS =IF_PSTN
}
  Telephony endpoint interface identifiers. More...
 
  Type of call session being processed. More...
 
enum   bridge_t {
  BR_TDM, BR_INET, BR_SOFT, BR_GATE,
  BR_NONE
}
  Type of bridge used for joining ports. More...
 
  Call processing states offered in core library. More...
 
  Signaled interpreter events. More...
 
enum   event_t {
  MSGPORT_WAKEUP = 0, MSGPORT_SHUTDOWN, MSGPORT_LOGGING, MSGPORT_REGISTER,
  ENTER_STATE = 100, EXIT_STATE, EXIT_THREAD, EXIT_TIMER,
  EXIT_PARTING, NULL_EVENT, ERROR_STATE, ENTER_HUNTING,
  EXIT_HUNTING, ENTER_RECONNECT, EXIT_RECONNECT, RECALL_RECONNECT,
  EXIT_SCRIPT, STEP_SCRIPT, START_DIRECT = 200, START_INCOMING,
  START_OUTGOING, START_RECALL, START_FORWARDED, START_RINGING,
  START_HUNTING, START_REFER, STOP_SCRIPT, STOP_DISCONNECT,
  STOP_PARENT, CANCEL_CHILD, DETACH_CHILD, CHILD_RUNNING,
  CHILD_FAILED, CHILD_INVALID, CHILD_EXPIRED, CHILD_BUSY,
  CHILD_FAX, CHILD_DND, CHILD_AWAY, CHILD_NOCODEC,
  CHILD_OFFLINE, START_SCRIPT = START_INCOMING, START_SELECTED = START_OUTGOING, START_TRANSFER = START_REFER,
  ENTER_LIBEXEC = 300, EXIT_LIBEXEC, HEAD_LIBEXEC, ARGS_LIBEXEC,
  GOT_LIBEXEC, READ_LIBEXEC, DROP_LIBEXEC, STAT_LIBEXEC,
  PROMPT_LIBEXEC, CLEAR_LIBEXEC, WAIT_LIBEXEC, RECORD_LIBEXEC,
  REPLAY_LIBEXEC, RESTART_LIBEXEC, TONE_LIBEXEC, XFER_LIBEXEC,
  POST_LIBEXEC, ERROR_LIBEXEC, TIMER_EXPIRED = 400, LINE_WINK,
  LINE_PICKUP, LINE_HANGUP, LINE_DISCONNECT, LINE_ON_HOOK,
  LINE_OFF_HOOK, RING_ON, RING_OFF, RING_STOP,
  LINE_CALLER_ID, RINGING_DID, DEVICE_BLOCKED, DEVICE_UNBLOCKED,
  DEVICE_OPEN, DEVICE_CLOSE, DSP_READY, RING_SYNC,
  CALL_DETECT = 500, CALL_CONNECTED, CALL_RELEASED, CALL_ACCEPTED,
  CALL_ANSWERED, CALL_HOLD, CALL_HOLDING =CALL_HOLD, CALL_NOHOLD,
  CALL_DIGITS, CALL_OFFERED, CALL_ANI, CALL_ACTIVE,
  CALL_NOACTIVE, CALL_BILLING, CALL_RESTART, CALL_SETSTATE,
  CALL_FAILURE, CALL_ALERTING, CALL_INFO, CALL_BUSY,
  CALL_DIVERT, CALL_FACILITY, CALL_FRAME, CALL_NOTIFY,
  CALL_NSI, CALL_RINGING, CALL_DISCONNECT, CALL_CLEARED,
  CALL_PROCEEDING, RESTART_FAILED, RELEASE_FAILED, START_RING = 600,
  STOP_RING, CLEAR_TIMESLOT, START_FLASH, STOP_FLASH,
  DIAL_CONNECT, DIAL_TIMEOUT, DIAL_FAILED, DIAL_INVALID,
  DIAL_BUSY, DIAL_FAX, DIAL_PAM, DIAL_DND,
  DIAL_AWAY, DIAL_OFFLINE, DIAL_NOCODEC, DIAL_MACHINE = DIAL_PAM,
  AUDIO_IDLE = 700, AUDIO_ACTIVE, AUDIO_EXPIRED, INPUT_PENDING,
  OUTPUT_PENDING, AUDIO_BUFFER, TONE_IDLE, DTMF_KEYDOWN,
  DTMF_KEYSYNC, DTMF_KEYUP, TONE_START, TONE_STOP,
  AUDIO_START, AUDIO_STOP, DTMF_GENDOWN, DTMF_GENUP,
  AUDIO_SYNC, AUDIO_RECONNECT, AUDIO_DISCONNECT, PEER_RECONNECT,
  PEER_DISCONNECT, PEER_REFER, DTMF_GENTONE = DTMF_GENUP, MAKE_TEST = 800,
  MAKE_BUSY, MAKE_IDLE, MAKE_DOWN, MAKE_UP,
  MAKE_EXPIRED, ENABLE_LOGGING, DISABLE_LOGGING, PART_EXPIRED,
  PART_EXITING, PART_DISCONNECT, JOIN_PEER, PEER_WAITING,
  RELOCATE_REQUEST, RELOCATE_ACCEPT, RELOCATE_REJECT, START_RELOCATE,
  STREAM_ACTIVE, STREAM_PASSIVE, JOIN_RECALL, DROP_RECALL,
  DROP_REFER, ENTER_RESUME = MAKE_UP, ENTER_SUSPEND = MAKE_DOWN, SYSTEM_DOWN = 900,
  DRIVER_SPECIFIC = 1000
}
  Primary event identifiers. More...
 
 
typedef uint16_t  timeslot_t
 
typedef int32_t  rpcint_t
 
typedef rpcint_t  rpcbool_t
 
typedef void(*  rpcmethod_t )(BayonneRPC *rpc)
  A rpc method handler. More...
 
typedef bool(BayonneSession::*  Handler )(Event *event)
  The current state handler in effect for a given channel to receive events. More...
 
 
typedef enum scrAccess  scrAccess
 
 
typedef enum symType  symType
 
typedef bool(ScriptInterp::*  Method )(void)
 
typedef const char
*(ScriptCommand::*  Check )(Line *line, ScriptImage *img)
 
typedef bool(*  Cond )(ScriptInterp *interp, const char *v)
 
typedef long(*  Function )(long *args, unsigned prec)
 
typedef const char *(*  Meta )(ScriptInterp *interp, const char *token)
 
typedef const char *(*  Parse )(ScriptCompiler *img, const char *token)
 
typedef void(*  Init )(void)
 
typedef struct ost::Script::_symbol  Symbol
 
typedef struct ost::Script::_array  Array
 

Public Member Functions

virtual bool  isAuthorized (const char *userid, const char *secret)
  Determine if user id and secret is authorized for this driver subsystem (registry). More...
 
virtual bool  deregister (const char *id)
 
virtual bool  reregister (const char *id, const char *uri, const char *secret, timeout_t expires)
 
  BayonneDriver (Keydata::Define *pairs, const char *key, const char *id, bool virt=false)
  Create a driver instance. More...
 
  Destroy driver instance. More...
 
  Get next driver... More...
 
  Get longest idle session to active for call processing. More...
 
virtual bool  suspend (void)
  Suspend a driver. More...
 
virtual bool  resume (void)
  Resume a driver. More...
 
virtual void  reregister (void)
  Re-register. More...
 
virtual const char *  registerScript (ScriptImage *image, Line *line)
  Process driver protocol specific proxy registration requests. More...
 
virtual const char *  assignScript (ScriptImage *image, Line *line)
  Process driver specific assign requests. More...
 
  Get first server timeslot this driver uses. More...
 
  Get the total number of timeslots this driver uses. More...
 
unsigned  getSpanFirst (void)
  Get the first span id used. More...
 
unsigned  getSpansUsed (void)
  Get the number of span objects used by driver. More...
 
const char *  getName (void)
  Get the name of the driver. More...
 
  Get the reset timer for this driver when resetting a thread in the step state. More...
 
  Get the release timer when releasing a trunk. More...
 
  Get the hangup timer for hang time before going idle. More...
 
  Get the pickup timer to wait for channel pickup. More...
 
  Get the sieze time to wait for dialtone on outbound call. More...
 
  Get the hunting timer. More...
 
  Get the programmed flash timer to signal trunk flash. More...
 
  Get default dtmf interdigit timer to use. More...
 
  Get the timer to wait for next ring before deciding a call has dissapeared. More...
 
unsigned  getAnswerCount (void)
  Get the number of rings to wait before answering. More...
 
BayonneSpangetSpan (unsigned id)
  Get the nth span object associated with this driver. More...
 
  Get the session associated with the nth timeslot for this driver. More...
 
  Return the message port bound with this driver. More...
 
size_t  getAudioStack (void)
  Get the size of the stack for audio threads. More...
 
int  getAudioPriority (void)
  Get the thread priority to use for audio threads for this driver. More...
 
  Get the audio level for silence detection. More...
 
void  setLogging (std::ostream *output)
  Set driver logging. More...
 
bool  isSpanable (unsigned span)
  Determine if a span is available. More...
 
virtual bool  getDestination (const char *target, const char *dial, char *output, size_t size)
  Deterime if a network destination is reachable through this driver, and convert dialing string into network reference. More...
 
unsigned  getAvail (void)
  Get available timeslots. More...
 
virtual bool  isExternal (const char *dest)
  See if a given potential dialed number is an external entry in our registrar. More...
 
virtual bool  isRegistered (const char *dest)
  See if a given potential dialed number is registered. More...
 
virtual bool  isAvailable (const char *dest)
  See if a given potential dialed number is available. More...
 
virtual bool  isReachable (const char *proxy)
  See if a given selected server is currently considered reachable. More...
 
virtual unsigned  getRegistration (regauth_t *data, unsigned count, const char *id=NULL)
  Fill registration data. More...
 
void  md5_hash (char *out, const char *source)
  Compute md5 hashes... More...
 
const char *  getInitial (const char *id)
 
void  setInitial (const char *id, const char *val)
 
const char *  getString (const char *key, char *buf, size_t size)
 
const char *  getString (const char *id)
 
const char *  getString (const char *sym, const char *def=NULL)
  Get a string value, with an optional default if missing. More...
 
timeout_t  getSecTimer (const char *key)
 
timeout_t  getMsecTimer (const char *key)
 
long  getValue (const char *key)
 
bool  isKey (const char *key)
 
bool  getBoolean (const char *key)
 
unsigned  getIndex (char **data, unsigned max)
  Get an index array of ALL keywords that are stored by the current keydata object. More...
 
void  load (const char *keypath)
  Load additional key values into the currrent object from the specfied config source (a config file/section pair). More...
 
void  load (Define *pairs)
  Load default keywords into the current object. More...
 
void  loadPrefix (const char *prefix, const char *keypath)
  Load additional key values into the currrent object from the specfied config source (a config file/section pair). More...
 
void  loadFile (const char *filepath, const char *keys=NULL, const char *pre=NULL)
  Load additional keys into the current object using a real filename that is directly passed rather than a computed key path. More...
 
void  unlink (void)
  Unlink the keydata object from the cache file stream. More...
 
int  getCount (const char *sym)
  Get a count of the number of data "values" that is associated with a specific keyword. More...
 
const char *  getFirst (const char *sym)
  Get the first data value for a given keyword. More...
 
const char *  getLast (const char *sym)
  Get the last (most recently set) value for a given keyword. More...
 
long  getLong (const char *sym, long def=0)
  Get a long value, with an optional default if missing. More...
 
bool  getBool (const char *key)
  Get a bool value. More...
 
double  getDouble (const char *key, double def=0.)
  Get a floating value. More...
 
void  setValue (const char *sym, const char *data)
  Set (replace) the value of a given keyword. More...
 
const char *const *  getList (const char *sym)
  Return a list of all values set for the given keyword returned in order. More...
 
void  clrValue (const char *sym)
  Clear all values associated with a given keyword. More...
 
const char *  operator[] (const char *keyword)
  A convient notation for accessing the keydata as an associative array of keyword/value pairs through the [] operator. More...
 
void  nameMutex (const char *name)
  Enable setting of mutex name for deadlock debug. More...
 
void  enterMutex (void)
  Entering a Mutex locks the mutex for the current thread. More...
 
void  enter (void)
  Future abi will use enter/leave/test members. More...
 
void  leave (void)
  Future abi will use enter/leave/test members. More...
 
bool  test (void)
  Future abi will use enter/leave/test members. More...
 
bool  tryEnterMutex (void)
  Tries to lock the mutex for the current thread. More...
 
void  leaveMutex (void)
  Leaving a mutex frees that mutex for use by another thread. More...
 

Static Public Member Functions

static bool  useProtocols (void)
  Return flag for protocols active. More...
 
static bool  isStopping (void)
  Return is stopping flag. More...
 
static BayonneDrivergetTrunking (void)
  Return primary trunk driver, if driver trunking... More...
 
static BayonneDrivergetPrimary (void)
  Return the first loaded driver. More...
 
static BayonneDriverauthorize (const char *userid, const char *secret)
  Authorize a user and return associated driver. More...
 
static BayonneDrivergetRoot (void)
 
static BayonneDrivergetProtocol (void)
  Return primary protocol driver... More...
 
static BayonneDriverget (const char *id)
  Find and return driver object from id name. More...
 
static BayonneDriverloadDriver (const char *id)
  Load a bayonne driver into memory. More...
 
static BayonneDriverloadTrunking (const char *id)
  Load a bayonne trunking driver into memory, set protocols. More...
 
static BayonneDriverloadProtocol (const char *id, unsigned timeslots=0)
  Load a protocol driver into memory, set timeslots. More...
 
static unsigned  list (char **items, unsigned max)
  Get list of driver names into string array. More...
 
static void  start (void)
  Start all loaded drivers. More...
 
static void  stop (void)
  Stop all loaded drivers. More...
 
static void  reload (void)
  Notify all drivers about reload. More...
 
static void  add (BayonneSession *session)
  Add session to driver idle list for getIdle, usually during stateIdle. More...
 
static void  del (BayonneSession *session)
  Remove session from driver idle list if still present. More...
 
static void  snmptrap (unsigned id, const char *descr=NULL)
 
static void  allocate (timeslot_t timeslots, ScriptCommand *pointer=NULL, timeslot_t overdraft=0)
  Allocates the maximum number of timeslots the server will use as a whole and attaches a given server to the library. More...
 
static const char *  getRegistryId (const char *id)
 
static BayonneDrivergetDriverTag (const char *id)
 
static Audio::Encoding  getEncoding (const char *cp)
 
static void  allocateLocal (void)
  Allocate local script engine sessions, if needed. More...
 
static void  addConfig (const char *cfgfile)
  Add config file entry. More...
 
static void  waitLoaded (void)
  Wait for live flag... More...
 
static unsigned long  uptime (void)
  Get server uptime. More...
 
static void  down (void)
  Used to down the server from the library. More...
 
static bool  service (const char *service)
  Sets server service level from the library. More...
 
static const char *  getRunLevel (void)
  Get service level. More...
 
  Returns a session pointer for a server timeslot. More...
 
  Returns a local image pointer for a server timeslot. More...
 
static BayonneSessionstartDialing (const char *dial, const char *name, const char *caller, const char *display, BayonneSession *parent=NULL, const char *manager=NULL, const char *secret=NULL)
  Start a dialing session. More...
 
static BayonneSessiongetSid (const char *id)
  Returns a session pointer for a string identifier. More...
 
static timeslot_t  toTimeslot (const char *id)
  Returns a server timeslot number for a string identifier. More...
 
static timeslot_t  getTimeslotsUsed (void)
  Return total library timeslots used (highest used). More...
 
static timeslot_t  getTimeslotCount (void)
  Return total timeslots allocated for the server. More...
 
static timeslot_t  getAvailTimeslots (void)
  Return remaining timeslots available to allocate driver ports into. More...
 
static Handler  getState (const char *name)
  Map a state name into a handler. More...
 
static int  getDigit (char dtmf)
  Convert a dtmf character into a 0-15 number reference. More...
 
static char  getChar (int dtmf)
  Convert a dtmf digit number into it's ascii code. More...
 
static bool  matchDigits (const char *digits, const char *match, bool partial=false)
  A function to support pattern matching and templates for digit strings. More...
 
static ScriptImageuseImage (void)
  Use the current compiled script image; mark as in use. More...
 
static void  endImage (ScriptImage *image)
  Release a script image in use. More...
 
static bool  loadPlugin (const char *path)
  Load a plugin module. More...
 
static bool  loadMonitor (const char *path)
  Load a monitoring/management module. More...
 
static bool  loadAudio (const char *path)
  Load a bgm/audio processing module for continues audio. More...
 
static void  errlog (const char *level, const char *fmt,...)
 
static bool  getUserdata (void)
 
static void  addTrap4 (const char *addr)
 
static bool  isScript (Name *scr)
 
static bool  isSymbol (const char *id)
 
static bool  use (const char *name)
 
static unsigned  getIndex (const char *id)
 
static Symbolderef (Symbol *sym)
 
static bool  commit (Symbol *sym, const char *value)
 
static bool  append (Symbol *sym, const char *value)
 
static bool  symindex (Symbol *sym, short offset)
 
static const char *  extract (Symbol *sym)
 
static unsigned  count (Symbol *sym)
 
static unsigned  storage (Symbol *sym)
 
static void  clear (Symbol *sym)
 
static void  addFunction (const char *name, unsigned count, Function i)
 
static void  addConditional (const char *name, Cond test)
 
static bool  isPrivate (Name *scr)
 
static bool  isFunction (Name *scr)
 
static void  end (void)
  static member to end keydata i/o allocations. More...
 
static void  setDebug (bool mode)
  Enable or disable deadlock debugging. More...
 

Data Fields

 
 
volatile unsigned short  active_calls
 
class __EXPORT  Line
 
class __EXPORT  Name
 

Static Public Attributes

static char  dtmf_keymap [256]
 
 
 
static unsigned  compile_count
 
static volatile bool  image_loaded
 
 
static const char *  init_voicelib
 
static const char *  trap_community
 
 
static statetab  states []
  Table of states ordered by id. More...
 
static Mutex  serialize
  A mutex to serialize any direct console I/O operations. More...
 
  A mutex to serialize reload requests. More...
 
  master traffic counters for call attempts and call completions. More...
 
 
static volatile unsigned short  total_active_calls
 
static bool  fastStart
 
static bool  useBigmem
 
static unsigned  fastStepping
 
static unsigned  autoStepping
 
static size_t  pagesize
 
static unsigned  symsize
 
static unsigned  symlimit
 
static char  decimal
 
static bool  use_definitions
 
static bool  use_macros
 
static bool  use_prefix
 
static bool  use_merge
 
static bool  use_funcs
 
static const char *  plugins
 
static const char *  altplugins
 
static const char *  access_user
 
static const char *  access_pass
 
static const char *  access_host
 
static bool  exec_funcs
 
static const char *  exec_extensions
 
static const char *  exec_token
 
static const char *  exec_prefix
 
static const char *  exit_token
 
static const char *  apps_extensions
 
static const char *  apps_prefix
 
static const char *  etc_prefix
 
static const char *  var_prefix
 
static const char *  log_prefix
 

Protected Member Functions

virtual void  reloadDriver (void)
  Virtual to notify driver that a server image reload is in progress. More...
 
virtual void  startDriver (void)
  Virtual to override method for activating the driver and creating all session and span objects associated with it. More...
 
virtual void  stopDriver (void)
  Virtual to override method for clean shutdown of the driver. More...
 
void  relistIdle (void)
  Relist idle drivers on high idle list, for drivers which do highwater marking allocation. More...
 
const char *  updatedString (const char *id)
 
long  updatedValue (const char *id)
 
timeout_t  updatedSecTimer (const char *id)
 
timeout_t  updatedMsecTimer (const char *id)
 
bool  updatedBoolean (const char *id)
 
KeysymgetSymbol (const char *sym, bool create)
 
virtual void *  first (size_t size)
  Allocate first workspace from paged memory. More...
 
char *  first (char *str)
  Allocate a string from the memory pager pool and copy the string into it's new memory area. More...
 
virtual void *  alloc (size_t size)
  Allocate memory from either the currently active page, or allocate a new page for the object. More...
 
char *  alloc (const char *str)
  Allocate a string from the memory pager pool and copy the string inti it's new memory area. More...
 
void  purge (void)
  purge the current memory pool. More...
 
void  clean (void)
  Clean for memory cleanup before exiting. More...
 
int  getPages (void)
  Return the total number of pages that have been allocated for this memory pool. More...
 
virtual void  updateConfig (Keydata *keydata)
 
void  readLock (void)
  Aquire a read lock for the current object. More...
 
void  writeLock (void)
  Aquire a write lock for the current object. More...
 
bool  tryReadLock (void)
  Attempt read lock for current object. More...
 
bool  tryWriteLock (void)
  Attempt write lock for current object. More...
 
void  unlock (void)
  Release any held locks. More...
 

Protected Attributes

 
 
 
 
 
const char *  name
 
 
 
unsigned  avail
 
unsigned  span
 
unsigned  spans
 
bool  running
 
std::ostream *  logevents
 
 
size_t  audio_stack
 
 
 
 
 
 
 
 
 
 
 
unsigned  answer_count
 

Static Protected Attributes

 
 
 
 
static Semaphore  oink
 
static bool  protocols
 
static bool  stopping
 
 
static ScriptImage **  localimages
 
static char *  status
 
static ScriptCommandserver
 
static unsigned  ts_trk
 
static unsigned  ts_ext
 
static timeslot_t  ts_limit
 
static timeslot_t  ts_count
 
static timeslot_t  ts_used
 
static std::ostream *  logging
 
static const char *  path_prompts
 
static const char *  path_tmpfs
 
static const char *  path_tmp
 
static unsigned  idle_count
 
static unsigned  idle_limit
 
static bool  shutdown_flag
 
static char  sla [64]
 
static time_t  start_time
 
static time_t  reload_time
 
static Testtest
 
static Funifun
 

Friends

 
 

Detailed Description

The principle driver node for a given collection of spans and sessions of a given Bayonne driver family type.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org Bayonne driver node class.

Definition at line 1772 of file bayonne.h.

Member Typedef Documentation

inherited
typedef const char*(ScriptCommand::* ost::Script::Check)(Line *line, ScriptImage *img)
inherited

Definition at line 106 of file script3.h.

typedef bool(* ost::Script::Cond)(ScriptInterp *interp, const char *v)
inherited

Definition at line 107 of file script3.h.

typedef long(* ost::Script::Function)(long *args, unsigned prec)
inherited

Definition at line 108 of file script3.h.

typedef bool(BayonneSession::* ost::Bayonne::Handler)(Event *event)
inherited

The current state handler in effect for a given channel to receive events.

This is done by a direct method pointer for fast processing.

Definition at line 909 of file bayonne.h.

typedef void(* ost::Script::Init)(void)
inherited

Definition at line 111 of file script3.h.

typedef const char*(* ost::Script::Meta)(ScriptInterp *interp, const char *token)
inherited

Definition at line 109 of file script3.h.

typedef bool(ScriptInterp::* ost::Script::Method)(void)
inherited

Definition at line 105 of file script3.h.

typedef const char*(* ost::Script::Parse)(ScriptCompiler *img, const char *token)
inherited

Definition at line 110 of file script3.h.

inherited

Definition at line 276 of file bayonne.h.

typedef int32_t ost::Bayonne::rpcint_t
inherited

Definition at line 274 of file bayonne.h.

typedef void(* ost::Bayonne::rpcmethod_t)(BayonneRPC *rpc)
inherited

A rpc method handler.

Definition at line 858 of file bayonne.h.

inherited

Definition at line 121 of file script3.h.

inherited
inherited

Definition at line 145 of file script3.h.

typedef uint16_t ost::Bayonne::timeslot_t
inherited

Definition at line 273 of file bayonne.h.

Member Enumeration Documentation

inherited

Type of bridge used for joining ports.

Enumerator
BR_TDM 
BR_INET 
BR_SOFT 
BR_GATE 
BR_NONE 

Definition at line 344 of file bayonne.h.

inherited

Type of call session being processed.

Enumerator
NONE 
INCOMING 
OUTGOING 
PICKUP 
FORWARDED 
RECALL 
DIRECT 
RINGING 
VIRTUAL 

Definition at line 328 of file bayonne.h.

inherited

Primary event identifiers.

These are the events that can be passed into the Bayonne state machine. They are broken into categories.

Enumerator
MSGPORT_WAKEUP 
MSGPORT_SHUTDOWN 
MSGPORT_LOGGING 
MSGPORT_REGISTER 
ENTER_STATE 
EXIT_STATE 
EXIT_THREAD 
EXIT_TIMER 
EXIT_PARTING 
NULL_EVENT 
ERROR_STATE 
ENTER_HUNTING 
EXIT_HUNTING 
ENTER_RECONNECT 
EXIT_RECONNECT 
RECALL_RECONNECT 
EXIT_SCRIPT 
STEP_SCRIPT 
START_DIRECT 
START_INCOMING 
START_OUTGOING 
START_RECALL 
START_FORWARDED 
START_RINGING 
START_HUNTING 
START_REFER 
STOP_SCRIPT 
STOP_DISCONNECT 
STOP_PARENT 
CANCEL_CHILD 
DETACH_CHILD 
CHILD_RUNNING 
CHILD_FAILED 
CHILD_INVALID 
CHILD_EXPIRED 
CHILD_BUSY 
CHILD_FAX 
CHILD_DND 
CHILD_AWAY 
CHILD_NOCODEC 
CHILD_OFFLINE 
START_SCRIPT 
START_SELECTED 
START_TRANSFER 
ENTER_LIBEXEC 
EXIT_LIBEXEC 
HEAD_LIBEXEC 
ARGS_LIBEXEC 
GOT_LIBEXEC 
READ_LIBEXEC 
DROP_LIBEXEC 
STAT_LIBEXEC 
PROMPT_LIBEXEC 
CLEAR_LIBEXEC 
WAIT_LIBEXEC 
RECORD_LIBEXEC 
REPLAY_LIBEXEC 
RESTART_LIBEXEC 
TONE_LIBEXEC 
XFER_LIBEXEC 
POST_LIBEXEC 
ERROR_LIBEXEC 
TIMER_EXPIRED 
LINE_WINK 
LINE_PICKUP 
LINE_HANGUP 
LINE_DISCONNECT 
LINE_ON_HOOK 
LINE_OFF_HOOK 
RING_ON 
RING_OFF 
RING_STOP 
LINE_CALLER_ID 
RINGING_DID 
DEVICE_BLOCKED 
DEVICE_UNBLOCKED 
DEVICE_OPEN 
DEVICE_CLOSE 
DSP_READY 
RING_SYNC 
CALL_DETECT 
CALL_CONNECTED 
CALL_RELEASED 
CALL_ACCEPTED 
CALL_ANSWERED 
CALL_HOLD 
CALL_HOLDING 
CALL_NOHOLD 
CALL_DIGITS 
CALL_OFFERED 
CALL_ANI 
CALL_ACTIVE 
CALL_NOACTIVE 
CALL_BILLING 
CALL_RESTART 
CALL_SETSTATE 
CALL_FAILURE 
CALL_ALERTING 
CALL_INFO 
CALL_BUSY 
CALL_DIVERT 
CALL_FACILITY 
CALL_FRAME 
CALL_NOTIFY 
CALL_NSI 
CALL_RINGING 
CALL_DISCONNECT 
CALL_CLEARED 
CALL_PROCEEDING 
RESTART_FAILED 
RELEASE_FAILED 
START_RING 
STOP_RING 
CLEAR_TIMESLOT 
START_FLASH 
STOP_FLASH 
DIAL_CONNECT 
DIAL_TIMEOUT 
DIAL_FAILED 
DIAL_INVALID 
DIAL_BUSY 
DIAL_FAX 
DIAL_PAM 
DIAL_DND 
DIAL_AWAY 
DIAL_OFFLINE 
DIAL_NOCODEC 
DIAL_MACHINE 
AUDIO_IDLE 
AUDIO_ACTIVE 
AUDIO_EXPIRED 
INPUT_PENDING 
OUTPUT_PENDING 
AUDIO_BUFFER 
TONE_IDLE 
DTMF_KEYDOWN 
DTMF_KEYSYNC 
DTMF_KEYUP 
TONE_START 
TONE_STOP 
AUDIO_START 
AUDIO_STOP 
DTMF_GENDOWN 
DTMF_GENUP 
AUDIO_SYNC 
AUDIO_RECONNECT 
AUDIO_DISCONNECT 
PEER_RECONNECT 
PEER_DISCONNECT 
PEER_REFER 
DTMF_GENTONE 
MAKE_TEST 
MAKE_BUSY 
MAKE_IDLE 
MAKE_DOWN 
MAKE_UP 
MAKE_EXPIRED 
ENABLE_LOGGING 
DISABLE_LOGGING 
PART_EXPIRED 
PART_EXITING 
PART_DISCONNECT 
JOIN_PEER 
PEER_WAITING 
RELOCATE_REQUEST 
RELOCATE_ACCEPT 
RELOCATE_REJECT 
START_RELOCATE 
STREAM_ACTIVE 
STREAM_PASSIVE 
JOIN_RECALL 
DROP_RECALL 
DROP_REFER 
ENTER_RESUME 
ENTER_SUSPEND 
SYSTEM_DOWN 
DRIVER_SPECIFIC 

Definition at line 464 of file bayonne.h.

inherited

Telephony endpoint interface identifiers.

Enumerator
IF_PSTN 
IF_SPAN 
IF_ISDN 
IF_SS7 
IF_INET 
IF_NONE 
IF_POTS 

Definition at line 314 of file bayonne.h.

inherited
Enumerator
RESULT_SUCCESS 
RESULT_TIMEOUT 
RESULT_INVALID 
RESULT_PENDING 
RESULT_COMPLETE 
RESULT_FAILED 
RESULT_BADPATH 
RESULT_OFFLINE 

Definition at line 683 of file bayonne.h.

inherited
Enumerator
scrPUBLIC 
scrPROTECTED 
scrPRIVATE 
scrFUNCTION 
scrLOCAL 

Definition at line 113 of file script3.h.

inherited

Signaled interpreter events.

These can be masked and accessed through ^xxx handlers in the scripting language.

Enumerator
SIGNAL_EXIT 
SIGNAL_ERROR 
SIGNAL_TIMEOUT 
SIGNAL_DTMF 
SIGNAL_0 
SIGNAL_1 
SIGNAL_2 
SIGNAL_3 
SIGNAL_4 
SIGNAL_5 
SIGNAL_6 
SIGNAL_7 
SIGNAL_8 
SIGNAL_9 
SIGNAL_STAR 
SIGNAL_POUND 
SIGNAL_A 
SIGNAL_OVERRIDE 
SIGNAL_B 
SIGNAL_FLASH 
SIGNAL_C 
SIGNAL_IMMEDIATE 
SIGNAL_D 
SIGNAL_PRIORITY 
SIGNAL_RING 
SIGNAL_TONE 
SIGNAL_EVENT 
SIGNAL_WINK 
SIGNAL_CHILD 
SIGNAL_FAIL 
SIGNAL_PICKUP 
SIGNAL_PART 
SIGNAL_INVALID 
SIGNAL_PARENT 
SIGNAL_WAIT 
SIGNAL_HANGUP 

Definition at line 414 of file bayonne.h.

inherited

Call processing states offered in core library.

This list must be ordered to match the entries in the state table (statetab).

Enumerator
STATE_INITIAL 
STATE_IDLE 
STATE_RESET 
STATE_RELEASE 
STATE_BUSY 
STATE_DOWN 
STATE_RING 
STATE_PICKUP 
STATE_SEIZE 
STATE_ANSWER 
STATE_STEP 
STATE_EXEC 
STATE_THREAD 
STATE_CLEAR 
STATE_INKEY 
STATE_INPUT 
STATE_READ 
STATE_COLLECT 
STATE_DIAL 
STATE_XFER 
STATE_REFER 
STATE_HOLD 
STATE_RECALL 
STATE_TONE 
STATE_DTMF 
STATE_PLAY 
STATE_RECORD 
STATE_JOIN 
STATE_WAIT 
STATE_CALLING 
STATE_CONNECT 
STATE_RECONNECT 
STATE_HUNTING 
STATE_SLEEP 
STATE_START 
STATE_HANGUP 
STATE_LIBRESET 
STATE_WAITKEY 
STATE_LIBWAIT 
STATE_IRESET 
STATE_FINAL 
STATE_SUSPEND 
STATE_STANDBY 
STATE_LIBEXEC 
STATE_RINGING 
STATE_RUNNING 
STATE_THREADING 

Definition at line 358 of file bayonne.h.

inherited
Enumerator
symNORMAL 
symCONST 
symDYNAMIC 
symFIFO 
symSEQUENCE 
symSTACK 
symCOUNTER 
symPOINTER 
symREF 
symARRAY 
symASSOC 
symINITIAL 
symNUMBER 
symLOCK 
symPROPERTY 
symORIGINAL 
symMODIFIED 
symTIMER 
symBOOL 

Definition at line 123 of file script3.h.

Constructor & Destructor Documentation

ost::BayonneDriver::BayonneDriver ( Keydata::Definepairs,
const char *  key,
const char *  id,
bool  virt = false 
)

Create a driver instance.

Parameters
pairs of default keyword entries for config.
key name of config key.
id string of driver.
whether virtual driver of some sort or real.
ost::BayonneDriver::~BayonneDriver ( )

Destroy driver instance.

Member Function Documentation

static void ost::BayonneDriver::add ( BayonneSessionsession )
static

Add session to driver idle list for getIdle, usually during stateIdle.

Parameters
session being added.
static void ost::Script::addConditional ( const char *  name,
Cond  test 
)
staticinherited
static void ost::Bayonne::addConfig ( const char *  cfgfile )
staticinherited

Add config file entry.

static void ost::Script::addFunction ( const char *  name,
unsigned  count,
Function  i 
)
staticinherited
static void ost::Bayonne::addTrap4 ( const char *  addr )
staticinherited
virtual void* MemPager::alloc ( size_t  size )
protectedvirtualinherited

Allocate memory from either the currently active page, or allocate a new page for the object.

Parameters
size size of memory to allocate.
Returns
pointer to allocated memory.

Reimplemented in SharedMemPager.

char* MemPager::alloc ( const char *  str )
protectedinherited

Allocate a string from the memory pager pool and copy the string inti it's new memory area.

This checks only the last active page for available space before allocating a new page.

Parameters
str string to allocate and copy into paged memory pool.
Returns
copy of string from allocated memory.
static void ost::Bayonne::allocate ( timeslot_t  timeslots,
ScriptCommandpointer = NULL,
timeslot_t  overdraft = 0 
)
staticinherited

Allocates the maximum number of timeslots the server will use as a whole and attaches a given server to the library.

Parameters
timeslots to allocate.
pointer to server shell.
static void ost::Bayonne::allocateLocal ( void  )
staticinherited

Allocate local script engine sessions, if needed.

static bool ost::Script::append ( Symbolsym,
const char *  value 
)
staticinherited
virtual const char* ost::BayonneDriver::assignScript ( ScriptImageimage,
Lineline 
)
virtual

Process driver specific assign requests.

Returns
error message if invalid request, NULL if ok.
Parameters
image of script being compiled.
line record of "assign" command.
static BayonneDriver* ost::BayonneDriver::authorize ( const char *  userid,
const char *  secret 
)
static

Authorize a user and return associated driver.

Parameters
userid to authorize.
secret to use.
Returns
driver authorized under or NULL.
void MemPager::clean ( void  )
protectedinherited

Clean for memory cleanup before exiting.

static void ost::Script::clear ( Symbolsym )
staticinherited
void Keydata::clrValue ( const char *  sym )
inherited

Clear all values associated with a given keyword.

This does not de-allocate the keyword from memory, however.

Returns
keyword name to clear.
static bool ost::Script::commit ( Symbolsym,
const char *  value 
)
staticinherited
static unsigned ost::Script::count ( Symbolsym )
staticinherited
static void ost::BayonneDriver::del ( BayonneSessionsession )
static

Remove session from driver idle list if still present.

Usually when changing from idle to an active state.

Parameters
session being removed.
static Symbol* ost::Script::deref ( Symbolsym )
staticinherited
virtual bool ost::BayonneDriver::deregister ( const char *  id )
virtual
static void ost::Bayonne::down ( void  )
staticinherited

Used to down the server from the library.

static void Keydata::end ( void  )
staticinherited

static member to end keydata i/o allocations.

static void ost::Bayonne::endImage ( ScriptImageimage )
staticinherited

Release a script image in use.

If no active calls are using it and it's no longer the top active image, purge from memory.

Parameters
image to compiled script from useImage.
void Mutex::enter ( void  )
inlineinherited

Future abi will use enter/leave/test members.

Definition at line 263 of file thread.h.

void Mutex::enterMutex ( void  )
inherited

Entering a Mutex locks the mutex for the current thread.

This also can be done using the ENTER_CRITICAL macro or by using the ++ operator on a mutex.

See Also
leaveMutex
static void ost::Bayonne::errlog ( const char *  level,
const char *  fmt,
  ... 
)
staticinherited
static const char* ost::Script::extract ( Symbolsym )
staticinherited
virtual void* MemPager::first ( size_t  size )
protectedvirtualinherited

Allocate first workspace from paged memory.

This method scans all currently allocated blocks for available space before adding new pages and hence is both slower and more efficient.

Parameters
size size of memory to allocate.
Returns
pointer to allocated memory.

Reimplemented in SharedMemPager.

char* MemPager::first ( char *  str )
protectedinherited

Allocate a string from the memory pager pool and copy the string into it's new memory area.

This method allocates memory by first searching for an available page, and then allocating a new page if no space is found.

Parameters
str string to allocate and copy into paged memory pool.
Returns
copy of string from allocated memory.
static BayonneDriver* ost::BayonneDriver::get ( const char *  id )
static

Find and return driver object from id name.

Parameters
id driver name.
Returns
associated driver node.
unsigned ost::BayonneDriver::getAnswerCount ( void  )
inline

Get the number of rings to wait before answering.

Returns
number of rings before answer.

Definition at line 2143 of file bayonne.h.

Audio::Level ost::BayonneDriver::getAudioLevel ( void  )
inline

Get the audio level for silence detection.

Returns
audio threashold for silence.

Definition at line 2192 of file bayonne.h.

int ost::BayonneDriver::getAudioPriority ( void  )
inline

Get the thread priority to use for audio threads for this driver.

Returns
thread priority.

Definition at line 2184 of file bayonne.h.

size_t ost::BayonneDriver::getAudioStack ( void  )
inline

Get the size of the stack for audio threads.

Returns
stack size in bytes.

Definition at line 2176 of file bayonne.h.

unsigned ost::BayonneDriver::getAvail ( void  )
inline

Get available timeslots.

Returns
available slots.

Definition at line 2228 of file bayonne.h.

static timeslot_t ost::Bayonne::getAvailTimeslots ( void  )
inlinestaticinherited

Return remaining timeslots available to allocate driver ports into.

Returns
remaining timeslots.

Definition at line 1209 of file bayonne.h.

bool Keydata::getBool ( const char *  key )
inherited

Get a bool value.

Parameters
sym keyword name.
Returns
true or false.
bool ost::ReconfigKeydata::getBoolean ( const char *  key )
inherited
static char ost::Bayonne::getChar ( int  dtmf )
staticinherited

Convert a dtmf digit number into it's ascii code.

Parameters
dtmf digit number.
Returns
dtmf character code.
int Keydata::getCount ( const char *  sym )
inherited

Get a count of the number of data "values" that is associated with a specific keyword.

Each value is from an accumulation of "<code>load()</code>" requests.

Parameters
sym keyword symbol name.
Returns
count of values associated with keyword.
timeslot_t ost::BayonneDriver::getCount ( void  )
inline

Get the total number of timeslots this driver uses.

Returns
total timeslots for driver.

Definition at line 2036 of file bayonne.h.

virtual bool ost::BayonneDriver::getDestination ( const char *  target,
const char *  dial,
char *  output,
size_t  size 
)
virtual

Deterime if a network destination is reachable through this driver, and convert dialing string into network reference.

Parameters
target network destination
dial string
output buffer
size of output buffer
Returns
true if reachable
static int ost::Bayonne::getDigit ( char  dtmf )
staticinherited

Convert a dtmf character into a 0-15 number reference.

Parameters
dtmf digit as ascii
Returns
dtmf digit number.
double Keydata::getDouble ( const char *  key,
double  def = 0. 
)
inherited

Get a floating value.

Parameters
sym keyword name.
default if not set.
Returns
value of key.
static BayonneDriver* ost::Bayonne::getDriverTag ( const char *  id )
staticinherited
static Audio::Encoding ost::Bayonne::getEncoding ( const char *  cp )
staticinherited
const char* Keydata::getFirst ( const char *  sym )
inherited

Get the first data value for a given keyword.

This will typically be the /etc set global default.

Parameters
sym keyword symbol name.
Returns
first set value for this symbol.
timeslot_t ost::BayonneDriver::getFirst ( void  )
inline

Get first server timeslot this driver uses.

Returns
first server timeslot for driver.

Definition at line 2028 of file bayonne.h.

timeout_t ost::BayonneDriver::getFlashTimer ( void  )
inline

Get the programmed flash timer to signal trunk flash.

Returns
flash timer in milliseconds.

Definition at line 2117 of file bayonne.h.

timeout_t ost::BayonneDriver::getHangupTimer ( void  )
inline

Get the hangup timer for hang time before going idle.

Returns
hangup timer in milliseconds.

Definition at line 2085 of file bayonne.h.

timeout_t ost::BayonneDriver::getHuntTimer ( void  )
inline

Get the hunting timer.

Returns
hunt timer in milliseconds.

Definition at line 2109 of file bayonne.h.

BayonneSession* ost::BayonneDriver::getIdle ( void  )

Get longest idle session to active for call processing.

Returns
handle to longest idle session, if none idle, NULL.
static unsigned ost::Script::getIndex ( const char *  id )
staticinherited
unsigned Keydata::getIndex ( char **  data,
unsigned  max 
)
inherited

Get an index array of ALL keywords that are stored by the current keydata object.

Returns
number of keywords found.
Parameters
data pointer of array to hold keyword strings.
max number of entries the array can hold.
const char* ost::ReconfigKeydata::getInitial ( const char *  id )
inlineinherited

Definition at line 229 of file bayonne.h.

timeout_t ost::BayonneDriver::getInterdigit ( void  )
inline

Get default dtmf interdigit timer to use.

Returns
interdigit timer in milliseconds.

Definition at line 2125 of file bayonne.h.

const char* Keydata::getLast ( const char *  sym )
inherited

Get the last (most recently set) value for a given keyword.

This is typically the value actually used.

Parameters
sym keyword symbol name.
Returns
last set value for this symbol.
const char* const* Keydata::getList ( const char *  sym )
inherited

Return a list of all values set for the given keyword returned in order.

Returns
list pointer of array holding all keyword values.
Parameters
sym keyword name to fetch.
static ScriptImage** ost::Bayonne::getLocalImage ( timeslot_t  timeslot )
staticinherited

Returns a local image pointer for a server timeslot.

Parameters
timeslot number in server.
Returns
pointer to image pointer or NULL if empty/invalid.
long Keydata::getLong ( const char *  sym,
long  def = 0 
)
inherited

Get a long value, with an optional default if missing.

Parameters
sym keyword name.
default if not present.
Returns
long value of key.
timeout_t ost::ReconfigKeydata::getMsecTimer ( const char *  key )
inherited
BayonneMsgport* ost::BayonneDriver::getMsgport ( void  )
inline

Return the message port bound with this driver.

Returns
bound msgport for driver.

Definition at line 2168 of file bayonne.h.

const char* ost::BayonneDriver::getName ( void  )
inline

Get the name of the driver.

Returns
name of driver.

Definition at line 2060 of file bayonne.h.

BayonneDriver* ost::BayonneDriver::getNext ( void  )
inline

Get next driver...

Definition at line 1894 of file bayonne.h.

int MemPager::getPages ( void  )
inlineinherited

Return the total number of pages that have been allocated for this memory pool.

Returns
number of pages allocated.

Definition at line 181 of file misc.h.

timeout_t ost::BayonneDriver::getPickupTimer ( void  )
inline

Get the pickup timer to wait for channel pickup.

Returns
pickup timer in milliseconds.

Definition at line 2093 of file bayonne.h.

static BayonneDriver* ost::BayonneDriver::getPrimary ( void  )
inlinestatic

Return the first loaded driver.

Definition at line 1879 of file bayonne.h.

static BayonneDriver* ost::BayonneDriver::getProtocol ( void  )
inlinestatic

Return primary protocol driver...

Definition at line 1903 of file bayonne.h.

virtual unsigned ost::BayonneDriver::getRegistration ( regauth_tdata,
unsigned  count,
const char *  id = NULL 
)
virtual

Fill registration data.

Returns
number of records filled.
Parameters
data array to fill.
number of entries available.
optional id to match.
optional flag if only extensions.
static const char* ost::Bayonne::getRegistryId ( const char *  id )
staticinherited
timeout_t ost::BayonneDriver::getReleaseTimer ( void  )
inline

Get the release timer when releasing a trunk.

Returns
release timer in milliseconds.

Definition at line 2077 of file bayonne.h.

timeout_t ost::BayonneDriver::getResetTimer ( void  )
inline

Get the reset timer for this driver when resetting a thread in the step state.

Returns
reset timer in milliseconds.

Definition at line 2069 of file bayonne.h.

timeout_t ost::BayonneDriver::getRingTimer ( void  )
inline

Get the timer to wait for next ring before deciding a call has dissapeared.

Used when set to answer on nth ring.

Returns
ring timer in milliseconds. #see getAnswerCount.

Definition at line 2135 of file bayonne.h.

static BayonneDriver* ost::BayonneDriver::getRoot ( void  )
inlinestatic

Definition at line 1897 of file bayonne.h.

static const char* ost::Bayonne::getRunLevel ( void  )
staticinherited

Get service level.

Parameters
return service level
timeout_t ost::ReconfigKeydata::getSecTimer ( const char *  key )
inherited
timeout_t ost::BayonneDriver::getSeizeTimer ( void  )
inline

Get the sieze time to wait for dialtone on outbound call.

Returns
seize timer in milliseconds.

Definition at line 2101 of file bayonne.h.

static BayonneSession* ost::Bayonne::getSession ( timeslot_t  timeslot )
staticinherited

Returns a session pointer for a server timeslot.

Each server timeslot can map to a single session object.

Parameters
timeslot number in server.
Returns
session object or NULL if timeslot empty/invalid.
static BayonneSession* ost::Bayonne::getSid ( const char *  id )
staticinherited

Returns a session pointer for a string identifier.

This can be for a transaction id, a call id, or other unique identifiers which can be mapped into a single timeslot.

Parameters
id session identifier string.
Returns
session object or NULL if not found.
BayonneSpan* ost::BayonneDriver::getSpan ( unsigned  id )

Get the nth span object associated with this driver.

Parameters
id of nth span to return.
Returns
span object or NULL if past limit/no spans.
unsigned ost::BayonneDriver::getSpanFirst ( void  )
inline

Get the first span id used.

Returns
span id.

Definition at line 2044 of file bayonne.h.

unsigned ost::BayonneDriver::getSpansUsed ( void  )
inline

Get the number of span objects used by driver.

Returns
span count.

Definition at line 2052 of file bayonne.h.

static Handler ost::Bayonne::getState ( const char *  name )
staticinherited

Map a state name into a handler.

Used for logging requests. Uses the statetab.

Parameters
name of state to lookup.
Returns
handler method for state if found.
const char* ost::StaticKeydata::getString ( const char *  id )
inlineinherited

Definition at line 164 of file bayonne.h.

const char* ost::ReconfigKeydata::getString ( const char *  key,
char *  buf,
size_t  size 
)
inherited
const char* Keydata::getString ( const char *  sym,
const char *  def = NULL 
)
inherited

Get a string value, with an optional default if missing.

Parameters
sym keyword name.
default if not present.
Returns
string value of key.
Keysym* Keydata::getSymbol ( const char *  sym,
bool  create 
)
protectedinherited
BayonneSession* ost::BayonneDriver::getTimeslot ( timeslot_t  id )

Get the session associated with the nth timeslot for this driver.

Parameters
id of nth timeslot of driver.
Returns
session object.
static timeslot_t ost::Bayonne::getTimeslotCount ( void  )
inlinestaticinherited

Return total timeslots allocated for the server.

Returns
total number of timeslots, max + 1.

Definition at line 1200 of file bayonne.h.

static timeslot_t ost::Bayonne::getTimeslotsUsed ( void  )
inlinestaticinherited

Return total library timeslots used (highest used).

Returns
highest server timeslot in use.

Definition at line 1192 of file bayonne.h.

static BayonneDriver* ost::BayonneDriver::getTrunking ( void  )
inlinestatic

Return primary trunk driver, if driver trunking...

Definition at line 1873 of file bayonne.h.

static bool ost::Bayonne::getUserdata ( void  )
staticinherited
long ost::ReconfigKeydata::getValue ( const char *  key )
inherited
virtual bool ost::BayonneDriver::isAuthorized ( const char *  userid,
const char *  secret 
)
virtual

Determine if user id and secret is authorized for this driver subsystem (registry).

Parameters
userid to check
secret to check
Returns
true if authorized
virtual bool ost::BayonneDriver::isAvailable ( const char *  dest )
virtual

See if a given potential dialed number is available.

Returns
true if extern and available.
Parameters
destination to test.
virtual bool ost::BayonneDriver::isExternal ( const char *  dest )
virtual

See if a given potential dialed number is an external entry in our registrar.

Returns
true if external.
Parameters
destination to test.
static bool ost::Script::isFunction ( Namescr )
staticinherited
bool ost::ReconfigKeydata::isKey ( const char *  key )
inherited
static bool ost::Script::isPrivate ( Namescr )
staticinherited
virtual bool ost::BayonneDriver::isReachable ( const char *  proxy )
virtual

See if a given selected server is currently considered reachable.

This could be used for failover.

Returns
true if reachable.
Parameters
server to test.
virtual bool ost::BayonneDriver::isRegistered ( const char *  dest )
virtual

See if a given potential dialed number is registered.

Returns
true if extern and registered.
Parameters
destination to test.
static bool ost::Script::isScript ( Namescr )
staticinherited
bool ost::BayonneDriver::isSpanable ( unsigned  span )
inline

Determine if a span is available.

Parameters
span associated with driver to check.
Returns
true if available ports.
static bool ost::BayonneDriver::isStopping ( void  )
inlinestatic

Return is stopping flag.

Definition at line 1867 of file bayonne.h.

static bool ost::Script::isSymbol ( const char *  id )
staticinherited
void Mutex::leave ( void  )
inlineinherited

Future abi will use enter/leave/test members.

Definition at line 269 of file thread.h.

void Mutex::leaveMutex ( void  )
inherited

Leaving a mutex frees that mutex for use by another thread.

If the mutex has been entered (invoked) multiple times (recursivily) by the same thread, then it will need to be exited the same number of instances before it is free for re-use. This operation can also be done using the LEAVE_CRITICAL macro or by the – operator on a mutex.

See Also
enterMutex
static unsigned ost::BayonneDriver::list ( char **  items,
unsigned  max 
)
static

Get list of driver names into string array.

Parameters
items array to save in.
max count of elements available.
Returns
number of drivers.
void Keydata::load ( const char *  keypath )
inherited

Load additional key values into the currrent object from the specfied config source (a config file/section pair).

These values will overlay the current keywords when matches are found. This can be used typically in a derived config object class constructor to first load a /etc section, and then load a matching user specific entry from ~/. to override default system values with user specific keyword values.

Parameters
keypath (filepath/section)
void Keydata::load ( Definepairs )
inherited

Load default keywords into the current object.

This only loads keyword entries which have not already been defined to reduce memory usage. This form of Load is also commonly used in the constructor of a derived Keydata class.

Parameters
pairs list of NULL terminated default keyword/value pairs.
static bool ost::Bayonne::loadAudio ( const char *  path )
staticinherited

Load a bgm/audio processing module for continues audio.

Parameters
path id of plugin.
Returns
true if successful.
static BayonneDriver* ost::BayonneDriver::loadDriver ( const char *  id )
static

Load a bayonne driver into memory.

Parameters
id driver name to load.
Returns
NULL or pointer to loaded driver.
void Keydata::loadFile ( const char *  filepath,
const char *  keys = NULL,
const char *  pre = NULL 
)
inherited

Load additional keys into the current object using a real filename that is directly passed rather than a computed key path.

This also uses a [keys] section as passed to the object.

Parameters
filepath to load from
keys section to parse from, or NULL to parse from head
pre optional key prefix
static bool ost::Bayonne::loadMonitor ( const char *  path )
staticinherited

Load a monitoring/management module.

Parameters
path id of plugin.
Returns
true if successful.
static bool ost::Bayonne::loadPlugin ( const char *  path )
staticinherited

Load a plugin module.

Parameters
path id of plugin.
Returns
true if successful.
void Keydata::loadPrefix ( const char *  prefix,
const char *  keypath 
)
inherited

Load additional key values into the currrent object from the specfied config source (a config file/section pair).

These values will overlay the current keywords when matches are found. This can be used typically in a derived config object class constructor to first load a /etc section, and then load a matching user specific entry from ~/. to override default system values with user specific keyword values. This varient puts a prefix in front of the key name.

Parameters
prefix
keypath (filepath/section)
static BayonneDriver* ost::BayonneDriver::loadProtocol ( const char *  id,
unsigned  timeslots = 0 
)
static

Load a protocol driver into memory, set timeslots.

Returns
NULL or pointer to loaded protocol.
Parameters
id of protocol driver to load.
timeslots of protocol.
static BayonneDriver* ost::BayonneDriver::loadTrunking ( const char *  id )
static

Load a bayonne trunking driver into memory, set protocols.

Returns
NULL or pointer to loaded driver.
Parameters
id of trunking driver to load.
static bool ost::Bayonne::matchDigits ( const char *  digits,
const char *  match,
bool  partial = false 
)
staticinherited

A function to support pattern matching and templates for digit strings.

This is used for digit @xxx:... entries and the route command.

Parameters
digits to use.
match digit pattern to match against.
partial accept match if true.
Returns
true if digits match to pattern.
void ost::Bayonne::md5_hash ( char *  out,
const char *  source 
)
inherited

Compute md5 hashes...

Parameters
md5 output string
string to hash
void Mutex::nameMutex ( const char *  name )
inlineinherited

Enable setting of mutex name for deadlock debug.

Parameters
name for mutex.

Definition at line 248 of file thread.h.

const char* Keydata::operator[] ( const char *  keyword )
inlineinherited

A convient notation for accessing the keydata as an associative array of keyword/value pairs through the [] operator.

Definition at line 611 of file misc.h.

void MemPager::purge ( void  )
protectedinherited

purge the current memory pool.

void ThreadLock::readLock ( void  )
inherited

Aquire a read lock for the current object.

virtual const char* ost::BayonneDriver::registerScript ( ScriptImageimage,
Lineline 
)
virtual

Process driver protocol specific proxy registration requests.

Returns
error message if invalid request, NULL if ok.
Parameters
image of script being compiled.
line record of "register" command.
void ost::BayonneDriver::relistIdle ( void  )
protected

Relist idle drivers on high idle list, for drivers which do highwater marking allocation.

static void ost::BayonneDriver::reload ( void  )
static

Notify all drivers about reload.

virtual void ost::BayonneDriver::reloadDriver ( void  )
protectedvirtual

Virtual to notify driver that a server image reload is in progress.

virtual bool ost::BayonneDriver::reregister ( const char *  id,
const char *  uri,
const char *  secret,
timeout_t  expires 
)
virtual
virtual void ost::BayonneDriver::reregister ( void  )
virtual

Re-register.

virtual bool ost::BayonneDriver::resume ( void  )
virtual

Resume a driver.

Returns
true if successful.
static bool ost::Bayonne::service ( const char *  service )
staticinherited

Sets server service level from the library.

Parameters
service level or NULL to clear.
Returns
true if set.
static void Mutex::setDebug ( bool  mode )
inlinestaticinherited

Enable or disable deadlock debugging.

Parameters
mode debug mode.

Definition at line 240 of file thread.h.

void ost::ReconfigKeydata::setInitial ( const char *  id,
const char *  val 
)
inlineinherited

Definition at line 231 of file bayonne.h.

void ost::BayonneDriver::setLogging ( std::ostream *  output )
inline

Set driver logging.

Parameters
output stream to log driver.

Definition at line 2200 of file bayonne.h.

void Keydata::setValue ( const char *  sym,
const char *  data 
)
inherited

Set (replace) the value of a given keyword.

This new value will become the value returned from getLast(), while the prior value will still be stored and found from getList() .

Parameters
sym keyword name to set.
data string to store for the keyword.
static void ost::Bayonne::snmptrap ( unsigned  id,
const char *  descr = NULL 
)
staticinherited
static void ost::BayonneDriver::start ( void  )
static

Start all loaded drivers.

static BayonneSession* ost::Bayonne::startDialing ( const char *  dial,
const char *  name,
const char *  caller,
const char *  display,
BayonneSessionparent = NULL,
const char *  manager = NULL,
const char *  secret = NULL 
)
staticinherited

Start a dialing session.

WARNING: this function leaves the channel locked so it can be examined by the returning task.

Parameters
dialing string or uri.
script to run or start.
caller id for this call.
display name for this call.
parent to join to.
virtual void ost::BayonneDriver::startDriver ( void  )
protectedvirtual

Virtual to override method for activating the driver and creating all session and span objects associated with it.

static void ost::BayonneDriver::stop ( void  )
static

Stop all loaded drivers.

virtual void ost::BayonneDriver::stopDriver ( void  )
protectedvirtual

Virtual to override method for clean shutdown of the driver.

static unsigned ost::Script::storage ( Symbolsym )
staticinherited
virtual bool ost::BayonneDriver::suspend ( void  )
virtual

Suspend a driver.

Returns
true if successful.
static bool ost::Script::symindex ( Symbolsym,
short  offset 
)
staticinherited
bool Mutex::test ( void  )
inlineinherited

Future abi will use enter/leave/test members.

Returns
true if entered.

Definition at line 277 of file thread.h.

static timeslot_t ost::Bayonne::toTimeslot ( const char *  id )
staticinherited

Returns a server timeslot number for a string identifier.

Returns
timeslot number or invalid value.
Parameters
id for a session.
See Also
getSid
bool Mutex::tryEnterMutex ( void  )
inherited

Tries to lock the mutex for the current thread.

Behaves like enterMutex , except that it doesn't block the calling thread if the mutex is already locked by another thread.

Returns
true if locking the mutex was succesful otherwise false
See Also
enterMutex
leaveMutex
bool ThreadLock::tryReadLock ( void  )
inherited

Attempt read lock for current object.

Returns
true on success.
bool ThreadLock::tryWriteLock ( void  )
inherited

Attempt write lock for current object.

Returns
true on success.
void Keydata::unlink ( void  )
inherited

Unlink the keydata object from the cache file stream.

This should be used if you plan to keepa Keydata object after it is loaded once all keydata objects have been loaded, otherwise the cfgFile stream will remain open. You can also use endKeydata().

void ThreadLock::unlock ( void  )
inherited

Release any held locks.

virtual void ost::DynamicKeydata::updateConfig ( Keydatakeydata )
protectedvirtualinherited
bool ost::ReconfigKeydata::updatedBoolean ( const char *  id )
protectedinherited
timeout_t ost::ReconfigKeydata::updatedMsecTimer ( const char *  id )
protectedinherited
timeout_t ost::ReconfigKeydata::updatedSecTimer ( const char *  id )
protectedinherited
const char* ost::ReconfigKeydata::updatedString ( const char *  id )
protectedinherited
long ost::ReconfigKeydata::updatedValue ( const char *  id )
protectedinherited
static unsigned long ost::Bayonne::uptime ( void  )
staticinherited

Get server uptime.

Returns
uptime in seconds.
static bool ost::Script::use ( const char *  name )
staticinherited
static ScriptImage* ost::Bayonne::useImage ( void  )
staticinherited

Use the current compiled script image; mark as in use.

Returns
current script image to pass to new calls.
static bool ost::BayonneDriver::useProtocols ( void  )
inlinestatic

Return flag for protocols active.

Definition at line 1861 of file bayonne.h.

static void ost::Bayonne::waitLoaded ( void  )
staticinherited

Wait for live flag...

void ThreadLock::writeLock ( void  )
inherited

Aquire a write lock for the current object.

Friends And Related Function Documentation

friend class __EXPORT BayonneMsgport
friend

Definition at line 1776 of file bayonne.h.

friend class __EXPORT BayonneSession
friend

Definition at line 1775 of file bayonne.h.

Field Documentation

const char* ost::Script::access_host
staticinherited

Definition at line 285 of file script3.h.

const char* ost::Script::access_pass
staticinherited

Definition at line 284 of file script3.h.

const char* ost::Script::access_user
staticinherited

Definition at line 283 of file script3.h.

volatile unsigned short ost::BayonneDriver::active_calls

Definition at line 1841 of file bayonne.h.

const char* ost::Script::altplugins
staticinherited

Definition at line 282 of file script3.h.

unsigned ost::BayonneDriver::answer_count
protected

Definition at line 1801 of file bayonne.h.

const char* ost::Script::apps_extensions
staticinherited

Definition at line 291 of file script3.h.

const char* ost::Script::apps_prefix
staticinherited

Definition at line 292 of file script3.h.

Audio::Level ost::BayonneDriver::audio_level
protected

Definition at line 1797 of file bayonne.h.

int ost::BayonneDriver::audio_priority
protected

Definition at line 1795 of file bayonne.h.

size_t ost::BayonneDriver::audio_stack
protected

Definition at line 1796 of file bayonne.h.

unsigned ost::Script::autoStepping
staticinherited

Definition at line 258 of file script3.h.

unsigned ost::BayonneDriver::avail
protected

Definition at line 1789 of file bayonne.h.

Traffic ost::BayonneDriver::call_attempts

Definition at line 1840 of file bayonne.h.

Traffic ost::BayonneDriver::call_complete

Definition at line 1840 of file bayonne.h.

unsigned ost::Bayonne::compile_count
staticinherited

Definition at line 303 of file bayonne.h.

timeslot_t ost::BayonneDriver::count
protected

Definition at line 1788 of file bayonne.h.

char ost::Script::decimal
staticinherited

Definition at line 275 of file script3.h.

char ost::Bayonne::dtmf_keymap[256]
staticinherited

Definition at line 265 of file bayonne.h.

const char* ost::Script::etc_prefix
staticinherited

Definition at line 294 of file script3.h.

const char* ost::Script::exec_extensions
staticinherited

Definition at line 287 of file script3.h.

bool ost::Script::exec_funcs
staticinherited

Definition at line 286 of file script3.h.

const char* ost::Script::exec_prefix
staticinherited

Definition at line 289 of file script3.h.

timeout_t ost::Bayonne::exec_timer
staticinherited

Definition at line 302 of file bayonne.h.

const char* ost::Script::exec_token
staticinherited

Definition at line 288 of file script3.h.

const char* ost::Script::exit_token
staticinherited

Definition at line 290 of file script3.h.

bool ost::Script::fastStart
staticinherited

Definition at line 255 of file script3.h.

unsigned ost::Script::fastStepping
staticinherited

Definition at line 257 of file script3.h.

BayonneDriver* ost::BayonneDriver::firstDriver
staticprotected

Definition at line 1777 of file bayonne.h.

BayonneSession* ost::BayonneDriver::firstIdle
protected

Definition at line 1784 of file bayonne.h.

timeout_t ost::BayonneDriver::flash_timer
protected

Definition at line 1800 of file bayonne.h.

timeout_t ost::BayonneDriver::hangup_timer
protected

Definition at line 1799 of file bayonne.h.

BayonneSession * ost::BayonneDriver::highIdle
protected

Definition at line 1784 of file bayonne.h.

timeout_t ost::BayonneDriver::hunt_timer
protected

Definition at line 1799 of file bayonne.h.

unsigned ost::Bayonne::idle_count
staticprotectedinherited

Definition at line 292 of file bayonne.h.

unsigned ost::Bayonne::idle_limit
staticprotectedinherited

Definition at line 293 of file bayonne.h.

Fun* ost::Script::ifun
staticprotectedinherited

Definition at line 306 of file script3.h.

volatile bool ost::Bayonne::image_loaded
staticinherited

Definition at line 304 of file bayonne.h.

BayonneTranslator* ost::Bayonne::init_translator
staticinherited

Definition at line 306 of file bayonne.h.

const char* ost::Bayonne::init_voicelib
staticinherited

Definition at line 307 of file bayonne.h.

timeout_t ost::BayonneDriver::interdigit_timer
protected

Definition at line 1800 of file bayonne.h.

BayonneDriver* ost::BayonneDriver::lastDriver
staticprotected

Definition at line 1778 of file bayonne.h.

BayonneSession * ost::BayonneDriver::lastIdle
protected

Definition at line 1784 of file bayonne.h.

AtomicCounter ost::Bayonne::libexec_count
staticinherited

Definition at line 309 of file bayonne.h.

inherited

Definition at line 102 of file script3.h.

ScriptImage** ost::Bayonne::localimages
staticprotectedinherited

Definition at line 280 of file bayonne.h.

const char* ost::Script::log_prefix
staticinherited

Definition at line 296 of file script3.h.

std::ostream* ost::BayonneDriver::logevents
protected

Definition at line 1793 of file bayonne.h.

std::ostream* ost::Bayonne::logging
staticprotectedinherited

Definition at line 288 of file bayonne.h.

BayonneMsgport* ost::BayonneDriver::msgport
protected

Definition at line 1785 of file bayonne.h.

inherited

Definition at line 103 of file script3.h.

const char* ost::BayonneDriver::name
protected

Definition at line 1787 of file bayonne.h.

BayonneDriver* ost::BayonneDriver::nextDriver
protected

Definition at line 1786 of file bayonne.h.

Semaphore ost::BayonneDriver::oink
staticprotected

Definition at line 1781 of file bayonne.h.

size_t ost::Script::pagesize
staticinherited

Definition at line 259 of file script3.h.

const char* ost::Bayonne::path_prompts
staticprotectedinherited

Definition at line 289 of file bayonne.h.

const char* ost::Bayonne::path_tmp
staticprotectedinherited

Definition at line 291 of file bayonne.h.

const char* ost::Bayonne::path_tmpfs
staticprotectedinherited

Definition at line 290 of file bayonne.h.

timeout_t ost::BayonneDriver::pickup_timer
protected

Definition at line 1799 of file bayonne.h.

const char* ost::Script::plugins
staticinherited

Definition at line 281 of file script3.h.

bool ost::BayonneDriver::protocols
staticprotected

Definition at line 1782 of file bayonne.h.

BayonneDriver* ost::BayonneDriver::protoDriver
staticprotected

Definition at line 1780 of file bayonne.h.

timeout_t ost::BayonneDriver::release_timer
protected

Definition at line 1800 of file bayonne.h.

time_t ost::Bayonne::reload_time
staticprotectedinherited

Definition at line 297 of file bayonne.h.

ThreadLock ost::Bayonne::reloading
staticinherited

A mutex to serialize reload requests.

Definition at line 1054 of file bayonne.h.

timeout_t ost::BayonneDriver::reset_timer
protected

Definition at line 1800 of file bayonne.h.

timeout_t ost::BayonneDriver::ring_timer
protected

Definition at line 1799 of file bayonne.h.

bool ost::BayonneDriver::running
protected

Definition at line 1791 of file bayonne.h.

timeout_t ost::BayonneDriver::seize_timer
protected

Definition at line 1799 of file bayonne.h.

Mutex ost::Bayonne::serialize
staticinherited

A mutex to serialize any direct console I/O operations.

Sometimes used to serialize other kinds of time insensitive requests.

Definition at line 1049 of file bayonne.h.

ScriptCommand* ost::Bayonne::server
staticprotectedinherited

Definition at line 282 of file bayonne.h.

bool ost::Bayonne::shutdown_flag
staticprotectedinherited

Definition at line 294 of file bayonne.h.

char ost::Bayonne::sla[64]
staticprotectedinherited

Definition at line 295 of file bayonne.h.

unsigned ost::BayonneDriver::span
protected

Definition at line 1790 of file bayonne.h.

unsigned ost::BayonneDriver::spans
protected

Definition at line 1790 of file bayonne.h.

time_t ost::Bayonne::start_time
staticprotectedinherited

Definition at line 296 of file bayonne.h.

statetab ost::Bayonne::states[]
staticinherited

Table of states ordered by id.

Definition at line 1043 of file bayonne.h.

char* ost::Bayonne::status
staticprotectedinherited

Definition at line 281 of file bayonne.h.

timeout_t ost::Bayonne::step_timer
staticinherited

Definition at line 300 of file bayonne.h.

bool ost::BayonneDriver::stopping
staticprotected

Definition at line 1792 of file bayonne.h.

unsigned ost::Script::symlimit
staticinherited

Definition at line 261 of file script3.h.

unsigned ost::Script::symsize
staticinherited

Definition at line 260 of file script3.h.

Test* ost::Script::test
staticprotectedinherited

Definition at line 305 of file script3.h.

timeslot_t ost::BayonneDriver::timeslot
protected

Definition at line 1788 of file bayonne.h.

BayonneSession** ost::Bayonne::timeslots
staticprotectedinherited

Definition at line 279 of file bayonne.h.

volatile unsigned short ost::Bayonne::total_active_calls
staticinherited

Definition at line 1061 of file bayonne.h.

Traffic ost::Bayonne::total_call_attempts
staticinherited

master traffic counters for call attempts and call completions.

Definition at line 1059 of file bayonne.h.

Traffic ost::Bayonne::total_call_complete
staticinherited

Definition at line 1060 of file bayonne.h.

const char* ost::Bayonne::trap_community
staticinherited

Definition at line 308 of file bayonne.h.

BayonneDriver* ost::BayonneDriver::trunkDriver
staticprotected

Definition at line 1779 of file bayonne.h.

timeslot_t ost::Bayonne::ts_count
staticprotectedinherited

Definition at line 286 of file bayonne.h.

unsigned ost::Bayonne::ts_ext
staticprotectedinherited

Definition at line 284 of file bayonne.h.

timeslot_t ost::Bayonne::ts_limit
staticprotectedinherited

Definition at line 285 of file bayonne.h.

unsigned ost::Bayonne::ts_trk
staticprotectedinherited

Definition at line 283 of file bayonne.h.

timeslot_t ost::Bayonne::ts_used
staticprotectedinherited

Definition at line 287 of file bayonne.h.

bool ost::Script::use_definitions
staticinherited

Definition at line 276 of file script3.h.

bool ost::Script::use_funcs
staticinherited

Definition at line 280 of file script3.h.

bool ost::Script::use_macros
staticinherited

Definition at line 277 of file script3.h.

bool ost::Script::use_merge
staticinherited

Definition at line 279 of file script3.h.

bool ost::Script::use_prefix
staticinherited

Definition at line 278 of file script3.h.

bool ost::Script::useBigmem
staticinherited

Definition at line 256 of file script3.h.

const char* ost::Script::var_prefix
staticinherited

Definition at line 295 of file script3.h.


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

Generated on Dec 21, 2017 for commoncpp2-1.8.1, ccrtp-1.7.2, libzrtpcpp-2.3.4, ccscript3-1.1.7, ccaudio2-1.0.0 and bayonne2-2.3.2 (after installation in /usr/local/) by   doxygen 1.8.6

AltStyle によって変換されたページ (->オリジナル) /