Hi all, I'm trying to build an Active/Active OpenSer 1.3 cluster with
2 nodes.
All it's working ok for the REGISTER messages throught the use of
t_replicate and add_path, but I've problems with the INVITE messages.
Both servers share the same location table on a PostgreSQL Multimaster
cluster (but that's irrelevant, the PostgreSQL cluster I mean...),
using db_mode = 2
An that's the logic I used:
- On REGISTER ->>
- Auth Request
- NAT ?
- add_path
- t_replicate(oser2)
- On INVITE ->>
- Auth Request
- lookup
- Load prefs from DB
- relay
The problem I'm having is that the lookup function changes the RURI of
the message on node1 BEFORE taking into account the "Path:" element
present inside the AoR, so when the INVITE gets forwarded to node2
(where the NATed UAC it's registered), node2 deny the relaying of the
message because $rD of the RURI it's not local (remember that the RURI
whas changed on node1).
Is there any way to know on node1 that the INVITE request MUST obey
the "Path:" so I could to something like:
$old_ru = $ru
lookup("location")
if(path_exists())
{
$ru = $old_ru
}
...
t_relay()
??
Any other aproach ?
Best regards
--
Raúl Alexis Betancor Santana
Dimensión Virtual S.L.