v8.c File Reference
`#include <inttypes.h>`
`#include <stdlib.h>`
`#include <stdio.h>`
`#include <memory.h>`
`#include "floating_fudge.h"`
`#include "spandsp/telephony.h"`
`#include "spandsp/logging.h"`
`#include "spandsp/queue.h"`
`#include "spandsp/async.h"`
`#include "spandsp/vector_int.h"`
`#include "spandsp/complex.h"`
`#include "spandsp/dds.h"`
`#include "spandsp/tone_detect.h"`
`#include "spandsp/tone_generate.h"`
`#include "spandsp/super_tone_rx.h"`
`#include "spandsp/power_meter.h"`
`#include "spandsp/fsk.h"`
`#include "spandsp/modem_connect_tones.h"`
`#include "spandsp/v8.h"`
`#include "spandsp/private/logging.h"`
`#include "spandsp/private/fsk.h"`
`#include "spandsp/private/modem_connect_tones.h"`
`#include "spandsp/private/v8.h"`

## Enumerations

enum | { V8_WAIT_1S , V8_AWAIT_ANSAM , V8_CI_ON , V8_CI_OFF , V8_HEARD_ANSAM , V8_CM_ON , V8_CJ_ON , V8_CM_WAIT , V8_SIGC , V8_JM_ON , V8_SIGA , V8_PARKED }
enum | { V8_SYNC_UNKNOWN = 0 , V8_SYNC_CI , V8_SYNC_CM_JM , V8_SYNC_V92 }
enum | { V8_CALL_FUNCTION_TAG = 0x01 , V8_MODULATION_TAG = 0x05 , V8_PROTOCOLS_TAG = 0x0A , V8_PSTN_ACCESS_TAG = 0x0D , V8_NSF_TAG = 0x0F , V8_PCM_MODEM_AVAILABILITY_TAG = 0x07 , V8_T66_TAG = 0x0E }
enum | { V8_CI_SYNC_OCTET = 0x00 , V8_CM_JM_SYNC_OCTET = 0xE0 , V8_V92_SYNC_OCTET = 0x55 }

## Functions

const char * | v8_call_function_to_str (int call_function)
const char * | v8_modulation_to_str (int modulation_scheme)
const char * | v8_protocol_to_str (int protocol)
const char * | v8_pstn_access_to_str (int pstn_access)
const char * | v8_nsf_to_str (int nsf)
const char * | v8_pcm_modem_availability_to_str (int pcm_modem_availability)
const char * | v8_t66_to_str (int t66)
void | v8_log_supported_modulations (v8_state_t *s, int modulation_schemes)
| Log the list of supported modulations.
int | v8_tx (v8_state_t *s, int16_t *amp, int max_len)
int | v8_rx (v8_state_t *s, const int16_t *amp, int len)
logging_state_t * | v8_get_logging_state (v8_state_t *s)
int | v8_restart (v8_state_t *s, int calling_party, v8_parms_t *parms)
v8_state_t * | v8_init (v8_state_t *s, int calling_party, v8_parms_t *parms, v8_result_handler_t result_handler, void *user_data)
| Initialise a V.8 context.
int | v8_release (v8_state_t *s)
| Release a V.8 context.
int | v8_free (v8_state_t *s)
| Release a V.8 context.

## Variables

enum { ... } | v8_states_e
enum { ... } | v8_sync_types_e

## Function Documentation

## v8_free()

int v8_free | ( | v8_state_t * | s | ) |

Release a V.8 context.

Free a V.8 context.

Parameters

  s | The V.8 context.

Returns
  0 for OK.

References queue_free().

## v8_init()

v8_state_t * v8_init | ( | v8_state_t * | s,
|  | int | calling_party,
|  | v8_parms_t * | parms,
|  | v8_result_handler_t | result_handler,
|  | void * | user_data )

Initialise a V.8 context.

Initialise a V.8 context.

Parameters

  s | The V.8 context.
  calling_party | TRUE if caller mode, else answerer mode.
  parms | The allowed parameters for the call.
  result_handler | The callback routine used to handle the results of negotiation.
  user_data | An opaque pointer passed to the result_handler routine.

Returns
  A pointer to the V.8 context, or NULL if there was a problem.

References v8_state_s::logging, v8_state_s::result_handler, and v8_state_s::result_handler_user_data.

Referenced by fax_init(), and t31_init().

## v8_log_supported_modulations()

void v8_log_supported_modulations | ( | v8_state_t * | s,
|  | int | modulation_schemes )

Log the list of supported modulations.

Log the list of supported modulations.

Parameters

  s | The V.8 context.
  modulation_schemes | The list of supported modulations.

References v8_state_s::logging, and span_log().

## v8_release()

int v8_release | ( | v8_state_t * | s | ) |

Release a V.8 context.

Release a V.8 context.

Parameters

  s | The V.8 context.

Returns
  0 for OK.

References queue_free().