I'm experiencing some problems getting 2 Kamailios to work together.
A clients - A kamailio - B kamailio - B clients | the outside world
A and B client may or may not be NATed to their own kamailio instance. A and B kamailio (with forced rtpproxies) are in the same public network. A-kamailio and its clients are essentially a reseller of my services on the B side.
The problem arises when A or B incorrectly flag a message as needing NAT help so either an unnecessary add_contact_alias is added (which seems to happen when putting somebody on hold on an A-client). A-kamailio inserts an alias on the Contact header containing the ip/port of B-kamailio. Trying to resume the call sends the contact with the alias to B-kamailio, which does a handle_ruri_alias and thus sets $du to itself, the party that was on hold will never receive these messages.
The problem I have with add_contact_alias/handle_ruri_alias is that any kamailio in the path will parse these hints whether or not it is actually ment for that kamailio. I'd rather see a scheme that somehow identifies if the added alias was generated locally and thus needs to be handled or can just be ignored. Anybody else got these problems/frustrations and maybe a hint for an other way to tackle this problem?
Off to figure out why uac_test incorrectly flags the onhold process as needing the nat helper...