|
Bayonne
|
#include <libexec.h>
Protected Member Functions | |
| void | sysPost (const char *sid, char *id, const char *value) |
| void | sysVar (const char *tsid, char *id, const char *value, int size) |
| void | sysHeader (const char *tsid) |
| void | sysArgs (const char *tsid) |
| void | sysStatus (const char *tsid) |
| void | sysRecord (const char *tsid, char *token) |
| void | sysReplay (const char *tsid, char *token) |
| void | sysFlush (const char *tsid) |
| void | sysWait (const char *tsid, char *token) |
| void | sysTone (const char *tsid, char *token) |
| void | sysSTone (const char *tsid, char *token) |
| void | sysDTone (const char *tsid, char *token) |
| void | sysPrompt (const char *tsid, const char *voice, const char *text) |
| void | sysInput (const char *tsid, char *token) |
| void | sysHangup (const char *tsid) |
| void | sysExit (const char *tsid, char *token) |
| void | sysError (const char *tsid, char *token) |
| void | sysReturn (const char *tsid, const char *text) |
| void | sysXfer (const char *tsid, const char *dest) |
Protected Member Functions inherited from ost::BayonneSession | |
| bool | requiresDTMF (void) |
| Used to indicate commands which require dtmf handling to be enabled. | |
| void | enterCall (void) |
| Enter a co-joined call session; used to notify other services. | |
| void | exitCall (const char *reason) |
| Exit a co-joined call session; used to notify other services. | |
| virtual bool | enableDTMF (void) |
| Enable dtmf detection for this channel. | |
| virtual void | disableDTMF (void) |
| Disable dtmf detection for this channel. | |
| virtual const char * | checkAudio (bool live) |
| Check audio properties for file and channel audio processing based on the driver specific capabilities of this channel through it's virtual. | |
| virtual bool | filterPosting (Event *event) |
| virtual to filter incoming events. | |
| virtual bool | enterCommon (Event *event) |
| virtual bool | enterInitial (Event *event) |
| virtual bool | enterFinal (Event *event) |
| virtual bool | enterIdle (Event *event) |
| virtual bool | enterReset (Event *event) |
| virtual bool | enterRelease (Event *event) |
| virtual bool | enterRinging (Event *event) |
| virtual bool | enterPickup (Event *event) |
| virtual bool | enterAnswer (Event *event) |
| virtual bool | enterSeize (Event *event) |
| virtual bool | enterHunting (Event *event) |
| virtual bool | enterHangup (Event *event) |
| virtual bool | enterTone (Event *event) |
| virtual bool | enterReconnect (Event *event) |
| virtual bool | enterDTMF (Event *event) |
| virtual bool | enterPlay (Event *event) |
| virtual bool | enterRecord (Event *event) |
| virtual bool | enterJoin (Event *event) |
| virtual bool | enterWait (Event *event) |
| virtual bool | enterDial (Event *event) |
| virtual bool | enterBusy (Event *event) |
| virtual bool | enterStandby (Event *event) |
| virtual bool | enterXfer (Event *event) |
| virtual bool | enterRefer (Event *event) |
| virtual bool | enterHold (Event *event) |
| virtual bool | enterRecall (Event *event) |
| void | check (void) |
| Check dtmf handling and other nessisities for the interpreter after an event has changed interpreter state. | |
| void | renameRecord (void) |
| bool | stateInitial (Event *event) |
| bool | stateFinal (Event *event) |
| bool | stateIdle (Event *event) |
| bool | stateIdleReset (Event *event) |
| bool | stateReset (Event *event) |
| bool | stateRelease (Event *event) |
| bool | stateBusy (Event *event) |
| bool | stateStandby (Event *event) |
| bool | stateRinging (Event *event) |
| bool | statePickup (Event *event) |
| bool | stateAnswer (Event *event) |
| bool | stateSeize (Event *event) |
| bool | stateHunting (Event *event) |
| bool | stateRunning (Event *event) |
| bool | stateLibexec (Event *event) |
| bool | stateLibreset (Event *event) |
| bool | stateLibwait (Event *event) |
| bool | stateWaitkey (Event *event) |
| bool | stateThreading (Event *event) |
| bool | stateHangup (Event *event) |
| bool | stateCollect (Event *event) |
| bool | stateSleep (Event *event) |
| bool | stateStart (Event *event) |
| bool | stateClear (Event *event) |
| bool | stateInkey (Event *event) |
| bool | stateInput (Event *event) |
| bool | stateRead (Event *event) |
| bool | stateDial (Event *event) |
| bool | stateXfer (Event *event) |
| bool | stateRefer (Event *event) |
| bool | stateHold (Event *event) |
| bool | stateRecall (Event *event) |
| bool | stateTone (Event *event) |
| bool | stateDTMF (Event *event) |
| bool | statePlay (Event *event) |
| bool | stateRecord (Event *event) |
| bool | stateJoin (Event *event) |
| bool | stateWait (Event *event) |
| bool | stateConnect (Event *event) |
| bool | stateReconnect (Event *event) |
| bool | stateCalling (Event *event) |
| bool | putEvent (Event *event) |
| Direct method to post an event to a channel. | |
| void | libWrite (const char *string) |
| Write libexec... | |
| void | libClose (const char *string) |
| bool | isLibexec (const char *tsid) |
| timeout_t | getLibexecTimeout (void) |
| const char * | getWritepath (char *buf=NULL, size_t len=0) |
| void | incIncomingAttempts (void) |
| void | incOutgoingAttempts (void) |
| void | incIncomingComplete (void) |
| void | incOutgoingComplete (void) |
| void | incActiveCalls (void) |
| void | decActiveCalls (void) |
| ScriptInterp * | getInterp (const char *id) |
| Return session id for interpreter session command. | |
| ScriptSymbols * | getSymbols (const char *id) |
| Return ccengine symbol page map. | |
| Name * | attachStart (Event *event) |
| Start a script from idle or ringing. | |
| unsigned | getId (void) |
| Used by ccengine. | |
| void | setSid (void) |
| Compute a uneque call session id for the current call on the current session object. | |
| void | setState (state_t) |
| Set the session to a new state. | |
| void | setRunning (void) |
| Set the session to the running state, resume interpreter or libexec. | |
| bool | setReconnect (const char *enc, timeout_t framing) |
| Attempt to readjust encoding of active session if supported. | |
| bool | recallReconnect (void) |
| Attempt to readjust encoding of active session for recall. | |
| void | setConnecting (const char *evname=NULL) |
| Set the session to the connecting (join) state or run state based on flags and circumstances from seize/pickup. | |
| bool | setLibexec (result_t result) |
| Set the result of a libexec initiated process and change state to libexec. | |
| bool | setLibreset (result_t result) |
| Set the result of a libexec initiated process and execute a reset timer interval. | |
| libaudio_t * | getLibaudio (void) |
| Get the libaudio object. | |
| void | finalize (void) |
| ccengine. | |
| bool | exit (void) |
| Exit processing for interpreter. | |
Friends | |
| class __EXPORT | BayonneSysexec |
Additional Inherited Members | |
Public Types inherited from ost::Bayonne | |
| 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. | |
| typedef bool(BayonneSession::* | Handler )(Event *event) |
| The current state handler in effect for a given channel to receive events. | |
Public Member Functions inherited from ost::BayonneSession | |
| bool | isDTMF (void) |
| bool | isPeering (void) |
| BayonneSpan * | getSpan (void) |
| timeslot_t | getTimeslot (void) |
| ScriptEngine * | getEngine (void) |
| const char * | getExternal (const char *option) |
| Process interpreter session symbols. | |
| bool | addSymbol (const char *id, const char *value) |
| Add to an existing symbol. | |
| bool | clearSymbol (const char *id) |
| Clear an existing symbol. | |
| uint16 | getEventSequence (void) |
| Get event sequence id. | |
| BayonneTranslator * | getTranslator (void) |
| Get the current language translator. | |
| void | startConnecting (void) |
| Start connecting child... | |
| BayonneSession (BayonneDriver *driver, timeslot_t timeslot, BayonneSpan *span=NULL) | |
| Create a new session. | |
| virtual | ~BayonneSession () |
| Destroy a session. | |
| const char * | getDigits (void) |
| const char * | defVoicelib (void) |
| const char * | getSessionId (void) |
| const char * | getSessionParent (void) |
| const char * | getSessionJoined (void) |
| time_t | getSessionStart (void) |
| void | initialevent (void) |
| Initial kickoff event. | |
| void | initialize (void) |
| Initialine ccengine script environment. | |
| void | detach (void) |
| Detach interpreter. | |
| time_t | getJoined (void) |
| Return time this call is joined or 0 if not child node. | |
| BayonneDriver * | getDriver (void) |
| Return driver associated with this session. | |
| virtual timeout_t | getRemaining (void)=0 |
| Return time remaining until timer expires. | |
| virtual void | startTimer (timeout_t timer)=0 |
| Start a timer on the session. | |
| virtual void | stopTimer (void)=0 |
| Stop the timer for the session. | |
| virtual void | setOffhook (bool state) |
| Set the port hook state. | |
| virtual void | makeIdle (void) |
| Handles driver specific stuff when going idle. | |
| void | part (event_t reason) |
| Disconnect notify peer... | |
| virtual bool | postEvent (Event *event) |
| Post an event to the session state engine. | |
| bool | matchLine (Line *line) |
| virtual void | queEvent (Event *event) |
| queue an event through the msgport. | |
| virtual void | startThread (void) |
| ccengine thread handling. | |
| virtual void | enterThread (ScriptThread *thr) |
| ccengine thread handling. | |
| virtual void | exitThread (const char *msg) |
| ccengine thread handling. | |
| virtual void | clrAudio (void) |
| Clear/cleanup audio processing for the session. | |
| virtual timeout_t | getToneFraming (void) |
| Get frame rate used for creating tone generators. | |
| virtual const char * | audioEncoding (void) |
| Get driver default encoding. | |
| virtual const char * | audioExtension (void) |
| Get driver default extension. | |
| virtual timeout_t | audioFraming (void) |
| Get driver default framing. | |
| const char * | getAudio (bool live=true) |
| Check script keywords for audio processing. | |
| void | branching (void) |
| ccengine branch event notification. | |
| bool | isOffhook (void) |
| Return hook state. | |
| interface_t | getInterface (void) |
| Return interface type of this session. | |
| bridge_t | getBridge (void) |
| Return bridge type for joins. | |
| calltype_t | getType (void) |
| Return call type on session. | |
| timeslot_t | getSlot (void) |
| Return server timeslot this session uses. | |
| bool | isIdle (void) |
| Return if the session is currently idle. | |
| bool | isRefer (void) |
| Return if currently referring. | |
| bool | isJoined (void) |
| Return state of join. | |
| bool | isAssociated (void) |
| Return state of association with parent in call. | |
| void | associate (BayonneSession *s) |
| Set new call association. | |
| bool | isHolding (void) |
| bool | isDisconnecting (void) |
| Return state disconnecting or idle... | |
| timeout_t | getJoinTimer (void) |
| Return parent answer timer, if joining. | |
| bool | signalScript (signal_t signal) |
| Signal notification to script. | |
| virtual bool | peerLinear (void) |
| Indicate whether session peers audio as linear frames. | |
| virtual bool | peerAudio (Audio::Encoded encoded) |
| Post a peer audio frame into the driver. | |
| virtual bool | setPeering (Audio::Encoding encoding, timeout_t framing) |
| Set peer audio encoding to the encoding type and framing specified by peer on drivers which can switch encoding. | |
| const char * | getKeyString (const char *id) |
| bool | getKeyBool (const char *id) |
| long | getKeyValue (const char *id) |
| timeout_t | getSecTimeout (const char *id) |
| timeout_t | getMSecTimeout (const char *id) |
| timeout_t | getTimeoutValue (const char *opt=NULL) |
| timeout_t | getTimeoutKeyword (const char *kw) |
| const char * | getExitKeyword (const char *def) |
| const char * | getMenuKeyword (const char *def) |
| unsigned | getInputCount (const char *digits, unsigned max) |
| uint32 | newTid (void) |
| Compute a new unique transaction id. | |
| const char * | getTid (void) |
| Get the current transaction identifier string for the session. | |
| bool | digitEvent (const char *event) |
| Throw a digit pattern matching event message to the interprer. | |
| bool | stringEvent (const char *evt) |
| char | getDigit (void) |
| Get the next pending digit in the DTMF input buffer. | |
Static Public Member Functions inherited from ost::BayonneSession | |
| static const char * | getGlobal (const char *id) |
| static bool | setGlobal (const char *id, const char *value) |
| static bool | sizeGlobal (const char *id, unsigned size) |
| static bool | addGlobal (const char *id, const char *value) |
| static bool | clearGlobal (const char *id) |
Public Attributes inherited from ost::BayonneSession | |
| Traffic | call_attempts |
| Traffic | call_complete |
| BayonneAudio | audio |
Static Public Attributes inherited from ost::Bayonne | |
| static char | dtmf_keymap [256] |
| 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 BayonneTranslator * | init_translator |
| static const char * | init_voicelib |
| static const char * | trap_community |
| 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 ThreadLock | reloading |
| A mutex to serialize reload requests. | |
| static Traffic | total_call_attempts |
| master traffic counters for call attempts and call completions. | |
| static Traffic | total_call_complete |
| static volatile unsigned short | total_active_calls |
Protected Attributes inherited from ost::BayonneSession | |
| std::ostream * | logevents |
| std::ostream * | logtrace |
| Ring * | ring |
| BayonneDriver * | driver |
| BayonneMsgport * | msgport |
| BayonneSession * | peer |
| BayonneSpan * | span |
| timeslot_t | timeslot |
| uint8 | seq |
| uint16 | evseq |
| uint32 | tseq |
| bool | offhook |
| bool | dtmf |
| bool | answered |
| bool | starting |
| bool | holding |
| bool | connecting |
| bool | referring |
| time_t | audiotimer |
| time_t | starttime |
| interface_t | iface |
| bridge_t | bridge |
| calltype_t | type |
| event_t | seizure |
| ScriptEngine * | vm |
| BayonneTranslator * | translator |
| Translator in effect for this session. | |
| char | var_date [12] |
| char | var_time [12] |
| char | var_duration [12] |
| char | var_callid [12] |
| char | var_tid [14] |
| char | var_sid [16] |
| char | var_pid [16] |
| char | var_recall [16] |
| char | var_joined [16] |
| char | var_rings [4] |
| char | var_timeslot [8] |
| char | var_spanid [8] |
| char | var_bankid [4] |
| char | var_spantsid [12] |
| const char * | voicelib |
| char * | dtmf_digits |
| unsigned | digit_count |
| unsigned | ring_count |
| time_t | time_joined |
| State | state |
Static Protected Attributes inherited from ost::BayonneSession | |
| static BayonneTranslator | langNone |
| static ScriptSymbols * | globalSyms |
| static Mutex | globalLock |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
friend |
1.8.2