[asterisk-bugs] [JIRA] (ASTERISK-19794) IAX channel won't hangup after musconhold stopped

Matt Jordan (JIRA) noreply at issues.asterisk.org
Sat Mar 14 10:44:34 CDT 2015


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

Matt Jordan commented on ASTERISK-19794:
----------------------------------------

I'm fairly sure this was fixed by r407727:

{quote}
{noformat}
r407727 | rmudgett | 2014-02-07 11:56:57 -0600 (Fri, 07 Feb 2014) | 41 lines

chan_iax2: Block unnecessary control frames to/from the wire.

Establishing an IAX2 call between Asterisk v1.4 and v1.8 (or later)
results in an unexpected call disconnect.  The problem happens because
newer values in the enum ast_control_frame_type are not consistent between
the branch versions of Asterisk.

For example:
1) v1.4 calls v1.8 (or later) using IAX2

2) v1.8 answers and sends a connected line update control frame.  (on v1.8
AST_CONTROL_CONNECTED_LINE = 22)

3) v1.4 receives the control frame as an end-of-q (on v1.4
AST_CONTROL_END_OF_Q = 22)

4) v1.4 disconnects the call once the receive queue becomes empty.

Several things are done by this patch to fix the problem and attempt to
prevent it from happening again in the future:

* Added a warning at the definition of enum ast_control_frame_type about
how to add new control frame values.

* Made block sending and receiving control frames that have no reason to
go over the wire.

* Extended the connectedline iax.conf parameter to also include the
redirecting information updates.

* Updated the connectedline iax.conf parameter documentation to include a
notice that the parameter must be "no" when the peer is an Asterisk v1.4
instance.

(closes issue AST-1302)

Review: https://reviewboard.asterisk.org/r/3174/
{noformat}
{quote}

> IAX channel won't hangup after musconhold stopped
> -------------------------------------------------
>
>                 Key: ASTERISK-19794
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-19794
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_iax2, Resources/res_musiconhold
>    Affects Versions: 1.8.11.1
>         Environment: Debian Squeeze Intel Xeon
>            Reporter: dadjul
>            Assignee: dadjul
>         Attachments: issue.txt
>
>
> I have an IAX trunk between asterisk 1.4.22 and 1.8.11.1
> Doing a basic dialplan on 1.8.11.1:
> exten => 111,1,Answer
> exten => 111,2,MusicOnHold()
> exten => 111,3,Hangup()
> When I hangup on 1.4.22
> Asterisk 1.8.11.1 behave badly:
> I get the following:
>     -- Stopped music on hold on IAX2/dediax-4317
> And then this message goes forever:
> WARNING[300]: chan_iax2.c:3510 __attempt_transmit: Max retries exceeded to host XXXXXXX on IAX2/dediax-4317 (type = 6, subclass = 11, ts=40006, seqno=9)
> As well as core show channels shows:
> Channel              Location             State   Application(Data)
> IAX2/dediax-4317      111 at xxxxx:2        Up      MusicOnHold()
> 1 active channel
> 1 active call
> The only way is to kill asterisk
> Thank you,



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



More information about the asterisk-bugs mailing list