[asterisk-bugs] [JIRA] (ASTERISK-27071) chan_sip: MOH keeps playing on attended transfer to alcatel

Jason Tomlinson (JIRA) noreply at issues.asterisk.org
Thu Jul 27 10:00:57 CDT 2017


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

Jason Tomlinson edited comment on ASTERISK-27071 at 7/27/17 9:59 AM:
---------------------------------------------------------------------

I've been poking around the code to see if I could notice anything.
I dont think it actually has anything to do with alcatel, just the fact that all call legs are from a trunk (I will retest with two asterisk boxes to verify)

We arrive at chan_sip / handle_invite_replaces and it seems nowhere is the music stopped for this channel (compared to asterisk 11 where all channels involved in a transfer are explicitely stopped)

In this function, I added 
    struct ast_bridge_channel *other;
    AST_LIST_TRAVERSE(&bridge->channels, other, entry) {
        ast_moh_stop(other->chan); /*attended transfer done, so stop all moh*/
    }

after sending the fake 100 and getting the bridge (so in the "if(bridge)..." block) and this seems to work OK.

Is this a safe thing to do here? 
Or should it be an ast_control_unhold frame queued up?
(I assume that it should be chan_sip responsable for unholding channels, so in handle_invite_replaces in this case....)

Thanks





was (Author: jason):
I've been poking around the code to see if I could notice anything.
I dont think it actually has anything to do with alcatel, just the fact that all call legs are from a trunk (I will retest with two asterisk boxes to verify)

We arrive at chan_sip / handle_invite_replaces and it seems nowhere is the music stopped for this channel (compared to asterisk 11 where all channels involved in a transfer are explicitely stopped)

In this function, I added 
    struct ast_bridge_channel *other;
    AST_LIST_TRAVERSE(&bridge->channels, other, entry) {
        ast_moh_stop(other->chan);//attended transfer done, so stop all moh
    }

after sending the fake 100 and getting the bridge (so in the "if(bridge){...}" block) and this seems to work OK.

Is this a safe thing to do here? 
Or should it be an ast_control_unhold frame queued up?
(I assume that it should be chan_sip responsable for unholding channels, so in handle_invite_replaces in this case....)

Thanks




> chan_sip: MOH keeps playing on attended transfer to alcatel
> -----------------------------------------------------------
>
>                 Key: ASTERISK-27071
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27071
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General
>    Affects Versions: 13.13.0, 13.13.1, 13.15.0, 13.16.0
>         Environment: Centos 7
> Alcatel OXE
>            Reporter: Jason Tomlinson
>            Assignee: Unassigned
>         Attachments: alcatel_trf_problem.txt, full_sip_trace.txt, Trace transfert Alcatel.pcapng
>
>
> Since upgrading from asterisk 11 to asterisk 13 (I have tested up to the latest 13.16.0 release), we have a problem with attended transfers to an alcatel pbx in which the call being transferred still has music on hold even after the transfer has completed.



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



More information about the asterisk-bugs mailing list