On Mon, Apr 13, 2009 at 12:15 PM, M. Ranganathan <[email protected]> wrote:
> On Mon, Apr 13, 2009 at 9:45 AM, Robert Joly <[email protected]> wrote:
>>> Hello,
>>>
>>> For a HA system, I would like to follow a heuristic for call
>>> routing of inbound calls. I currently have it set up to route
>>> the call to the highest Priority record as returned by DNS. A
>>> better strategy may be to go by number of active calls in a
>>> relay instance. Using the latter approach, I can query the
>>> relay on each server for the number of active Syms and try to
>>> load balance ( i.e. send the call to the least loaded relay).
>>> This would be stepping outside of normal SIP mechanisms (i.e.
>>> would not use DNS record priority) but would increase relay
>>> utilization and scalability. I feel this would be a better
>>> approach than using DNS to determine where to send the call.
>>>
>>> I assume it is OK to route calls to the secondary server even
>>> when the primary is running ( i.e. for load balancing) but I
>>> thought I'd do a quick check of this assumption.  Any comments?
>>>
>>
>> What is the motivation for second-guessing the priorities and weights of
>> the SRV record?  There might be valid factors why one would assign
>> priority values to favor one system over the other that go beyond
>> sipXrelay utilization and that sipXbridge can't consider:  WAN b/w,
>> geographical location of system, uplink/downlink quotas, horsepower, ...
>> I would personally be in favor or simply honoring the weight and
>> priority values of the SRV record and trust that are what they are for
>> good reasons.
>>
> Summarizing the discussion ( on phone )  at the request of Scott :
>
> All User Agents in sipx use DNS SRV records to decide where to send
> the request and so should sipxbridge. The algorithm to compare two DNS
> records A and B :
>
> If Record A has higher Priority than Record B then pick record A.
> If Record A and record B have the same priority then let weightA be
> the weight of record A and let weightB be the weight of record B :
> probabilistically pick Record A with probability weightA/( weightA +
> weightB) and record B with probability weightA / ( weightA + weightB).
>
> We discussed random selection vs. deterministic selection for a bit.
> Dale explained that for a large number of relays and calls with a
> random variation in the length of calls, the expected distribution for
> random selection will differ from deterministic selection by no more
> than (number of relays) ^ 0.5. That is random selection will be no
> worse than (number of relays)^0.5 when compared with deterministic
> choice of which relay should handle the call.
>
> I am nervous to demand a proof but I am sure that Dale can provide one
> and can correct me on this assertion if I am wrong.
>
> Ranga
>
>

Forgot to add :

 After running the proxy selection algorithm, sipxbridge will check to
see if a relay exists and will fail over and pick the next available
relay in order when a call. An alarm will be generated when this
failover occurs.


> --
> M. Ranganathan
>



-- 
M. Ranganathan
_______________________________________________
sipx-dev mailing list
[email protected]
List Archive: http://list.sipfoundry.org/archive/sipx-dev
Unsubscribe: http://list.sipfoundry.org/mailman/listinfo/sipx-dev

Reply via email to