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