spandsp 0.0.6

adsi.h File Reference

Go to the source code of this file.

## Macros
#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'

## Typedefs
typedef struct adsi_tx_state_s | adsi_tx_state_t
typedef struct adsi_rx_state_s | adsi_rx_state_t

## 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_COMPLEMENTARY_CALLER_NUMBER = 0x10 , CLIP_CALLTYPE = 0x11 , CLIP_NUM_MSG = 0x13 , CLIP_TYPE_OF_FORWARDED_CALL = 0x15 , CLIP_TYPE_OF_CALLING_USER = 0x16 , CLIP_REDIR_NUMBER = 0x1A , 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
logging_state_t * | adsi_rx_get_logging_state (adsi_rx_state_t *s)
| Get the logging context associated with an ADSI receive context.
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.
int | adsi_rx_release (adsi_rx_state_t *s)
| Release an ADSI receive context.
int | adsi_rx_free (adsi_rx_state_t *s)
| Free the resources of 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_t * | adsi_tx_init (adsi_tx_state_t *s, int standard)
| Initialise an ADSI transmit context.
int | adsi_tx_release (adsi_tx_state_t *s)
| Release an ADSI transmit context.
int | adsi_tx_free (adsi_tx_state_t *s)
| Free the resources of 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.

## Macro Definition Documentation

## ◆ CLIP_DTMF_C_ABSENCE

#define CLIP_DTMF_C_ABSENCE 'B'

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

## ◆ CLIP_DTMF_C_CALLER_NUMBER

#define CLIP_DTMF_C_CALLER_NUMBER 'A'

Caller number

## ◆ CLIP_DTMF_C_REDIRECT_NUMBER

#define CLIP_DTMF_C_REDIRECT_NUMBER 'D'

Diverting number

## ◆ CLIP_DTMF_C_TERMINATED

#define CLIP_DTMF_C_TERMINATED 'C'

Caller number is 'C' terminated DTMF.

## ◆ CLIP_DTMF_HASH_ABSENCE

#define CLIP_DTMF_HASH_ABSENCE 'D'

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

## ◆ CLIP_DTMF_HASH_CALLER_NUMBER

#define CLIP_DTMF_HASH_CALLER_NUMBER 'A'

Caller number

## ◆ CLIP_DTMF_HASH_TERMINATED

#define CLIP_DTMF_HASH_TERMINATED '#'

Caller number is '#' terminated DTMF.

## ◆ CLIP_DTMF_HASH_UNSPECIFIED

#define CLIP_DTMF_HASH_UNSPECIFIED 0

Caller ID field with no explicit field type

Referenced by adsi_add_field(), and adsi_next_field().

## ◆ JCLIP_MDMF_CALLERID

#define JCLIP_MDMF_CALLERID 0x40

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

Multiple data message caller ID frame

## ◆ MCLASS_VISUAL_INDICATOR

#define MCLASS_VISUAL_INDICATOR 0x0B

CLASS MDMF message waiting message IDs

Message waiting/not waiting

## Typedef Documentation

## ◆ adsi_rx_state_t

typedef struct adsi_rx_state_s adsi_rx_state_t

ADSI receiver descriptor. This contains all the state information for an ADSI (caller ID, CLASS, CLIP, ACLIP, JCLIP) receive channel.

## ◆ adsi_tx_state_t

typedef struct adsi_tx_state_s adsi_tx_state_t

ADSI transmitter descriptor. This contains all the state information for an ADSI (caller ID, CLASS, CLIP, ACLIP) transmit channel.

## Enumeration Type Documentation

## ◆ anonymous enum

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'

## ◆ anonymous enum

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

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

anonymous enum

CLIP message IDs (from ETS 300 659-1)

Enumerator
CLIP_DATETIME | Date and time (MMDDHHMM)
CLIP_CALLER_NUMBER | Caller number (AKA calling line identity)
CLIP_DIALED_NUMBER | Dialed number (AKA called line identity)
CLIP_ABSENCE1 | Caller number absent: 'O' or 'P' (AKA reason for absence of calling line identity)
CLIP_CALLER_NAME | Caller's name (AKA calling party name)
CLIP_ABSENCE2 | Caller's name absent: 'O' or 'P' (AKA reason for absence of calling party name)
CLIP_VISUAL_INDICATOR | Visual indicator
CLIP_MESSAGE_ID | Message ID
CLIP_COMPLEMENTARY_CALLER_NUMBER | Complementary calling line identity
CLIP_CALLTYPE | Call type - voice call (1), ring-back-when-free call (2), calling name delivery (3) or msg waiting call(0x81)
CLIP_NUM_MSG | Number of messages
CLIP_TYPE_OF_FORWARDED_CALL | Type of forwarded call
CLIP_TYPE_OF_CALLING_USER | Type of calling user
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

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

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

anonymous enum

Definitions for CLIP (Calling Line Identity Presentation) (from ETS 300 659-1)

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

## Function Documentation

## ◆ adsi_add_field()

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.

## ◆ adsi_next_field()

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.

## ◆ adsi_rx()

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 dtmf_rx().

## ◆ adsi_rx_free()

int adsi_rx_free | ( | adsi_rx_state_t * | s | ) |

Free the resources of an ADSI receive context.

Parameters

  s | The ADSI receive context.

Returns
  0 for OK.

## ◆ adsi_rx_get_logging_state()

logging_state_t * adsi_rx_get_logging_state | ( | adsi_rx_state_t * | s | ) |

Get the logging context associated with an ADSI receive context.

Get the logging context associated with an ADSI receive context.

Parameters

  s | The ADSI receive context.

Returns
  A pointer to the logging context

## ◆ adsi_rx_init()

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 dtmf_rx_init(), and fsk_rx_init().

## ◆ adsi_rx_release()

int adsi_rx_release | ( | adsi_rx_state_t * | s | ) |

Release an ADSI receive context.

Parameters

  s | The ADSI receive context.

Returns
  0 for OK.

## ◆ adsi_standard_to_str()

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.

## ◆ adsi_tx()

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 dtmf_tx().

## ◆ adsi_tx_free()

int adsi_tx_free | ( | adsi_tx_state_t * | s | ) |

Free the resources of an ADSI transmit context.

Parameters

  s | The ADSI transmit context.

Returns
  0 for OK.

## ◆ adsi_tx_init()

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(), and tone_gen_descriptor_init().

## ◆ adsi_tx_put_message()

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. If the message is invalid (e.g. it is too long), this function will return -1.

References crc_itu16_calc(), and dtmf_tx_put().

## ◆ adsi_tx_release()

int adsi_tx_release | ( | adsi_tx_state_t * | s | ) |

Release an ADSI transmit context.

Parameters

  s | The ADSI transmit context.

Returns
  0 for OK.

## ◆ adsi_tx_send_alert_tone()

void adsi_tx_send_alert_tone | ( | adsi_tx_state_t * | s | ) |

Request generation of an ADSI alert tone.

Parameters

  s | The ADSI transmit context.

## ◆ adsi_tx_set_preamble()

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.

Referenced by adsi_tx_init().