[asterisk-dev] uncached realtime sip friends cannot set transport-protocol in sipregs
Walter Doekes
walter+asterisk-dev at osso.nl
Wed Sep 7 04:43:24 CDT 2011
>> In either case, the transport from the R-URI is *not* used to determine
>> transport protocol.
>
> Thank you for a very detailed mail. The only part missing is to document what's actually stored in the database, but since the INVITE actually had the parrameter, I think you are wrong with the assumption above that the full URI is not stored in realtime. I think it is.
But why would you think that?
There is absolutely nothing ambiguous about this IF rtcachefriends THEN
no fullcontact:
realtime_update_peer(p->name, &p->addr, p->username, rtcachefriends ?
p->fullcontact : NULL, p->useragent, expire, p->deprecated_username,
p->lastms);
And up to this date no one has been able to explain to me why that IF
exists...
> The problem is that when loading the peer, the transport parameter is not parsed and used.
That's the other problem indeed. And you only notice this one when you
have rtcachefriends=yes OR only a single asterisk UA (where you profit
from the fullcontact storage in astdb)
As far as what's stored in the database (sipregs, not astdb): it's
ipaddr and port (and fullcontact if rtcachefriends=yes).
But. Adding a transport-column to sipregs is starting to seem logical
to me (option (a) from my first post). The fullcontact can contain
whatever it likes (e.g. a nice RFC1918 address) and the
ipaddr+port+transport columns shall contain the actual details that
asterisk should use to connect.
(This means that astdb should then also get and use that new transport
column.)
Regards,
Walter Doekes
OSSO B.V.
More information about the asterisk-dev
mailing list