[asterisk-dev] Regression in libpri 1.4.11 - handling ROSE
Pavel Troller
patrol at sinus.cz
Mon May 31 02:44:59 CDT 2010
Hi!
I've upgraded libpri to 1.4.11 and I've found that I cannot see the QSIG
calling name for incoming calls now. The problem is, that there is
an unhandled operation (85) before the Calling Name operation, and libpri
now fails to continue interpreting the facility contents.
The facility in binary looks like this:
[1c 35 9f aa 06 80 01 00 82 01 00 8b 01 00 a1 10 02 01 01 02 01 55 30 08 82 03 01 30 40 86 01 01 a1 15 02 01 02 02 01 00 80 0d 50 61 76 65 6c 20 54 72 6f 6c 6c 65 72]
The old system (libpri-1.4.10.1) handles all the problems gracefully:
PROTOCOL 1F
AA 0006 (CONTEXT SPECIFIC [10])
80 0001 00 (CONTEXT SPECIFIC [0])
82 0001 00 (CONTEXT SPECIFIC [2])
8B 0001 00 (CONTEXT SPECIFIC [11])
A1 0010 (CONTEXT SPECIFIC [1])
02 0001 01 (INTEGER: 1)
02 0001 55 (INTEGER: 85)
30 0008 (SEQUENCE)
82 0003 01 30 40 (CONTEXT SPECIFIC [2])
86 0001 01 (CONTEXT SPECIFIC [6])
A1 0015 (CONTEXT SPECIFIC [1])
02 0001 02 (INTEGER: 2)
02 0001 00 (INTEGER: 0)
80 000D 50 61 76 65 6C 20 54 72 6F 6C 6C 65 72 (CONTEXT SPECIFIC [0])
< [1e 02 81 83]
< 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: Calling equipment is non-ISDN. (3) ]
< [6c 06 01 81 37 35 38 32]
< Calling Number (len= 8) [ Ext: 0 TON: Unknown Number Type (0) NPI: ISDN/Telephony Numbering Plan (E.164/E.163) (1)
< Presentation: Presentation permitted, user number passed network screening (1) '7582' ]
< [9d]
< Non-Locking Shift (len=01): Requested codeset 5
< [31 01 80]
[May 31 09:39:04] ERROR[1204]: chan_dahdi.c:10774 dahdi_pri_error: !! < Unknown IE 49 (cs5, len = 3)
-- Making new call for cr 30488
-- Processing Q.931 Call Setup
-- Processing IE 4 (cs0, Bearer Capability)
-- Processing IE 24 (cs0, Channel Identification)
-- Processing IE 28 (cs0, Facility)
Q.932 Network facility extensions component is not handled
Q.932 Interpretation component is not handled
Handle Q.932 ROSE Invoke component
[ Handling operation 85 ]
!! Unable to handle ROSE operation 85 [ 30 08 82 03 01 30 40 86 01 01 ] - [0....0 at ...]
Handle Q.932 ROSE Invoke component
[ Handling operation 0 ]
Handle Name display operation
Received simple calling name 'Pavel Troller'
The new system (1.4.11) fails (the call is from another exchange so the binary
code of the facility differs, including the name, but the problem is the same):
-- Delayed processing IE 28 (cs0, Facility)
ASN.1 dump
Context Specific/C [10 0x0A] <AA> Len:6 <06>
Context Specific [0 0x00] <80> Len:1 <01>
<00> - "~"
Context Specific [2 0x02] <82> Len:1 <01>
<00> - "~"
Context Specific [11 0x0B] <8B> Len:1 <01>
<00> - "~"
Context Specific/C [1 0x01] <A1> Len:16 <10>
Integer(2 0x02) <02> Len:1 <01>
<01> - "~"
Integer(2 0x02) <02> Len:1 <01>
<55> - "U"
Sequence/C(48 0x30) <30> Len:8 <08>
Context Specific [2 0x02] <82> Len:3 <03>
<01 30 40> - "~0@"
Context Specific [6 0x06] <86> Len:1 <01>
<01> - "~"
Context Specific/C [1 0x01] <A1> Len:19 <13>
Integer(2 0x02) <02> Len:1 <01>
<02> - "~"
Integer(2 0x02) <02> Len:1 <01>
<00> - "~"
Context Specific [0 0x00] <80> Len:11 <0B>
<4D 6F 64 65 6D 20 44 69-73 63 6F> - "Modem Disco"
ASN.1 end>
nfe NetworkFacilityExtension Context Specific/C [10 0x0A]
sourceEntity Context Specific [0 0x00] = 0 0x0000
destinationEntity Context Specific [2 0x02] = 0 0x0000
interpretation Context Specific [11 0x0B] = 0 0x0000
INVOKE Component Context Specific/C [1 0x01]
invokeId Integer(2 0x02) = 1 0x0001
operationValue Integer(2 0x02) = 85 0x0055
operationValue = ROSE_Unknown
Skipping unused constructed component octets!
21 byte(s) of trailing data not consumed.
!! ROSE invoke operation not handled! ROSE_Unknown
The problem is that the new libpri now skips the rest of the facility
(probably, as stated in the debug), so the Calling Name is not
"discovered".
Is it a known behaviour, or a bug ?
With regards, Pavel Troller
More information about the asterisk-dev
mailing list