t38_terminal.c File Reference

#include <stdlib.h>
#include <stdio.h>
#include <inttypes.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
#include <assert.h>
#include <tiffio.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/bit_operations.h"
#include "spandsp/queue.h"
#include "spandsp/power_meter.h"
#include "spandsp/complex.h"
#include "spandsp/tone_generate.h"
#include "spandsp/async.h"
#include "spandsp/hdlc.h"
#include "spandsp/fsk.h"
#include "spandsp/v29rx.h"
#include "spandsp/v29tx.h"
#include "spandsp/v27ter_rx.h"
#include "spandsp/v27ter_tx.h"
#include "spandsp/v17rx.h"
#include "spandsp/v17tx.h"
#include "spandsp/t4.h"
#include "spandsp/t30_fcf.h"
#include "spandsp/t35.h"
#include "spandsp/t30.h"
#include "spandsp/t30_api.h"
#include "spandsp/t30_logging.h"
#include "spandsp/t38_core.h"
#include "spandsp/t38_terminal.h"

Defines

#define MS_PER_TX_CHUNK   30
#define INDICATOR_TX_COUNT   3
#define DATA_TX_COUNT   1
#define DATA_END_TX_COUNT   3
#define MAX_OCTETS_PER_UNPACED_CHUNK   300
#define MID_RX_TIMEOUT   15000
#define T38_CHUNKING_MERGE_FCS_WITH_DATA   0x0001
#define T38_CHUNKING_WHOLE_FRAMES   0x0002
#define T38_CHUNKING_ALLOW_TEP_TIME   0x0004

Enumerations

enum  {
  T38_TIMED_STEP_NONE = 0, T38_TIMED_STEP_NON_ECM_MODEM, T38_TIMED_STEP_NON_ECM_MODEM_2, T38_TIMED_STEP_NON_ECM_MODEM_3,
  T38_TIMED_STEP_NON_ECM_MODEM_4, T38_TIMED_STEP_NON_ECM_MODEM_5, T38_TIMED_STEP_HDLC_MODEM, T38_TIMED_STEP_HDLC_MODEM_2,
  T38_TIMED_STEP_HDLC_MODEM_3, T38_TIMED_STEP_HDLC_MODEM_4, T38_TIMED_STEP_CED, T38_TIMED_STEP_CED_2,
  T38_TIMED_STEP_CNG, T38_TIMED_STEP_CNG_2, T38_TIMED_STEP_PAUSE
}

Functions

int t38_terminal_send_timeout (t38_terminal_state_t *s, int samples)
void t38_terminal_set_config (t38_terminal_state_t *s, int without_pacing)
void t38_terminal_set_tep_mode (t38_terminal_state_t *s, int use_tep)
 Select whether TEP time will be allowed for.
void t38_terminal_set_fill_bit_removal (t38_terminal_state_t *s, int remove)
 Select whether non-ECM fill bits are to be removed during transmission.
t38_terminal_state_tt38_terminal_init (t38_terminal_state_t *s, int calling_party, t38_tx_packet_handler_t *tx_packet_handler, void *tx_packet_user_data)
 Initialise a termination mode T.38 context.
int t38_terminal_release (t38_terminal_state_t *s)
 Release a T.38 context.
int t38_terminal_free (t38_terminal_state_t *s)
 Free a T.38 context.

Detailed Description


Function Documentation

int t38_terminal_free ( t38_terminal_state_t s  ) 

Free a T.38 context.

Free a a termination mode T.38 context.

Parameters:
s The T.38 context.
Returns:
0 for OK, else -1.

t38_terminal_state_t* t38_terminal_init ( t38_terminal_state_t s,
int  calling_party,
t38_tx_packet_handler_t *  tx_packet_handler,
void *  tx_packet_user_data 
)

Initialise a termination mode T.38 context.

Parameters:
s The T.38 context.
calling_party TRUE if the context is for a calling party. FALSE if the context is for an answering party.
tx_packet_handler A callback routine to encapsulate and transmit T.38 packets.
tx_packet_user_data An opaque pointer passed to the tx_packet_handler routine.
Returns:
A pointer to the termination mode T.38 context, or NULL if there was a problem.

int t38_terminal_release ( t38_terminal_state_t s  ) 

Release a T.38 context.

Release a termination mode T.38 context.

Parameters:
s The T.38 context.
Returns:
0 for OK, else -1.

void t38_terminal_set_fill_bit_removal ( t38_terminal_state_t s,
int  remove 
)

Select whether non-ECM fill bits are to be removed during transmission.

Select whether non-ECM fill bits are to be removed during transmission.

Parameters:
s The T.38 context.
remove TRUE if fill bits are to be removed.

void t38_terminal_set_tep_mode ( t38_terminal_state_t s,
int  use_tep 
)

Select whether TEP time will be allowed for.

Select whether the time for talker echo protection tone will be allowed for when sending.

Parameters:
s The T.38 context.
use_tep TRUE if TEP should be allowed for.


Generated on Mon Nov 21 19:45:45 2011 for libspandsp by  doxygen 1.5.3