spandsp 0.0.6
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_tv8_get_logging_state (v8_state_t *s)
int v8_restart (v8_state_t *s, int calling_party, v8_parms_t *parms)
v8_state_tv8_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
sThe 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
sThe V.8 context.
calling_partyTRUE if caller mode, else answerer mode.
parmsThe allowed parameters for the call.
result_handlerThe callback routine used to handle the results of negotiation.
user_dataAn 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
sThe V.8 context.
modulation_schemesThe 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
sThe V.8 context.
Returns
0 for OK.

References queue_free().