Bayonne2 / Common C++ 2 Framework
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Member Functions | Data Fields | Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
ost::BayonneAudio Class Reference

Offers core Bayonne audio processing in a self contained class. More...

#include <bayonne.h>

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

Public Types

enum  Rate {
  rateUnknown, rate6khz = 6000, rate8khz = 8000, rate16khz = 16000,
  rate32khz = 32000, rate44khz = 44100
}
 Audio encoding rate, samples per second. More...
 
typedef enum Rate Rate
 
enum  Mode {
  modeRead, modeReadAny, modeReadOne, modeWrite,
  modeCache, modeInfo, modeFeed, modeAppend,
  modeCreate
}
 File processing mode, whether to skip missing files, etc. More...
 
typedef enum Mode Mode
 
enum  Encoding {
  unknownEncoding = 0, g721ADPCM, g722Audio, g722_7bit,
  g722_6bit, g723_2bit, g723_3bit, g723_5bit,
  gsmVoice, msgsmVoice, mulawAudio, alawAudio,
  mp1Audio, mp2Audio, mp3Audio, okiADPCM,
  voxADPCM, sx73Voice, sx96Voice, cdaStereo,
  cdaMono, pcm8Stereo, pcm8Mono, pcm16Stereo,
  pcm16Mono, pcm32Stereo, pcm32Mono, speexVoice,
  speexAudio, g729Audio, ilbcAudio, speexUltra,
  speexNarrow = speexVoice, speexWide = speexAudio, g723_4bit = g721ADPCM
}
 Audio encoding formats. More...
 
typedef enum Encoding Encoding
 
enum  Format {
  raw, snd, riff, mpeg,
  wave
}
 Audio container file format. More...
 
typedef enum Format Format
 
enum  DeviceMode { PLAY, RECORD, PLAYREC }
 Audio device access mode. More...
 
typedef enum DeviceMode DeviceMode
 
enum  Error {
  errSuccess = 0, errReadLast, errNotOpened, errEndOfFile,
  errStartOfFile, errRateInvalid, errEncodingInvalid, errReadInterrupt,
  errWriteInterrupt, errReadFailure, errWriteFailure, errReadIncomplete,
  errWriteIncomplete, errRequestInvalid, errTOCFailed, errStatFailed,
  errInvalidTrack, errPlaybackFailed, errNotPlaying, errNoCodec
}
 Audio error conditions. More...
 
typedef enum Error Error
 
typedef int16_t snd16_t
 
typedef int32_t snd32_t
 
typedef int16_t Level
 
typedef int16_t Sample
 
typedef int16_t * Linear
 
typedef unsigned long timeout_t
 
typedef unsigned char * Encoded
 
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
 

Public Member Functions

 BayonneAudio ()
 Initialize instance of audio. More...
 
const char * getFilename (const char *name, bool write=false)
 Convert a prompt identifier into a complete audio file pathname. More...
 
void cleanup (void)
 Clear open files and other data structures from previous audio processing operations. More...
 
void play (const char **list, Mode mode=modeRead)
 Open a sequence of audio prompts for playback. More...
 
void record (const char *name, Mode mode=modeCreate, const char *annotation=NULL)
 Open an audio prompt for recording. More...
 
const char * getVoicelib (const char *iso)
 Check if a voice library is available. More...
 
AudioCodecgetCodec (void)
 Get audio codec used. More...
 
ssize_t getBuffer (Encoded data, size_t count)
 Virtual for packet i/o intercept. More...
 
void open (const char *name, Mode mode=modeRead, timeout_t framing=0)
 Open existing audio file for streaming. More...
 
void open (const char *name, Mode mode=modeWrite, timeout_t framing=0)
 Open an audio file and associate it with this object. More...
 
void create (const char *name, Info *info, bool exclusive=false, timeout_t framing=0)
 Create a new audio file for streaming. More...
 
void close (void)
 Close the currently open audio file for streaming. More...
 
void flush (void)
 flush any unsaved buffered data to disk. More...
 
bool isStreamable (void)
 Check if the audio file may be streamed. More...
 
unsigned getCount (void)
 Get the number of samples expected in a frame. More...
 
unsigned getEncoded (AudioCodec *codec, Encoded address, unsigned frames=1)
 Stream audio data from the file and convert into an alternate encoding based on the codec supplied. More...
 
unsigned getEncoded (Encoded address, unsigned frames=1)
 Get data from the streamed file in it's native encoding. More...
 
unsigned putEncoded (AudioCodec *codec, Encoded address, unsigned frames=1)
 Stream audio data in an alternate codec into the currently opened file. More...
 
unsigned putEncoded (Encoded address, unsigned frames=1)
 Put data encoded in the native format of the stream file. More...
 
ssize_t getPacket (Encoded data)
 Get a packet of data from the file. More...
 
unsigned getMono (Linear buffer, unsigned frames=1)
 Get and automatically convert audio file data into mono linear audio samples. More...
 
unsigned getStereo (Linear buffer, unsigned frames=1)
 Get and automatically convert audio file data into stereo (two channel) linear audio samples. More...
 
unsigned putMono (Linear buffer, unsigned frames=1)
 Automatically convert and put mono linear audio data into the audio file. More...
 
unsigned putStereo (Linear buffer, unsigned frames=1)
 Automatically convert and put stereo linear audio data into the audio file. More...
 
unsigned bufMono (Linear buffer, unsigned count)
 Automatically convert and put arbitrary linear mono data into the audio file. More...
 
unsigned bufStereo (Linear buffer, unsigned count)
 Automatically convert and put arbitrary linear stereo data into the audio file. More...
 
time_t getAge (void)
 Returns age since last prior access. More...
 
size_t getSize (void)
 Get maximum size of frame buffer for data use. More...
 
void clear (void)
 Clear the AudioFile structure. More...
 
unsigned getLinear (Linear buffer, unsigned request=0)
 Retrieve and convert content to linear encoded audio data from it's original form. More...
 
ssize_t putBuffer (Encoded buffer, size_t len=0)
 Insert bytes into the file from a memory buffer. More...
 
unsigned putLinear (Linear buffer, unsigned request=0)
 Convert and store content from linear encoded audio data to the format of the audio file. More...
 
Error getSamples (void *buffer, unsigned samples=0)
 Retrieve samples from the file into a memory buffer. More...
 
Error putSamples (void *buffer, unsigned samples=0)
 Insert samples into the file from a memory buffer. More...
 
Error skip (long number)
 Change the file position by skipping a specified number of audio samples of audio data. More...
 
Error setPosition (unsigned long samples=~0l)
 Seek a file position by sample count. More...
 
Error position (const char *timestamp)
 Seek a file position by timestamp. More...
 
void getPosition (char *timestamp, size_t size)
 Return the timestamp of the current absolute file position. More...
 
unsigned long getPosition (void)
 Get the current file pointer in samples relative to the start of the sample buffer. More...
 
Error setLimit (unsigned long maximum=0l)
 Set the maximum file position for reading and writing of audio data by samples. More...
 
Error getInfo (Info *info)
 Copy the source description of the audio file into the specified object. More...
 
Error setMinimum (unsigned long minimum)
 Set minimum file size for a created file. More...
 
unsigned long getAbsolutePosition (void)
 Get the current file pointer in bytes relative to the start of the file. More...
 
virtual bool isOpen (void)
 Test if the file is opened. More...
 
virtual bool hasPositioning (void)
 Return true if underlying derived class supports direct access to file positioning. More...
 
Encoding getEncoding (void)
 Return audio encoding format for this audio file. More...
 
Format getFormat (void)
 Return base file format of containing audio file. More...
 
unsigned getSampleRate (void)
 Get audio encoding sample rate, in samples per second, for this audio file. More...
 
char * getAnnotation (void)
 Get annotation extracted from header of containing file. More...
 
Error getError (void)
 Get last error code. More...
 
bool operator! (void)
 
bool isSigned (void)
 Return if the current content is signed or unsigned samples. More...
 
ssize_t putNative (Encoded data, size_t size)
 Puts raw data and does native to refined endian swapping if needed based on encoding type and local machine endian. More...
 
ssize_t getNative (Encoded data, size_t size)
 Get raw data and assure is in native machine endian. More...
 
void md5_hash (char *out, const char *source)
 Compute md5 hashes... More...
 

Static Public Member Functions

static int getCount (Encoding encoding)
 Returns the number of samples in all channels for a frame in the given encoding. More...
 
static Encoding getMono (Encoding encoding)
 Get the mono encoding format associated with the given format. More...
 
static Encoding getStereo (Encoding encoding)
 Get the stereo encoding format associated with the given format. More...
 
static Encoding getEncoding (const char *name)
 Get the audio encoding format that is specified by a short ascii name. More...
 
static Level tolevel (float dbm)
 Convert dbm power level to integer value (0-32768). More...
 
static float todbm (Level power)
 Convert integer power levels to dbm. More...
 
static bool hasDevice (unsigned device=0)
 Test for the presense of a specified (indexed) audio device. More...
 
static AudioDevicegetDevice (unsigned device=0, DeviceMode mode=PLAY)
 Get a audio device object that can be used to play or record audio. More...
 
static const char * getCodecPath (void)
 Get pathname to where loadable codec modules are stored. More...
 
static const char * getMIME (Info &info)
 Get the mime descriptive type for a given Audio encoding description, usually retrieved from a newly opened audio file. More...
 
static const char * getName (Encoding encoding)
 Get the short ascii description used for the given audio encoding type. More...
 
static const char * getExtension (Encoding encoding)
 Get the preferred file extension name to use for a given audio encoding type. More...
 
static bool isLinear (Encoding encoding)
 Test if the audio encoding format is a linear one. More...
 
static bool isBuffered (Encoding encoding)
 Test if the audio encoding format must be packetized (that is, has irregular sized frames) and must be processed only through buffered codecs. More...
 
static bool isMono (Encoding encoding)
 Test if the audio encoding format is a mono format. More...
 
static bool isStereo (Encoding encoding)
 Test if the audio encoding format is a stereo format. More...
 
static Rate getRate (Encoding encoding)
 Return default sample rate associated with the specified audio encoding format. More...
 
static Rate getRate (Encoding e, Rate request)
 Return optional rate setting effect. More...
 
static timeout_t getFraming (Encoding encoding, timeout_t timeout=0)
 Return frame timing for an audio encoding format. More...
 
static timeout_t getFraming (Info &info, timeout_t timeout=0)
 Return frame time for an audio source description. More...
 
static bool isEndian (Encoding encoding)
 Test if the endian byte order of the encoding format is different from the machine's native byte order. More...
 
static bool isEndian (Info &info)
 Test if the endian byte order of the audio source description is different from the machine's native byte order. More...
 
static bool swapEndian (Encoding encoding, void *buffer, unsigned number)
 Optionally swap endian of audio data if the encoding format endian byte order is different from the machine's native endian. More...
 
static bool swapEndian (Info &info, void *buffer, unsigned number)
 Optionally swap endian of audio data if the audio source description byte order is different from the machine's native endian byte order. More...
 
static void swapEncoded (Info &info, Encoded data, size_t bytes)
 Optionally swap endian of encoded audio data based on the audio encoding type, and relationship to native byte order. More...
 
static Level getImpulse (Encoding encoding, void *buffer, unsigned number)
 Get the energey impulse level of a frame of audio data. More...
 
static Level getImpulse (Info &info, void *buffer, unsigned number=0)
 Get the energey impulse level of a frame of audio data. More...
 
static Level getPeak (Encoding encoding, void *buffer, unsigned number)
 Get the peak (highest energy) level found in a frame of audio data. More...
 
static Level getPeak (Info &info, void *buffer, unsigned number=0)
 Get the peak (highest energy) level found in a frame of audio data. More...
 
static void toTimestamp (timeout_t duration, char *address, size_t size)
 Provide ascii timestamp representation of a timeout value. More...
 
static timeout_t toTimeout (const char *timestamp)
 Convert ascii timestamp representation to a timeout number. More...
 
static int getFrame (Encoding encoding, int samples=0)
 Returns the number of bytes in a sample frame for the given encoding type, rounded up to the nearest integer. More...
 
static unsigned long toSamples (Encoding encoding, size_t bytes)
 Compute byte counts of audio data into number of samples based on the audio encoding format used. More...
 
static unsigned long toSamples (Info &info, size_t bytes)
 Compute byte counts of audio data into number of samples based on the audio source description used. More...
 
static size_t toBytes (Info &info, unsigned long number)
 Compute the number of bytes a given number of samples in a given audio encoding will occupy. More...
 
static size_t toBytes (Encoding encoding, unsigned long number)
 Compute the number of bytes a given number of samples in a given audio encoding will occupy. More...
 
static void fill (unsigned char *address, int number, Encoding encoding)
 Fill an audio buffer with "empty" (silent) audio data, based on the audio encoding format. More...
 
static bool loadPlugin (const char *path)
 Load a dso plugin (codec plugin), used internally... More...
 
static size_t maxFramesize (Info &info)
 Maximum framesize for a given coding that may be needed to store a result. 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 ScriptCompilerreload (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 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)
 

Data Fields

AudioTonetone
 Current tone object to use for generation of audio tones, dtmf dialing sequences, etc. More...
 
BayonneTranslatortranslator
 Current language translator in effect for the current set of autio prompts. More...
 
char vlib [60]
 Alternate voicelib construct. More...
 
const char * extension
 
const char * voicelib
 
const char * libext
 
const char * prefixdir
 
const char * offset
 
Encoding encoding
 
timeout_t framing
 
char var_position [14]
 
class __EXPORT Line
 
class __EXPORT Name
 

Static Public Attributes

static const unsigned ndata
 
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
 
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

char * getContinuation (void)
 This function is used to splice multiple audio files together into a single stream of continues audio data. More...
 
unsigned bufAudio (Linear samples, unsigned count, unsigned size)
 
void initialize (void)
 
void getWaveFormat (int size)
 
void mp3info (mpeg_audio *mp3)
 
virtual bool afCreate (const char *path, bool exclusive=false)
 
virtual bool afOpen (const char *path, Mode m=modeWrite)
 
virtual bool afPeek (unsigned char *data, unsigned size)
 
virtual int afRead (unsigned char *data, unsigned size)
 Read a given number of bytes from the file, starting from the current file pointer. More...
 
virtual int afWrite (unsigned char *data, unsigned size)
 Write a number of bytes into the file at the current file pointer. More...
 
virtual bool afSeek (unsigned long pos)
 Seek to the given position relative to the start of the file and set the file pointer. More...
 
virtual void afClose (void)
 Close the derived file handling system's file handle. More...
 
const char * getErrorStr (Error err)
 Return a human-readable error message given a numeric error code of type Audio::Error. More...
 
Error setError (Error err)
 
unsigned long getHeader (void)
 Get number of bytes in the file header. More...
 
unsigned short getShort (unsigned char *data)
 Convert binary 2 byte data stored in the order specified in the source description into a short variable. More...
 
void setShort (unsigned char *data, unsigned short value)
 Save a short as two byte binary data stored in the endian order specified in the source description. More...
 
unsigned long getLong (unsigned char *data)
 Convert binary 4 byte data stored in the order specified in the source description into a long variable. More...
 
void setLong (unsigned char *data, unsigned long value)
 Save a long as four byte binary data stored in the endian order specified in the source description. More...
 

Protected Attributes

char filename [256]
 
const char ** list
 
AudioCodeccodec
 
Encoded framebuf
 
bool streamable
 
Linear bufferFrame
 
unsigned bufferPosition
 
unsigned bufferChannels
 
Linear encBuffer
 
Linear decBuffer
 
unsigned encSize
 
unsigned decSize
 
char * pathname
 
Error error
 
unsigned long header
 
unsigned long minimum
 
unsigned long length
 
union {
   int   fd
 
   void *   handle
 
file
 
Mode mode
 
unsigned long iolimit
 
Info info
 

Static Protected Attributes

static BayonneSession ** timeslots
 
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
 

Detailed Description

Offers core Bayonne audio processing in a self contained class.

The BayonneAudio class is used with each session object.

self contained Bayonne audio processing.

Author
David Sugar dyfet.nosp@m.@gnu.nosp@m.telep.nosp@m.hony.nosp@m..org

Definition at line 1615 of file bayonne.h.

Member Typedef Documentation

typedef struct ost::Script::_array ost::Script::Array
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 enum DeviceMode ost::Audio::DeviceMode
inherited

Definition at line 247 of file audio2.h.

typedef unsigned char* ost::Audio::Encoded
inherited

Definition at line 143 of file audio2.h.

typedef enum Encoding ost::Audio::Encoding
inherited

Definition at line 225 of file audio2.h.

typedef enum Error ost::Audio::Error
inherited

Definition at line 274 of file audio2.h.

typedef enum Format ost::Audio::Format
inherited

Definition at line 237 of file audio2.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 int16_t ost::Audio::Level
inherited

Definition at line 101 of file audio2.h.

typedef int16_t* ost::Audio::Linear
inherited

Definition at line 103 of file audio2.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 enum Mode ost::Audio::Mode
inherited

Definition at line 175 of file audio2.h.

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

Definition at line 110 of file script3.h.

typedef enum Rate ost::Audio::Rate
inherited

Definition at line 157 of file audio2.h.

typedef rpcint_t ost::Bayonne::rpcbool_t
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.

typedef int16_t ost::Audio::Sample
inherited

Definition at line 102 of file audio2.h.

typedef enum scrAccess ost::Script::scrAccess
inherited

Definition at line 121 of file script3.h.

typedef int16_t ost::Audio::snd16_t
inherited

Definition at line 99 of file audio2.h.

typedef int32_t ost::Audio::snd32_t
inherited

Definition at line 100 of file audio2.h.

typedef struct ost::Script::_symbol ost::Script::Symbol
inherited
typedef enum symType ost::Script::symType
inherited

Definition at line 145 of file script3.h.

typedef unsigned long ost::Audio::timeout_t
inherited

Definition at line 104 of file audio2.h.

typedef uint16_t ost::Bayonne::timeslot_t
inherited

Definition at line 273 of file bayonne.h.

Member Enumeration Documentation

enum ost::Bayonne::bridge_t
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.

enum ost::Bayonne::calltype_t
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.

enum ost::Audio::DeviceMode
inherited

Audio device access mode.

Enumerator
PLAY 
RECORD 
PLAYREC 

Definition at line 242 of file audio2.h.

enum ost::Audio::Encoding
inherited

Audio encoding formats.

Enumerator
unknownEncoding 
g721ADPCM 
g722Audio 
g722_7bit 
g722_6bit 
g723_2bit 
g723_3bit 
g723_5bit 
gsmVoice 
msgsmVoice 
mulawAudio 
alawAudio 
mp1Audio 
mp2Audio 
mp3Audio 
okiADPCM 
voxADPCM 
sx73Voice 
sx96Voice 
cdaStereo 
cdaMono 
pcm8Stereo 
pcm8Mono 
pcm16Stereo 
pcm16Mono 
pcm32Stereo 
pcm32Mono 
speexVoice 
speexAudio 
g729Audio 
ilbcAudio 
speexUltra 
speexNarrow 
speexWide 
g723_4bit 

Definition at line 180 of file audio2.h.

enum ost::Audio::Error
inherited

Audio error conditions.

Enumerator
errSuccess 
errReadLast 
errNotOpened 
errEndOfFile 
errStartOfFile 
errRateInvalid 
errEncodingInvalid 
errReadInterrupt 
errWriteInterrupt 
errReadFailure 
errWriteFailure 
errReadIncomplete 
errWriteIncomplete 
errRequestInvalid 
errTOCFailed 
errStatFailed 
errInvalidTrack 
errPlaybackFailed 
errNotPlaying 
errNoCodec 

Definition at line 252 of file audio2.h.

enum ost::Bayonne::event_t
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.

enum ost::Audio::Format
inherited

Audio container file format.

Enumerator
raw 
snd 
riff 
mpeg 
wave 

Definition at line 230 of file audio2.h.

enum ost::Bayonne::interface_t
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.

enum ost::Audio::Mode
inherited

File processing mode, whether to skip missing files, etc.

Enumerator
modeRead 
modeReadAny 
modeReadOne 
modeWrite 
modeCache 
modeInfo 
modeFeed 
modeAppend 
modeCreate 

Definition at line 162 of file audio2.h.

enum ost::Audio::Rate
inherited

Audio encoding rate, samples per second.

Enumerator
rateUnknown 
rate6khz 
rate8khz 
rate16khz 
rate32khz 
rate44khz 

Definition at line 148 of file audio2.h.

enum ost::Bayonne::result_t
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.

enum ost::Script::scrAccess
inherited
Enumerator
scrPUBLIC 
scrPROTECTED 
scrPRIVATE 
scrFUNCTION 
scrLOCAL 

Definition at line 113 of file script3.h.

enum ost::Bayonne::signal_t
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.

enum ost::Bayonne::state_t
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.

enum ost::Script::symType
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::BayonneAudio::BayonneAudio ( )

Initialize instance of audio.

Member Function Documentation

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 ost::AudioFile::afClose ( void  )
protectedvirtualinherited

Close the derived file handling system's file handle.

virtual bool ost::AudioFile::afCreate ( const char *  path,
bool  exclusive = false 
)
protectedvirtualinherited
virtual bool ost::AudioFile::afOpen ( const char *  path,
Mode  m = modeWrite 
)
protectedvirtualinherited
virtual bool ost::AudioFile::afPeek ( unsigned char *  data,
unsigned  size 
)
protectedvirtualinherited
virtual int ost::AudioFile::afRead ( unsigned char *  data,
unsigned  size 
)
protectedvirtualinherited

Read a given number of bytes from the file, starting from the current file pointer.

May be overridden by derived classes.

Parameters
dataA pointer to the buffer to copy the bytes to.
sizeThe number of bytes to read.
Returns
The number of bytes read, or -1 if an error occurs. On UNIX platforms, use strerror(errno) to get the human-readable error string or FormatMessage(GetLastError()) on Windows platforms.
virtual bool ost::AudioFile::afSeek ( unsigned long  pos)
protectedvirtualinherited

Seek to the given position relative to the start of the file and set the file pointer.

This does not use 64-bit clean seek functions, so seeking to positions greater than (2^32)-1 will result in undefined behavior.

Parameters
posThe position to seek to.
Returns
true if successful, false otherwise.
virtual int ost::AudioFile::afWrite ( unsigned char *  data,
unsigned  size 
)
protectedvirtualinherited

Write a number of bytes into the file at the current file pointer.

May be overridden by derived classes.

Parameters
dataA pointer to the buffer with the bytes to write.
sizeThe number of bytes to write from the buffer.
Returns
The number of bytes written, or -1 if an error occurs. On UNIX platforms, use strerror(errno) to get the human-readable error string or FormatMessage(GetLastError()) on Windows platforms.
static void ost::Bayonne::allocate ( timeslot_t  timeslots,
ScriptCommand pointer = 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
timeslotsto allocate.
pointerto server shell.
static void ost::Bayonne::allocateLocal ( void  )
staticinherited

Allocate local script engine sessions, if needed.

static bool ost::Script::append ( Symbol sym,
const char *  value 
)
staticinherited
unsigned ost::AudioStream::bufAudio ( Linear  samples,
unsigned  count,
unsigned  size 
)
protectedinherited
unsigned ost::AudioStream::bufMono ( Linear  buffer,
unsigned  count 
)
inherited

Automatically convert and put arbitrary linear mono data into the audio file.

Convert to stereo and buffer incomplete frames as needed by the streaming file.

Parameters
bufferto save linear audio from.
countof linear audio to write.
Returns
number of linear audio samples written to file.
unsigned ost::AudioStream::bufStereo ( Linear  buffer,
unsigned  count 
)
inherited

Automatically convert and put arbitrary linear stereo data into the audio file.

Convert to mono and buffer incomplete frames as needed by the streaming file.

Parameters
bufferto save linear audio from.
countof linear audio to write.
Returns
number of linear audio samples written to file.
void ost::BayonneAudio::cleanup ( void  )

Clear open files and other data structures from previous audio processing operations.

static void ost::Script::clear ( Symbol sym)
staticinherited
void ost::AudioFile::clear ( void  )
inherited

Clear the AudioFile structure.

Called by AudioFile::close(). Sets all fields to zero and deletes the dynamically allocated memory pointed to by the pathname and info.annotation members. See AudioFile::initialize() for the dynamic allocation code.

void ost::AudioStream::close ( void  )
inherited

Close the currently open audio file for streaming.

static bool ost::Script::commit ( Symbol sym,
const char *  value 
)
staticinherited
static unsigned ost::Script::count ( Symbol sym)
staticinherited
void ost::AudioStream::create ( const char *  name,
Info info,
bool  exclusive = false,
timeout_t  framing = 0 
)
inherited

Create a new audio file for streaming.

Parameters
nameof file to create.
infosource description for file properties.
exclusivetrue for exclusive access.
framingtiming in milliseconds.
static Symbol* ost::Script::deref ( Symbol sym)
staticinherited
static void ost::Bayonne::down ( void  )
staticinherited

Used to down the server from the library.

static void ost::Bayonne::endImage ( ScriptImage image)
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
imageto compiled script from useImage.
static void ost::Bayonne::errlog ( const char *  level,
const char *  fmt,
  ... 
)
staticinherited
static const char* ost::Script::extract ( Symbol sym)
staticinherited
static void ost::Audio::fill ( unsigned char *  address,
int  number,
Encoding  encoding 
)
staticinherited

Fill an audio buffer with "empty" (silent) audio data, based on the audio encoding format.

Parameters
addressof data to fill.
numberof samples to fill.
encodingformat of data.
void ost::AudioStream::flush ( void  )
inherited

flush any unsaved buffered data to disk.

unsigned long ost::AudioFile::getAbsolutePosition ( void  )
inherited

Get the current file pointer in bytes relative to the start of the file.

See getPosition() to determine the position relative to the start of the sample buffer.

Returns
The current file pointer in bytes relative to the start of the file. Returns 0 if the file is not open, is empty, or an error has occured.
time_t ost::AudioFile::getAge ( void  )
inherited

Returns age since last prior access.

Used for cache computations.

Returns
age in seconds.
char* ost::AudioFile::getAnnotation ( void  )
inlineinherited

Get annotation extracted from header of containing file.

Returns
annotation text if any, else NULL.

Definition at line 1476 of file audio2.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.

ssize_t ost::AudioStream::getBuffer ( Encoded  data,
size_t  count 
)
virtualinherited

Virtual for packet i/o intercept.

Returns
bytes read.
Parameters
dataencoding buffer.
countrequested.

Reimplemented from ost::AudioFile.

static char ost::Bayonne::getChar ( int  dtmf)
staticinherited

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

Parameters
dtmfdigit number.
Returns
dtmf character code.
AudioCodec* ost::BayonneAudio::getCodec ( void  )
inline

Get audio codec used.

Returns
audio codec.

Definition at line 1695 of file bayonne.h.

static const char* ost::Audio::getCodecPath ( void  )
staticinherited

Get pathname to where loadable codec modules are stored.

Returns
file path to loadable codecs.
char* ost::BayonneAudio::getContinuation ( void  )
protectedvirtual

This function is used to splice multiple audio files together into a single stream of continues audio data.

The continuation method returns the next audio file to open.

Returns
next file to open or NULL when done.

Reimplemented from ost::AudioFile.

static int ost::Audio::getCount ( Encoding  encoding)
staticinherited

Returns the number of samples in all channels for a frame in the given encoding.

For example, pcm32Stereo has a frame size of 8 bytes: Note that different codecs have different definitions of a frame - for example, compressed encodings have a rather large frame size relative to the sample size due to the way bytes are fed to the decompression engine.

Parameters
encodingThe encoding to calculate the frame sample count for.
Returns
samples The number of samples in a frame of the given encoding.
unsigned ost::AudioStream::getCount ( void  )
inherited

Get the number of samples expected in a frame.

static AudioDevice* ost::Audio::getDevice ( unsigned  device = 0,
DeviceMode  mode = PLAY 
)
staticinherited

Get a audio device object that can be used to play or record audio.

This is normally a local soundcard, though an abstract base class is returned, so the underlying device may be different.

Parameters
deviceindex or 0 for default audio device.
modeof device; play, record, or full duplex.
Returns
pointer to abstract audio device object interface class.
static int ost::Bayonne::getDigit ( char  dtmf)
staticinherited

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

Parameters
dtmfdigit as ascii
Returns
dtmf digit number.
static BayonneDriver* ost::Bayonne::getDriverTag ( const char *  id)
staticinherited
unsigned ost::AudioStream::getEncoded ( AudioCodec codec,
Encoded  address,
unsigned  frames = 1 
)
inherited

Stream audio data from the file and convert into an alternate encoding based on the codec supplied.

Parameters
codecto apply before saving.
addressof data to save.
framesto stream by the codec.
Returns
number of frames processed.
unsigned ost::AudioStream::getEncoded ( Encoded  address,
unsigned  frames = 1 
)
inherited

Get data from the streamed file in it's native encoding.

Parameters
addressto save encoded audio.
framesof audio to load.
Returns
number of frames read.
static Encoding ost::Audio::getEncoding ( const char *  name)
staticinherited

Get the audio encoding format that is specified by a short ascii name.

This will either accept names like those returned from getName(), or .xxx file extensions, and return the audio encoding type associated with the name or extension.

Parameters
nameof encoding or file extension.
Returns
audio encoding format.
See Also
getName
static Audio::Encoding ost::Bayonne::getEncoding ( const char *  cp)
staticinherited
Encoding ost::AudioFile::getEncoding ( void  )
inlineinherited

Return audio encoding format for this audio file.

Returns
audio encoding format.

Definition at line 1451 of file audio2.h.

Error ost::AudioFile::getError ( void  )
inlineinherited

Get last error code.

Returns
alst error code.

Definition at line 1484 of file audio2.h.

const char* ost::AudioFile::getErrorStr ( Error  err)
protectedinherited

Return a human-readable error message given a numeric error code of type Audio::Error.

Parameters
errThe numeric error code to translate.
Returns
A pointer to a character string containing the human-readable error message.
static const char* ost::Audio::getExtension ( Encoding  encoding)
staticinherited

Get the preferred file extension name to use for a given audio encoding type.

Parameters
encodingformat.
Returns
ascii file extension to use.
const char* ost::BayonneAudio::getFilename ( const char *  name,
bool  write = false 
)

Convert a prompt identifier into a complete audio file pathname.

Returns
pointer to fully qualified file path or NULL if invalid.
Parameters
nameof prompt requested.
writepath required if true.
Format ost::AudioFile::getFormat ( void  )
inlineinherited

Return base file format of containing audio file.

Returns
audio file container format.

Definition at line 1459 of file audio2.h.

static int ost::Audio::getFrame ( Encoding  encoding,
int  samples = 0 
)
staticinherited

Returns the number of bytes in a sample frame for the given encoding type, rounded up to the nearest integer.

A frame is defined as the minimum number of bytes necessary to create a point or points in the output waveform for all output channels. For example, 16-bit mono PCM has a frame size of two (because those two bytes constitute a point in the output waveform). GSM has it's own definition of a frame which involves decompressing a sequence of bytes to determine the final points on the output waveform. The minimum number of bytes you can feed to the decompression engine is 32.5 (260 bits), so this function will return 33 (because we round up) given an encoding type of GSM. Other compressed encodings will return similar results. Be prepared to deal with nonintuitive return values for rare encodings.

Parameters
encodingThe encoding type to get the frame size for.
samplesReserved. Use zero.
Returns
The number of bytes in a frame for the given encoding.
static timeout_t ost::Audio::getFraming ( Encoding  encoding,
timeout_t  timeout = 0 
)
staticinherited

Return frame timing for an audio encoding format.

Returns
frame time to use in milliseconds.
Parameters
encodingof frame to get timing segment for.
timeoutof frame time segment to request.
static timeout_t ost::Audio::getFraming ( Info info,
timeout_t  timeout = 0 
)
staticinherited

Return frame time for an audio source description.

Returns
frame time to use in milliseconds.
Parameters
infodescriptor of frame encoding to get timing segment for.
timeoutof frame time segment to request.
unsigned long ost::AudioFile::getHeader ( void  )
inlineprotectedinherited

Get number of bytes in the file header.

Data packets will begin after this header.

Returns
number of bytes in file header.

Definition at line 1140 of file audio2.h.

static Level ost::Audio::getImpulse ( Encoding  encoding,
void *  buffer,
unsigned  number 
)
staticinherited

Get the energey impulse level of a frame of audio data.

Returns
impulse energy level of audio data.
Parameters
encodingformat of data to examine.
bufferof audio data to examine.
numberof audio samples to examine.
static Level ost::Audio::getImpulse ( Info info,
void *  buffer,
unsigned  number = 0 
)
staticinherited

Get the energey impulse level of a frame of audio data.

Returns
impulse energy level of audio data.
Parameters
infoencoding source description object.
bufferof audio data to examine.
numberof audio samples to examine.
static unsigned ost::Script::getIndex ( const char *  id)
staticinherited
Error ost::AudioFile::getInfo ( Info info)
inherited

Copy the source description of the audio file into the specified object.

Parameters
infopointer to object to copy source description into.
Returns
errSucess.
unsigned ost::AudioFile::getLinear ( Linear  buffer,
unsigned  request = 0 
)
inherited

Retrieve and convert content to linear encoded audio data from it's original form.

Parameters
bufferto copy linear data into.
requestnumber of linear samples to extract or 0 for frame.
Returns
number of samples retrieved, 0 if no codec or eof.
static ScriptImage** ost::Bayonne::getLocalImage ( timeslot_t  timeslot)
staticinherited

Returns a local image pointer for a server timeslot.

Parameters
timeslotnumber in server.
Returns
pointer to image pointer or NULL if empty/invalid.
unsigned long ost::AudioFile::getLong ( unsigned char *  data)
protectedinherited

Convert binary 4 byte data stored in the order specified in the source description into a long variable.

This is often used to manipulate header data.

Returns
long value.
Parameters
databinary 4 byte data pointer.
static const char* ost::Audio::getMIME ( Info info)
staticinherited

Get the mime descriptive type for a given Audio encoding description, usually retrieved from a newly opened audio file.

Parameters
infosource description object
Returns
text of mime type to use for this audio source.
static Encoding ost::Audio::getMono ( Encoding  encoding)
staticinherited

Get the mono encoding format associated with the given format.

Parameters
encodingformat.
Returns
associated mono audio encoding format.
unsigned ost::AudioStream::getMono ( Linear  buffer,
unsigned  frames = 1 
)
inherited

Get and automatically convert audio file data into mono linear audio samples.

Parameters
bufferto save linear audio into.
framesof audio to read.
Returns
number of frames read from file.
static const char* ost::Audio::getName ( Encoding  encoding)
staticinherited

Get the short ascii description used for the given audio encoding type.

Parameters
encodingformat.
Returns
ascii name of encoding format.
ssize_t ost::AudioBase::getNative ( Encoded  data,
size_t  size 
)
inherited

Get raw data and assure is in native machine endian.

Returns
data received in buffer.
Parameters
datato get.
sizeof data to get.
ssize_t ost::AudioStream::getPacket ( Encoded  data)
inherited

Get a packet of data from the file.

This uses the codec to determine what a true packet boundry is.

Parameters
bufferto save encoded data.
Returns
number of bytes read as packet.
static Level ost::Audio::getPeak ( Encoding  encoding,
void *  buffer,
unsigned  number 
)
staticinherited

Get the peak (highest energy) level found in a frame of audio data.

Returns
peak energy level found in data.
Parameters
encodingformat of data.
bufferof audio data.
numberof samples to examine.
static Level ost::Audio::getPeak ( Info info,
void *  buffer,
unsigned  number = 0 
)
staticinherited

Get the peak (highest energy) level found in a frame of audio data.

Returns
peak energy level found in data.
Parameters
infodescription object of audio data.
bufferof audio data.
numberof samples to examine.
void ost::AudioFile::getPosition ( char *  timestamp,
size_t  size 
)
inherited

Return the timestamp of the current absolute file position.

Parameters
timestampto save ascii position into.
sizeof timestamp buffer.
unsigned long ost::AudioFile::getPosition ( void  )
inherited

Get the current file pointer in samples relative to the start of the sample buffer.

Note that you must multiply this result by the result of a call to toBytes(info.encoding, 1) in order to determine the offset in bytes.

Returns
the current file pointer in samples relative to the start of the sample buffer. Returns 0 if the file is not open, is empty, or an error has occured.
static Rate ost::Audio::getRate ( Encoding  encoding)
staticinherited

Return default sample rate associated with the specified audio encoding format.

Returns
sample rate for audio data.
Parameters
encodingformat.
static Rate ost::Audio::getRate ( Encoding  e,
Rate  request 
)
staticinherited

Return optional rate setting effect.

Many codecs are fixed rate.

Returns
result rate for audio date.
Parameters
encodingformat.
requestedrate.
static const char* ost::Bayonne::getRegistryId ( const char *  id)
staticinherited
static const char* ost::Bayonne::getRunLevel ( void  )
staticinherited

Get service level.

Parameters
returnservice level
unsigned ost::AudioFile::getSampleRate ( void  )
inlineinherited

Get audio encoding sample rate, in samples per second, for this audio file.

Returns
sample rate.

Definition at line 1468 of file audio2.h.

Error ost::AudioFile::getSamples ( void *  buffer,
unsigned  samples = 0 
)
inherited

Retrieve samples from the file into a memory buffer.

This increments the file pointer so subsequent calls read further samples. If a limit has been set using setLimit(), the number of samples read will be truncated to the limit position. If you want to read a certain number of bytes rather than a certain number of samples, use getBuffer().

Parameters
bufferpointer to copy the samples to.
samplesThe number of samples to read or 0 for frame.
Returns
errSuccess if successful, !errSuccess if error. Use getErrorStr() to retrieve the human-readable error string.
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
timeslotnumber in server.
Returns
session object or NULL if timeslot empty/invalid.
unsigned short ost::AudioFile::getShort ( unsigned char *  data)
protectedinherited

Convert binary 2 byte data stored in the order specified in the source description into a short variable.

This is often used to manipulate header data.

Returns
short value.
Parameters
databinary 2 byte data pointer.
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
idsession identifier string.
Returns
session object or NULL if not found.
size_t ost::AudioFile::getSize ( void  )
inlineinherited

Get maximum size of frame buffer for data use.

Returns
max frame size in bytes.

Definition at line 1246 of file audio2.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
nameof state to lookup.
Returns
handler method for state if found.
static Encoding ost::Audio::getStereo ( Encoding  encoding)
staticinherited

Get the stereo encoding format associated with the given format.

Parameters
encodingformat being tested for stereo.
Returns
associated stereo audio encoding format.
unsigned ost::AudioStream::getStereo ( Linear  buffer,
unsigned  frames = 1 
)
inherited

Get and automatically convert audio file data into stereo (two channel) linear audio samples.

Parameters
bufferto save linear audio into.
framesof audio to read.
Returns
number of frames read from file.
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 bool ost::Bayonne::getUserdata ( void  )
staticinherited
const char* ost::BayonneAudio::getVoicelib ( const char *  iso)

Check if a voice library is available.

Returns
voice library id or NULL if invalid.
Parameters
isoname of library to request.
void ost::AudioFile::getWaveFormat ( int  size)
protectedinherited
static bool ost::Audio::hasDevice ( unsigned  device = 0)
staticinherited

Test for the presense of a specified (indexed) audio device.

This is normally used to test for local soundcard access.

Parameters
deviceindex or 0 for default audio device.
Returns
true if device exists.
virtual bool ost::AudioFile::hasPositioning ( void  )
inlinevirtualinherited

Return true if underlying derived class supports direct access to file positioning.

Derived classes based on URL's or fifo devices may not have this ability.

Returns
true if file positioning is supported.

Definition at line 1443 of file audio2.h.

void ost::AudioFile::initialize ( void  )
protectedinherited
static bool ost::Audio::isBuffered ( Encoding  encoding)
staticinherited

Test if the audio encoding format must be packetized (that is, has irregular sized frames) and must be processed only through buffered codecs.

Returns
true if packetized audio.
Parameters
encodingformat.
static bool ost::Audio::isEndian ( Encoding  encoding)
staticinherited

Test if the endian byte order of the encoding format is different from the machine's native byte order.

Returns
true if endian format is different.
Parameters
encodingformat.
static bool ost::Audio::isEndian ( Info info)
staticinherited

Test if the endian byte order of the audio source description is different from the machine's native byte order.

Returns
true if endian format is different.
Parameters
infosource description object.
static bool ost::Script::isFunction ( Name scr)
staticinherited
static bool ost::Audio::isLinear ( Encoding  encoding)
staticinherited

Test if the audio encoding format is a linear one.

Returns
true if encoding format is linear audio data.
Parameters
encodingformat.
static bool ost::Audio::isMono ( Encoding  encoding)
staticinherited

Test if the audio encoding format is a mono format.

Returns
true if encoding format is mono audio data.
Parameters
encodingformat.
virtual bool ost::AudioFile::isOpen ( void  )
virtualinherited

Test if the file is opened.

Returns
true if a file is open.
static bool ost::Script::isPrivate ( Name scr)
staticinherited
static bool ost::Script::isScript ( Name scr)
staticinherited
bool ost::AudioFile::isSigned ( void  )
inherited

Return if the current content is signed or unsigned samples.

Returns
true if signed.
static bool ost::Audio::isStereo ( Encoding  encoding)
staticinherited

Test if the audio encoding format is a stereo format.

Returns
true if encoding format is stereo audio data.
Parameters
encodingformat.
bool ost::AudioStream::isStreamable ( void  )
inherited

Check if the audio file may be streamed.

Files can be streamed if a codec is available or if they are linear.

Returns
true if streamable.
static bool ost::Script::isSymbol ( const char *  id)
staticinherited
static bool ost::Bayonne::loadAudio ( const char *  path)
staticinherited

Load a bgm/audio processing module for continues audio.

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

Load a monitoring/management module.

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

Load a dso plugin (codec plugin), used internally...

Returns
true if loaded.
Parameters
pathto codec.
static bool ost::Bayonne::loadPlugin ( const char *  path)
staticinherited

Load a plugin module.

Parameters
pathid of plugin.
Returns
true if successful.
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
digitsto use.
matchdigit pattern to match against.
partialaccept match if true.
Returns
true if digits match to pattern.
static size_t ost::Audio::maxFramesize ( Info info)
staticinherited

Maximum framesize for a given coding that may be needed to store a result.

Parameters
infosource description object.
Returns
maximum possible frame size to allocate for encoded data.
void ost::Bayonne::md5_hash ( char *  out,
const char *  source 
)
inherited

Compute md5 hashes...

Parameters
md5output string
stringto hash
void ost::AudioFile::mp3info ( mpeg_audio mp3)
protectedinherited
void ost::AudioFile::open ( const char *  name,
Mode  mode = modeWrite,
timeout_t  framing = 0 
)
inherited

Open an audio file and associate it with this object.

Called implicitly by the two-argument version of the constructor.

Parameters
nameof the file to open. Don't forget to double your backslashes for DOS-style pathnames.
modeto open file under.
framingtime in milliseconds.
void ost::AudioStream::open ( const char *  name,
Mode  mode = modeRead,
timeout_t  framing = 0 
)
inherited

Open existing audio file for streaming.

Parameters
nameof file to open.
modeto use file.
framingtimer in milliseconds.
bool ost::AudioFile::operator! ( void  )
inlineinherited

Definition at line 1487 of file audio2.h.

void ost::BayonneAudio::play ( const char **  list,
Mode  mode = modeRead 
)

Open a sequence of audio prompts for playback.

Parameters
listof prompts to open.
modefor playback file processing of list.
Error ost::AudioFile::position ( const char *  timestamp)
inherited

Seek a file position by timestamp.

The actual position will be rounded by framing.

Returns
errSuccess if successful.
Parameters
timestampposition to seek.
ssize_t ost::AudioFile::putBuffer ( Encoded  buffer,
size_t  len = 0 
)
virtualinherited

Insert bytes into the file from a memory buffer.

This increments the file pointer so subsequent calls append further samples. If you want to write a number of samples rather than bytes, use putSamples().

Parameters
bufferarea to append the samples from.
lenThe number of bytes (not samples) to append.
Returns
The number of bytes (not samples) read. Returns -1 if an error occurs and no bytes are written.

Implements ost::AudioBase.

unsigned ost::AudioStream::putEncoded ( AudioCodec codec,
Encoded  address,
unsigned  frames = 1 
)
inherited

Stream audio data in an alternate codec into the currently opened file.

Parameters
codecto convert incoming data from.
addressof data to convert and stream.
framesof audio to stream.
Returns
number of frames processed.
unsigned ost::AudioStream::putEncoded ( Encoded  address,
unsigned  frames = 1 
)
inherited

Put data encoded in the native format of the stream file.

Parameters
addressto load encoded audio.
framesof audio to save.
Returns
number of frames written.
unsigned ost::AudioFile::putLinear ( Linear  buffer,
unsigned  request = 0 
)
inherited

Convert and store content from linear encoded audio data to the format of the audio file.

Parameters
bufferto copy linear data from.
requestNumber of linear samples to save or 0 for frame.
Returns
number of samples saved, 0 if no codec or eof.
unsigned ost::AudioStream::putMono ( Linear  buffer,
unsigned  frames = 1 
)
inherited

Automatically convert and put mono linear audio data into the audio file.

Convert to stereo as needed by file format.

Parameters
bufferto save linear audio from.
framesof audio to write.
Returns
number of frames written to file.
ssize_t ost::AudioBase::putNative ( Encoded  data,
size_t  size 
)
inherited

Puts raw data and does native to refined endian swapping if needed based on encoding type and local machine endian.

Parameters
datato put.
sizeof data to put.
Returns
number of bytes actually put.
Error ost::AudioFile::putSamples ( void *  buffer,
unsigned  samples = 0 
)
inherited

Insert samples into the file from a memory buffer.

This increments the file pointer so subsequent calls append further samples. If you want to write a certain number of bytes rather than a certain number of samples, use putBuffer().

Parameters
bufferpointer to append the samples from.
samplesThe number of samples (not bytes) to append.
Returns
errSuccess if successful, !errSuccess if error. Use getErrorStr() to retrieve the human-readable error string.
unsigned ost::AudioStream::putStereo ( Linear  buffer,
unsigned  frames = 1 
)
inherited

Automatically convert and put stereo linear audio data into the audio file.

Convert to mono as needed by file format.

Parameters
bufferto save linear audio from.
framesof audio to write.
Returns
number of frames written to file.
void ost::BayonneAudio::record ( const char *  name,
Mode  mode = modeCreate,
const char *  annotation = NULL 
)

Open an audio prompt for recording.

Parameters
nameof prompt to open.
modewhether to create or use pre-existing recording.
annotationto save in file if supported by format used.
static ScriptCompiler* ost::Bayonne::reload ( void  )
staticinherited

Request active scripts to be recompiled from the library.

Returns
script image that was created, or NULL.
static bool ost::Bayonne::service ( const char *  service)
staticinherited

Sets server service level from the library.

Parameters
servicelevel or NULL to clear.
Returns
true if set.
Error ost::AudioFile::setError ( Error  err)
protectedinherited
Error ost::AudioFile::setLimit ( unsigned long  maximum = 0l)
inherited

Set the maximum file position for reading and writing of audio data by samples.

If 0, then no limit is set.

Parameters
maximumfile i/o access size sample position.
Returns
errSuccess if successful.
void ost::AudioFile::setLong ( unsigned char *  data,
unsigned long  value 
)
protectedinherited

Save a long as four byte binary data stored in the endian order specified in the source description.

This is often used to manipulate header data.

Parameters
databinary 4 byte data pointer.
valueto convert.
Error ost::AudioFile::setMinimum ( unsigned long  minimum)
inherited

Set minimum file size for a created file.

If the file is closed with fewer samples than this, it will also be deleted.

Parameters
minimumnumber of samples for new file.
Returns
errSuccess if successful.
Error ost::AudioFile::setPosition ( unsigned long  samples = ~0l)
inherited

Seek a file position by sample count.

If no position specified, then seeks to end of file.

Returns
errSuccess or error condition on failure.
Parameters
samplesposition to seek in file.
void ost::AudioFile::setShort ( unsigned char *  data,
unsigned short  value 
)
protectedinherited

Save a short as two byte binary data stored in the endian order specified in the source description.

This is often used to manipulate header data.

Parameters
databinary 2 byte data pointer.
valueto convert.
Error ost::AudioFile::skip ( long  number)
inherited

Change the file position by skipping a specified number of audio samples of audio data.

Returns
errSuccess or error condition on failure.
Parameters
numberof samples to skip.
static void ost::Bayonne::snmptrap ( unsigned  id,
const char *  descr = NULL 
)
staticinherited
static BayonneSession* ost::Bayonne::startDialing ( const char *  dial,
const char *  name,
const char *  caller,
const char *  display,
BayonneSession parent = 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
dialingstring or uri.
scriptto run or start.
callerid for this call.
displayname for this call.
parentto join to.
static unsigned ost::Script::storage ( Symbol sym)
staticinherited
static void ost::Audio::swapEncoded ( Info info,
Encoded  data,
size_t  bytes 
)
staticinherited

Optionally swap endian of encoded audio data based on the audio encoding type, and relationship to native byte order.

Parameters
infosource description of object.
bufferof audio data.
numberof bytes of audio data.
static bool ost::Audio::swapEndian ( Encoding  encoding,
void *  buffer,
unsigned  number 
)
staticinherited

Optionally swap endian of audio data if the encoding format endian byte order is different from the machine's native endian.

Returns
true if endian format was different.
Parameters
encodingformat of data.
bufferof audio data.
numberof audio samples.
static bool ost::Audio::swapEndian ( Info info,
void *  buffer,
unsigned  number 
)
staticinherited

Optionally swap endian of audio data if the audio source description byte order is different from the machine's native endian byte order.

Returns
true if endian format was different.
Parameters
infosource description object of data.
bufferof audio data.
numberof audio samples.
static bool ost::Script::symindex ( Symbol sym,
short  offset 
)
staticinherited
static size_t ost::Audio::toBytes ( Info info,
unsigned long  number 
)
staticinherited

Compute the number of bytes a given number of samples in a given audio encoding will occupy.

Returns
number of bytes samples will occupy.
Parameters
infoencoding source description.
numberof samples.
static size_t ost::Audio::toBytes ( Encoding  encoding,
unsigned long  number 
)
staticinherited

Compute the number of bytes a given number of samples in a given audio encoding will occupy.

Returns
number of bytes samples will occupy.
Parameters
encodingformat.
numberof samples.
static float ost::Audio::todbm ( Level  power)
staticinherited

Convert integer power levels to dbm.

Parameters
powerlevel.
Returns
dbm power level.
static Level ost::Audio::tolevel ( float  dbm)
staticinherited

Convert dbm power level to integer value (0-32768).

Parameters
dbmpower level
Returns
integer value.
static unsigned long ost::Audio::toSamples ( Encoding  encoding,
size_t  bytes 
)
staticinherited

Compute byte counts of audio data into number of samples based on the audio encoding format used.

Returns
number of audio samples in specified data.
Parameters
encodingformat.
bytesof data.
static unsigned long ost::Audio::toSamples ( Info info,
size_t  bytes 
)
staticinherited

Compute byte counts of audio data into number of samples based on the audio source description used.

Returns
number of audio samples in specified data.
Parameters
infoencoding source description.
bytesof data.
static timeout_t ost::Audio::toTimeout ( const char *  timestamp)
staticinherited

Convert ascii timestamp representation to a timeout number.

Parameters
timestampascii data.
Returns
timeout_t duration from data.
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
idfor a session.
See Also
getSid
static void ost::Audio::toTimestamp ( timeout_t  duration,
char *  address,
size_t  size 
)
staticinherited

Provide ascii timestamp representation of a timeout value.

Parameters
durationtimeout value
addressfor ascii data.
sizeof ascii data.
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 void ost::Bayonne::waitLoaded ( void  )
staticinherited

Wait for live flag...

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.

const char* ost::Script::altplugins
staticinherited

Definition at line 282 of file script3.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.

unsigned ost::Script::autoStepping
staticinherited

Definition at line 258 of file script3.h.

unsigned ost::AudioStream::bufferChannels
protectedinherited

Definition at line 1517 of file audio2.h.

Linear ost::AudioStream::bufferFrame
protectedinherited

Definition at line 1515 of file audio2.h.

unsigned ost::AudioStream::bufferPosition
protectedinherited

Definition at line 1516 of file audio2.h.

AudioCodec* ost::AudioStream::codec
protectedinherited

Definition at line 1512 of file audio2.h.

unsigned ost::Bayonne::compile_count
staticinherited

Definition at line 303 of file bayonne.h.

Linear ost::AudioStream::decBuffer
protectedinherited

Definition at line 1518 of file audio2.h.

char ost::Script::decimal
staticinherited

Definition at line 275 of file script3.h.

unsigned ost::AudioStream::decSize
protectedinherited

Definition at line 1519 of file audio2.h.

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

Definition at line 265 of file bayonne.h.

Linear ost::AudioStream::encBuffer
protectedinherited

Definition at line 1518 of file audio2.h.

Encoding ost::BayonneAudio::encoding

Definition at line 1641 of file bayonne.h.

unsigned ost::AudioStream::encSize
protectedinherited

Definition at line 1519 of file audio2.h.

Error ost::AudioFile::error
protectedinherited

Definition at line 1046 of file audio2.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.

const char* ost::BayonneAudio::extension

Definition at line 1640 of file bayonne.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.

int ost::AudioFile::fd
inherited

Definition at line 1056 of file audio2.h.

union { ... } ost::AudioFile::file
char ost::BayonneAudio::filename[256]
protected

Definition at line 1618 of file bayonne.h.

Encoded ost::AudioStream::framebuf
protectedinherited

Definition at line 1513 of file audio2.h.

timeout_t ost::BayonneAudio::framing

Definition at line 1642 of file bayonne.h.

void* ost::AudioFile::handle
inherited

Definition at line 1057 of file audio2.h.

unsigned long ost::AudioFile::header
protectedinherited

Definition at line 1047 of file audio2.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.

Info ost::AudioBase::info
protectedinherited

Definition at line 911 of file audio2.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.

unsigned long ost::AudioFile::iolimit
protectedinherited

Definition at line 1061 of file audio2.h.

unsigned long ost::AudioFile::length
protectedinherited

Definition at line 1049 of file audio2.h.

AtomicCounter ost::Bayonne::libexec_count
staticinherited

Definition at line 309 of file bayonne.h.

const char * ost::BayonneAudio::libext

Definition at line 1640 of file bayonne.h.

class __EXPORT ost::Script::Line
inherited

Definition at line 102 of file script3.h.

const char** ost::BayonneAudio::list
protected

Definition at line 1619 of file bayonne.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::Bayonne::logging
staticprotectedinherited

Definition at line 288 of file bayonne.h.

unsigned long ost::AudioFile::minimum
protectedinherited

Definition at line 1048 of file audio2.h.

Mode ost::AudioFile::mode
protectedinherited

Definition at line 1060 of file audio2.h.

class __EXPORT ost::Script::Name
inherited

Definition at line 103 of file script3.h.

const unsigned ost::Audio::ndata
staticinherited

Definition at line 107 of file audio2.h.

const char * ost::BayonneAudio::offset

Definition at line 1640 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.

char* ost::AudioFile::pathname
protectedinherited

Definition at line 1045 of file audio2.h.

const char* ost::Script::plugins
staticinherited

Definition at line 281 of file script3.h.

const char * ost::BayonneAudio::prefixdir

Definition at line 1640 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::Bayonne::reset_timer
staticinherited

Definition at line 301 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.

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::AudioStream::streamable
protectedinherited

Definition at line 1514 of file audio2.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.

BayonneSession** ost::Bayonne::timeslots
staticprotectedinherited

Definition at line 279 of file bayonne.h.

AudioTone* ost::BayonneAudio::tone

Current tone object to use for generation of audio tones, dtmf dialing sequences, etc.

Definition at line 1627 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.

BayonneTranslator* ost::BayonneAudio::translator

Current language translator in effect for the current set of autio prompts.

Definition at line 1633 of file bayonne.h.

const char* ost::Bayonne::trap_community
staticinherited

Definition at line 308 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.

char ost::BayonneAudio::var_position[14]

Definition at line 1643 of file bayonne.h.

const char* ost::Script::var_prefix
staticinherited

Definition at line 295 of file script3.h.

char ost::BayonneAudio::vlib[60]

Alternate voicelib construct.

Definition at line 1638 of file bayonne.h.

const char * ost::BayonneAudio::voicelib

Definition at line 1640 of file bayonne.h.


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