#include <bayonne.h>
Inheritance diagram for ost::Bayonne:

Public Types | |
| typedef uint16_t | timeslot_t |
| typedef bool(BayonneSession::* | Handler )(Event *event) |
| The current state handler in effect for a given channel to receive events. | |
| enum | interface_t { IF_PSTN, IF_SPAN, IF_ISDN, IF_SS7, IF_INET, IF_NONE, IF_POTS = IF_PSTN } |
| Telephony endpoint interface identifiers. More... | |
| enum | calltype_t { NONE, INCOMING, OUTGOING, PICKUP, FORWARDED, RECALL, DIRECT } |
| 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... | |
| enum | state_t { STATE_INITIAL = 0, STATE_IDLE, STATE_RESET, STATE_RELEASE, STATE_BUSY, STATE_DOWN, STATE_RING, STATE_PICKUP, STATE_SEIZE, STATE_STEP, STATE_EXEC, STATE_THREAD, STATE_CLEAR, STATE_INKEY, STATE_INPUT, STATE_READ, STATE_COLLECT, STATE_DIAL, STATE_XFER, STATE_HOLD, STATE_RECALL, STATE_TONE, STATE_DTMF, STATE_PLAY, STATE_RECORD, STATE_JOIN, STATE_WAIT, STATE_CONNECT, STATE_SLEEP, STATE_START, STATE_HANGUP, STATE_LIBRESET, STATE_WAITKEY, STATE_LIBWAIT, STATE_IRESET, STATE_FINAL, STATE_STANDBY = STATE_DOWN, STATE_LIBEXEC = STATE_EXEC, STATE_RINGING = STATE_RING, STATE_RUNNING = STATE_STEP, STATE_THREADING = STATE_THREAD } |
| Call processing states offered in core library. More... | |
| enum | signal_t { SIGNAL_EXIT = 0, 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_A, SIGNAL_B, SIGNAL_FLASH = SIGNAL_B, SIGNAL_C, SIGNAL_IMMEDIATE = SIGNAL_C, SIGNAL_D, SIGNAL_PRIORITY = SIGNAL_D, SIGNAL_RING, SIGNAL_TONE, SIGNAL_EVENT, SIGNAL_WINK, SIGNAL_CHILD, SIGNAL_FAIL, SIGNAL_PICKUP, SIGNAL_PART, SIGNAL_INVALID, SIGNAL_PARENT, SIGNAL_WAIT, SIGNAL_HANGUP = SIGNAL_EXIT } |
| 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, START_DIRECT = 200, START_INCOMING, START_OUTGOING, START_RECALL, START_FORWARDED, STOP_SCRIPT, STOP_DISCONNECT, STOP_PARENT, CANCEL_CHILD, DETACH_CHILD, CHILD_RUNNING, CHILD_FAILED, CHILD_INVALID, CHILD_EXPIRED, CHILD_BUSY, CHILD_FAX, START_SCRIPT = START_INCOMING, START_SELECTED = START_OUTGOING, 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, 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, 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, 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_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_START, DTMF_STOP, 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, SYSTEM_DOWN = 900, DRIVER_SPECIFIC = 1000 } |
| Primary event identifiers. More... | |
| enum | result_t { RESULT_SUCCESS = 0, RESULT_TIMEOUT, RESULT_INVALID, RESULT_PENDING, RESULT_COMPLETE, RESULT_FAILED, RESULT_BADPATH = 254, RESULT_OFFLINE = 255 } |
Static Public Member Functions | |
| static const char * | getKeypath (const char *cp) |
| static void | allocate (timeslot_t timeslots, ScriptCommand *server=NULL) |
| Allocates the maximum number of timeslots the server will use as a whole and attaches a given server to the library. | |
| static void | waitLoaded (void) |
| Wait for live flag. | |
| static unsigned long | uptime (void) |
| Get server uptime. | |
| static ScriptCompiler * | reload (void) |
| Request active scripts to be recompiled from the library. | |
| static void | down (void) |
| Used to down the server from the library. | |
| static bool | service (const char *svc) |
| Sets server service level from the library. | |
| static BayonneSession * | getSession (timeslot_t timeslot) |
| Returns a session pointer for a server timeslot. | |
| static BayonneSession * | getSid (const char *id) |
| Returns a session pointer for a string identifier. | |
| static timeslot_t | toTimeslot (const char *id) |
| Returns a server timeslot number for a string identifier. | |
| static timeslot_t | getTimeslotsUsed (void) |
| Return total library timeslots used (highest used). | |
| static timeslot_t | getTimeslotCount (void) |
| Return total timeslots allocated for the server. | |
| static timeslot_t | getAvailTimeslots (void) |
| Return remaining timeslots available to allocate driver ports into. | |
| static Handler | getState (const char *name) |
| Map a state name into a handler. | |
| static int | getDigit (char dig) |
| Convert a dtmf character into a 0-15 number reference. | |
| static char | getChar (int dtmf) |
| Convert a dtmf digit number into it's ascii code. | |
| static bool | matchDigits (const char *digits, const char *match, bool partial=false) |
| A function to support pattern matching and templates for digit strings. | |
| static ScriptImage * | useImage (void) |
| Use the current compiled script image; mark as in use. | |
| static void | endImage (ScriptImage *img) |
| Release a script image in use. | |
| static bool | loadPlugin (const char *path) |
| Load a plugin module. | |
| static bool | loadMonitor (const char *path) |
| Load a monitoring/management module. | |
| static bool | loadAudio (const char *path) |
| Load a bgm/audio processing module for continues audio. | |
| static void | errlog (const char *level, const char *fmt,...) |
Static Public Attributes | |
| static timeout_t | step_timer |
| static timeout_t | reset_timer |
| static timeout_t | exec_timer |
| static unsigned | compile_count |
| static volatile bool | image_loaded |
| static bool | provision_ripple |
| static bool | provision_daemon |
| static bool | provision_system |
| static bool | provision_check |
| static bool | provision_user |
| static bool | provision_test |
| static const char * | provision_server |
| static const char * | provision_libexec |
| static Audio::Encoding | peer_encoding |
| static Audio::timeout_t | peer_framing |
| static BayonneTranslator * | init_translator |
| static const char * | init_voicelib |
| static AtomicCounter | libexec_count |
| static statetab | states [] |
| Table of states ordered by id. | |
| static Mutex | serialize |
| A mutex to serialize any direct console I/O operations. | |
Static Protected Attributes | |
| static BayonneSession ** | timeslots |
| static char * | status |
| static ScriptCommand * | server |
| 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 [] |
| static time_t | start_time |
Classes | |
| struct | Event |
| The event data structure includes the event identifier and any paramaters. More... | |
| struct | libaudio_t |
| struct | State |
| The primary state data structure. More... | |
| struct | statetab |
| A list of each state and a description. More... | |
|
|
The current state handler in effect for a given channel to receive events. This is done by a direct method pointer for fast processing. |
|
|
|
|
|
Type of bridge used for joining ports.
|
|
|
Type of call session being processed.
|
|
|
Primary event identifiers. These are the events that can be passed into the Bayonne state machine. They are broken into categories.
|
|
|
Telephony endpoint interface identifiers.
|
|
|
|
|
|
|
Call processing states offered in core library. This list must be ordered to match the entries in the state table (statetab).
|
|
||||||||||||
|
Allocates the maximum number of timeslots the server will use as a whole and attaches a given server to the library.
|
|
|
Used to down the server from the library.
|
|
|
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.
|
|
||||||||||||||||
|
|
|
|
Return remaining timeslots available to allocate driver ports into.
|
|
|
Convert a dtmf digit number into it's ascii code.
|
|
|
Convert a dtmf character into a 0-15 number reference.
|
|
|
|
|
|
Returns a session pointer for a server timeslot. Each server timeslot can map to a single session object.
|
|
|
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.
|
|
|
Map a state name into a handler. Used for logging requests. Uses the statetab.
|
|
|
Return total timeslots allocated for the server.
|
|
|
Return total library timeslots used (highest used).
|
|
|
Load a bgm/audio processing module for continues audio.
|
|
|
Load a monitoring/management module.
|
|
|
Load a plugin module.
|
|
||||||||||||||||
|
A function to support pattern matching and templates for digit strings. This is used for digit :... entries and the route command.
|
|
|
Request active scripts to be recompiled from the library.
|
|
|
Sets server service level from the library.
|
|
|
Returns a server timeslot number for a string identifier.
|
|
|
Get server uptime.
|
|
|
Use the current compiled script image; mark as in use.
|
|
|
Wait for live flag. .. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Reimplemented in ost::BayonneDriver. |
|
|
A mutex to serialize any direct console I/O operations. Sometimes used to serialize other kinds of time insensitive requests. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Table of states ordered by id.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.6