[Asterisk-Dev] Reasoning for bitfields in struct q931_ie ?

Schaefer, Mark Mark.Schaefer at ONSTAR.com
Tue Mar 30 14:14:02 MST 2004


Here is a set of patches.  These patches fix all of the problems.  I will
explain in depth what these do:

Category 1 - Should be incorporated into libpri
1)	Add #defines for the NSF service types defined by AT&T
2)	Create a msgtype for those service types to be output by the dump_ie
method.

Category 2 - Need to understand before incorporating
1)	Remove logic around making an IE < 16 mandatory (don't understand
why)
2)	Changed ie field to 8 bits because IE 96 (CodeSet 6) was falling
through the cracks - this needs to be solved, but my change will probably
break BIG_ENDIAN.
3)	Added IE's for 96,97,9E,9F (Shift) - this needs to be revisited

Category 3 - Don't incorporate without fixing
1)	Added NETWORK_SPEC_FAC to setup_ies (required for my PRI) - we need
to figure out how to put this in the zapata.conf file.
2)	Added SDN_MARKING to send_network_spec_fac (required for my PRI) -
again, we need to put this is a config file and pass it in on a per-switch
or per-call basis.

This fixes my two issues (Dialed Number Preferred and SDN Marking), but will
definitely cause other issues.  I'm willing to discuss working this into the
Asterisk source.

Thanks,

Mark

-----Original Message-----
From: Schaefer, Mark 
Sent: Monday, March 29, 2004 9:24 PM
To: 'asterisk-dev at lists.digium.com'
Subject: [Asterisk-Dev] Reasoning for bitfields in struct q931_ie ?


Hi.

	First time caller here ;)

	I'm trying to get asterisk to talk on a specially configured PRI.
However, I'm getting a SETUP message which contains the following codes at
the end of the message: 96 01 01 00.  According to the AT&T PRI manual, 96
means "Locking Switch to CodeSet 6."  It also says that a PRI interface
SHALL implement the switch to CodeSet 6 and 7.  I have no idea what this is,
but I know that a few things are apparently not right.

1)	the Asterisk IE number (pri_q931.h) for "Locking Shift" is 0x90.
While technically correct, the problem is that the lower nibble has the
codeset to switch to.  So, really, it should be 0x90 to 0x97 for Locking
Shift and 0x98-0x9F for Non-Locking Shift.  According to the docs,
Non-Locking Shift is not implemented.

2)	q931_ie is created (Little Endian) with the bitfield ie:7 and f:1.
I'm not sure what the purpose is, but Locking Shift to CodeSet 6 is coming
across as IE 0x22 and is causing the SETUP to barf on the "UNKNOWN IE"

Thanks in advance for any pointers!

Mark
_______________________________________________
Asterisk-Dev mailing list
Asterisk-Dev at lists.digium.com
http://lists.digium.com/mailman/listinfo/asterisk-dev
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-dev

-------------- next part --------------
A non-text attachment was scrubbed...
Name: libpri.patch
Type: application/octet-stream
Size: 1294 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20040330/e55cac5e/libpri.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: pri_q931.patch
Type: application/octet-stream
Size: 946 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20040330/e55cac5e/pri_q931.obj
-------------- next part --------------
A non-text attachment was scrubbed...
Name: q931.patch
Type: application/octet-stream
Size: 6156 bytes
Desc: not available
Url : http://lists.digium.com/pipermail/asterisk-dev/attachments/20040330/e55cac5e/q931.obj


More information about the asterisk-dev mailing list