[Home]

Summary:ASTERISK-18446: chan_sip rtcachefriends=no loads fullcontact, but doesn't store it, except in astdb
Reporter:Walter Doekes (wdoekes)Labels:
Date Opened:2011-09-07 06:58:07Date Closed:2011-10-12 15:20:25
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Channels/chan_sip/Registration
Versions:10 1.6.2.20 1.8.7.0 Frequency of
Occurrence
Constant
Related
Issues:
is related toASTERISK-17294 [patch] high iowait due to ast_db_put of realtime peers
Environment:Attachments:
Description:See this thread:
http://lists.digium.com/pipermail/asterisk-dev/2011-September/051033.html

Short summary:

when using uncached realtime peers (i.e. rtcachefriends=no), fullcontact is stored in astdb instead of in the sipregs table.

I have two problems with that:
(1) uncached realtime peers shouldn't be in the astdb (see ASTERISK-17294)
(2) there is no reason to store the fullcontact when the friend is cached and *not* store it in sipregs when it is uncached

Focusing on point (2).

There is this code:
{code}
realtime_update_peer(p->name, &p->addr, p->username, rtcachefriends ? p->fullcontact : NULL, p->useragent, expire, p->deprecated_username, p->lastms);
{code}

I propose to replace:
{code}
rtcachefriends ? p->fullcontact : NULL
{code}
with
{code}
p->fullcontact
{code}

For a single UA setup, this will make 0 difference. The fullcontact is stored in the astdb as well and used from there.
For multi-UA setups, the other UAs get access to the fullcontact too, and I can only think of that as an improvement.

Regards,
Walter Doekes
OSSO B.V.
Comments: