[asterisk-bugs] [JIRA] (ASTERISK-25950) SIP channel does not send PeerStatus events for autocreated peers
Kirill Katsnelson (JIRA)
noreply at issues.asterisk.org
Thu Apr 21 23:05:56 CDT 2016
Kirill Katsnelson created ASTERISK-25950:
--------------------------------------------
Summary: 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/CallCompletionSupplementaryServices
Affects Versions: 13.8.2, 13.0.0, 12.0.0
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
```
if (!peer && sip_cfg.autocreatepeer != AUTOPEERS_DISABLED) {
/* Create peer if we have autocreate mode enabled */
peer = temp_peer(name);
if (peer) {
```
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 pees, 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 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