Lastest aasterisk, latest libss7, latest chan_ss7

Hello,

My intention is to build a kind of gateway from ss7 to sip and viceversa, using a te110p digium
in processor amd athlon 64 bit 3800+ and 1Gb ram, OS Centos 7 64bit, custom kernel linux-3.17.4, and latest dahdi-linux-complete-2.10.0.1+2.10.0.1
I would like to build latest libss7, chan_ss7 and asterisk, in order to switch between libss7 and chan_ss7 for best results.

The problems the incompatible between versions.

latest chan_ss7(2.3.11) also, works with asterisk11, does not work with asterisk 13
latest libss7(2.0.0), does not work in asterisk11, works in asterisk 13
in order to use latest softwares together, I need to realize the build of chan_ss7.
After I edit its makefile to point to asterisk folder, I have the following errors from make:


[root@dhcppc5 chan_ss7-2.3.11]# make
gcc -I…/source/telephony/dahdi/include -I…/…/asterisk13/include -g -pipe -Wall -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -D_REENTRANT -D_GNU_SOURCE -DPIC -fpic -finline-functions -DCHAN_SS7_VERSION=“2.3.11” -c -o l4isup.o l4isup.c
l4isup.c:256:3: warning: initialization from incompatible pointer type [enabled by default]
.requester = ss7_requester,
^
l4isup.c:256:3: warning: (near initialization for ‘ss7_tech.requester’) [enabled by default]
l4isup.c: In function ‘ss7_new’:
l4isup.c:955:21: error: storage size of ‘format’ isn’t known
struct ast_format format;
^
l4isup.c:968:3: error: incompatible type for argument 10 of ‘__ast_channel_alloc’
chan = ast_channel_alloc(1, state, cid_num, NULL, NULL, exten, pvt->context, NULL, 0, “%s/%s/%d”, type, pvt->link->linkset->name, pvt->cic);
^
In file included from l4isup.c:46:0:
…/…/asterisk13/include/asterisk/channel.h:1161:2: note: expected ‘enum ama_flags’ but argument is of type ‘char *’
__ast_channel_alloc(int needqueue, int state, const char *cid_num,
^
l4isup.c:992:5: warning: implicit declaration of function ‘ast_format_set’ [-Wimplicit-function-declaration]
ast_format_set(&format, AST_FORMAT_ULAW, 0);
^
l4isup.c:992:29: error: ‘AST_FORMAT_ULAW’ undeclared (first use in this function)
ast_format_set(&format, AST_FORMAT_ULAW, 0);
^
l4isup.c:992:29: note: each undeclared identifier is reported only once for each function it appears in
l4isup.c:994:29: error: ‘AST_FORMAT_ALAW’ undeclared (first use in this function)
ast_format_set(&format, AST_FORMAT_ALAW, 0);
^
l4isup.c:996:3: warning: implicit declaration of function ‘ast_format_cap_add’ [-Wimplicit-function-declaration]
ast_format_cap_add(ast_channel_nativeformats(chan), &format);
^
l4isup.c:997:3: warning: implicit declaration of function ‘ast_format_copy’ [-Wimplicit-function-declaration]
ast_format_copy(ast_channel_rawreadformat(chan), &format);
^
l4isup.c:955:21: warning: unused variable ‘format’ [-Wunused-variable]
struct ast_format format;
^
l4isup.c: In function ‘ss7_requester’:
l4isup.c:1081:3: warning: implicit declaration of function ‘ast_getformatname_multiple’ [-Wimplicit-function-declaration]
ast_log(LOG_DEBUG, “SS7 request (%s/%s) format %s.\n”, type, arg, ast_getformatname_multiple(tmp, sizeof(tmp),cap));
^
l4isup.c:1081:3: warning: format ‘%s’ expects argument of type ‘char *’, but argument 8 has type ‘int’ [-Wformat=]
l4isup.c:1083:39: error: ‘AST_FORMAT_TYPE_AUDIO’ undeclared (first use in this function)
if (!((ast_format_cap_has_type(cap, AST_FORMAT_TYPE_AUDIO)) & (AST_FORMAT_ALAW | AST_FORMAT_ULAW))) {
^
l4isup.c:1083:66: error: ‘AST_FORMAT_ALAW’ undeclared (first use in this function)
if (!((ast_format_cap_has_type(cap, AST_FORMAT_TYPE_AUDIO)) & (AST_FORMAT_ALAW | AST_FORMAT_ULAW))) {
^
l4isup.c:1083:84: error: ‘AST_FORMAT_ULAW’ undeclared (first use in this function)
if (!((ast_format_cap_has_type(cap, AST_FORMAT_TYPE_AUDIO)) & (AST_FORMAT_ALAW | AST_FORMAT_ULAW))) {
^
l4isup.c:1084:5: warning: format ‘%s’ expects argument of type ‘char *’, but argument 6 has type ‘int’ [-Wformat=]
ast_log(LOG_NOTICE, “Audio format 0x%s not supported by SS7 channel.\n”, ast_getformatname_multiple(tmp, sizeof(tmp),cap));
^
l4isup.c: In function ‘ss7_read’:
l4isup.c:2757:49: error: ‘AST_FORMAT_ULAW’ undeclared (first use in this function)
ast_format_set(&pvt->frame.subclass.format, AST_FORMAT_ULAW, 0);
^
l4isup.c:2759:49: error: ‘AST_FORMAT_ALAW’ undeclared (first use in this function)
ast_format_set(&pvt->frame.subclass.format, AST_FORMAT_ALAW, 0);
^
l4isup.c: In function ‘ss7_write’:
l4isup.c:2872:71: error: request for member ‘id’ in something not a structure or union
if((frame->frametype != AST_FRAME_VOICE) || ((frame->subclass.format.id != AST_FORMAT_ALAW) && (frame->subclass.format.id != AST_FORMAT_ULAW))) {
^
l4isup.c:2872:78: error: ‘AST_FORMAT_ALAW’ undeclared (first use in this function)
if((frame->frametype != AST_FRAME_VOICE) || ((frame->subclass.format.id != AST_FORMAT_ALAW) && (frame->subclass.format.id != AST_FORMAT_ULAW))) {
^
l4isup.c:2872:121: error: request for member ‘id’ in something not a structure or union
if((frame->frametype != AST_FRAME_VOICE) || ((frame->subclass.format.id != AST_FORMAT_ALAW) && (frame->subclass.format.id != AST_FORMAT_ULAW))) {
^
l4isup.c:2872:128: error: ‘AST_FORMAT_ULAW’ undeclared (first use in this function)
if((frame->frametype != AST_FRAME_VOICE) || ((frame->subclass.format.id != AST_FORMAT_ALAW) && (frame->subclass.format.id != AST_FORMAT_ULAW))) {
^
l4isup.c: In function ‘init_pvt’:
l4isup.c:5047:49: error: ‘AST_FORMAT_ULAW’ undeclared (first use in this function)
ast_format_set(&pvt->frame.subclass.format, AST_FORMAT_ULAW,0);
^
l4isup.c:5051:49: error: ‘AST_FORMAT_ALAW’ undeclared (first use in this function)
ast_format_set(&pvt->frame.subclass.format, AST_FORMAT_ALAW,0);
^
l4isup.c: In function ‘isup_init’:
l4isup.c:5279:21: error: storage size of ‘tmpfmt’ isn’t known
struct ast_format tmpfmt;
^
In file included from …/…/asterisk13/include/asterisk/data.h:29:0,
from …/…/asterisk13/include/asterisk/channel.h:176,
from l4isup.c:46:
…/…/asterisk13/include/asterisk/format_cap.h:59:31: error: expected expression before ‘)’ token
__ast_format_cap_alloc((flags))
^
l4isup.c:5381:33: note: in expansion of macro ‘ast_format_cap_alloc’
if (!(ss7_tech.capabilities = ast_format_cap_alloc())) {
^
l4isup.c:5384:69: error: ‘AST_FORMAT_ALAW’ undeclared (first use in this function)
ast_format_cap_add(ss7_tech.capabilities, ast_format_set(&tmpfmt, AST_FORMAT_ALAW, 0));
^
l4isup.c:5385:69: error: ‘AST_FORMAT_ULAW’ undeclared (first use in this function)
ast_format_cap_add(ss7_tech.capabilities, ast_format_set(&tmpfmt, AST_FORMAT_ULAW, 0));
^
l4isup.c:5391:5: warning: implicit declaration of function ‘ast_format_cap_destroy’ [-Wimplicit-function-declaration]
ast_format_cap_destroy(ss7_tech.capabilities);
^
l4isup.c:5279:21: warning: unused variable ‘tmpfmt’ [-Wunused-variable]
struct ast_format tmpfmt;
^
make: *** [l4isup.o] Error 1

these errors do not occur when edit chan_ss7 makefile to point to asterisk 11.

Can i build the chan_ss7 with asterisk 13, is there any patch for this purpose ?

thanks in advance

Have you spoken with the people responsible for chan_ss7? That’s probably where I’d start:

netfors.com/chan_ss7

They don’t list Asterisk 13 compatibility.

Cheers