11 jul 2012 kl. 15:42 skrev Daniel-Constantin Mierla:
Hello,
On 7/11/12 3:36 PM, Olle E. Johansson wrote:
11 jul 2012 kl. 15:28 skrev Daniel-Constantin
Mierla:
Hello,
On 7/11/12 3:18 PM, Olle E. Johansson wrote:
Hey,
Been trying to understand the GRUU support in Kamailio. I see that the registrar saves
sip.instance - but I don't see any functions to generate gruu URIs or store them. A
public GRUU is valid forever for a sip.instance and should propably be saved into some
sort of database table. A temporary GRUU is only valid for as long as a device registers
with the same Call-ID.
Please give me pointers to what I have missed!
if you follow the git log for
registrar and usrloc module during 3.3 development you will spot quicker the related parts
of code.
Will do... But you know my cravings for documentation .-)
this is
more devel insight documentation, not much to affect the users.
The public gruu is built based on sip.instance
value, as recommended by rfc, therefore is no need to store anything else.
So how
do I route a SIP request to a public GRUU outside or inside of a dialog?
lookup(location) does automatically the logic - for outside of dialog is the same like so
far, no change in config.
For within dialog, you can use is_gruu() function to detect if the r-uri is gruu and then
you can call lookup(location). If r-uri is a gruu, then lookup(location) searches for an
exact match on temp/pub gruu value and will not add extra branches with the rest of
records for the AoR (if pub-gruu), just updates with the record for the r-uri.
Sweet. Thanks for the response!
So it's all hidden in the user location magic. :-)
/O