I just updated libpri 1.4 on my system to the latest from that branch and
my QSIG connection to an NEC SV8300 stopped working. The trace showing
the problem is below:
q931.c:5640 q931_connect: Call 7168 enters state 10 (Active). Hold state: Idle
> DL-DATA request
> Protocol Discriminator: Q.931 (8) len=21
> TEI=0 Call Ref: len= 2 (reference 7168/0x1C00) (Sent to originator)
> Message Type: CONNECT (7)
TEI=0 Transmitting N(S)=29, window is open V(A)=29 K=7
> Protocol Discriminator: Q.931 (8) len=21
> TEI=0 Call Ref: len= 2 (reference 7168/0x1C00) (Sent to originator)
> Message Type: CONNECT (7)
> [18 03 a9 83 81]
> Channel ID (len= 5) [ Ext: 1 IntID: Implicit Other(PRI) Spare: 0
Exclusive Dchan: 0
> ChanSel: As indicated in following octets
> Ext: 1 Coding: 0 Number Specified Channel Type: 3
> Ext: 1 Channel: 1 Type: NET]
> [1e 02 81 82]
> Progress Indicator (len= 4) [ Ext: 1 Coding: CCITT (ITU) standard (0) 0:
0 Location: Private network serving the local user (1)
> Ext: 1 Progress Description: Called
equipment is non-ISDN. (2) ]
> [29 05 0b 05 01 0e 03]
> Time Date (len= 7) [ 11-05-01 14:03 ]
< Protocol Discriminator: Q.931 (8) len=13
< TEI=0 Call Ref: len= 2 (reference 7168/0x1C00) (Sent from originator)
< Message Type: STATUS (125)
< [08 03 81 e0 29]
< Cause (len= 5) [ Ext: 1 Coding: CCITT (ITU) standard (0) Spare: 0
Location: Private network serving the local user (1)
< Ext: 1 Cause: Mandatory information element is missing
(96), class = Protocol Error (e.g. unknown message) (6) ]
< Cause data 1: 29 (41)
< [14 01 04]
< Call State (len= 3) [ Ext: 0 Coding: CCITT (ITU) standard (0) Call state:
Call Delivered (4)
Received message for call 0x2aaab81d15c0 on link 0x1b0db440 TEI/SAPI 0/0
-- Processing IE 8 (cs0, Cause)
-- Processing IE 20 (cs0, Call State)
As I'm reading this, libpri thinks that the SV8300 is complaining that
a "mandatory" IE is missing, in this case time/date. However, the
field is
THERE. But when I go back to a working libpri (r1878), I see that the
time/date is NOT sent on the CONNECT.
If I'm reading Q.931 correctly, 5.1.8 (page 118) says that the Date/time
IE may be included "as a network option".
I see this was added to libpri at revision 2187, in response to issue
number 18047.
I played around a bit. Since the spec includes seconds, I added seconds
to see if that made it work, but it didn't.
I DID work when I deleted Q931_IE_TIME_DATE from connect_net_ies.
Whether or not it's a bug for the SV8300 to reject that IE, it's likely
that NEC won't fix it.
This likely means that a new config option is needed, but I think that
means it'd also have to be done in chan_dahdi.c in Asterisk in addition
to libpri. Is that right?