adsi.h File Reference

Go to the source code of this file.

Classes

struct  adsi_tx_state_t
struct  adsi_rx_state_t

Defines

#define _SPANDSP_ADSI_H_
#define MCLASS_VISUAL_INDICATOR   0x0B
#define JCLIP_MDMF_CALLERID   0x40
#define CLIP_DTMF_HASH_TERMINATED   '#'
#define CLIP_DTMF_C_TERMINATED   'C'
#define CLIP_DTMF_HASH_CALLER_NUMBER   'A'
#define CLIP_DTMF_HASH_ABSENCE   'D'
#define CLIP_DTMF_HASH_UNSPECIFIED   0
#define CLIP_DTMF_C_CALLER_NUMBER   'A'
#define CLIP_DTMF_C_REDIRECT_NUMBER   'D'
#define CLIP_DTMF_C_ABSENCE   'B'

Enumerations

enum  {
  ADSI_STANDARD_NONE = 0, ADSI_STANDARD_CLASS = 1, ADSI_STANDARD_CLIP = 2, ADSI_STANDARD_ACLIP = 3,
  ADSI_STANDARD_JCLIP = 4, ADSI_STANDARD_CLIP_DTMF = 5, ADSI_STANDARD_TDD = 6
}
enum  { CLASS_SDMF_CALLERID = 0x04, CLASS_MDMF_CALLERID = 0x80, CLASS_SDMF_MSG_WAITING = 0x06, CLASS_MDMF_MSG_WAITING = 0x82 }
enum  {
  MCLASS_DATETIME = 0x01, MCLASS_CALLER_NUMBER = 0x02, MCLASS_DIALED_NUMBER = 0x03, MCLASS_ABSENCE1 = 0x04,
  MCLASS_REDIRECT = 0x05, MCLASS_QUALIFIER = 0x06, MCLASS_CALLER_NAME = 0x07, MCLASS_ABSENCE2 = 0x08,
  MCLASS_ALT_ROUTE = 0x09
}
enum  { CLIP_MDMF_CALLERID = 0x80, CLIP_MDMF_MSG_WAITING = 0x82, CLIP_MDMF_CHARGE_INFO = 0x86, CLIP_MDMF_SMS = 0x89 }
enum  {
  CLIP_DATETIME = 0x01, CLIP_CALLER_NUMBER = 0x02, CLIP_DIALED_NUMBER = 0x03, CLIP_ABSENCE1 = 0x04,
  CLIP_CALLER_NAME = 0x07, CLIP_ABSENCE2 = 0x08, CLIP_VISUAL_INDICATOR = 0x0B, CLIP_MESSAGE_ID = 0x0D,
  CLIP_CALLTYPE = 0x11, CLIP_NUM_MSG = 0x13, CLIP_REDIR_NUMBER = 0x03, CLIP_CHARGE = 0x20,
  CLIP_DURATION = 0x23, CLIP_ADD_CHARGE = 0x21, CLIP_DISPLAY_INFO = 0x50, CLIP_SERVICE_INFO = 0x55
}
enum  { ACLIP_SDMF_CALLERID = 0x04, ACLIP_MDMF_CALLERID = 0x80 }
enum  {
  ACLIP_DATETIME = 0x01, ACLIP_CALLER_NUMBER = 0x02, ACLIP_DIALED_NUMBER = 0x03, ACLIP_NUMBER_ABSENCE = 0x04,
  ACLIP_REDIRECT = 0x05, ACLIP_QUALIFIER = 0x06, ACLIP_CALLER_NAME = 0x07, ACLIP_NAME_ABSENCE = 0x08
}
enum  {
  JCLIP_CALLER_NUMBER = 0x02, JCLIP_CALLER_NUM_DES = 0x21, JCLIP_DIALED_NUMBER = 0x09, JCLIP_DIALED_NUM_DES = 0x22,
  JCLIP_ABSENCE = 0x04
}

Functions

adsi_rx_state_tadsi_rx_init (adsi_rx_state_t *s, int standard, put_msg_func_t put_msg, void *user_data)
 Initialise an ADSI receive context.
int adsi_rx (adsi_rx_state_t *s, const int16_t *amp, int len)
 Receive a chunk of ADSI audio.
adsi_tx_state_tadsi_tx_init (adsi_tx_state_t *s, int standard)
 Initialise an ADSI transmit context.
void adsi_tx_set_preamble (adsi_tx_state_t *s, int preamble_len, int preamble_ones_len, int postamble_ones_len, int stop_bits)
 Adjust the preamble associated with an ADSI transmit context.
int adsi_tx (adsi_tx_state_t *s, int16_t *amp, int max_len)
 Generate a block of ADSI audio samples.
void adsi_tx_send_alert_tone (adsi_tx_state_t *s)
 Request generation of an ADSI alert tone.
int adsi_tx_put_message (adsi_tx_state_t *s, const uint8_t *msg, int len)
 Put a message into the input buffer of an ADSI transmit context.
int adsi_next_field (adsi_rx_state_t *s, const uint8_t *msg, int msg_len, int pos, uint8_t *field_type, uint8_t const **field_body, int *field_len)
 Get a field from an ADSI message.
int adsi_add_field (adsi_tx_state_t *s, uint8_t *msg, int len, uint8_t field_type, uint8_t const *field_body, int field_len)
 Insert the header or a field into an ADSI message.
const char * adsi_standard_to_str (int standard)
 Return a short name for an ADSI standard.


Detailed Description


Define Documentation

#define CLIP_DTMF_C_ABSENCE   'B'

Caller number absent: private/restricted (00) or not available (10)

#define CLIP_DTMF_C_CALLER_NUMBER   'A'

Caller number

#define CLIP_DTMF_C_REDIRECT_NUMBER   'D'

Diverting number

#define CLIP_DTMF_HASH_ABSENCE   'D'

Caller number absent: private (1), overseas (2) or not available (3)

#define CLIP_DTMF_HASH_CALLER_NUMBER   'A'

Caller number

#define CLIP_DTMF_HASH_TERMINATED   '#'

Definitions for CLIP-DTMF and its variants

#define CLIP_DTMF_HASH_UNSPECIFIED   0

Caller ID field with no explicit field type

Referenced by adsi_add_field(), and adsi_next_field().

#define JCLIP_MDMF_CALLERID   0x40

Definitions for J-CLIP (Japan Calling Line Identity Presentation)

Multiple data message caller ID frame

#define MCLASS_VISUAL_INDICATOR   0x0B

CLASS MDMF message waiting message IDs

Message waiting/not waiting


Enumeration Type Documentation

anonymous enum

Definitions for CLASS (Custom Local Area Signaling Services)

Enumerator:
CLASS_SDMF_CALLERID  Single data message caller ID
CLASS_MDMF_CALLERID  Multiple data message caller ID
CLASS_SDMF_MSG_WAITING  Single data message message waiting
CLASS_MDMF_MSG_WAITING  Multiple data message message waiting

anonymous enum

CLASS MDMF message IDs

Enumerator:
MCLASS_DATETIME  Date and time (MMDDHHMM)
MCLASS_CALLER_NUMBER  Caller number
MCLASS_DIALED_NUMBER  Dialed number
MCLASS_ABSENCE1  Caller number absent: 'O' or 'P'
MCLASS_REDIRECT  Call forward: universal ('0'), on busy ('1'), or on unanswered ('2')
MCLASS_QUALIFIER  Long distance: 'L'
MCLASS_CALLER_NAME  Caller's name
MCLASS_ABSENCE2  Caller's name absent: 'O' or 'P'
MCLASS_ALT_ROUTE  Alternate route

anonymous enum

Definitions for CLIP (Calling Line Identity Presentation)

Enumerator:
CLIP_MDMF_CALLERID  Multiple data message caller ID
CLIP_MDMF_MSG_WAITING  Multiple data message message waiting
CLIP_MDMF_CHARGE_INFO  Multiple data message charge information
CLIP_MDMF_SMS  Multiple data message SMS

anonymous enum

CLIP message IDs

Enumerator:
CLIP_DATETIME  Date and time (MMDDHHMM)
CLIP_CALLER_NUMBER  Caller number
CLIP_DIALED_NUMBER  Dialed number
CLIP_ABSENCE1  Caller number absent: 'O' or 'P'
CLIP_CALLER_NAME  Caller's name
CLIP_ABSENCE2  Caller's name absent: 'O' or 'P'
CLIP_VISUAL_INDICATOR  Visual indicator
CLIP_MESSAGE_ID  Message ID
CLIP_CALLTYPE  Voice call, ring-back-when-free call, or msg waiting call
CLIP_NUM_MSG  Number of messages
CLIP_REDIR_NUMBER  Redirecting number
CLIP_CHARGE  Charge
CLIP_DURATION  Duration of the call
CLIP_ADD_CHARGE  Additional charge
CLIP_DISPLAY_INFO  Display information
CLIP_SERVICE_INFO  Service information

anonymous enum

Definitions for A-CLIP (Analog Calling Line Identity Presentation)

Enumerator:
ACLIP_SDMF_CALLERID  Single data message caller ID frame
ACLIP_MDMF_CALLERID  Multiple data message caller ID frame

anonymous enum

A-CLIP MDM message IDs

Enumerator:
ACLIP_DATETIME  Date and time (MMDDHHMM)
ACLIP_CALLER_NUMBER  Caller number
ACLIP_DIALED_NUMBER  Dialed number
ACLIP_NUMBER_ABSENCE  Caller number absent: 'O' or 'P'
ACLIP_REDIRECT  Call forward: universal, on busy, or on unanswered
ACLIP_QUALIFIER  Long distance call: 'L'
ACLIP_CALLER_NAME  Caller's name
ACLIP_NAME_ABSENCE  Caller's name absent: 'O' or 'P'

anonymous enum

J-CLIP MDM message IDs

Enumerator:
JCLIP_CALLER_NUMBER  Caller number
JCLIP_CALLER_NUM_DES  Caller number data extension signal
JCLIP_DIALED_NUMBER  Dialed number
JCLIP_DIALED_NUM_DES  Dialed number data extension signal
JCLIP_ABSENCE  Caller number absent: 'C', 'O', 'P' or 'S'


Function Documentation

int adsi_add_field ( adsi_tx_state_t s,
uint8_t *  msg,
int  len,
uint8_t  field_type,
uint8_t const *  field_body,
int  field_len 
)

Insert the header or a field into an ADSI message.

Parameters:
s The ADSI transmit context.
msg The message buffer.
len The current length of the message.
field_type The type code for the new field.
field_body Pointer to the body of the new field.
field_len The length of the new field.

References CLIP_DTMF_HASH_UNSPECIFIED, and adsi_tx_state_t::standard.

int adsi_next_field ( adsi_rx_state_t s,
const uint8_t *  msg,
int  msg_len,
int  pos,
uint8_t *  field_type,
uint8_t const **  field_body,
int *  field_len 
)

Get a field from an ADSI message.

Parameters:
s The ADSI receive context.
msg The message buffer.
msg_len The length of the message.
pos Current position within the message. Set to -1 when starting a message.
field_type The type code for the field.
field_body Pointer to the body of the field.
field_len The length of the field, or -1 for no more fields, or -2 for message structure corrupt.

References CLIP_DTMF_HASH_UNSPECIFIED, and adsi_rx_state_t::standard.

int adsi_rx ( adsi_rx_state_t s,
const int16_t *  amp,
int  len 
)

Receive a chunk of ADSI audio.

Parameters:
s The ADSI receive context.
amp The audio sample buffer.
len The number of samples in the buffer.
Returns:
The number of samples unprocessed.

References adsi_rx_state_t::dtmfrx, fsk_rx(), adsi_rx_state_t::fskrx, adsi_rx_state_t::in_progress, adsi_rx_state_t::msg_len, and adsi_rx_state_t::standard.

adsi_rx_state_t* adsi_rx_init ( adsi_rx_state_t s,
int  standard,
put_msg_func_t  put_msg,
void *  user_data 
)

Initialise an ADSI receive context.

Parameters:
s The ADSI receive context.
standard The code for the ADSI standard to be used.
put_msg A callback routine called to deliver the received messages to the application.
user_data An opaque pointer for the callback routine.
Returns:
A pointer to the initialised context, or NULL if there was a problem.

References ASYNC_PARITY_NONE, async_rx_init(), async_rx_put_bit(), adsi_rx_state_t::asyncrx, adsi_rx_state_t::dtmfrx, fsk_rx_init(), adsi_rx_state_t::fskrx, adsi_rx_state_t::logging, adsi_rx_state_t::put_msg, adsi_rx_state_t::standard, and adsi_rx_state_t::user_data.

const char* adsi_standard_to_str ( int  standard  ) 

Return a short name for an ADSI standard.

Parameters:
standard The code for the standard.
Returns:
A pointer to the name.

int adsi_tx ( adsi_tx_state_t s,
int16_t *  amp,
int  max_len 
)

Generate a block of ADSI audio samples.

Parameters:
s The ADSI transmit context.
amp The audio sample buffer.
max_len The number of samples to be generated.
Returns:
The number of samples actually generated.

References adsi_tx_state_t::alert_tone_gen, adsi_tx_state_t::dtmftx, fsk_tx(), adsi_tx_state_t::fsktx, adsi_tx_state_t::standard, and adsi_tx_state_t::tx_signal_on.

adsi_tx_state_t* adsi_tx_init ( adsi_tx_state_t s,
int  standard 
)

Initialise an ADSI transmit context.

Parameters:
s The ADSI transmit context.
standard The code for the ADSI standard to be used.
Returns:
A pointer to the initialised context, or NULL if there was a problem.

References adsi_tx_set_preamble(), adsi_tx_state_t::alert_tone_desc, adsi_tx_state_t::logging, make_tone_gen_descriptor(), and adsi_tx_state_t::standard.

int adsi_tx_put_message ( adsi_tx_state_t s,
const uint8_t *  msg,
int  len 
)

Put a message into the input buffer of an ADSI transmit context.

Parameters:
s The ADSI transmit context.
msg The message.
len The length of the message.
Returns:
The length actually added. If a message is already in progress in the transmitter, this function will return zero, as it will not successfully add the message to the buffer.

References adsi_tx_state_t::bit_no, adsi_tx_state_t::bit_pos, adsi_tx_state_t::byte_no, crc_itu16_calc(), adsi_tx_state_t::dtmftx, adsi_tx_state_t::msg, adsi_tx_state_t::msg_len, adsi_tx_state_t::standard, and adsi_tx_state_t::tx_signal_on.

void adsi_tx_send_alert_tone ( adsi_tx_state_t s  ) 

Request generation of an ADSI alert tone.

Parameters:
s The ADSI transmit context.

References adsi_tx_state_t::alert_tone_desc, and adsi_tx_state_t::alert_tone_gen.

void adsi_tx_set_preamble ( adsi_tx_state_t s,
int  preamble_len,
int  preamble_ones_len,
int  postamble_ones_len,
int  stop_bits 
)

Adjust the preamble associated with an ADSI transmit context.

Parameters:
s The ADSI transmit context.
preamble_len The number of bits of preamble.
preamble_ones_len The number of bits of continuous one before a message.
postamble_ones_len The number of bits of continuous one after a message.
stop_bits The number of stop bits per character.

References adsi_tx_state_t::postamble_ones_len, adsi_tx_state_t::preamble_len, adsi_tx_state_t::preamble_ones_len, adsi_tx_state_t::standard, and adsi_tx_state_t::stop_bits.

Referenced by adsi_tx_init().


Generated on Tue Oct 7 20:25:50 2008 for spandsp by  doxygen 1.5.6