[OpenSIPS-Devel] ENUM lookups, q-value, and serialize_branches()

Phil Vandry vandry at TZoNE.ORG
Sat Oct 18 21:39:24 CEST 2008


On Sat, 18 Oct 2008 15:18:59 +0200, Klaus Darilion wrote:
> The difference is recognizable if you use multiple service types. The 
[...]
> In this case the client must use SIP to setup the call.

Good point.

> Probably we can't tell of serial/parallel forking based on ENUM NAPTRs 
> is against the RFC. Nevertheless, as people use it, the proxy should 
> support both methods.

Then I suggest the following:

- Discard all NAPTR records with higher Order once we find one with
  matching flags & service (the RFC is pretty clear about that)

- Add an optional parameter to control how to handle Preference:

  - (the default and the current behaviour) assign equal q-values to
    equal Preference, lower q-values to less preferred records.

  - assign lower q-values to all other records, even when the Preference
    is the same

  - consider only one result (no branches)

Another possibility is a weighted randomizer. If p[x] is the Preference
of record x then the probability that record x is selected is
1 / ( p[x] Σ(1/p[i]) ). I don't know if anyone really wants that :-)

If you agree with this then I will implement it.

-Phil



More information about the Devel mailing list