#520 Dialog topology_hiding does not restore RR for prov replies

1.8.x
closed-fixed
modules (454)
7
2012-05-09
2012-05-04
Ryan Bullock
No

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.
svnrevision: 2:8890M
@(#) $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

Thanks!

Discussion

    • priority: 5 --> 7
    • assigned_to: nobody --> vladut-paiu
    • status: open --> open-accepted
     
  • Hello Ryan,

    I was just browsing RFC 3261 to refresh my memory, and in the UAS behavior section for dialogs, I see that the UAS MUST add the Record-Route headers only for 2xx replies that confirm a dialog. I couldn't really find any specifics for 1xx replies.

    Even so, I tend to say you are right, and requests generated for early dialogs should still follow the RR path, even though the Route Set is still not definitive.
    Please try the attached patch and see if it fixes your issues.

    Regards,
    Vlad

     
  • Ryan Bullock
    Ryan Bullock
    2012-05-04

    Thanks for the patch Vlad.

    I will test this out early next week and see if it fixes the odd PRACK behavior that I was seeing.

     
  • Ryan Bullock
    Ryan Bullock
    2012-05-09

    Tested the patch and it seems to work well. Provisional responses have the Record-Route header restored and PRACKs follow the correct path.

     
  • Hi Ryan,

    Thanks for testing.
    Patch was committed on 1.8 and trunk branches.

    Regards,
    Vlad

     
    • status: open-accepted --> closed-fixed