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);

Reply via email to