[asterisk-bugs] [JIRA] (ASTERISK-25950) [patch]SIP channel does not send PeerStatus events for autocreated peers

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Mon Apr 25 16:36:56 CDT 2016


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

Richard Mudgett commented on ASTERISK-25950:
--------------------------------------------

When Asterisk migrated from SVN to Git we moved the release branches over:
svn/asterisk/trunk -> origin/master
svn/asterisk/branches/11 -> origin/11
svn/asterisk/branches/13 -> origin/13
and so on for other release branches

Similarly for Asterisk certified release branches though you shouldn't need to worry about them:
svn/asterisk/certified/branches/11.6 -> origin/certified/11.6

Patches are only applied to applicable branches according to the policy for the branch.  For this issue, you should put a patch up for the v13 and master branches.  Gerrit helps with this for fairly simple patches.  You simply use the cherry-pick button on the first review and specify which branch the patch should be cherry-picked to: 13 or master.

https://wiki.asterisk.org/wiki/display/AST/Gerrit+Usage

> [patch]SIP channel does not send PeerStatus events for autocreated peers
> ------------------------------------------------------------------------
>
>                 Key: ASTERISK-25950
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25950
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General, Channels/chan_sip/Registration
>    Affects Versions: 12.0.0, 13.0.0, 13.8.2
>         Environment: Any
>            Reporter: Kirill Katsnelson
>
> Autocreated peers on the SIP channel never send any PeerStatus events. Discovered while trying to upgrade from 1.8.8.
> The reason is that autocreated peers are, well, autocreated using the temp_peer() function. There is a stanza in register_verify() which currently (13.8) looks like 
> {code}
>     if (!peer && sip_cfg.autocreatepeer != AUTOPEERS_DISABLED) {
>         /* Create peer if we have autocreate mode enabled */
>         peer = temp_peer(name);
>         if (peer) {
> {code}
> Since the transition to Stasis endpoints for reporting, an endpoint is initialized in the function build_peer(), but not in temp_peer(). So the autocreated peers do not have their `sip_peer.endpoint` field set.
> The temp_peer is a horrific misnomer, because those peers are just good normal peers, only autocreated. They are not inferior in any sense. I am mentioning that because next comes the commit 0b83761, AKA SVN changeset r394795, which attempted to fix crashes caused by the unset reporting endpoint--by simply disabling all events from these peers! I would not be surprised if the author was confused by the name of the function and implemented an incorrect fix.
> The feature has been broken since the introduction of Stasis (12.0?).
> Since  temp_peer() has been also recruited to create an authentication "(Bogus peer)" (which I do not fully understand), it is probably more correct to just allocate an endpoint for autocreated peers at the site of the call to temp_peer in the above code snippet. Additionally, rolling back 0b83761 is also an option, as long as it can be proven that the "(Bogus peer)" never causes any Stasis communication.



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



More information about the asterisk-bugs mailing list