spandsp  0.0.6
v42.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <inttypes.h>
#include <string.h>
#include <errno.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/async.h"
#include "spandsp/hdlc.h"
#include "spandsp/schedule.h"
#include "spandsp/queue.h"
#include "spandsp/v42.h"
#include "spandsp/private/logging.h"
#include "spandsp/private/schedule.h"
#include "spandsp/private/hdlc.h"
#include "spandsp/private/v42.h"

Macros

#define LAPM_FRAMETYPE_MASK   0x03
 
#define LAPM_FRAMETYPE_I   0x00
 
#define LAPM_FRAMETYPE_I_ALT   0x02
 
#define LAPM_FRAMETYPE_S   0x01
 
#define LAPM_FRAMETYPE_U   0x03
 
#define T_WAIT_MIN   2000
 
#define T_WAIT_MAX   10000
 
#define T_400   750000
 
#define T_401   1000000
 
#define T_402   1000000
 
#define T_403   10000000
 
#define N_400   3
 
#define N_401   128
 
#define LAPM_DLCI_DTE_TO_DTE   0
 
#define LAPM_DLCI_LAYER2_MANAGEMENT   63
 

Functions

void lapm_reset (lapm_state_t *s)
 
void lapm_restart (lapm_state_t *s)
 
const char * lapm_status_to_str (int status)
 
int lapm_tx (lapm_state_t *s, const void *buf, int len)
 
int lapm_release (lapm_state_t *s)
 
int lapm_loopback (lapm_state_t *s, int enable)
 
int lapm_break (lapm_state_t *s, int enable)
 
int lapm_tx_iframe (lapm_state_t *s, const void *buf, int len, int cr)
 
void lapm_dump (lapm_state_t *s, const uint8_t *frame, int len, int showraw, int txrx)
 
void lapm_receive (void *user_data, const uint8_t *frame, int len, int ok)
 
void v42_rx_bit (void *user_data, int bit)
 
int v42_tx_bit (void *user_data)
 
void v42_set_status_callback (v42_state_t *s, v42_status_func_t callback, void *user_data)
 
void v42_restart (v42_state_t *s)
 
v42_state_tv42_init (v42_state_t *s, int calling_party, int detect, v42_frame_handler_t frame_handler, void *user_data)
 
int v42_release (v42_state_t *s)
 
int v42_free (v42_state_t *s)
 

Function Documentation

int lapm_break ( lapm_state_t s,
int  enable 
)

Send a break over a LAP.M connection

int lapm_loopback ( lapm_state_t s,
int  enable 
)

Enable or disable loopback of a LAP.M connection

int lapm_release ( lapm_state_t s)

Initiate an orderly release of a LAP.M connection

int lapm_tx ( lapm_state_t s,
const void *  buf,
int  len 
)

Transmit a LAP.M frame

References queue_write().

int lapm_tx_iframe ( lapm_state_t s,
const void *  buf,
int  len,
int  cr 
)
int v42_free ( v42_state_t s)

Free a V.42 context.

Parameters
sThe V.42 context.
Returns
0 if OK
v42_state_t* v42_init ( v42_state_t s,
int  calling_party,
int  detect,
v42_frame_handler_t  frame_handler,
void *  user_data 
)

Initialise a V.42 context.

Parameters
sThe V.42 context.
calling_partyTRUE if caller mode, else answerer mode.
frame_handlerA callback function to handle received frames of data.
user_dataAn opaque pointer passed to the frame handler routine.
Returns
???

References queue_init(), and v42_restart().

int v42_release ( v42_state_t s)

Release a V.42 context.

Parameters
sThe V.42 context.
Returns
0 if OK
void v42_restart ( v42_state_t s)

Restart a V.42 context.

Parameters
sThe V.42 context.

Referenced by v42_init().

void v42_rx_bit ( void *  user_data,
int  bit 
)

Process a newly received bit for a V.42 context.

References v42_state_s::lapm.

void v42_set_status_callback ( v42_state_t s,
v42_status_func_t  callback,
void *  user_data 
)

Assign or remove a callback routine used to deal with V.42 status changes.

int v42_tx_bit ( void *  user_data)

Get the next transmit bit for a V.42 context.

References v42_state_s::lapm.