|
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,
RINGING,
VIRTUAL
} |
| 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_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_DOWN,
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,
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...
|
|
enum | result_t {
RESULT_SUCCESS = 0,
RESULT_TIMEOUT,
RESULT_INVALID,
RESULT_PENDING,
RESULT_COMPLETE,
RESULT_FAILED,
RESULT_BADPATH = 254,
RESULT_OFFLINE = 255
} |
|
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...
|
|
enum | scrAccess {
scrPUBLIC,
scrPROTECTED,
scrPRIVATE,
scrFUNCTION,
scrLOCAL
} |
|
typedef enum scrAccess | scrAccess |
|
enum | symType {
symNORMAL = 0,
symCONST,
symDYNAMIC,
symFIFO,
symSEQUENCE,
symSTACK,
symCOUNTER,
symPOINTER,
symREF,
symARRAY,
symASSOC,
symINITIAL,
symNUMBER,
symLOCK,
symPROPERTY,
symORIGINAL,
symMODIFIED,
symTIMER,
symBOOL
} |
|
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 |
|
|
| Libexec () |
| Initialize libexec. More...
|
|
const char * | getEnv (const char *id) |
| Get a header record item. More...
|
|
const char * | getArg (const char *id) |
| Get a named libexec command line argument. More...
|
|
const char * | getPath (const char *filename, char *buffer, unsigned size) |
| Get a fully qualified and resolved pathname. More...
|
|
const char * | getFile (const char *filename) |
| Get and verify partial pathname for file oriented libexec commands. More...
|
|
void | setVoice (const char *voice) |
| Set the effective voice library to use. More...
|
|
void | setLevel (Audio::Level level) |
| Set the effective audio level for tones... More...
|
|
void | hangupSession (void) |
| Hangup running session... More...
|
|
void | detachSession (unsigned code) |
| Resume server session, libexec continues detached. More...
|
|
result_t | sendCommand (const char *text, char *buffer=NULL, unsigned size=0) |
| Send a command through to server and capture result. More...
|
|
result_t | sendResult (const char *text) |
| Send a result to the server. More...
|
|
void | sendError (const char *msg) |
| Send an error to the server. More...
|
|
result_t | xferCall (const char *dest) |
| Transfer a call. More...
|
|
result_t | replayFile (const char *file) |
| Replay an audio file. More...
|
|
result_t | replayOffset (const char *file, const char *offset) |
| Replay an audio file from a specified offset. More...
|
|
result_t | recordFile (const char *file, timeout_t duration, timeout_t silence=0) |
| Record an audio file. More...
|
|
result_t | speak (const char *format,...) |
| Play a phrase. More...
|
|
result_t | playTone (const char *name, timeout_t duration=0, unsigned level=0) |
| Play a tone. More...
|
|
result_t | playSingleTone (short f1, timeout_t duration, unsigned level=0) |
|
result_t | playDualTone (short f1, short f2, timeout_t duration, unsigned level=0) |
|
result_t | recordOffset (const char *file, const char *offset, timeout_t duration, timeout_t silence=0) |
| Record an audio file to a specified offset. More...
|
|
result_t | eraseFile (const char *file) |
| Erase an audio file. More...
|
|
result_t | moveFile (const char *file1, const char *file2) |
| Move an audio file. More...
|
|
result_t | clearInput (void) |
| Flush input. More...
|
|
bool | waitInput (timeout_t timeout) |
| Wait for input. More...
|
|
result_t | readInput (char *buffer, unsigned size, timeout_t timeout) |
| Read a line of input. More...
|
|
char | readKey (timeout_t timeout) |
| Read a single key of input. More...
|
|
result_t | sizeSym (const char *id, unsigned size) |
|
result_t | addSym (const char *id, const char *value) |
|
result_t | setSym (const char *id, const char *value) |
|
result_t | getSym (const char *id, char *buf, unsigned size) |
|
void | postSym (const char *id, const char *value) |
| Post a symbol asychrononous event to server. More...
|
|
void | md5_hash (char *out, const char *source) |
| Compute md5 hashes... 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 BayonneDriver * | getDriverTag (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 ScriptCompiler * | reload (void) |
| Request active scripts to be recompiled from the library. 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...
|
|
static BayonneSession * | getSession (timeslot_t timeslot) |
| Returns a session pointer for a server timeslot. More...
|
|
static ScriptImage ** | getLocalImage (timeslot_t timeslot) |
| Returns a local image pointer for a server timeslot. More...
|
|
static BayonneSession * | startDialing (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 BayonneSession * | getSid (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 ScriptImage * | useImage (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 Symbol * | deref (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) |
|
Container class for applications implimenting the libexec process method of Bayonne interfacing.
This is intended for writing external apps and is neatly tucked away into libbayonne as well.
- Author
- David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org Libexec process interface class.
Definition at line 63 of file libexec.h.