You need to extend both usrloc and nathelper. usrloc has to pass both contact and received fields.

The data passed from usrloc to nathelper is done by printing in a buffer the size of the field (as integer, in 4 bytes) followed by the field value. Both modules must use the same order of the fields (usrloc to write, nathelper to read). usrloc must be extended in both functions: the one fetching from database and the one fetching from memory.

In usrloc, you can look at how path is added, same should be done for received. In nathelper, if path is not set, then the destination is taken from received if set, if not from contact.

The new parameter might not be needed afterwards, as the r-uri for options should be always the contact address.


Reply to this email directly or view it on GitHub.