Browse Source

KAZOO-4979 handle multiple record routes in same header (#97)

4.0
lazedo 9 years ago
committed by bitbashing
parent
commit
ba327638c0
1 changed files with 13 additions and 10 deletions
  1. +13
    -10
      kamailio/nat-traversal-role.cfg

+ 13
- 10
kamailio/nat-traversal-role.cfg View File

@ -9,16 +9,19 @@ modparam("nathelper", "sipping_from", "sip:sipcheck@MY_HOSTNAME")
route[NAT_TEST_AND_CORRECT]
{
if (is_present_hf("Record-Route")) {
$var(i) = $rr_count;
## We witnessed this loop execute more than
## 500 times, probably do to inability to
## allocate rr_count or the parser. Either
## way ensure the while loop is not unbound'd
while($var(i) > 0 && $var(i) < 30) {
$var(i) = $var(i) - 1;
$var(rr) = $(hdr(Record-Route)[$var(i)]);
if (!is_myself("$(var(rr){nameaddr.uri})")) {
setflag(FLAG_SKIP_NAT_CORRECTION);
$var(i) = 0;
$var(rr_count) = $rr_count;
while($var(i) < $var(rr_count)) {
$var(rr_base) = $(hdr(Record-Route)[$var(i)]);
$var(rr_idx) = 0;
$var(rr) = $(var(rr_base){s.select,$var(rr_idx),,});
while($var(rr) != $null && $var(rr) != "") {
$var(i) = $var(i) + 1;
if (!is_myself("$(var(rr){nameaddr.uri})")) {
setflag(FLAG_SKIP_NAT_CORRECTION);
}
$var(rr_idx) = $var(rr_idx) + 1;
$var(rr) = $(var(rr_base){s.select,$var(rr_idx),,});
}
}
} else if ($Rp == "5080") {


Loading…
Cancel
Save