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. :-)