#include <inttypes.h>
#include <stdlib.h>
#include <stdio.h>
#include <fcntl.h>
#include <time.h>
#include <string.h>
#include <assert.h>
#include <memory.h>
#include <tiffio.h>
#include "spandsp/telephony.h"
#include "spandsp/logging.h"
#include "spandsp/bit_operations.h"
#include "spandsp/t38_core.h"
Defines | |
#define | ACCEPTABLE_SEQ_NO_OFFSET 2000 |
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_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. | |
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. | |
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) |
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) |
int | t38_get_fastest_image_data_rate (t38_core_state_t *s) |
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) |
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.
s | The T.38 context. | |
buf | The packet contents. | |
len | The length of the packet contents. | |
seq_no | The packet sequence number. |
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.
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. |
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.
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. |
int t38_core_send_indicator | ( | t38_core_state_t * | s, | |
int | indicator, | |||
int | count | |||
) |
Send an indicator packet.
s | The T.38 context. | |
indicator | The indicator to send. | |
count | The number of copies of the packet to send. |
const char* t38_data_type | ( | int | data_type | ) |
Convert the code for a type of data to a short text name.
data_type | 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.
field_type | The field type. |
const char* t38_indicator | ( | int | indicator | ) |
Convert the code for an indicator to a short text name.
indicator | The type of 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.
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.
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.
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.
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.
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.
s | The T.38 context. | |
t38_version | Version number, as in the T.38 spec. |