freeswitch icon indicating copy to clipboard operation
freeswitch copied to clipboard

freeswitch spandsp compilation error

Open ROBERT-MCDOWELL opened this issue 1 year ago • 11 comments

Describe the bug make .... make[4]: Entering directory '/home/src/freeswitch/src/mod/applications/mod_spandsp' CC mod_spandsp_la-mod_spandsp.lo CC mod_spandsp_la-udptl.lo CC mod_spandsp_la-mod_spandsp_fax.lo CC mod_spandsp_la-mod_spandsp_dsp.lo mod_spandsp_dsp.c: In function 'get_v18_mode': mod_spandsp_dsp.c:159:17: error: 'V18_MODE_5BIT_4545' undeclared (first use in this function) 159 | int r = V18_MODE_5BIT_4545; | ^~~~~~~~~~~~~~~~~~ mod_spandsp_dsp.c:159:17: note: each undeclared identifier is reported only once for each function it appears in mod_spandsp_dsp.c:165:29: error: 'V18_MODE_5BIT_50' undeclared (first use in this function) 165 | r = V18_MODE_5BIT_50; | ^~~~~~~~~~~~~~~~ mod_spandsp_dsp.c: In function 'spandsp_tdd_send_session': mod_spandsp_dsp.c:216:21: error: too few arguments to function 'v18_init' 216 | tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL); | ^~~~~~~~ In file included from /usr/local/include/spandsp.h:111, from mod_spandsp.h:50, from mod_spandsp_dsp.c:36: /usr/local/include/spandsp/v18.h:138:29: note: declared here 138 | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s, | ^~~~~~~~ mod_spandsp_dsp.c: In function 'spandsp_tdd_encode_session': mod_spandsp_dsp.c:263:26: error: too few arguments to function 'v18_init' 263 | pvt->tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL); | ^~~~~~~~ /usr/local/include/spandsp/v18.h:138:29: note: declared here 138 | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s, | ^~~~~~~~ mod_spandsp_dsp.c: In function 'spandsp_tdd_decode_session': mod_spandsp_dsp.c:341:26: error: too few arguments to function 'v18_init' 341 | pvt->tdd_state = v18_init(NULL, FALSE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, pvt); | ^~~~~~~~ /usr/local/include/spandsp/v18.h:138:29: note: declared here 138 | SPAN_DECLARE(v18_state_t *) v18_init(v18_state_t *s, ....

Package version or git hash

  • Version last git

ROBERT-MCDOWELL avatar Jul 12 '23 21:07 ROBERT-MCDOWELL

This also present in 1.10.9, as a temporary solution used the following (hope not mistaken with additional args in v18_init())

--- mod_spandsp_dsp.c   2023-02-03 20:07:30.000000000 +0000
+++ mod_spandsp_dsp.c.fixes     2023-07-13 08:47:35.332074299 +0000
@@ -156,13 +156,13 @@
 {
        switch_channel_t *channel = switch_core_session_get_channel(session);
        const char *var;
-       int r = V18_MODE_5BIT_4545;
+       int r = V18_MODE_WEITBRECHT_5BIT_4545;

        if ((var = switch_channel_get_variable(channel, "v18_mode"))) {
                if (!strcasecmp(var, "5BIT_45") || !strcasecmp(var, "baudot")) {
-                       r = V18_MODE_5BIT_4545;
+                       r = V18_MODE_WEITBRECHT_5BIT_4545;
                } else if (!strcasecmp(var, "5BIT_50")) {
-                       r = V18_MODE_5BIT_50;
+                       r = V18_MODE_WEITBRECHT_5BIT_4545;
                } else if (!strcasecmp(var, "DTMF")) {
                        r = V18_MODE_DTMF;
                } else if (!strcasecmp(var, "EDT")) {
@@ -213,7 +213,7 @@
                return SWITCH_STATUS_FALSE;
        }

-       tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
+       tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL, NULL, NULL);


        v18_put(tdd_state, text, -1);
@@ -260,7 +260,7 @@
        }

        pvt->session = session;
-       pvt->tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL);
+       pvt->tdd_state = v18_init(NULL, TRUE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, NULL, NULL, NULL);
        pvt->head_lead = TDD_LEAD;

        v18_put(pvt->tdd_state, text, -1);
@@ -338,7 +338,7 @@
        }

        pvt->session = session;
-       pvt->tdd_state = v18_init(NULL, FALSE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, pvt);
+       pvt->tdd_state = v18_init(NULL, FALSE, get_v18_mode(session), V18_AUTOMODING_GLOBAL, put_text_msg, pvt, NULL, NULL);

        if ((status = switch_core_media_bug_add(session, "spandsp_tdd_decode", NULL,
                                                tdd_decode_callback, pvt, 0, SMBF_READ_REPLACE | SMBF_NO_PAUSE, &bug)) != SWITCH_STATUS_SUCCESS) {

akscf avatar Jul 13 '23 09:07 akscf

works! many thanks!

ROBERT-MCDOWELL avatar Jul 13 '23 20:07 ROBERT-MCDOWELL

you are welcome

akscf avatar Jul 14 '23 07:07 akscf

This commit broke compatibllity between libspandsp and mod_spandsp. mod_spandsp must be updated to use new defines introduced in that commit. As a workaround reset spandsp to something preceding that commit, e.g.: git reset --hard 67d2455efe02e7ff0d897f3fd5636fed4d54549e Reconfigure, compile, reinstall spandsp.

piotrgregor avatar Jul 16 '23 15:07 piotrgregor

https://github.com/signalwire/freeswitch/issues/2184

seven1240 avatar Jul 29 '23 07:07 seven1240

@piotrgregor solution works nicely. It was a headache to debug this, thank you.

nadirhamid avatar Aug 20 '23 21:08 nadirhamid

This commit broke compatibllity between libspandsp and mod_spandsp. mod_spandsp must be updated to use new defines introduced in that commit. As a workaround reset spandsp to something preceding that commit, e.g.: git reset --hard 67d2455efe02e7ff0d897f3fd5636fed4d54549e Reconfigure, compile, reinstall spandsp.

thanks dear it's worked

ikrammuzamil avatar Oct 17 '23 01:10 ikrammuzamil

This commit broke compatibllity between libspandsp and mod_spandsp. mod_spandsp must be updated to use new defines introduced in that commit. As a workaround reset spandsp to something preceding that commit, e.g.: git reset --hard 67d2455efe02e7ff0d897f3fd5636fed4d54549e Reconfigure, compile, reinstall spandsp.

Thanks so much. It works on my lab.

Forcheny avatar Apr 29 '24 07:04 Forcheny

Hi, wonder if there is a fix coming for this issue. I've got same issue on Debian Bookworm, and had to follow the above "git reset" workaround to make it work. Thanks.

nttranbao avatar May 13 '24 20:05 nttranbao