[asterisk-bugs] [JIRA] (ASTERISK-26432) chan_dahdi: hangup during long TDD sendtext not detected, blocking channel

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Wed May 17 09:51:57 CDT 2017


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

Richard Mudgett commented on ASTERISK-26432:
--------------------------------------------

Yes that should fix the issue.  The polling loop needs to defer frames like a channel in autoservice (autoservice.c) while looking for the AST_CONTROL_HANGUP frame.  If it sees the hangup frame it needs to exit the loop and requeue any deferred frames.  Also the channel is locked on entry to that function so you will need to unlock it while waiting in poll() so other code won't get blocked waiting for the lock unnecessarily.

> chan_dahdi: hangup during long TDD sendtext not detected, blocking channel
> --------------------------------------------------------------------------
>
>                 Key: ASTERISK-26432
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26432
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_dahdi
>    Affects Versions: 13.11.1
>         Environment: CentOS 6.5
> libpri 1.5.0
> Dahdi 2.11.1
> Asterisk 13.11.2
> wanpipe 7.0.19
> 8 DMS100 PRIs on Sangoma A108DE cards
>            Reporter: Nicolas Chapleau
>
> (peusdo) 
> answer()
> setTDD ( on )
> sendText( "Put a long message to play back on the customers TTY device" )
> When a hangup occurs during the sendtext, I can see the PRI_EVENT_HANGUP_REQ on my PRI span but it is not processed until the sendtext command completes. I have debugged the sendtext command and I see it complete tdd_generate then loop (chan_dahdi.c line 13435) to write the tones while checking for hangup (line 13436), which is NOT detected. 
> Meanwhile, new calls coming into that span get rejected until the sendtext completes, after which I get PRI MDL (f) errors. On busy systems, it will also cause Exceptionally long frame queuing error messages.
> I can easily recreate this by hanging up during the sendtext command and calling back right away. 
> This issue has blocked us from upgrading from 1.4.43 where it does not happen. For now I put a temporary fix in our script to send TDD text one letter at a time which helps but not having sendtext block the span on hangup.



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



More information about the asterisk-bugs mailing list