This should fix the FAX crashes when negotiation falls back to slower modems
This commit is contained in:
parent
9edbbd9c61
commit
d5a7495a72
|
@ -256,8 +256,7 @@ static void fax_set_rx_type(void *user_data, int type, int bit_rate, int short_t
|
||||||
return;
|
return;
|
||||||
t->current_rx_type = type;
|
t->current_rx_type = type;
|
||||||
t->rx_bit_rate = bit_rate;
|
t->rx_bit_rate = bit_rate;
|
||||||
if (use_hdlc)
|
hdlc_rx_init(&t->hdlc_rx, false, true, HDLC_FRAMING_OK_THRESHOLD, fax_modems_hdlc_accept, t);
|
||||||
hdlc_rx_init(&t->hdlc_rx, false, true, HDLC_FRAMING_OK_THRESHOLD, t30_hdlc_accept, &s->t30);
|
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
|
|
|
@ -151,7 +151,8 @@ SPAN_DECLARE(const char *) fax_modem_to_str(int modem)
|
||||||
}
|
}
|
||||||
/*- End of function --------------------------------------------------------*/
|
/*- End of function --------------------------------------------------------*/
|
||||||
|
|
||||||
static void fax_modems_hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok)
|
//static void fax_modems_hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok)
|
||||||
|
SPAN_DECLARE(void) fax_modems_hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok)
|
||||||
{
|
{
|
||||||
fax_modems_state_t *s;
|
fax_modems_state_t *s;
|
||||||
|
|
||||||
|
@ -427,9 +428,13 @@ SPAN_DECLARE(void) fax_modems_start_fast_modem(fax_modems_state_t *s, int which,
|
||||||
#if defined(SPANDSP_SUPPORT_V34)
|
#if defined(SPANDSP_SUPPORT_V34)
|
||||||
case FAX_MODEM_V34_RX:
|
case FAX_MODEM_V34_RX:
|
||||||
v34_init(&s->fast_modems.v34, 2400, s->bit_rate, true, false, NULL, NULL, put_bit, put_bit_user_data);
|
v34_init(&s->fast_modems.v34, 2400, s->bit_rate, true, false, NULL, NULL, put_bit, put_bit_user_data);
|
||||||
|
//fax_modems_set_tx_handler(s, (span_tx_handler_t) &v34_rx, &s->fast_modems.v34_rx);
|
||||||
|
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||||
break;
|
break;
|
||||||
case FAX_MODEM_V34_TX:
|
case FAX_MODEM_V34_TX:
|
||||||
v34_init(&s->fast_modems.v34, 2400, s->bit_rate, true, false, get_bit, get_bit_user_data, NULL, NULL);
|
v34_init(&s->fast_modems.v34, 2400, s->bit_rate, true, false, get_bit, get_bit_user_data, NULL, NULL);
|
||||||
|
//fax_modems_set_tx_handler(s, (span_tx_handler_t) &v34_tx, &s->fast_modems.v34_tx);
|
||||||
|
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||||
break;
|
break;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -476,6 +481,18 @@ SPAN_DECLARE(void) fax_modems_start_fast_modem(fax_modems_state_t *s, int which,
|
||||||
fax_modems_set_tx_handler(s, (span_tx_handler_t) &v17_tx, &s->fast_modems.v17_tx);
|
fax_modems_set_tx_handler(s, (span_tx_handler_t) &v17_tx, &s->fast_modems.v17_tx);
|
||||||
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||||
break;
|
break;
|
||||||
|
#if defined(SPANDSP_SUPPORT_V34)
|
||||||
|
case FAX_MODEM_V34_RX:
|
||||||
|
v34_restart(&s->fast_modems.v34, 2400, s->bit_rate, false);
|
||||||
|
//fax_modems_set_tx_handler(s, (span_tx_handler_t) &v34_rx, &s->fast_modems.v34_rx);
|
||||||
|
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||||
|
break;
|
||||||
|
case FAX_MODEM_V34_TX:
|
||||||
|
v34_restart(&s->fast_modems.v34, 2400, s->bit_rate, false);
|
||||||
|
//fax_modems_set_tx_handler(s, (span_tx_handler_t) &v34_tx, &s->fast_modems.v34_tx);
|
||||||
|
fax_modems_set_next_tx_handler(s, (span_tx_handler_t) NULL, NULL);
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
/*endswitch*/
|
/*endswitch*/
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,6 +59,8 @@ extern "C"
|
||||||
{
|
{
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
SPAN_DECLARE(void) fax_modems_hdlc_accept(void *user_data, const uint8_t *msg, int len, int ok);
|
||||||
|
|
||||||
/*! Convert a FAX modem type to a short text description.
|
/*! Convert a FAX modem type to a short text description.
|
||||||
\brief Convert a FAX modem type to a short text description.
|
\brief Convert a FAX modem type to a short text description.
|
||||||
\param modem The modem code.
|
\param modem The modem code.
|
||||||
|
|
|
@ -75,6 +75,10 @@
|
||||||
#include "spandsp/v27ter_rx.h"
|
#include "spandsp/v27ter_rx.h"
|
||||||
#include "spandsp/v17tx.h"
|
#include "spandsp/v17tx.h"
|
||||||
#include "spandsp/v17rx.h"
|
#include "spandsp/v17rx.h"
|
||||||
|
#if defined(SPANDSP_SUPPORT_V34)
|
||||||
|
#include "spandsp/bitstream.h"
|
||||||
|
#include "spandsp/v34.h"
|
||||||
|
#endif
|
||||||
#include "spandsp/super_tone_rx.h"
|
#include "spandsp/super_tone_rx.h"
|
||||||
#include "spandsp/modem_connect_tones.h"
|
#include "spandsp/modem_connect_tones.h"
|
||||||
#include "spandsp/timezone.h"
|
#include "spandsp/timezone.h"
|
||||||
|
@ -100,6 +104,10 @@
|
||||||
#include "spandsp/private/silence_gen.h"
|
#include "spandsp/private/silence_gen.h"
|
||||||
#include "spandsp/private/power_meter.h"
|
#include "spandsp/private/power_meter.h"
|
||||||
#include "spandsp/private/fsk.h"
|
#include "spandsp/private/fsk.h"
|
||||||
|
#if defined(SPANDSP_SUPPORT_V34)
|
||||||
|
#include "spandsp/private/bitstream.h"
|
||||||
|
#include "spandsp/private/v34.h"
|
||||||
|
#endif
|
||||||
#include "spandsp/private/v17tx.h"
|
#include "spandsp/private/v17tx.h"
|
||||||
#include "spandsp/private/v17rx.h"
|
#include "spandsp/private/v17rx.h"
|
||||||
#include "spandsp/private/v27ter_tx.h"
|
#include "spandsp/private/v27ter_tx.h"
|
||||||
|
|
Loading…
Reference in New Issue