1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #
- # $Id$
- #
- # this example shows how to use forking on failure
- #
- log_stderror=1
- fork=no
- listen=192.168.2.16
- debug=3
- # ------------------ module loading ----------------------------------
- # Uncomment this if you want to use SQL database
- loadmodule "modules/tm/tm.so"
- loadmodule "modules/sl/sl.so"
- loadmodule "modules/maxfwd/maxfwd.so"
- # ------------------------- request routing logic -------------------
- # main routing logic
- route{
- # initial sanity checks -- messages with
- # max_forwards==0, or excessively long requests
- if (!mf_process_maxfwd_header("10")) {
- sl_send_reply("483","Too Many Hops");
- break;
- };
- if (len_gt( max_len )) {
- sl_send_reply("513", "Message too big");
- break;
- };
- /* skip register for testing purposes */
- if (method=="REGISTER") { sl_send_reply("200", "ok"); break; };
- if (!method=="ACK")
- log(1, "forwarding now to primary destination\n");
- if (method=="INVITE") {
- rewriteuri("sip:[email protected]:5064");
- # if transaction broken, try other an alternative
- # route
- t_on_failure("1");
- # if a provisional came, stop alternating
- t_on_reply("1");
- };
- t_relay();
- }
- failure_route[1] {
- log(1, "trying at alternate destination\n");
- append_branch("sip:[email protected]:5064");
- t_relay();
- }
- onreply_route[1] {
- log(1, "reply came in\n");
- if (status=~"18[0-9]") {
- log(1, "provisional -- resetting negative failure\n");
- t_on_failure("0");
- };
- }
|