Hi Bogdan,
In another thread, I talked about implementing a ring-both feature. Call one user would ring another user as well as the registered user. One way would be to do a lookup on one user, save all ruris and associated dst_uris to avps. Perhaps one avp for both ruri and dst_uri. Push the second user, another lookup, save the ruris and dst_uris. Then reload all avps.
I don't think the logic can be implemented in branch route because it is only called right before t_relay.
Any thoughts?
Thanks, Richard
On 8/28/05, Bogdan-Andrei Iancu bogdan@voice-system.ro wrote:
Hi Richard,
that's right - you can apply in branch route exclusively per-branch changes.
regards, bogdan
Richard Z wrote:
So each branch route can have different sip message going out, e.g. different sdp value for different dst_uri?
On 8/27/05, Bogdan-Andrei Iancu bogdan@voice-system.ro wrote:
Hi Richard,
the variables and the functions handles the dst_uri of the request (and not also of the branches); what you can do is to combine their usage with the branch route (in order to inspect the dst_uri of all branches).
regards, bogdan
Richard Z wrote:
Great!
Can the change handle multiple registration of an address?
Thanks, Richard
On 8/26/05, Daniel-Constantin Mierla daniel@voice-system.ro wrote:
Hello,
latest openser version from cvs includes a set of new functions (core and avpops) and pseudo-variable which allow to access and manage the value of dst_uri.
The dst_uri field contains the address of the next hop, when the routing does not follow R-URI address. Such cases are Route header driven routing (dst_uri is set after loose_route() to the value of next Route header), contacts behind nat (dst_uri is set to the address of nat after lookup("location")) or dispatcher usage. The dst_uri has higher priority in routing over R-URI but less than explicit parameters in relaying functions (e.g., t_relay_to*()).
The field was invisible from the script but it proved in the discussions on the mailing list to be important to access it. For example, to detect whether the caller and callee are behind same nat. Also, it can be checked in case of preloaded Route header to secure relaying to special resources (e.g., pstn gateway). With the new branch_route the value of dst_uri can be checked for each branch.
A short summary of what was added:
- core functions:
- setdsturi("uri") - set the value of dst_uri
- resetdsturi() - reset the value of dst_uri
- isdsturiset() - test if the value of dst_uri is null
- pseudo-variables
- $du - value of dst_uri (added long time ago)
- $dd - domain of dst_uri
- $dp - port of dst_uri
- $dP - transport protocol of dst_uri
- avpops changes
- avp_write() can read the value of dst_uri and write it in an avp
- avp_pushto() can write the value of an avp in dst_uri
Tutorials and dokuwiki will be updated soon.
Daniel
Devel mailing list Devel@openser.org http://openser.org/cgi-bin/mailman/listinfo/devel
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users