Hi,
I've got an installation that is still running Kamailio 1.5.x. Yes, I know: "They're running WHAT?" As far as I'm concerned, it was EOL'd in early 2010. Nevertheless, that doesn't stop the customer from running it. They're probably the most change-resistant customer in the history of IP telecom, and, knowing this industry, that's a high bar. There's not much I can do about it.
Anyway, I have a bit of a mystery:
GW Proxy PBX ==================================================
------- INVITE ------>
<---- 100 Trying ----
-------- INVITE -------->
<------ 100 Trying ------
<- 503 Service Unavailable
---------- ACK --------->
<- 500 Service Una...
-------- ACK -------->
There is no basis in the configuration for the translation of the "503 Service Unavailable" reply to "500 Service Unavailable", so I'm thinking it has to be rooted in some default module behaviour.
Any insight would be appreciated!
-- Alex
Hi Alex,
RFC 3261, section "6. Choosing the best response" states:
"A proxy which receives a 503 (Service Unavailable) response SHOULD NOT forward it upstream unless it can determine that any subsequent requests it might proxy will also generate a 503. In other words, forwarding a 503 means that the proxy knows it cannot service any requests, not just the one for the Request- URI in the request which generated the 503. If the only response that was received is a 503, the proxy SHOULD generate a 500 response and forward that upstream."
So Kamailio (the TM module) is doing right there. In recent versions of kamailio the TM module has a remap_503_500 parameter to control this behavior ( http://www.kamailio.org/docs/modules/devel/modules/tm.html#remap_503_500), but not in the 1.5.x branch (http://kamailio.org/docs/modules/1.5.x/tm.html ).
Hope this helps...to convince your customer to upgrade ;-)
Cheers,
Federico
On Thu, Apr 14, 2016 at 4:14 AM, Alex Balashov abalashov@evaristesys.com wrote:
Hi,
I've got an installation that is still running Kamailio 1.5.x. Yes, I know: "They're running WHAT?" As far as I'm concerned, it was EOL'd in early 2010. Nevertheless, that doesn't stop the customer from running it. They're probably the most change-resistant customer in the history of IP telecom, and, knowing this industry, that's a high bar. There's not much I can do about it.
Anyway, I have a bit of a mystery:
GW Proxy PBX
------- INVITE ------>
<---- 100 Trying ----
-------- INVITE --------> <------ 100 Trying ------ <- 503 Service Unavailable ---------- ACK --------->
<- 500 Service Una...
-------- ACK -------->
There is no basis in the configuration for the translation of the "503 Service Unavailable" reply to "500 Service Unavailable", so I'm thinking it has to be rooted in some default module behaviour.
Any insight would be appreciated!
-- Alex
-- Alex Balashov | Principal | Evariste Systems LLC 1447 Peachtree Street NE, Suite 700 Atlanta, GA 30309 United States
Tel: +1-800-250-5920 (toll-free) / +1-678-954-0671 (direct) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Federico,
Very nice find! Subtle, inspired! I had figured it as a module quirk rather than a standards-mandated behaviour. Now that you mention it, I do, of course, remember seeing that remap_503_500 parameter somewhere, but I never made the connection. It was driving me insane.
Anyway, thank you for the enlightenment. I really appreciate it. If you'll be at Kamailio World, I definitely owe you a beer.
-- Alex
My pleasure Alex :)
See you in Berlin!
Federico
On Thu, Apr 14, 2016 at 7:34 AM, Alex Balashov abalashov@evaristesys.com wrote:
Federico,
Very nice find! Subtle, inspired! I had figured it as a module quirk rather than a standards-mandated behaviour. Now that you mention it, I do, of course, remember seeing that remap_503_500 parameter somewhere, but I never made the connection. It was driving me insane.
Anyway, thank you for the enlightenment. I really appreciate it. If you'll be at Kamailio World, I definitely owe you a beer.
-- Alex
-- Alex Balashov | Principal | Evariste Systems LLC 1447 Peachtree Street NE, Suite 700 Atlanta, GA 30309 United States
Tel: +1-800-250-5920 (toll-free) / +1-678-954-0671 (direct) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
This can probably still be "overridden" manually in a failure_route[], even though it's not the prettiest option. e.g.
failure_route[1] { ...
if(t_check_status("503")) { t_reply("503", "Service Unavailable"); exit; } }
Or am I missing something?
Never tried, but looks like it could work, at least in the "modern" code.
Cheers,
Federico
On Thu, Apr 14, 2016 at 8:53 AM, Alex Balashov abalashov@evaristesys.com wrote:
This can probably still be "overridden" manually in a failure_route[], even though it's not the prettiest option. e.g.
failure_route[1] { ...
if(t_check_status("503")) { t_reply("503", "Service Unavailable"); exit; } }
Or am I missing something?
-- Alex Balashov | Principal | Evariste Systems LLC 1447 Peachtree Street NE, Suite 700 Atlanta, GA 30309 United States
Tel: +1-800-250-5920 (toll-free) / +1-678-954-0671 (direct) Web: http://www.evaristesys.com/, http://www.csrpswitch.com/
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users