Hi Holger, Kindly find the Attachment for SCCP Patch.
On Tue, Oct 26, 2010 at 12:12 PM, Holger Hans Peter Freyther < hol...@freyther.de> wrote: > On 10/26/2010 11:10 AM, tejas oza wrote: > > Hi Holger, > > > > We found the below code in bsc_msc_ip.c > > > > static int msc_sccp_accept(struct sccp_connection *connection, void > *data) > > { > > LOGP(DMSC, LOGL_DEBUG, "Rejecting incoming SCCP connection.\n"); > > return -1; > > } > > > > So, Does the Open BSC accepts the SCCP connection request from MSC ? > > As you have found in the code. the BSC does not accept connections from the > MSC. The reason is that I have not found anything in GSM08.08 that > indicates > that the MSC will open a connection. Am I wrong with that? Or is your new > MSC > trying to open a connection? > > i hope this helps > z. > > > > > PS: According to my understanding of the netiqutte you would have to create > a > new top level post for that. > PPS: Do you have a time plan on contributing the POI fixlet? > > -- Thanks & Regards Tejas Oza
diff --git a/src/sccp.c b/src/sccp.c index 9a988de..0c4019c 100644 --- a/src/sccp.c +++ b/src/sccp.c @@ -488,6 +488,7 @@ static void create_sccp_addr(struct msgb *msg, const struct sockaddr_sccp *sock) data = msgb_put(msg, 1 + 2 + sock->gti_len); data[0] = 2; + if(sock->use_poi) data[0] += 2; if (sock->gti) data[1] = 0 << 6 | (sock->gti_ind & 0x0f) << 2; @@ -506,7 +507,8 @@ static void create_sccp_addr(struct msgb *msg, const struct sockaddr_sccp *sock) data[pos++] = sock->sccp_ssn; /* copy the gti if it is present */ - memcpy(&data[pos++], sock->gti, sock->gti_len); + if(sock->gti) + memcpy(&data[pos++], sock->gti, sock->gti_len); } /* @@ -535,7 +537,10 @@ struct msgb *sccp_create_udt(int class, const struct sockaddr_sccp *in, udt->proto_class = class; udt->variable_called = 3; udt->variable_calling = 5 + out->gti_len; + if(out->use_poi) udt->variable_calling += 2; udt->variable_data = 7 + out->gti_len + in->gti_len; + if(in->use_poi) udt->variable_data += 2; + if(out->use_poi) udt->variable_data += 2; /* for variable data we start with a size and the data */ create_sccp_addr(msg, out);