[asterisk-bugs] [JIRA] (ASTERISK-20409) sip_tech_info channels cannot be bridged, not even with themselves

Matt Jordan (JIRA) noreply at issues.asterisk.org
Tue Nov 6 09:48:21 CST 2012


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

Matt Jordan updated ASTERISK-20409:
-----------------------------------

    Target Release Version/s: 10.10.0
                              1.8.18.0
    
> sip_tech_info channels cannot be bridged, not even with themselves
> ------------------------------------------------------------------
>
>                 Key: ASTERISK-20409
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20409
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General
>    Affects Versions: 1.8.15.1
>            Reporter: Michele Cicciotti (PrivateWave SpA)
>            Severity: Minor
>      Target Release: 1.8.18.0, 10.10.0
>
>
> Channels using the sip_tech_info driver cannot use the native bridge at all (they cannot even be bridged to other sip_tech_info channels). This is due to a logic mistake (I think?) in revision 366547, repeated verbatim in callbacks sip_get_udptl_peer, sip_get_rtp_peer, sip_get_vrtp_peer and sip_get_trtp_peer:
> {code}
> 	if (!(opp_chan = ast_bridged_channel(chan))) {
> 		return AST_RTP_GLUE_RESULT_FORBID;
> 	} else if ((opp_chan->tech != &sip_tech) || (!(opp = opp_chan->tech_pvt))) {
> 		return AST_RTP_GLUE_RESULT_FORBID;
> 	}
> {code}
> As you can see, the only channels that can be bridged are sip_tech channels with other sip_tech channels. I see two possible solutions. This one lets sip_tech and sip_tech_info channels to be bridged together, in any combination (will this work? It would be my favorite solution):
> {code}
> 	} else if ((opp_chan->tech != &sip_tech && opp_chan->tech != &sip_tech_info) || (!(opp = opp_chan->tech_pvt))) {
> {code}
> This one, on the other hand, lets sip_tech channels be bridged with other sip_tech channels, and sip_tech_info channels with other sip_tech_info channels:
> {code}
> 	} else if ((opp_chan->tech != chan->tech) || (!(opp = opp_chan->tech_pvt))) {
> {code}
> I marked this as a regression because sip_tech_info bridging used to work in 1.8.9.1, and revision 366547 wasn't meant to disable it, so I assumed this was an accidental side effect

--
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