# T38UDP endpoint parameter structure

When the endpoint type is MSP_ENDPOINT_T38FDX, the application provides the following parameters:

typedef struct tag_T38UDP_ENDPOINT_PARMS
{
DWORD size;
BYTE TypeOfService;
msp_T38UDPTLDEC_CONFIG UdptlDecodeParms;
msp_T38UDPTLENC_CONFIG UdptlEncodeParms;
msp_T38IFPDEC_CONFIG IfpDecodeParms;
msp_T38IFPENC_CONFIG IfpEncodeParms;
} T38UDP_ENDPOINT_PARMS;

This topic discusses the following substructures:

- T38UDP endpoint IFP decoder substructure

- T38UDP endpoint IFP encoder substructure

- T38UDP endpoint UDPTL decoder substructure

- T38UDP endpoint UDPTL encoder substructure

## T38UDP_ENDPOINT_PARMS

#### Dependent function: mspCreateEndpoint

Field | Type | Default | Units | Description
size | DWORD | N/A | N/A | Size of the parameter structure.
typeofservice | Byte | N/A | N/A | IPv4 type of service field in IP header.
msp_T38UDPTLDEC_CONFIG | Structure | N/A | N/A | Structure specifying parameters for UDPTL decoder functionality.
msp_T38UDPTLENC_CONFIG | Structure | N/A | N/A | Structure specifying parameters for UDPTL encoder functionality.
msp_T38IFPDEC_CONFIG | Structure | N/A | N/A | Structure specifying parameters for IFP decoder functionality.
msp_T38IFPENC_CONFIG | Structure | N/A | N/A | Structure specifying parameters for IFP encoder functionality.

## T38UDP endpoint IFP decoder substructure

Applications specify T.38 fax IFP decoder functionality with the following parameters:

typedef struct tag_msp_T38IFPDEC_CONFIG
{
DWORD queue_size;
DWORD buffering_time;
DWORD page_data_keep_alive_time;
} msp_T38IFPDEC_CONFIG;

## msp_T38IFPDEC_CONFIG

#### Dependent function: mspCreateEndpoint

Field name | Type | Default | Units | Description
queue_size | DWORD | 20 | IFP packets | Size (in number of IFP packets) of the reorder queue used for storing and reordering incoming packets and performing error recovery. Defined values include: T38IFPDEC_QUEUE_SIZE_DEFAULT (20 packets) T38IFPDEC_QUEUE_SIZE_MIN (10 packets) T38IFPDEC_QUEUE_SIZE_MAX (100 packets)
buffering_time | DWORD | 200 | ms. | Changes the buffering time that elapses before sending data to a T.38 fax modulator/demodulator filter, in order to pre- fill the reordering queue. Time is specified in milliseconds and should be in multiples of 10. Defined values include: T38IFPDEC_BUFFERING_TIME_DEFAULT (200 ms) T38IFPDEC_BUFFERING_TIME_MIN (0 ms) T38IFPDEC_BUFFERING_TIME_MAX (1500 ms)
page_data_keep_alive_time | DWORD | 0 | ms. | Sets the amount of time to keep a fax session in the page transmission phase of a fax call in the absence of data from the packet network (that is, absence of data in the IFP reorder queue). Defined values include: T38IFPDEC_PAGE_DATA_KEEP_ALIVE_TIME_DEFAULT (0 ms) T38IFPDEC_PAGE_DATA_KEEP_ALIVE_TIME_MIN (0 ms) T38IFPDEC_PAGE_DATA_KEEP_ALIVE_TIME_MAX (4000 ms)

## T38UDP endpoint IFP encoder substructure

Applications specify T.38 fax IFP decoder functionality in the following parameters:

typedef struct tag_msp_T38IFPENC_CONFIG
{
DWORD v21_bytes_per_ifp_packet;
DWORD page_modem_ifp_duration;
DWORD t30_indicator_send_count;
DWORD t30_indicator_send_period;
} msp_T38IFPENC_CONFIG;

## msp_T38IFPENC_CONFIG

#### Dependent function: mspCreateEndpoint

Field name | Type | Default | Units | Description
v21_bytes_per_ifp_packet | DWORD | 1 | Number of V21 bytes | Number of V.21 bytes per T.38 IFP packet. Range is 1-128. Defined values include: T38IFPENC_V21_BYTES_PER_PACKET_DEFAULT (1 byte) T38IFPENC_V21_BYTES_PER_PACKET_MIN (1 byte) T38IFPENC_V21_BYTES_PER_PACKET_MAX (128 bytes)
page_modem_ifp_duration | DWORD | 30 | ms. | Number of 10 ms. page modem frames per IFP packet. Range is 10 - 100. Values must be specified in 10 ms increments. Defined values include: T38IFPENC_PAGE_MODEM_IFP_DURATION_DEFAULT (30 ms) T38IFPENC_PAGE_MODEM_IFP_DURATION_MIN (10 ms) T38IFPENC_PAGE_MODEM_IFP_DURATION_MAX (100 ms)
t30_indicator_send_count | DWORD | 3 | packets | Number of T.38 indicator packets to transmit to the network. Range is 1 - 65000. Defined values include: T38IFPENC_T30_INDICATOR_SEND_COUNT_DEFAULT (3 packets) T38IFPENC_T30_INDICATOR_SEND_COUNT_MIN (1 packet) T38IFPENC_T30_INDICATOR_SEND_COUNT_MAX (65000 packets)
t30_indicator_send_period | DWORD | 10 | ms. | Specifies the interval between T.38 indicators transmitted to the network. Must be specified in 10 ms. increments. Defined values include: T38IFPENC_T30_INDICATOR_SEND_PERIOD_DEFAULT (10 ms) T38IFPENC_T30_INDICATOR_SEND_PERIOD_MIN (10 ms) T38IFPENC_T30_INDICATOR_SEND_PERIOD_MAX (1000 ms)

## T38UDP endpoint UDPTL decoder substructure

Applications specify T.38 fax IFP decoder functionality in the following parameter:

typedef struct tag_msp_T38UDPTLDEC_CONFIG
{
DWORD enable_error_recovery;
} msp_T38UDPTLDEC_CONFIG;

## msp_T38UDPTLDEC_CONFIG

#### Dependent function: mspCreateEndpoint

Field name | Type | Default | Units | Description
enable_error_recovery | Boolean | 1 | N/A | Enables or disables T.38 fax error decoding and recovery. Allowed values include 1 (enabled) and 0 (disabled).

## T38UDP endpoint UDPTL encoder substructure

Applications specify T.38 fax IFP encoder functionality in the following parameters:

typedef struct tag_msp_T38UDPTLENC_CONFIG
{
DWORD error_protection_scheme;
union
{
T38UDPTL_REDUNDANCY_CFG redundancy;
T38UDPTL_PARITY_FEC_CFG parity_fec; /NOT SUPPORTED/
} eps;
DWORD num_duplicate_v21_udptl_packets;
DWORD num_duplicate_indicator_udptl_packets;
DWORD num_duplicate_page_modem_udptl_packets;
} msp_T38UDPTLENC_CONFIG;

## msp_T38UDPTLENC_CONFIG

#### Dependent function: mspCreateEndpoint

Field name | Type | Default | Units | Description
error_protection_scheme | DWORD | Redundancy error protection scheme | N/A | Specifies the Error protection scheme used by the filter. Defined values include: T38UDPTL_EPS_DEFAULT Redundancy error protection scheme. If the application want to enable redundancy error protection, it provides the a T38UDPTL_EPS_REDUNDANCY structure which a single parameter: redundant_ifp_packets Defined values for this parameter include: T38UDPTLENC_REDUNDANT _IFPS_DEFAULT (3 IFP packets per UDPTL) T38UDPTLENC_REDUNDANT_IFPS_MIN (0 IFP packets per UDPTL) T38UDPTLENC_REDUNDANT_IFPS_DEFAULT (4 IFP packets per UDPTL)
num_duplicate_v21_udptl_packets | DWORD | 0 | packets | Number of duplicate V.21 UDPTL packets to transmit. Defined values include: T38UDPTLENC_PACKET_DUPLICATION _V21_DEFAULT (0 packets) T38UDPTLENC_PACKET_DUPLICATION _V21_MIN (0 packets) T38UDPTLENC_PACKET_DUPLICATION _V21_MAX (5 packets)
num_duplicate_indicator _udptl_packets | DWORD | 0 | packets | Number of duplicate indicator UDPTL packets to transmit. Defined values include: T38UDPTLENC_PACKET_DUPLICATION _INDICATOR_DEFAULT (0 packets) T38UDPTLENC_PACKET_DUPLICATION _INDICATOR_MIN (0 packets) T38UDPTLENC_PACKET_DUPLICATION _INDICATOR_MAX (5 packets)
num_duplicate_page_modem _udptl_packets | DWORD | 0 | packets | Number of duplicate page modem UDPTL packets to transmit. Defined values include: T38UDPTLENC_PACKET_DUPLICATION _PAGE_MODEM_DEFAULT (0 packets) T38UDPTLENC_PACKET_DUPLICATION _PAGE_MODEM_MIN (0 packets) T38UDPTLENC_PACKET_DUPLICATION _PAGE_MODEM_MAX (5 packets)