Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
tutorials:alias-example [2011/04/22 20:26] 87.93.81.21 |
tutorials:alias-example [2013/06/08 08:42] (current) jh [In-Dialog Requests] |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Introduction ===== | ===== Introduction ===== | ||
- | The benefits | + | The benefit |
- | + | ||
- | * Request-URI in requests to UAs behind NATs is always what UAs expect | + | |
- | * Re-use of tcp sessions between proxy and UAs (optional) | + | |
- | + | ||
- | In the example below only functions related to signaling are shown. | + | |
===== Non-Register Initial Requests ===== | ===== Non-Register Initial Requests ===== | ||
Line 50: | Line 44: | ||
===== Register Requests ===== | ===== Register Requests ===== | ||
- | Call fix_nated_register() on register requests, if registering | + | Call fix_nated_register() on register requests, if registering |
- | behind | + | behind |
< | < | ||
route [REGISTER_REQUESTS] { | route [REGISTER_REQUESTS] { | ||
... | ... | ||
- | if (isflagset(FROM_NATED) || (proto == TCP) || (proto == TLS)) { | + | if (isflagset(FROM_NATED) || (proto |
fix_nated_register(); | fix_nated_register(); | ||
if (isflagset(FROM_NATED)) { | if (isflagset(FROM_NATED)) { | ||
Line 69: | Line 63: | ||
===== In-Dialog Requests ===== | ===== In-Dialog Requests ===== | ||
- | Call add_contact_alias() on all in-dialog requests that come from behind NAT or (if you want re-use of TCP sessions) | + | Call add_contact_alias() on all in-dialog requests that come from behind NAT or that don't come |
- | from another proxy. | + | from another proxy and transport protocol is not UDP. Call handle_ruri_alias() for all in-dialog requests before |
t_relaying them to UAs. Next hop is an UA if loose_route() | t_relaying them to UAs. Next hop is an UA if loose_route() | ||
didn't set $du. If next hop is a proxy, set TO_PROXY flag. | didn't set $du. If next hop is a proxy, set TO_PROXY flag. | ||
Line 77: | Line 71: | ||
route [IN_DIALOG_REQUESTS] { | route [IN_DIALOG_REQUESTS] { | ||
- | | + | if (REQUEST_COMES_FROM_BEHIND_NAT |
- | | + | |
- | route(ADD_CONTACT_ALIAS); | + | |
- | } | + | |
- | # Choose this test (and delete the previous) if you want re-use of TCP sessions | + | |
- | if (@via[2] | + | |
route(ADD_CONTACT_ALIAS); | route(ADD_CONTACT_ALIAS); | ||
} | } |