[Home]

Summary:ASTERISK-05217: Asterisk sending incorrect facilities to qsig switch in network mode
Reporter:Paul P Komkoff Jr (stingray)Labels:
Date Opened:2005-10-03 02:02:54Date Closed:2011-06-07 14:10:19
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have
facilityenable = yes
switchtype=qsig
signalling=pri_net

in my zapata.conf. I also have OfficeServ 500 attached.
Now, when I'm trying to send something which contain callername facility, the call won't pass.
Here's why:
> [ 02 01 ea ee 08 02 00 03 05 04 03 80 90 a3 18 03 a1 83 81 1c 1c 9f 8b 01 00 a1 16 02 01 04 02 01 15 30 0e 02 01 01 0a 01 00
a1 02 82 00 a2 02 82 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6c 0c 00 81 3
8 34 35 32 32 31 30 36 30 32 70 0d 80 39 38 39 31 37 32 30 31 30 34 34 30 ]

> Facility (len=30, codeset=0) [ 0x9f, 0x8b, 0x01, 0x00, 0xa1, 0x16, 0x02, 0x01, 0x04, 0x02, 0x01, 0x15, '0', 0x0e, 0x02, 0x01,
0x01, 0x0a, 0x01, 0x00, 0xa1, 0x02, 0x82, 0x00, 0xa2, 0x02, 0x82, 0x00 ]

As you can see, in addition to facility IE of len=30, we also have 30 zeros.
Why libpri is sending this zeros?
Examining add_callername_ie function, I discovered that it calls pri_call_apdu_queue only once. But in q931.c:send_message there are loop while (facevent) which iterates twice - adding normal PDU, then zeros string.

Adding "break;" after "facevent->sent = 1;" fixes this issue, but it's a fix for symptom, not for the cause.
Comments:By: Russell Bryant (russell) 2005-10-03 14:04:04

Hey Matt!  Can you take a look at this when you have time?

By: Paul P Komkoff Jr (stingray) 2005-10-03 14:42:23

Here is some additional info based on today's experience.
After I killed those mystical zeros, I still getting protocol error on setup from Samsung - but the call proceeding further. With zeros, I have got protocol error without any further processing.

Maybe some other PBX interpreting those zeros more intelligent?

By: Matthew Fredrickson (mattf) 2005-10-04 13:28:07

Your signaling type should be pri_cpe.  Try changing it to that and see if still gives you this problem.

By: Matthew Fredrickson (mattf) 2005-10-04 13:31:47

If there are still any problems, try to get a hold of me on IRC. My nick is Cresl1n.  I should be on all day today.

By: Matthew Fredrickson (mattf) 2005-10-04 13:37:47

I just found a little bug that might have caused this.  Try updating libpri and see if it is fixed.

By: Paul P Komkoff Jr (stingray) 2005-10-04 14:34:51

Yes it is fixed now. Thanks.
I still have some questions though. I will ask you on IRC. Maybe you'll have some time to answer :)

By: Matthew Fredrickson (mattf) 2005-10-04 14:43:54

Fixed in head