Hi,
I wanted to revisit the topic of tsilo dependence on the location service. All three ts_append*() functions have the following quality:
- ts_append(): "performing a contact lookup on the table specified by the domain parameter." - ts_append_by_contact(): "the contact lookup is performed" - ts_append_to(): "performing a contacts lookup on the table specified by the domain parameter"
Why is this extensive coupling to usrloc necessary? This makes it impossible to use `tsilo` in case of providing a push-notification add-on that front-ends an upstream registrar, requiring a kind of local shadow registrar or mid-registrar. What would make more sense is a generic mechanism that allows one to "drip" new contacts into an existing transaction, whether suspended or active.
Kamailio has a mechanism to add more branches to an existing transaction, but the scope of that mechanism is only from *inside* the vantage point of the transaction in question. The key parlour trick of `tsilo` is that it permits dripping new branches into a *different* transaction.
ts_append_to() almost does the trick, providing a target index and label, but it just insists on doing a registrar lookup to source the contacts.
What is really wanted and needed for the downstream PN gateway use-case is a means of extracting contacts from incoming registrations (or other sources, potentially) without storing them in any fashion locally, without using or even loading usrloc, and just throwing them over the fence into a different transaction.
Is this somehow possible by means other than tsilo? Am I overlooking something?
Cheers,
-- Alex