[asterisk-bugs] [LibPRI 0011139]: Request for ROSE IE causes connection to drop.

noreply at bugs.digium.com noreply at bugs.digium.com
Thu Nov 1 13:03:39 CDT 2007


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11139 
====================================================================== 
Reported By:                ocgltd
Assigned To:                mattf
====================================================================== 
Project:                    LibPRI
Issue ID:                   11139
Category:                   General
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
Asterisk Version:           1.4.13  
SVN Branch (only for SVN checkouts, not tarball releases): N/A  
SVN Revision (number only!):  
Disclaimer on File?:        N/A 
Request Review:              
====================================================================== 
Date Submitted:             11-01-2007 12:48 CDT
Last Modified:              11-01-2007 13:03 CDT
====================================================================== 
Summary:                    Request for ROSE IE causes connection to drop.
Description: 
I have a T1 link from asterisk 1.2.23 (also tried with 1.4.13) to a
Meridian Option 61C.  Calls either way drop/don't setup with error "Channel
0/23, span 1 got hangup, cause 100".   

I tried upgrading to Asterisk 1.4.13, and upgrading matching zaptel &
libpri to latest, put the problem is identical).
 
For testing, I tried a call from the Meridian to an asterisk extension
which just plays the monkey sounds.  The call sets up, but I never hear
monkeys (just a busy tone) as the call disconnects immediately.

I have three attachments below:
1. The CLI output showing a dropped call (inbound from Meridian1) 
2. A PRI DEBUG of the same call, showing "!! Invalid Protocol Profile
field 0x11" in the trace.
3. A PRI INTENSE DEBUG SPAN 1 of the same call.  (I tried upgrading to Ast
1.4.13 prior to this call trace - same result)

It appears that libpri is choking on ROSE IE / Profile field 0x11, causing
the connection to drop.  I have been unable to find any workaround.

Thanks!
====================================================================== 

---------------------------------------------------------------------- 
 ocgltd - 11-01-07 13:03  
---------------------------------------------------------------------- 
Yes - this does relate to a post.  Advice I got in the mirc channel pointed
to a libpri bug.  (I have attached the trace below to confirm).

If the problem is that libpri is sending something that the Nortel does
not like, is it possible to disable that feature (bug?) in libpri?  

If not...could you help me understand the problem better?  I'm coming up
the PRI learning curve quickly.  Thanks


 
=1===================================================
 
!! Invalid Protocol Profile field 0x11
    -- Accepting call from '2004000' to '111' on channel 0/23, span 1
    -- Executing NoOp("Zap/23-1", "Incoming call from Meridian1") in new
stack
    -- Executing NoOp("Zap/23-1", "  From number: 2004000| revised to
2004") in new stack
    -- Executing Set("Zap/23-1", "CALLERID(num)=2004") in new stack
    -- Executing NoOp("Zap/23-1", "  From name: TELEPHONE ROOM") in new
stack
    -- Executing Macro("Zap/23-1", "dialfromMeridian|111") in new stack
    -- Executing NoOp("Zap/23-1", "Incoming call to number 111| which maps
to device: ") in new stack
    -- Executing GotoIf("Zap/23-1", "1?NoMatch") in new stack
    -- Goto (macro-dialfromMeridian,s,5)
    -- Executing NoOp("Zap/23-1", "Invalid extension in macro
dialfromMeridian") in new stack
    -- Executing Hangup("Zap/23-1", "") in new stack
  == Spawn extension (macro-dialfromMeridian, s, 6) exited non-zero on
'Zap/23-1' in macro 'dialfromMeridian'
  == Spawn extension (macro-dialfromMeridian, s, 6) exited non-zero on
'Zap/23-1'
    -- Hungup 'Zap/23-1'
!! Invalid Protocol Profile field 0x11
    -- Accepting call from '2004000' to '123' on channel 0/23, span 1
    -- Executing Answer("Zap/23-1", "") in new stack
    -- Executing Playback("Zap/23-1", "tt-monkeys") in new stack
    -- Playing 'tt-monkeys' (language 'en')
    -- Channel 0/23, span 1 got hangup, cause 100
  == Spawn extension (entryocgexternal, 123, 2) exited non-zero on
'Zap/23-1'
    -- Hungup 'Zap/23-1'
 
=2===================================================
*CLI> pri debug span 1
Enabled debugging on span 1
< Protocol Discriminator: Q.931 (8)  len=61 < Call Ref: len= 1 (reference
23/0x17) (Originator) < Message type: SETUP (5) < [04 03 80 90 a2] < Bearer
Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer capability:
Speech (0)
<                              Ext: 1  Trans mode/rate: 64kbps,
circuit-mode (16)
<                              Ext: 1  User information layer 1: u-Law
(34)
< [18 04 e9 80 83 17]
< Channel ID (len= 6) [ Ext: 1  IntID: Explicit, PRI Spare: 0, Exclusive
Dchan: 0
<                        ChanSel: Reserved
<                       Ext: 1  DS1 Identifier: 0  
<                       Ext: 1  Coding: 0   Number Specified   Channel
Type: 3
<                       Ext: 0  Channel: 23 ]
< [1c 0a 11 be a1 06 02 01 01 02 01 01]
< Facility (len=12, codeset=0) [ 0x11, 0xbe, 0xa1, 0x06, 0x02, 0x01, 0x01,
0x02, 0x01, 0x01 ] < [28 0f b1 54 45 4c 45 50 48 4f 4e 45 20 52 4f 4f 4d] <
Display (len=15) Charset: 31 [ TELEPHONE ROOM ] < [6c 09 09 80 32 30 30 34
30 30 30] < Calling Number (len=11) [ Ext: 0  TON: Unknown Number Type (0) 
NPI: Private Numbering Plan (9)
<                           Presentation: Presentation permitted, user
number not screened (0) '2004000' ]
< [70 04 89 31 32 33]
< Called Number (len= 6) [ Ext: 1  TON: Unknown Number Type (0)  NPI:
Private Numbering Plan (9) '123' ]
-- Making new call for cr 23
-- Processing Q.931 Call Setup
-- Processing IE 4 (cs0, Bearer Capability)
-- Processing IE 24 (cs0, Channel Identification)
-- Processing IE 28 (cs0, Facility)
!! Invalid Protocol Profile field 0x11
-- Processing IE 40 (cs0, Display)
-- Processing IE 108 (cs0, Calling Party Number)
-- Processing IE 112 (cs0, Called Party Number)
> Protocol Discriminator: Q.931 (8)  len=10 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: CALL PROCEEDING (2)
> [18 03 a9 83 97]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit, PRI Spare: 0, Exclusive
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0   Number Specified   Channel
Type: 3
>                       Ext: 1  Channel: 23 ]
    -- Accepting call from '2004000' to '123' on channel 0/23, span 1
    -- Executing Answer("Zap/23-1", "") in new stack
> Protocol Discriminator: Q.931 (8)  len=10 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: CONNECT (7)
> [18 03 a9 83 97]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit, PRI Spare: 0, Exclusive
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0   Number Specified   Channel
Type: 3
>                       Ext: 1  Channel: 23 ]
    -- Executing Playback("Zap/23-1", "tt-monkeys") in new stack
    -- Playing 'tt-monkeys' (language 'en') < Protocol Discriminator:
Q.931 (8)  len=8 < Call Ref: len= 1 (reference 23/0x17) (Originator) <
Message type: RELEASE (77) < [08 02 81 e4]
< Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Private network serving the local user (1)
<                  Ext: 1  Cause: Invalid information element contents
(100), class = Protocol Error (6) ]
-- Processing IE 8 (cs0, Cause)
    -- Channel 0/23, span 1 got hangup, cause 100
  == Spawn extension (entryocgexternal, 123, 2) exited non-zero on
'Zap/23-1'
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Release
Request
> Protocol Discriminator: Q.931 (8)  len=9 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: RELEASE COMPLETE (90)
> [08 02 81 90]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Normal Clearing (16), class = Normal 
> Event (1) ]
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
    -- Hungup 'Zap/23-1'
< Protocol Discriminator: Q.931 (8)  len=8 < Call Ref: len= 1 (reference
23/0x17) (Originator) < Message type: RELEASE (77) < [08 02 81 e4]
< Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Private network serving the local user (1)
<                  Ext: 1  Cause: Invalid information element contents
(100), class = Protocol Error (6) ]
-- Making new call for cr 23
-- Processing IE 8 (cs0, Cause)
> Protocol Discriminator: Q.931 (8)  len=9 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: RELEASE COMPLETE (90)
> [08 02 81 d1]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0) 0: 0  
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Invalid call reference value (81), 
> class = Invalid message (5) ]
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null


=3========================================================

T203 counter expired, sending RR and scheduling T203 again Sending
Receiver Ready (3)

> [ 02 01 01 07 ]

> Supervisory frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 003 P/F: 1
> 0 bytes of data
-- Restarting T203 counter

< [ 02 01 01 0b ]

< Supervisory frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
< N(R): 005 P/F: 1
< 0 bytes of data
-- ACKing all packets from 4 to (but not including) 5
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
-- Got RR response to our frame
-- Restarting T203 counter

< [ 00 01 06 0a 08 01 17 05 04 03 80 90 a2 18 04 e9 80 83 17 1c 0a 11 be
a1 06 02 01 01 02 01 01 6c 09 09 80 32 30 30 35 30 30 30 70 04 89 31 32 33
]

< Informational frame:
< SAPI: 00  C/R: 0 EA: 0
<  TEI: 000        EA: 1
< N(S): 003   0: 0
< N(R): 005   P: 0
< 44 bytes of data
-- ACKing all packets from 4 to (but not including) 5
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
< Protocol Discriminator: Q.931 (8)  len=44 < Call Ref: len= 1 (reference
23/0x17) (Originator) < Message type: SETUP (5) < [04 03 80 90 a2] < Bearer
Capability (len= 5) [ Ext: 1  Q.931 Std: 0  Info transfer capability:
Speech (0)
<                              Ext: 1  Trans mode/rate: 64kbps,
circuit-mode (16)
<                              Ext: 1  User information layer 1: u-Law
(34)
< [18 04 e9 80 83 17]
< Channel ID (len= 6) [ Ext: 1  IntID: Explicit  PRI  Spare: 0  Exclusive 
Dchan: 0
<                        ChanSel: Reserved
<                       Ext: 1  DS1 Identifier: 0  
<                       Ext: 1  Coding: 0  Number Specified  Channel Type:
3
<                       Ext: 0  Channel: 23 ]
< [1c 0a 11 be a1 06 02 01 01 02 01 01]
< Facility (len=12, codeset=0) [ 0x11, 0xBE, 0xA1, 0x06, 0x02, 0x01, 0x01,
0x02, 0x01, 0x01 ] PROTOCOL 11
A1 0006 (CONTEXT SPECIFIC [1])
  02 0001 01 (INTEGER: 1)
  02 0001 01 (INTEGER: 1)
< [6c 09 09 80 32 30 30 35 30 30 30]
< Calling Number (len=11) [ Ext: 0  TON: Unknown Number Type (0)  NPI:
Private Numbering Plan (9)
<                           Presentation: Presentation permitted, user
number not screened (0)  '2005000' ]
< [70 04 89 31 32 33]
< Called Number (len= 6) [ Ext: 1  TON: Unknown Number Type (0)  NPI:
Private Numbering Plan (9)  '123' ]
-- Making new call for cr 23
-- Processing Q.931 Call Setup
-- Processing IE 4 (cs0, Bearer Capability)
-- Processing IE 24 (cs0, Channel Identification)
-- Processing IE 28 (cs0, Facility)
Handle Q.932 ROSE Invoke component
-- Processing IE 108 (cs0, Calling Party Number)
-- Processing IE 112 (cs0, Called Party Number)
q931.c:3296 q931_receive: call 23 on channel 23 enters state 6 (Call
Present) Sending Receiver Ready (4)

> [ 00 01 01 08 ]

> Supervisory frame:
> SAPI: 00  C/R: 0 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 004 P/F: 0
> 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
q931.c:2570 q931_call_proceeding: call 23 on channel 23 enters state 9
(Incoming Call Proceeding)

> [ 02 01 0a 08 08 02 80 17 02 18 03 a9 83 97 ]

> Informational frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> N(S): 005   0: 0
> N(R): 004   P: 0
> 10 bytes of data
-- Restarting T203 counter
Stopping T_203 timer
Starting T_200 timer
> Protocol Discriminator: Q.931 (8)  len=10 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: CALL PROCEEDING (2)
> [18 03 a9 83 97]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0  Exclusive 
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0  Number Specified  Channel Type:
3
>                       Ext: 1  Channel: 23 ]
    -- Accepting call from '2005000' to '123' on channel 0/23, span 1
    -- Executing [123 at entryocgexternal:1] Answer("Zap/23-1", "") in new
stack
q931.c:2697 q931_connect: call 23 on channel 23 enters state 10 (Active)

> [ 02 01 0c 08 08 02 80 17 07 18 03 a9 83 97 ]

> Informational frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> N(S): 006   0: 0
> N(R): 004   P: 0
> 10 bytes of data
T_200 timer already going (2)
> Protocol Discriminator: Q.931 (8)  len=10 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: CONNECT (7)
> [18 03 a9 83 97]
> Channel ID (len= 5) [ Ext: 1  IntID: Implicit  PRI  Spare: 0  Exclusive 
Dchan: 0
>                        ChanSel: Reserved
>                       Ext: 1  Coding: 0  Number Specified  Channel Type:
3
>                       Ext: 1  Channel: 23 ]
    -- Executing [123 at entryocgexternal:2] Playback("Zap/23-1",
"tt-monkeys") in new stack
    -- <Zap/23-1> Playing 'tt-monkeys' (language 'en')

< [ 00 01 08 0e 08 01 17 4d 08 02 81 e4 ]

< Informational frame:
< SAPI: 00  C/R: 0 EA: 0
<  TEI: 000        EA: 1
< N(S): 004   0: 0
< N(R): 007   P: 0
< 8 bytes of data
-- ACKing all packets from 4 to (but not including) 7
-- ACKing packet 5, new txqueue is 6 (-1 means empty)
-- ACKing packet 6, new txqueue is -1 (-1 means empty)
-- Since there was nothing left, stopping T200 counter
-- Nothing left, starting T203 counter
< Protocol Discriminator: Q.931 (8)  len=8 < Call Ref: len= 1 (reference
23/0x17) (Originator) < Message type: RELEASE (77) < [08 02 81 e4] < Cause
(len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0  Location:
Private network serving the local user (1)
<                  Ext: 1  Cause: Invalid information element contents
(100), class = Protocol Error (e.g. unknown message) (6) ]
-- Processing IE 8 (cs0, Cause)
q931.c:3536 q931_receive: call 23 on channel 23 enters state 0 (Null)
Sending Receiver Ready (5)

> [ 00 01 01 0a ]

> Supervisory frame:
> SAPI: 00  C/R: 0 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 005 P/F: 0
> 0 bytes of data
-- Restarting T203 counter
-- Restarting T203 counter
    -- Channel 0/23, span 1 got hangup, cause 100
  == Spawn extension (entryocgexternal, 123, 2) exited non-zero on
'Zap/23-1'
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Release
Request

> [ 02 01 0e 0a 08 02 80 17 5a 08 02 81 90 ]

> Informational frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> N(S): 007   0: 0
> N(R): 005   P: 0
> 9 bytes of data
-- Restarting T203 counter
Stopping T_203 timer
Starting T_200 timer
> Protocol Discriminator: Q.931 (8)  len=9 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: RELEASE COMPLETE (90)
> [08 02 81 90]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0 
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Normal Clearing (16), class = Normal 
> Event (1) ]
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null
    -- Hungup 'Zap/23-1'

< [ 00 01 0a 0e 08 01 17 4d 08 02 81 e4 ]

< Informational frame:
< SAPI: 00  C/R: 0 EA: 0
<  TEI: 000        EA: 1
< N(S): 005   0: 0
< N(R): 007   P: 0
< 8 bytes of data
-- ACKing all packets from 6 to (but not including) 7
-- Something left to transmit (7), restarting T200 counter < Protocol
Discriminator: Q.931 (8)  len=8 < Call Ref: len= 1 (reference 23/0x17)
(Originator) < Message type: RELEASE (77) < [08 02 81 e4] < Cause (len= 4)
[ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0  Location: Private
network serving the local user (1)
<                  Ext: 1  Cause: Invalid information element contents
(100), class = Protocol Error (e.g. unknown message) (6) ]
-- Making new call for cr 23
-- Processing IE 8 (cs0, Cause)

> [ 02 01 10 0c 08 02 80 17 5a 08 02 81 d1 ]

> Informational frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> N(S): 008   0: 0
> N(R): 006   P: 0
> 9 bytes of data
T_200 timer already going (2)
> Protocol Discriminator: Q.931 (8)  len=9 Call Ref: len= 2 (reference 
> 23/0x17) (Terminator) Message type: RELEASE COMPLETE (90)
> [08 02 81 d1]
> Cause (len= 4) [ Ext: 1  Coding: CCITT (ITU) standard (0)  Spare: 0 
Location: Private network serving the local user (1)
>                  Ext: 1  Cause: Invalid call reference value (81), 
> class = Invalid message (e.g. parameter out of range) (5) ]
NEW_HANGUP DEBUG: Calling q931_hangup, ourstate Null, peerstate Null
NEW_HANGUP DEBUG: Destroying the call, ourstate Null, peerstate Null

< [ 02 01 01 12 ]

< Supervisory frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
< N(R): 009 P/F: 0
< 0 bytes of data
-- ACKing all packets from 6 to (but not including) 9
-- ACKing packet 7, new txqueue is 8 (-1 means empty)
-- ACKing packet 8, new txqueue is -1 (-1 means empty)
-- Since there was nothing left, stopping T200 counter
-- Nothing left, starting T203 counter
-- Restarting T203 counter
T203 counter expired, sending RR and scheduling T203 again Sending
Receiver Ready (6)

> [ 02 01 01 0d ]

> Supervisory frame:
> SAPI: 00  C/R: 1 EA: 0
>  TEI: 000        EA: 1
> Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
> N(R): 006 P/F: 1
> 0 bytes of data
-- Restarting T203 counter

< [ 02 01 01 13 ]

< Supervisory frame:
< SAPI: 00  C/R: 1 EA: 0
<  TEI: 000        EA: 1
< Zero: 0     S: 0 01: 1  [ RR (receive ready) ]
< N(R): 009 P/F: 1
< 0 bytes of data
-- ACKing all packets from 8 to (but not including) 9
-- Since there was nothing left, stopping T200 counter
-- Stopping T203 counter since we got an ACK
-- Nothing left, starting T203 counter
-- Got RR response to our frame
-- Restarting T203 counter 

Issue History 
Date Modified   Username       Field                    Change               
====================================================================== 
11-01-07 13:03  ocgltd         Note Added: 0072910                          
======================================================================




More information about the asterisk-bugs mailing list