Bayonne
Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
ost::BayonneTranslator Class Reference

A core class to support language translation services in Bayonne phrasebook. More...

#include <bayonne.h>

Inheritance diagram for ost::BayonneTranslator:
ost::Bayonne

Public Member Functions

 BayonneTranslator (const char *iso)
 Create a translator instance for a specific language identifier. More...
 
virtual ~BayonneTranslator ()
 
BayonneTranslatorgetNext ()
 Get next translator. More...
 
virtual unsigned digits (BayonneSession *sessiob, unsigned count, const char *string)
 Translate a simple set of digits to spoken speech. More...
 
virtual unsigned spell (BayonneSession *session, unsigned count, const char *string)
 Spell out the string as individual letters. More...
 
virtual unsigned sayorder (BayonneSession *session, unsigned count, const char *string)
 Translate an ordinal number (xxnth) to prompts. More...
 
virtual unsigned number (BayonneSession *session, unsigned count, const char *string)
 Translate a number to spoken speech. More...
 
virtual unsigned saynumber (BayonneSession *session, unsigned count, const char *string)
 Translate generic numbers to spoken speech. More...
 
virtual unsigned saycount (BayonneSession *session, unsigned count, const char *string)
 Translate a counting number (integer) to spoken speech. More...
 
virtual unsigned sayhour (BayonneSession *session, unsigned count, const char *string)
 Translate a string for time into short hours. More...
 
virtual unsigned saytime (BayonneSession *session, unsigned count, const char *string)
 Translate a string for time into speech. More...
 
virtual unsigned weekday (BayonneSession *session, unsigned count, const char *string)
 Translate a string with a date into the spoken weekday. More...
 
virtual unsigned sayday (BayonneSession *session, unsigned count, const char *string)
 
virtual unsigned saydate (BayonneSession *session, unsigned count, const char *string)
 Translate a string with a date into a spoken date. More...
 
virtual unsigned saybool (BayonneSession *session, unsigned count, const char *string)
 Translate a logical value and speak as yes/no. More...
 
virtual unsigned phone (BayonneSession *session, unsigned count, const char *string)
 Translate and speak a phone number. More...
 
virtual unsigned extension (BayonneSession *session, unsigned count, const char *string)
 Translate and speak a phone extension. More...
 
virtual const char * speak (BayonneSession *session, Line *line=NULL)
 Translation dispatch, processes script and invokes other methods. More...
 
const char * getId (void)
 Get the id string. More...
 
- Public Member Functions inherited from ost::Bayonne
void md5_hash (char *out, const char *source)
 Compute md5 hashes... More...
 

Static Public Member Functions

static BayonneTranslatorget (const char *name)
 Find a translator for a given name/location. More...
 
static BayonneTranslatorgetFirst (void)
 Get first translator. More...
 
static BayonneTranslatorloadTranslator (const char *iso)
 Load a named translator into memory for use. More...
 
- Static Public Member Functions inherited from ost::Bayonne
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 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 BayonneSessiongetSession (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 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 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 Protected Member Functions

static const char * getToken (BayonneSession *s, Line *l, unsigned *idx)
 
static unsigned addItem (BayonneSession *s, unsigned count, const char *text)
 
static const char * getLast (BayonneSession *s, unsigned count)
 

Protected Attributes

BayonneTranslatornext
 
const char * id
 

Static Protected Attributes

static BayonneTranslatorfirst
 
- Static Protected Attributes inherited from ost::Bayonne
static BayonneSession ** timeslots
 
static ScriptImage ** localimages
 
static char * status
 
static ScriptCommand * server
 
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
 

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. More...
 
typedef bool(BayonneSession::* Handler )(Event *event)
 The current state handler in effect for a given channel to receive events. More...
 
- 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 BayonneTranslatorinit_translator
 
static const char * init_voicelib
 
static const char * trap_community
 
static AtomicCounter libexec_count
 
static statetab states []
 Table of states ordered by id. More...
 
static Mutex serialize
 A mutex to serialize any direct console I/O operations. More...
 
static ThreadLock reloading
 A mutex to serialize reload requests. More...
 
static Traffic total_call_attempts
 master traffic counters for call attempts and call completions. More...
 
static Traffic total_call_complete
 
static volatile unsigned short total_active_calls
 

Detailed Description

A core class to support language translation services in Bayonne phrasebook.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org Phrasebook translation base class.

Constructor & Destructor Documentation

ost::BayonneTranslator::BayonneTranslator ( const char *  iso)

Create a translator instance for a specific language identifier.

Generally iso names will be sued. Sometimes iso sub-identifiers may be used for nation specific versions of phrasebook.

Parameters
isoname of language/locale.
virtual ost::BayonneTranslator::~BayonneTranslator ( )
virtual

Member Function Documentation

static unsigned ost::BayonneTranslator::addItem ( BayonneSession s,
unsigned  count,
const char *  text 
)
staticprotected
virtual unsigned ost::BayonneTranslator::digits ( BayonneSession sessiob,
unsigned  count,
const char *  string 
)
virtual

Translate a simple set of digits to spoken speech.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::extension ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate and speak a phone extension.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
static BayonneTranslator* ost::BayonneTranslator::get ( const char *  name)
static

Find a translator for a given name/location.

Parameters
isolanguage/locale name of translator to find.
Returns
derived translator class for translator.
static BayonneTranslator* ost::BayonneTranslator::getFirst ( void  )
inlinestatic

Get first translator.

Returns
pointer to first translator.
const char* ost::BayonneTranslator::getId ( void  )
inline

Get the id string.

Returns
id string.
static const char* ost::BayonneTranslator::getLast ( BayonneSession s,
unsigned  count 
)
staticprotected
BayonneTranslator* ost::BayonneTranslator::getNext ( )
inline

Get next translator.

Returns
next translator.
static const char* ost::BayonneTranslator::getToken ( BayonneSession s,
Line *  l,
unsigned *  idx 
)
staticprotected
static BayonneTranslator* ost::BayonneTranslator::loadTranslator ( const char *  iso)
static

Load a named translator into memory for use.

This is used by the fifo/script language command.

Parameters
isomodule name to load.
Returns
true if successful.
virtual unsigned ost::BayonneTranslator::number ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a number to spoken speech.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::phone ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate and speak a phone number.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::saybool ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a logical value and speak as yes/no.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::saycount ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a counting number (integer) to spoken speech.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::saydate ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a string with a date into a spoken date.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::sayday ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual
virtual unsigned ost::BayonneTranslator::sayhour ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a string for time into short hours.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::saynumber ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate generic numbers to spoken speech.

This is the one used by the &number rule.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::sayorder ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate an ordinal number (xxnth) to prompts.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::saytime ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a string for time into speech.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual const char* ost::BayonneTranslator::speak ( BayonneSession session,
Line *  line = NULL 
)
virtual

Translation dispatch, processes script and invokes other methods.

Returns
error message or NULL if okay
Parameters
sessionto process a command from.
lineof compiled script to process.
virtual unsigned ost::BayonneTranslator::spell ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Spell out the string as individual letters.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.
virtual unsigned ost::BayonneTranslator::weekday ( BayonneSession session,
unsigned  count,
const char *  string 
)
virtual

Translate a string with a date into the spoken weekday.

Parameters
sessionto save list of prompts.
countof current prompts used.
stringto be processed.
Returns
new count of prompts used.

Member Data Documentation

BayonneTranslator* ost::BayonneTranslator::first
staticprotected
const char* ost::BayonneTranslator::id
protected
BayonneTranslator* ost::BayonneTranslator::next
protected

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