Hello, I'm using OpenSER to make load balancing among a bunch of Asterisk boxes. I whipped up a very simple script that works:
# module stuff goes before here route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
route(1); break; }
route[1] { exec_dset("/usr/local/bin/selectserver.sh"); if (!t_relay()) { sl_reply_error(); }; }
selectserver.sh alters the server in the destination URI to choose from a dynamic pool of servers that's always changing according to a funky proprietary logic of ours. This works just peachy. The problem is OpenSER stays as man-in-the-middle all the time. I'd like it to do a REFER to a random server of our choosing and stay out of the loop from there on. How could I do that?
MAybe you have somewhere record_route() in your script. This causes openser to stay in the route for the whole dialog.
If not, openser stays in the route for first transaction only (INVITE), as the responses are routed using the Via header.
I always thought there was a paramter to tell openser to not insert a via header, but I can't find it now :-(
regards klaus
Juan Carlos Castro y Castro wrote:
Hello, I'm using OpenSER to make load balancing among a bunch of Asterisk boxes. I whipped up a very simple script that works:
# module stuff goes before here route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
route(1); break;
}
route[1] { exec_dset("/usr/local/bin/selectserver.sh"); if (!t_relay()) { sl_reply_error(); }; }
selectserver.sh alters the server in the destination URI to choose from a dynamic pool of servers that's always changing according to a funky proprietary logic of ours. This works just peachy. The problem is OpenSER stays as man-in-the-middle all the time. I'd like it to do a REFER to a random server of our choosing and stay out of the loop from there on. How could I do that?
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
On 10/28/05 10:45, Klaus Darilion wrote:
MAybe you have somewhere record_route() in your script. This causes openser to stay in the route for the whole dialog.
If not, openser stays in the route for first transaction only (INVITE), as the responses are routed using the Via header.
I always thought there was a paramter to tell openser to not insert a via header, but I can't find it now :-(
Although this is not quite RFC compliant, it is a function named 'send' (and its tcp flavor): http://openser.org/dokuwiki/doku.php?id=openser_core_cookbook
Regards, Daniel
regards klaus
Juan Carlos Castro y Castro wrote:
Hello, I'm using OpenSER to make load balancing among a bunch of Asterisk boxes. I whipped up a very simple script that works:
# module stuff goes before here route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); break; };
route(1); break;
}
route[1] { exec_dset("/usr/local/bin/selectserver.sh"); if (!t_relay()) { sl_reply_error(); }; }
selectserver.sh alters the server in the destination URI to choose from a dynamic pool of servers that's always changing according to a funky proprietary logic of ours. This works just peachy. The problem is OpenSER stays as man-in-the-middle all the time. I'd like it to do a REFER to a random server of our choosing and stay out of the loop from there on. How could I do that?
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users