Tweaks to formatting and minor steps towards T.38 support in T.31

This commit is contained in:
Steve Underwood 2013-01-10 08:37:58 +08:00
parent 5bba01f5c3
commit 10152cd336
2 changed files with 36 additions and 18 deletions

View File

@ -32,6 +32,7 @@
*/
#include "mod_spandsp.h"
#include "udptl.h"
#include "mod_spandsp_modem.h"
#if defined(MODEM_SUPPORT)
@ -39,6 +40,12 @@
#include <poll.h>
#endif
#define LOCAL_FAX_MAX_DATAGRAM 400
#define MAX_FEC_ENTRIES 4
#define MAX_FEC_SPAN 4
#define DEFAULT_FEC_ENTRIES 3
#define DEFAULT_FEC_SPAN 3
static struct {
int NEXT_ID;
int REF_COUNT;
@ -70,6 +77,10 @@ static struct modem_state MODEM_STATE[] = {
static modem_t *acquire_modem(int index);
static int t38_tx_packet_handler(t38_core_state_t *s, void *user_data, const uint8_t *buf, int len, int count)
{
return 0;
}
static int t31_at_tx_handler(at_state_t *s, void *user_data, const uint8_t *buf, size_t len)
{
@ -337,12 +348,13 @@ switch_status_t modem_init(modem_t *modem, modem_control_handler_t control_handl
modem->threadAbort = CreateEvent(NULL, TRUE, FALSE, NULL);
#endif
if (!(modem->t31_state = t31_init(NULL, t31_at_tx_handler, modem, t31_call_control_handler, modem, NULL, NULL))) {
if (!(modem->t31_state = t31_init(NULL, t31_at_tx_handler, modem, t31_call_control_handler, modem, t38_tx_packet_handler, modem))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Cannot initialize the T.31 modem\n");
modem_close(modem);
status = SWITCH_STATUS_FALSE;
goto end;
}
modem->t38_core = t31_get_t38_core_state(modem->t31_state);
if (spandsp_globals.modem_verbose) {
logging = t31_get_logging_state(modem->t31_state);
@ -360,6 +372,10 @@ switch_status_t modem_init(modem_t *modem, modem_control_handler_t control_handl
logging = v27ter_rx_get_logging_state(&modem->t31_state->audio.modems.fast_modems.v27ter_rx);
span_log_set_message_handler(logging, spanfax_log_message, NULL);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
logging = t38_core_get_logging_state(modem->t38_core);
span_log_set_message_handler(logging, spanfax_log_message, NULL);
span_log_set_level(logging, SPAN_LOG_SHOW_SEVERITY | SPAN_LOG_SHOW_PROTOCOL | SPAN_LOG_FLOW);
}
modem->control_handler = control_handler;
@ -391,6 +407,7 @@ struct private_object {
switch_codec_t read_codec;
switch_codec_t write_codec;
switch_frame_t read_frame;
udptl_state_t udptl_state;
unsigned char databuf[SWITCH_RECOMMENDED_BUFFER_SIZE];
switch_timer_t timer;
modem_t *modem;

View File

@ -120,6 +120,7 @@ typedef enum {
struct modem {
t31_state_t *t31_state;
t38_core_state_t *t38_core;
char digits[512];
modem_flags flags;
#ifndef WIN32