After calling topology_hiding(), provisional responses (183,180) passed through the proxy do not include the Record-Route header. This is problematic for PRACK support, as clients will send these directly to the proxy doing topology_hiding and bypass any other proxies in the chain.
On another note, these replies also went through another opensips proxy (which had done a record_route, no topology_hiding) and it did not fix-up the provisional replies either. Would it make sense to have opensips check and fix the record-route headers on replies for the case of buggy clients?
I can provide captures for the examples of the missing record-route header on provisional responses if needed.
opensips version info:
version: opensips 1.8.0-beta-notls (x86_64/linux)
flags: STATS: Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, USE_MCAST, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
@(#) $Id: main.c 8772 2012-03-08 11:16:13Z bogdan_iancu $
main.c compiled on 09:49:52 Mar 30 2012 with gcc 4.4.6