[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