libspandsp 0.0.4

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 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:
sThe ADSI transmit context.
msgThe message buffer.
lenThe current length of the message.
field_typeThe type code for the new field.
field_bodyPointer to the body of the new field.
field_lenThe length of the new field.

References CLIP_DTMF_HASH_UNSPECIFIED.

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:
sThe ADSI receive context.
msgThe message buffer.
msg_lenThe length of the message.
posCurrent position within the message. Set to -1 when starting a message.
field_typeThe type code for the field.
field_bodyPointer to the body of the field.
field_lenThe length of the field, or -1 for no more fields, or -2 for message structure corrupt.

References CLIP_DTMF_HASH_UNSPECIFIED.

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

Receive a chunk of ADSI audio.

Parameters:
sThe ADSI receive context.
ampThe audio sample buffer.
lenThe number of samples in the buffer.
Returns:
The number of samples unprocessed.

References fsk_rx().

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:
sThe ADSI receive context.
standardThe code for the ADSI standard to be used.
put_msgA callback routine called to deliver the received messages to the application.
user_dataAn 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(), and fsk_rx_init().

const char* adsi_standard_to_str ( int  standard)

Return a short name for an ADSI standard.

Parameters:
standardThe 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:
sThe ADSI transmit context.
ampThe audio sample buffer.
max_lenThe number of samples to be generated.
Returns:
The number of samples actually generated.

References fsk_tx().

adsi_tx_state_t* adsi_tx_init ( adsi_tx_state_t s,
int  standard 
)

Initialise an ADSI transmit context.

Parameters:
sThe ADSI transmit context.
standardThe 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(), and make_tone_gen_descriptor().

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:
sThe ADSI transmit context.
msgThe message.
lenThe 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 crc_itu16_calc().

void adsi_tx_send_alert_tone ( adsi_tx_state_t s)

Request generation of an ADSI alert tone.

Parameters:
sThe 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.

Parameters:
sThe ADSI transmit context.
preamble_lenThe number of bits of preamble.
preamble_ones_lenThe number of bits of continuous one before a message.
postamble_ones_lenThe number of bits of continuous one after a message.
stop_bitsThe number of stop bits per character.

Referenced by adsi_tx_init().