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.