[asterisk-dev] q931 decoding question
Hans Petter Selasky
hselasky at c2i.net
Thu Jan 10 10:10:30 CST 2008
On Thursday 10 January 2008, Klaus Darilion wrote:
> Hi!
>
> Please take a look at the following incoming SETUP message:
>
> < Protocol Discriminator: Q.931 (8) len=42
> < Call Ref: len= 2 (reference 5566/0x15BE) (Originator)
> < Message type: SETUP (5)
> < [04 02 88 90]
> < Bearer Capability (len= 4) [ Ext: 1 Q.931 Std: 0 Info transfer
> capability: Unrestricted digital information (8)
> < Ext: 1 Trans mode/rate: 64kbps,
> circuit-mode (16)
> < Ext: 0 User information layer 1: Unknown
> (24)
>
> lets decode it:
>
> bearer capability IE
> /
> / length
>
> | /
> |
> | | ext=1, coding standard=0 0=ITU, information tranfer
>
> capability=0 1 0 0 0=Unrestricted digital information
>
> | | /
> | |
> | | | ext=1, transfer mode=0 0=circuit mode, information
> | | | transfer rate=0 0 0 0 0
> | | | /
>
> < [04 02 88 90]
>
> this means the bearer capability IE does not include the user
> information layer 1 octet. Nevertheless it gets parsed.
>
> < Ext: 0 User information layer 1: Unknown (24)
>
> My questions: Why does it gets parsed? Why is it set to 24? I checked
> libpri source code but could not find the relevant code. Maybe someone
> can point to the corresponding code.
Hi,
Maybe there is a decoding error in libpri, for example a missing length check
or missing extension (mask=0x80) check. If the second byte has the 7th bit
set, then there should be no fifth byte.
If this is repeatable you could try decoding the package using "isdndecode"
from FreeBSD:
http://www.selasky.org/hans_petter/isdn4bsd/sources/src/usr.sbin/i4b/isdndecode/
--HPS
More information about the asterisk-dev
mailing list