t38_core.h File Reference

#include <sys/time.h>

Go to the source code of this file.

Classes

struct  t38_data_field_t
struct  t38_core_state_s

Defines

#define _SPANDSP_T38_CORE_H_
#define T38_RX_BUF_LEN   2048
#define T38_TX_BUF_LEN   16384

Typedefs

typedef t38_core_state_s t38_core_state_t
typedef int( t38_tx_packet_handler_t )(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count)
typedef int( t38_rx_indicator_handler_t )(t38_core_state_t *s, void *user_data, int indicator)
typedef int( t38_rx_data_handler_t )(t38_core_state_t *s, void *user_data, int data_type, int field_type, const uint8_t *buf, int len)
typedef int( t38_rx_missing_handler_t )(t38_core_state_t *s, void *user_data, int rx_seq_no, int expected_seq_no)

Enumerations

enum  t30_indicator_types_e {
  T38_IND_NO_SIGNAL = 0, T38_IND_CNG, T38_IND_CED, T38_IND_V21_PREAMBLE,
  T38_IND_V27TER_2400_TRAINING, T38_IND_V27TER_4800_TRAINING, T38_IND_V29_7200_TRAINING, T38_IND_V29_9600_TRAINING,
  T38_IND_V17_7200_SHORT_TRAINING, T38_IND_V17_7200_LONG_TRAINING, T38_IND_V17_9600_SHORT_TRAINING, T38_IND_V17_9600_LONG_TRAINING,
  T38_IND_V17_12000_SHORT_TRAINING, T38_IND_V17_12000_LONG_TRAINING, T38_IND_V17_14400_SHORT_TRAINING, T38_IND_V17_14400_LONG_TRAINING,
  T38_IND_V8_ANSAM, T38_IND_V8_SIGNAL, T38_IND_V34_CNTL_CHANNEL_1200, T38_IND_V34_PRI_CHANNEL,
  T38_IND_V34_CC_RETRAIN, T38_IND_V33_12000_TRAINING, T38_IND_V33_14400_TRAINING
}
enum  t38_data_types_e {
  T38_DATA_NONE = -1, T38_DATA_V21 = 0, T38_DATA_V27TER_2400, T38_DATA_V27TER_4800,
  T38_DATA_V29_7200, T38_DATA_V29_9600, T38_DATA_V17_7200, T38_DATA_V17_9600,
  T38_DATA_V17_12000, T38_DATA_V17_14400, T38_DATA_V8, T38_DATA_V34_PRI_RATE,
  T38_DATA_V34_CC_1200, T38_DATA_V34_PRI_CH, T38_DATA_V33_12000, T38_DATA_V33_14400
}
enum  t38_field_types_e {
  T38_FIELD_HDLC_DATA = 0, T38_FIELD_HDLC_SIG_END, T38_FIELD_HDLC_FCS_OK, T38_FIELD_HDLC_FCS_BAD,
  T38_FIELD_HDLC_FCS_OK_SIG_END, T38_FIELD_HDLC_FCS_BAD_SIG_END, T38_FIELD_T4_NON_ECM_DATA, T38_FIELD_T4_NON_ECM_SIG_END,
  T38_FIELD_CM_MESSAGE, T38_FIELD_JM_MESSAGE, T38_FIELD_CI_MESSAGE, T38_FIELD_V34RATE
}
enum  t38_field_classes_e { T38_FIELD_CLASS_NONE = 0, T38_FIELD_CLASS_HDLC, T38_FIELD_CLASS_NON_ECM }
enum  t38_message_types_e { T38_TYPE_OF_MSG_T30_INDICATOR = 0, T38_TYPE_OF_MSG_T30_DATA }
enum  t38_transport_types_e { T38_TRANSPORT_UDPTL = 0, T38_TRANSPORT_RTP, T38_TRANSPORT_TCP }

Functions

const char * t38_indicator (int indicator)
 Convert the code for an indicator to a short text name.
const char * t38_data_type (int data_type)
 Convert the code for a type of data to a short text name.
const char * t38_field_type (int field_type)
 Convert the code for a type of data field to a short text name.
int t38_core_send_indicator (t38_core_state_t *s, int indicator, int count)
 Send an indicator packet.
int t38_core_send_data (t38_core_state_t *s, int data_type, int field_type, const uint8_t field[], int field_len, int count)
 Send a data packet.
int t38_core_send_data_multi_field (t38_core_state_t *s, int data_type, const t38_data_field_t field[], int fields, int count)
 Send a data packet.
int t38_core_rx_ifp_packet (t38_core_state_t *s, const uint8_t *buf, int len, uint16_t seq_no)
 Process a received T.38 IFP packet.
void t38_set_data_rate_management_method (t38_core_state_t *s, int method)
void t38_set_data_transport_protocol (t38_core_state_t *s, int data_transport_protocol)
void t38_set_fill_bit_removal (t38_core_state_t *s, int fill_bit_removal)
void t38_set_mmr_transcoding (t38_core_state_t *s, int mmr_transcoding)
void t38_set_jbig_transcoding (t38_core_state_t *s, int jbig_transcoding)
void t38_set_max_buffer_size (t38_core_state_t *s, int max_buffer_size)
void t38_set_max_datagram_size (t38_core_state_t *s, int max_datagram_size)
int t38_get_fastest_image_data_rate (t38_core_state_t *s)
void t38_set_t38_version (t38_core_state_t *s, int t38_version)
void t38_set_sequence_number_handling (t38_core_state_t *s, int check)
t38_core_state_t * t38_core_init (t38_core_state_t *s, t38_rx_indicator_handler_t *rx_indicator_handler, t38_rx_data_handler_t *rx_data_handler, t38_rx_missing_handler_t *rx_missing_handler, void *rx_user_data, t38_tx_packet_handler_t tx_packet_handler, void *tx_packet_user_data)


Detailed Description


Function Documentation

int t38_core_rx_ifp_packet ( t38_core_state_t *  s,
const uint8_t *  buf,
int  len,
uint16_t  seq_no 
)

Process a received T.38 IFP packet.

Parameters:
s The T.38 context.
buf The packet contents.
len The length of the packet contents.
seq_no The packet sequence number.
Returns:
0 for OK, else -1.

int t38_core_send_data ( t38_core_state_t *  s,
int  data_type,
int  field_type,
const uint8_t  field[],
int  field_len,
int  count 
)

Send a data packet.

Parameters:
s The T.38 context.
data_type The packet's data type.
field_type The packet's field type.
field The message data content for the packet.
field_len The length of the message data, in bytes.
count The number of copies of the packet to send.
Returns:
???

int t38_core_send_data_multi_field ( t38_core_state_t *  s,
int  data_type,
const t38_data_field_t  field[],
int  fields,
int  count 
)

Send a data packet.

Parameters:
s The T.38 context.
data_type The packet's data type.
field The list of fields.
fields The number of fields in the list.
count The number of copies of the packet to send.
Returns:
???

int t38_core_send_indicator ( t38_core_state_t *  s,
int  indicator,
int  count 
)

Send an indicator packet.

Parameters:
s The T.38 context.
indicator The indicator to send.
count The number of copies of the packet to send.
Returns:
???

const char* t38_data_type ( int  data_type  ) 

Convert the code for a type of data to a short text name.

Parameters:
data_type The data type.
Returns:
A pointer to a short text name for the data type.

const char* t38_field_type ( int  field_type  ) 

Convert the code for a type of data field to a short text name.

Parameters:
field_type The field type.
Returns:
A pointer to a short text name for the field type.

const char* t38_indicator ( int  indicator  ) 

Convert the code for an indicator to a short text name.

Parameters:
indicator The type of indicator.
Returns:
A pointer to a short text name for the indicator.

void t38_set_data_rate_management_method ( t38_core_state_t *  s,
int  method 
)

Set the method to be used for data rate management, as per the T.38 spec.

Parameters:
s The T.38 context.
method 1 for pass TCF across the T.38 link, 2 for handle TCF locally.

void t38_set_data_transport_protocol ( t38_core_state_t *  s,
int  data_transport_protocol 
)

Set the data transport protocol.

Parameters:
s The T.38 context.
data_transport_protocol UDPTL, RTP or TPKT.

void t38_set_fill_bit_removal ( t38_core_state_t *  s,
int  fill_bit_removal 
)

Set the non-ECM fill bit removal mode.

Parameters:
s The T.38 context.
fill_bit_removal TRUE to remove fill bits across the T.38 link, else FALSE.

void t38_set_jbig_transcoding ( t38_core_state_t *  s,
int  jbig_transcoding 
)

Set the JBIG transcoding mode.

Parameters:
s The T.38 context.
jbig_transcoding TRUE to transcode to JBIG across the T.38 link, else FALSE.

void t38_set_mmr_transcoding ( t38_core_state_t *  s,
int  mmr_transcoding 
)

Set the MMR transcoding mode.

Parameters:
s The T.38 context.
mmr_transcoding TRUE to transcode to MMR across the T.38 link, else FALSE.

void t38_set_t38_version ( t38_core_state_t *  s,
int  t38_version 
)

Set the T.38 version to be emulated.

Parameters:
s The T.38 context.
t38_version Version number, as in the T.38 spec.


Generated on Tue Jul 24 11:29:29 2007 for libspandsp by  doxygen 1.5.2