[asterisk-bugs] [JIRA] (PRI-180) Incorrect handling of DISCONNECT with Progress Indicator #8

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Wed Mar 16 16:30:56 CDT 2016


    [ https://issues.asterisk.org/jira/browse/PRI-180?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=229915#comment-229915 ] 

Richard Mudgett commented on PRI-180:
-------------------------------------

Libpri has just been converted from svn to git in preparation for the upcoming v1.4.16 release and so patches can be reviewed again.

I have posted gerrit reviews for the patches that will be committed to libpri for this issue.
https://gerrit.asterisk.org/#/c/2425/  This is the patch to post a PROGRESS instead of the DISCONNECT
https://gerrit.asterisk.org/#/c/2426/  This is [^jira_pri_180_v1.4.15.patch]

Since there wasn't an actual patch file associated with the issue I had to create one.  The patch will only post a PROGRESS event to the upper layer if the outgoing call has not connected yet.  Could you test the PROGRESS patch in your setup to make sure that it works.  You can get the patch from the gerrit review linked above.

Thanks

> Incorrect handling of DISCONNECT with Progress Indicator #8
> -----------------------------------------------------------
>
>                 Key: PRI-180
>                 URL: https://issues.asterisk.org/jira/browse/PRI-180
>             Project: LibPRI
>          Issue Type: Bug
>      Security Level: None
>          Components: General
>    Affects Versions: 1.4.13
>         Environment: Debian 7 / x64
>            Reporter: Alexandr Dranchuk
>            Assignee: Alexandr Dranchuk
>            Severity: Minor
>         Attachments: full_20160116_progress.txt, full_patch_test_log.txt, full_patch_with_progress_log.txt, jira_pri_180_v1.4.15.patch
>
>
> When we make an outgoing call by DAHDI / libpri 1.4.15, sometimes we get a DISCONNECT with Progress Indicator #8. Currently we just start to ignore DISCONNECT message if *inbanddisconnect=yes* are set in chan_dahdi.conf
> But after first DISCONNECT with Progress Indicator #8, we get second DISCONNECT without Progress Indicator, and thus have to release the call, not keep ignoring it.
> Current code not expecting second DISCONNECT message, only RELEASE but according  ETS ISDN standards document, call can be finished by any of this messages.
> For now I've changed the line of q931.c from
> {code:title=q931.c|borderStyle=solid}
> 		UPDATE_OURCALLSTATE(ctrl, c, Q931_CALL_STATE_DISCONNECT_INDICATION);
> 		c->peercallstate = Q931_CALL_STATE_DISCONNECT_REQUEST;
> 		c->sendhangupack = 1;
> 		/* wait for a RELEASE so that sufficient time has passed
> 		   for the inband audio to be heard */
> 		if (ctrl->acceptinbanddisconnect && (c->progressmask & PRI_PROG_INBAND_AVAILABLE))
> 			break;
> {code}
> to
> {code:title=q931.c|borderStyle=solid}
> 		if (ctrl->acceptinbanddisconnect && (c->progressmask & PRI_PROG_INBAND_AVAILABLE)) {
> 			if (c->ourcallstate != Q931_CALL_STATE_DISCONNECT_INDICATION) { 
> 				UPDATE_OURCALLSTATE(ctrl, c, Q931_CALL_STATE_DISCONNECT_INDICATION);
> 				c->peercallstate = Q931_CALL_STATE_DISCONNECT_REQUEST;
> 				c->sendhangupack = 1;
> 				break;
> 			}
> 		}
> 		
> 		UPDATE_OURCALLSTATE(ctrl, c, Q931_CALL_STATE_DISCONNECT_INDICATION);
> 		c->peercallstate = Q931_CALL_STATE_DISCONNECT_REQUEST;
> 		c->sendhangupack = 1;
> {code}
> and tested. All works fine for me. 
> Any help would be appreciated.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list