Merge commit 'origin/andrei/to_parser_fix'
[sip-router] / etc / sip-router-basic.cfg
1 #
2 # $Id$
3 #
4 # This a very basic config file w aliases and anamed route but
5 # w/o authentication, accounting, database, multi-domain support etc.
6 # Please refer to sip-router.cfg for a more complete example
7 #
8
9 # ----------- global configuration parameters ------------------------
10
11 debug=2         # debug level (cmd line: -dddddddddd)
12 #memdbg=10 # memory debug message level
13 #memlog=10 # memory statistics log level
14 #log_facility=LOG_LOCAL0 # sets the facility used for logging (see syslog(3))
15
16 /* Uncomment these lines to enter debugging mode 
17 fork=no
18 log_stderror=yes
19 */
20
21 check_via=no    # (cmd. line: -v)
22 dns=no          # (cmd. line: -r)
23 rev_dns=no      # (cmd. line: -R)
24 #port=5060
25 #children=4
26 #user=sip-router
27 #group=sip-router
28 #disable_core=yes #disables core dumping
29 #open_fd_limit=1024 # sets the open file descriptors limit
30 #mhomed=yes  # usefull for multihomed hosts, small performance penalty
31 #disable_tcp=yes 
32 #tcp_accept_aliases=yes # accepts the tcp alias via option (see NEWS)
33
34 #
35
36 # ------------------ module loading ----------------------------------
37
38 #loadpath "modules:modules_s"
39 loadpath "/usr/lib/sip-router/modules:/usr/lib/sip-router/modules_s"
40
41 loadmodule "sl"
42 loadmodule "tm"
43 loadmodule "rr"
44 loadmodule "textops"
45 loadmodule "maxfwd"
46 loadmodule "usrloc"
47 loadmodule "registrar"
48 loadmodule "ctl"
49 loadmodule "cfg_rpc"
50
51 # ----------------- setting module-specific parameters ---------------
52
53 # -- usrloc params --
54
55 modparam("usrloc", "db_mode",   0)
56
57 # -- rr params --
58 # add value to ;lr param to make some broken UAs happy
59 modparam("rr", "enable_full_lr", 1)
60
61 # ctl params
62 # by default ctl listens on unixs:/tmp/sip-router_ctl if no other address is
63 # specified in modparams; this is also the default for sercmd
64 modparam("ctl", "binrpc", "unixs:/tmp/sip-router_ctl")
65 # listen on the "standard" fifo for backward compatibility
66 modparam("ctl", "fifo", "fifo:/tmp/sip-router_fifo")
67 # listen on tcp, localhost
68 #modparam("ctl", "binrpc", "tcp:localhost:2046")
69
70 # -------------------------  request routing logic -------------------
71
72 # main routing logic
73
74 route{
75
76         # initial sanity checks -- messages with
77         # max_forwards==0, or excessively long requests
78         if (!mf_process_maxfwd_header("10")) {
79                 sl_reply("483","Too Many Hops");
80                 break;
81         }
82         if (msg:len >=  4096 ) {
83                 sl_reply("513", "Message too big");
84                 break;
85         }
86
87         # we record-route all messages -- to make sure that
88         # subsequent messages will go through our proxy; that's
89         # particularly good if upstream and downstream entities
90         # use different transport protocol
91         if (!method=="REGISTER") record_route();
92
93         # subsequent messages withing a dialog should take the
94         # path determined by record-routing
95         if (loose_route()) {
96                 # mark routing logic in request
97                 append_hf("P-hint: rr-enforced\r\n");
98                 route(FORWARD);
99                 break;
100         }
101
102         if (!uri==myself) {
103                 # mark routing logic in request
104                 append_hf("P-hint: outbound\r\n");
105                 route(FORWARD);
106                 break;
107         }
108
109         # if the request is for other domain use UsrLoc
110         # (in case, it does not work, use the following command
111         # with proper names and addresses in it)
112         if (uri==myself) {
113
114                 if (method=="REGISTER") {
115                         save_contacts("location");
116                         break;
117                 }
118
119                 # native SIP destinations are handled using our USRLOC DB
120                 if (!lookup_contacts("location")) {
121                         sl_reply("404", "Not Found");
122                         break;
123                 }
124                 append_hf("P-hint: usrloc applied\r\n");
125         }
126         route(FORWARD);
127 }
128
129 route[FORWARD]
130 {
131         # send it out now; use stateful forwarding as it works reliably
132         # even for UDP2TCP
133         if (!t_relay()) {
134                 sl_reply_error();
135         }
136 }
137