Hi,

I'm setting up multiple OpenSER proxies in different locations to server a SIP domain. The proxies use a shared location database so they always know where to send requests to the client when an incoming call hits either one.
The clients have the outbound proxy set to whichever one is closest to them. The problem is that because the clients are NAT they do not receive the request if the proxy IP that sends it is not the same as the one they have set as the outbound proxy. The NAT will reject the request because it does not arrive from the same IP that the connection was established to.

How can I make OpenSER relay requests to the "home proxy" of the user so that this can then forward it to the client? I have added an "ob_proxy" column to the subscriber table and tried using avp_db_load to get this value for use in a t_relay() but I'm getting errors in OpenSER.

With the following config:

modparam("avpops","avp_url","mysql://user:pass@localhost/openser")
modparam("avpops", "avp_table", "dummy")
modparam("avpops","db_scheme",
       "scheme1:username_col=username;value_col=ob_proxy;table=subscriber")

avp_db_load("$to","$avp(s:ob_proxy)/subscriber");

I'm getting errors in Openser log:

/usr/local/sbin/openser[15470]: ERROR:mysql:db_mysql_submit_query: driver error: Unknown column 'value' in 'field list'
/usr/local/sbin/openser[15470]: ERROR:mysql:db_mysql_query: error while submitting query
/usr/local/sbin/openser[15470]: ERROR:avpops:ops_dbload_avps: db_load failed


Does anyone know how to fix this or is there a better way of doing it?