Hi,

I want to share my findings in making work Freeswitch as SBC when Kamailio is doing serial forking.  FS doesnt take any routing decision, it receives the R-URI from Kamailio.

After the 1st route failed, I was receiving "482 Request merged" for the 2nd route. That was because the SIP transaction "lives" for 4 seconds in FS after receiving the ACK for a 4xx, 5xx, 6xx reply (only when using UDP).  Also, Kamailio takes less than 1 second to try a new route for the same call, thus making FS generates the 482 message.


To adapt both to my needs. I set in external.xml the timer T4 to 2500 (default is 4000):

<settings>
....
      <param name="timer-T4" value="2500" />
</settings>


In Kamailio, I'm executing the sleep function (from cfgutils module) in the failure_route block:


failure_route[2] {

...Get your new ruri only for some reply codes...

          avp_pushto("$ruri", "$(avp(i:1511))");
          append_branch();
          t_on_failure("2"); #In case of a new failure this block will be executed again
          sleep("3");
          t_relay();
          return;
}



May be it's not the best solution but it could be helpful for someone else.

Best regards,

Humberto



Faster Hotmail access now on the new MSN homepage.