|
@@ -51,6 +51,10 @@
|
|
|
# - enable mysql
|
|
|
# - define WITH_ALIASDB
|
|
|
#
|
|
|
+# *** To enable multi-domain support execute:
|
|
|
+# - enable mysql
|
|
|
+# - define WITH_MULTIDOMAIN
|
|
|
+#
|
|
|
# *** To enhance accounting execute:
|
|
|
# - enable mysql
|
|
|
# - define WITH_ACCDB
|
|
@@ -74,6 +78,12 @@
|
|
|
# as: auth_db, acc, usrloc, a.s.o.
|
|
|
#!define DBURL "mysql://openser:openserrw@localhost/openser"
|
|
|
#!endif
|
|
|
+#!ifdef WITH_MULTIDOMAIN
|
|
|
+# - the value for 'use_domain' parameters
|
|
|
+#!define MULTIDOMAIN 1
|
|
|
+#!else
|
|
|
+#!define MULTIDOMAIN 0
|
|
|
+#!endif
|
|
|
|
|
|
####### Global Parameters #########
|
|
|
|
|
@@ -135,10 +145,10 @@ pstn.gw_ip = "" desc "PSTN GW Address"
|
|
|
#set module path
|
|
|
mpath="/usr/local/lib/kamailio/modules_k/:/usr/local/lib/kamailio/modules/"
|
|
|
|
|
|
-/* uncomment next line for MySQL DB support */
|
|
|
#!ifdef WITH_MYSQL
|
|
|
loadmodule "db_mysql.so"
|
|
|
#!endif
|
|
|
+
|
|
|
loadmodule "mi_fifo.so"
|
|
|
loadmodule "kex.so"
|
|
|
loadmodule "tm.so"
|
|
@@ -157,6 +167,7 @@ loadmodule "sanity.so"
|
|
|
loadmodule "ctl.so"
|
|
|
loadmodule "mi_rpc.so"
|
|
|
loadmodule "acc.so"
|
|
|
+
|
|
|
#!ifdef WITH_AUTH
|
|
|
loadmodule "auth.so"
|
|
|
loadmodule "auth_db.so"
|
|
@@ -169,11 +180,10 @@ loadmodule "permissions.so"
|
|
|
loadmodule "alias_db.so"
|
|
|
#!endif
|
|
|
|
|
|
-/* uncomment next line for multi-domain support
|
|
|
- NOTE: a DB (like db_mysql) module must be also loaded
|
|
|
- NOTE: be sure and enable multi-domain support in all used modules
|
|
|
- (see "multi-module params" section ) */
|
|
|
-#loadmodule "domain.so"
|
|
|
+#!ifdef WITH_MULTIDOMAIN
|
|
|
+loadmodule "domain.so"
|
|
|
+#!endif
|
|
|
+
|
|
|
#!ifdef WITH_PRESENCE
|
|
|
loadmodule "presence.so"
|
|
|
loadmodule "presence_xml.so"
|
|
@@ -206,7 +216,7 @@ modparam("rr", "enable_full_lr", 1)
|
|
|
modparam("rr", "append_fromtag", 0)
|
|
|
|
|
|
|
|
|
-# ----- rr params -----
|
|
|
+# ----- registrar params -----
|
|
|
modparam("registrar", "method_filtering", 1)
|
|
|
/* uncomment the next line to disable parallel forking via location */
|
|
|
# modparam("registrar", "append_branches", 0)
|
|
@@ -219,13 +229,14 @@ modparam("registrar", "method_filtering", 1)
|
|
|
in this configuration */
|
|
|
modparam("uri_db", "use_uri_table", 0)
|
|
|
modparam("uri_db", "db_url", "")
|
|
|
+modparam("uri_db", "use_domain", MULTIDOMAIN)
|
|
|
|
|
|
|
|
|
# ----- acc params -----
|
|
|
-/* what sepcial events should be accounted ? */
|
|
|
-modparam("acc", "early_media", 1)
|
|
|
-modparam("acc", "report_ack", 1)
|
|
|
-modparam("acc", "report_cancels", 1)
|
|
|
+/* what special events should be accounted ? */
|
|
|
+modparam("acc", "early_media", 0)
|
|
|
+modparam("acc", "report_ack", 0)
|
|
|
+modparam("acc", "report_cancels", 0)
|
|
|
/* by default ww do not adjust the direct of the sequential requests.
|
|
|
if you enable this parameter, be sure the enable "append_fromtag"
|
|
|
in "rr" module */
|
|
@@ -245,21 +256,25 @@ modparam("acc", "db_extra",
|
|
|
"src_user=$fU;src_domain=$fd;dst_ouser=$tU;dst_user=$rU;dst_domain=$rd")
|
|
|
#!endif
|
|
|
|
|
|
+
|
|
|
# ----- usrloc params -----
|
|
|
/* enable DB persistency for location entries */
|
|
|
#!ifdef WITH_USRLOCDB
|
|
|
-modparam("usrloc", "db_mode", 2)
|
|
|
modparam("usrloc", "db_url", DBURL)
|
|
|
+modparam("usrloc", "db_mode", 2)
|
|
|
+modparam("usrloc", "use_domain", MULTIDOMAIN)
|
|
|
#!endif
|
|
|
|
|
|
+
|
|
|
# ----- auth_db params -----
|
|
|
-/* enable the DB based authentication */
|
|
|
#!ifdef WITH_AUTH
|
|
|
+modparam("auth_db", "db_url", DBURL)
|
|
|
modparam("auth_db", "calculate_ha1", yes)
|
|
|
modparam("auth_db", "password_column", "password")
|
|
|
-modparam("auth_db", "db_url", DBURL)
|
|
|
modparam("auth_db", "load_credentials", "")
|
|
|
+modparam("auth_db", "use_domain", MULTIDOMAIN)
|
|
|
|
|
|
+# ----- permissions params -----
|
|
|
#!ifdef WITH_IPAUTH
|
|
|
modparam("permissions", "db_url", DBURL)
|
|
|
modparam("permissions", "db_mode", 1)
|
|
@@ -267,49 +282,52 @@ modparam("permissions", "db_mode", 1)
|
|
|
|
|
|
#!endif
|
|
|
|
|
|
+
|
|
|
# ----- alias_db params -----
|
|
|
#!ifdef WITH_ALIASDB
|
|
|
modparam("alias_db", "db_url", DBURL)
|
|
|
+modparam("alias_db", "use_domain", MULTIDOMAIN)
|
|
|
#!endif
|
|
|
|
|
|
-# ----- domain params -----
|
|
|
-/* uncomment the following lines to enable multi-domain detection
|
|
|
- support */
|
|
|
-#modparam("domain", "db_url", DBURL)
|
|
|
-#modparam("domain", "db_mode", 1) # Use caching
|
|
|
|
|
|
-
|
|
|
-# ----- multi-module params -----
|
|
|
-/* uncomment the following line if you want to enable multi-domain support
|
|
|
- in the modules (dafault off) */
|
|
|
-#modparam("alias_db|auth_db|usrloc|uri_db", "use_domain", 1)
|
|
|
+# ----- domain params -----
|
|
|
+#!ifdef WITH_MULTIDOMAIN
|
|
|
+modparam("domain", "db_url", DBURL)
|
|
|
+# use caching
|
|
|
+modparam("domain", "db_mode", 1)
|
|
|
+# register callback to match myself condition with domains list
|
|
|
+modparam("domain", "register_myself", 1)
|
|
|
+#!endif
|
|
|
|
|
|
|
|
|
-# ----- presence params -----
|
|
|
-/* enable presence server support */
|
|
|
#!ifdef WITH_PRESENCE
|
|
|
-modparam("presence|presence_xml", "db_url", DBURL)
|
|
|
+# ----- presence params -----
|
|
|
+modparam("presence", "db_url", DBURL)
|
|
|
+
|
|
|
+# ----- presence_xml params -----
|
|
|
+modparam("presence_xml", "db_url", DBURL)
|
|
|
modparam("presence_xml", "force_active", 1)
|
|
|
-modparam("presence", "server_address", "sip:10.0.0.10:5060")
|
|
|
#!endif
|
|
|
|
|
|
+
|
|
|
#!ifdef WITH_NAT
|
|
|
-# ----- rtpproxy -----
|
|
|
+# ----- rtpproxy params -----
|
|
|
modparam("rtpproxy", "rtpproxy_sock", "udp:127.0.0.1:7722")
|
|
|
-# ----- nathelper -----
|
|
|
+
|
|
|
+# ----- nathelper params -----
|
|
|
modparam("nathelper", "natping_interval", 30)
|
|
|
modparam("nathelper", "ping_nated_only", 1)
|
|
|
modparam("nathelper", "sipping_bflag", 7)
|
|
|
modparam("nathelper", "sipping_from", "sip:[email protected]")
|
|
|
-modparam("registrar|nathelper", "received_avp", "$avp(i:80)")
|
|
|
+modparam("nathelper|registrar", "received_avp", "$avp(RECEIVED)")
|
|
|
modparam("usrloc", "nat_bflag", 6)
|
|
|
#!endif
|
|
|
|
|
|
####### Routing Logic ########
|
|
|
|
|
|
|
|
|
-# main request routing logic
|
|
|
-
|
|
|
+# Main SIP request routing logic
|
|
|
+# - processing of any incoming SIP request starts with this route
|
|
|
route {
|
|
|
|
|
|
# per request initial checks
|
|
@@ -432,11 +450,13 @@ route[WITHINDLG] {
|
|
|
}
|
|
|
if ( is_method("ACK") ) {
|
|
|
if ( t_check_trans() ) {
|
|
|
- # non loose-route, but stateful ACK; must be an ACK after a 487 or e.g. 404 from upstream server
|
|
|
+ # no loose-route, but stateful ACK;
|
|
|
+ # must be an ACK after a 487
|
|
|
+ # or e.g. 404 from upstream server
|
|
|
t_relay();
|
|
|
exit;
|
|
|
} else {
|
|
|
- # ACK without matching transaction ... ignore and discard.\n");
|
|
|
+ # ACK without matching transaction ... ignore and discard
|
|
|
exit;
|
|
|
}
|
|
|
}
|
|
@@ -621,8 +641,6 @@ route[RTPPROXY] {
|
|
|
# Routing to foreign domains
|
|
|
route[SIPOUT] {
|
|
|
if (!uri==myself)
|
|
|
- /* replace with following line if multi-domain support is used */
|
|
|
- ##if (!is_uri_host_local())
|
|
|
{
|
|
|
append_hf("P-hint: outbound\r\n");
|
|
|
route(RELAY);
|