[asterisk-bugs] [JIRA] (PRI-151) libpri should handle optional Recommendation in Cause IE

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Mon Dec 10 10:03:45 CST 2012


     [ https://issues.asterisk.org/jira/browse/PRI-151?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Mudgett updated PRI-151:
--------------------------------

    Description: 
libpri ignores the optional presence of the octet 3a "Recommendation"
(ref. ITU-T Q.850, p.2.1 and ETSI ETS 300 102-1 p. 4.5.12). As result
of that, the Cause IE is handled not correctly.
The proposed patch adds checking the extension indicator in bit 8 of
octet 3 before getting the cause value and the cause diagnostic data.

There is an example of the current wrong the Cause IE treatment:

{noformat}
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Message Type: DISCONNECT (69)
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < [08 03 02 80 9f]
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Cause (len= 5) [ Ext: 0
Coding: CCITT (ITU) standard (0) Spare: 0 Location: Public network
serving the local user (2)
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Ext: 1 Cause: Unknown
(0), class = Normal Event (0) ]
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Cause data 1: 9f (159)
{noformat}

As you can see, the octet 3 (0x02) has 0 in the 8th bit. It means that
the next octet (0x80) contains the "Recommendation" value rather than
the cause value. As result of that, the cause value is recognized as 0
instead of 0x1f.


Patch Tested with 1.4.13 and a variant of it: with 1.4.12

  was:
libpri ignores the optional presence of the octet 3a "Recommendation"
(ref. ITU-T Q.850, p.2.1 and ETSI ETS 300 102-1 p. 4.5.12). As result
of that, the Cause IE is handled not correctly.
The proposed patch adds checking the extension indicator in bit 8 of
octet 3 before getting the cause value and the cause diagnostic data.

There is an example of the current wrong the Cause IE treatment:

[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Message Type: DISCONNECT (69)
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < [08 03 02 80 9f]
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Cause (len= 5) [ Ext: 0
Coding: CCITT (ITU) standard (0) Spare: 0 Location: Public network
serving the local user (2)
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Ext: 1 Cause: Unknown
(0), class = Normal Event (0) ]
[Oct 19 11:48:56] VERBOSE[22002] logger.c: < Cause data 1: 9f (159)

As you can see, the octet 3 (0x02) has 0 in the 8th bit. It means that
the next octet (0x80) contains the "Recommendation" value rather than
the cause value. As result of that, the cause value is recognized as 0
instead of 0x1f.


Patch Tested with 1.4.13 and a variant of it: with 1.4.12

    
> libpri should handle optional Recommendation in Cause IE
> --------------------------------------------------------
>
>                 Key: PRI-151
>                 URL: https://issues.asterisk.org/jira/browse/PRI-151
>             Project: LibPRI
>          Issue Type: Bug
>      Security Level: None
>    Affects Versions: 1.4.13
>            Reporter: Tzafrir Cohen
>            Assignee: Richard Mudgett
>            Severity: Minor
>         Attachments: 0001-handle-optional-Recommendation-in-Cause-IE.patch
>
>
> libpri ignores the optional presence of the octet 3a "Recommendation"
> (ref. ITU-T Q.850, p.2.1 and ETSI ETS 300 102-1 p. 4.5.12). As result
> of that, the Cause IE is handled not correctly.
> The proposed patch adds checking the extension indicator in bit 8 of
> octet 3 before getting the cause value and the cause diagnostic data.
> There is an example of the current wrong the Cause IE treatment:
> {noformat}
> [Oct 19 11:48:56] VERBOSE[22002] logger.c: < Message Type: DISCONNECT (69)
> [Oct 19 11:48:56] VERBOSE[22002] logger.c: < [08 03 02 80 9f]
> [Oct 19 11:48:56] VERBOSE[22002] logger.c: < Cause (len= 5) [ Ext: 0
> Coding: CCITT (ITU) standard (0) Spare: 0 Location: Public network
> serving the local user (2)
> [Oct 19 11:48:56] VERBOSE[22002] logger.c: < Ext: 1 Cause: Unknown
> (0), class = Normal Event (0) ]
> [Oct 19 11:48:56] VERBOSE[22002] logger.c: < Cause data 1: 9f (159)
> {noformat}
> As you can see, the octet 3 (0x02) has 0 in the 8th bit. It means that
> the next octet (0x80) contains the "Recommendation" value rather than
> the cause value. As result of that, the cause value is recognized as 0
> instead of 0x1f.
> Patch Tested with 1.4.13 and a variant of it: with 1.4.12

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list