The idea is to use SRV records instead of a dispatcher by setting $rd to a DNS
SRV enabled host (with all hosts having the same prio and weight).
Problem is that when authentication is required the flow is as follows (with 2
hosts):
1:
UAC INVITE/REGISTER -> LB -> SIP0
SIP0 401 with nonce1 challenge -> LB -> UAC
UAC ACK -> LB -> SIP0
2:
UAC INVITE/REGISTER with nonce1 response -> LB -> SIP1
SIP1 401 with nonce2 challenge -> LB -> UAC
UACK ACK -> LB -> SIP1
3:
UAC INVITE/REGISTER with nonce2 response -> LB -> SIP0
SIP0 401 with nonce1 challenge -> LB -> UAC
UACK ACK -> LB -> SIP0
4: UAC either gives up or goes to 2
Using the dispatcher module this can be solved by using a hash over either
from/to/request URI. I can't find any hints for forcing the dialog to 1
backend.
BTW the idea is to keep the loadbalancing proxy as simple/stupid as possible
(no db), the backends have a shared db.