<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Verdana
}
--></style>
</head>
<body class='hmmessage'>
hi Sverker,<BR>
<BR>
Most interesting article.<BR>
<BR>
SCCP over M3UA is straight forward, but how would you do ISUP?<BR>
<BR>
What I mean is that ISUP contains reference to CIC's and basically is an instruction to connect a voice channel - but what will you use to actually connect to the voice channel ? Asterisk acting as an AS can be on a different box than the SG, meaning that if you run a proper SG you will need to connect the voice out from that box as well.<BR>
<BR>
Are you using the LGPL M3UA stack?<BR>
<BR>
Jan<BR>
<BR>> From: sverker@abrahamsson.com<BR>> To: asterisk-ss7@lists.digium.com<BR>> Date: Tue, 13 Jul 2010 20:31:22 +0200<BR>> Subject: [asterisk-ss7] SIGTRAN GW based on libss7<BR>> <BR>> Hello everybody,<BR>> Since a while back I've been working on a SIGTRAN signaling gateway which<BR>> use libss7 for MTP2 and MTP3 layers and currently support M3UA on the IP<BR>> side, it needs some more work as still many things are hardcoded for the<BR>> specific application but it is being used in production currently. I'm using<BR>> E1 card from Sangoma with wanpipe 3.5.11.4 and dahdi 2.3.0.<BR>> <BR>> To do that I've modified libss7 1.0.2 to allow SCCP packages to be passed<BR>> from libss7 to the gateway app, as I'm currently using only that protocol.<BR>> I'm now looking into cleaning up the code and making it general purpose, and<BR>> I'm also facing an issue. Some questions and remarks:<BR>> <BR>> * libss7 contains implementations for MTP2, MTP3 and ISUP. I'd be interested<BR>> to support ISUP over the SIGTRAN as well. One way to solve that is that the<BR>> lib has a call where the application can register which protocols it's<BR>> interested of, i.e. ISUP in that case will be passed on to gw application<BR>> instead of handled by internal implementation<BR>> <BR>> * in file NEWS-05-30-2008 it is mentioned that part of MTP2 processing has<BR>> been moved to kernel space with a new channel driver in zaptel. Does that<BR>> work with dahdi as well and is there any configuration needed to enable it?<BR>> I saw an issue on sending mtp2 packets, they were queued in user space but<BR>> the poll in ss7linktest (that I based my app on) never got enabled for<BR>> write. I did a quick fix in mtp3_transmit that after calling mtp2_msu then<BR>> ss7_write is called.<BR>> <BR>> * as I understand the trunk is not the most up to date but there are<BR>> development in other branches. Should I port my changes to trunk or to some<BR>> other branch?<BR>> <BR>> * In trunk there has been some api changes so that ss7linktest doesn't<BR>> compile. I did changes to make it compile but I might have misunderstood<BR>> something as it didn't work to run it, the link didn't come up. Is there any<BR>> API docs or working example code to use with trunk (or recommended branch)?<BR>> How about merging the branches and make a 2.0 release?<BR>> <BR>> * I'm currently facing an issue with memory corruption, I get the following<BR>> from valgrind:<BR>> <BR>> ==3591== 4999998 errors in context 2 of 8:<BR>> ==3591== Thread 3:<BR>> ==3591== Invalid free() / delete / delete[]<BR>> ==3591== at 0x400551D: free (vg_replace_malloc.c:325)<BR>> ==3591== by 0xC53E2F: mtp2_receive (mtp2.c:403)<BR>> ==3591== by 0xC5460B: ss7_read (ss7.c:365)<BR>> ==3591== by 0x80493B6: ss7_run (sgw.c:114)<BR>> ==3591== by 0xC83831: start_thread (in /lib/libpthread-2.5.so)<BR>> ==3591== by 0xBC3E0D: clone (in /lib/libc-2.5.so)<BR>> ==3591== Address 0x40c9958 is 0 bytes inside a block of size 520 free'd<BR>> ==3591== at 0x400551D: free (vg_replace_malloc.c:325)<BR>> ==3591== by 0xC53E2F: mtp2_receive (mtp2.c:403)<BR>> ==3591== by 0xC5460B: ss7_read (ss7.c:365)<BR>> ==3591== by 0x80493B6: ss7_run (sgw.c:114)<BR>> ==3591== by 0xC83831: start_thread (in /lib/libpthread-2.5.so)<BR>> ==3591== by 0xBC3E0D: clone (in /lib/libc-2.5.so)<BR>> ==3591==<BR>> ==3591==<BR>> ==3591== 4999998 errors in context 3 of 8:<BR>> ==3591== Invalid read of size 4<BR>> ==3591== at 0xC53E22: mtp2_receive (mtp2.c:402)<BR>> ==3591== by 0xC5460B: ss7_read (ss7.c:365)<BR>> ==3591== by 0x80493B6: ss7_run (sgw.c:114)<BR>> ==3591== by 0xC83831: start_thread (in /lib/libpthread-2.5.so)<BR>> ==3591== by 0xBC3E0D: clone (in /lib/libc-2.5.so)<BR>> ==3591== Address 0x40c9b5c is 516 bytes inside a block of size 520 free'd<BR>> ==3591== at 0x400551D: free (vg_replace_malloc.c:325)<BR>> ==3591== by 0xC53E2F: mtp2_receive (mtp2.c:403)<BR>> ==3591== by 0xC5460B: ss7_read (ss7.c:365)<BR>> ==3591== by 0x80493B6: ss7_run (sgw.c:114)<BR>> ==3591== by 0xC83831: start_thread (in /lib/libpthread-2.5.so)<BR>> ==3591== by 0xBC3E0D: clone (in /lib/libc-2.5.so)<BR>> <BR>> Is this something that has already been addressed in trunk/dev branch? It<BR>> had worked fine for a couple of weeks and then suddenly started to happen<BR>> quite frequently under load.<BR>> <BR>> * The plan for the signaling gateway is to support M3UA, M2UA and M2PA as<BR>> well as the Dialogic gct api. Naturally it will have to be released under<BR>> GPL since libss7 is.<BR>> <BR>> Best regards<BR>> Sverker<BR>> <BR>> <BR>> -- <BR>> _____________________________________________________________________<BR>> -- Bandwidth and Colocation Provided by http://www.api-digital.com --<BR>> <BR>> asterisk-ss7 mailing list<BR>> To UNSUBSCRIBE or update options visit:<BR>> http://lists.digium.com/mailman/listinfo/asterisk-ss7<BR>                                            <br /><hr />Your E-mail and More On-the-Go. Get Windows Live Hotmail Free. <a href='https://signup.live.com/signup.aspx?id=60969' target='_new'>Sign up now.</a></body>
</html>