Module: sip-router Branch: master Commit: 86d706bd4a1e31160883a4f094f3e04f9380de04 URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=86d706bd...
Author: Carsten Bock carsten@ng-voice.com Committer: Carsten Bock carsten@ng-voice.com Date: Fri May 3 18:45:07 2013 +0200
Make XML-RCP configurable in example scripts - Improvement: Automatically enable TCP, if XML-RPC is requested - Improvement: Allow the configuration of TCP-Children (especially for XML-RPC) - Improvement: Add missing configuration information
---
examples/icscf/icscf.cfg | 12 ++++++++---- examples/icscf/kamailio.cfg | 27 ++++++++++++++++++++++----- examples/pcscf/kamailio.cfg | 35 ++++++++++++++++++++++++++++++++--- examples/pcscf/pcscf.cfg | 23 ++++++++++++++++++++++- examples/scscf/kamailio.cfg | 33 +++++++++++++++++++++++++++------ examples/scscf/scscf.cfg | 13 ++++++++++++- 6 files changed, 123 insertions(+), 20 deletions(-)
diff --git a/examples/icscf/icscf.cfg b/examples/icscf/icscf.cfg index e782557..a8cea37 100644 --- a/examples/icscf/icscf.cfg +++ b/examples/icscf/icscf.cfg @@ -17,16 +17,20 @@ # Set a forced CX/DX-Peer, do not try to find one #!define CXDX_FORCED_PEER "hss.kamailio-ims.org"
+# Allowed IPs for XML-RPC-Queries +#!define XMLRPC_WHITELIST_1 "127.0.0.1" +##!define XMLRPC_WHITELIST_2 "127.0.0.1" +##!define XMLRPC_WHITELIST_3 "127.0.0.1" + # *** To run in debug mode: # - define WITH_DEBUG # -# *** To enable TLS support execute: -# - adjust CFGDIR/tls.cfg as needed -# - define WITH_TLS +# *** To enable TCP support execute: +# - define WITH_TCP # # *** To enable XMLRPC support execute: # - define WITH_XMLRPC -# - adjust route[XMLRPC] for access policy +# - this will automagically enable TCP # # *** To enable a Homer SIP-Capter-Node: # - define CAPTURE_NODE with a proper address diff --git a/examples/icscf/kamailio.cfg b/examples/icscf/kamailio.cfg index c68f83f..c66cb25 100644 --- a/examples/icscf/kamailio.cfg +++ b/examples/icscf/kamailio.cfg @@ -60,16 +60,23 @@ dns_srv_lb=yes # Always: Also try IPv6: dns_try_ipv6=yes
-#!ifdef WITH_TLS +#!ifdef WITH_XMLRPC +#!ifndef WITH_TCP #!define WITH_TCP -enable_tls=yes +#!endif +#!ifndef TCP_PROCESSES +# Number of TCP Processes +#!define TCP_PROCESSES 3 +#!endif #!endif
-/* uncomment the next line to disable TCP (default on) */ #!ifdef WITH_TCP # life time of TCP connection when there is no traffic # - a bit higher than registration expires to cope with UA behind NAT tcp_connection_lifetime=3615 +#!ifdef TCP_PROCESSES +tcp_children=TCP_PROCESSES +#!endif #!else disable_tcp=yes #!endif @@ -260,8 +267,18 @@ route[REQINIT] { ###################################################################### #!ifdef WITH_XMLRPC route[XMLRPC] { - # allow XMLRPC from localhost - if ((method=="POST" || method=="GET") && (src_ip==127.0.0.1)) { + if ((method=="POST" || method=="GET") +#!ifdef XMLRPC_WHITELIST_1 +&& ((src_ip == XMLRPC_WHITELIST_1) +#!ifdef XMLRPC_WHITELIST_2 + || (src_ip == XMLRPC_WHITELIST_2) +#!endif +#!ifdef XMLRPC_WHITELIST_3 + || (src_ip == XMLRPC_WHITELIST_3) +#!endif +) +#!endif +) { # close connection only for xmlrpclib user agents (there is a bug in # xmlrpclib: it waits for EOF before interpreting the response). if ($hdr(User-Agent) =~ "xmlrpclib") diff --git a/examples/pcscf/kamailio.cfg b/examples/pcscf/kamailio.cfg index 8daf8b1..b15b4c0 100644 --- a/examples/pcscf/kamailio.cfg +++ b/examples/pcscf/kamailio.cfg @@ -90,10 +90,19 @@ auto_aliases=no #!ifndef WITH_TCP #!define WITH_TCP #!endif - enable_tls=yes #!endif
+#!ifdef WITH_XMLRPC +#!ifndef WITH_TCP +#!define WITH_TCP +#!endif +#!ifndef TCP_PROCESSES +# Number of TCP Processes +#!define TCP_PROCESSES 3 +#!endif +#!endif + # Check, if NAT is enabled (in case you want to Force all calls through the RTPProxy) #!ifdef FORCE_RTPRELAY #!ifndef WITH_NAT @@ -101,6 +110,13 @@ enable_tls=yes #!endif #!endif
+# Check, if NAT is enabled (in case you want to Force all calls through the RTPProxy) +#!ifdef WITH_RTPIPV4 +#!ifndef WITH_NAT +#!define WITH_NAT +#!endif +#!endif + #!ifdef WITH_TCP # life time of TCP connection when there is no traffic # - a bit higher than registration expires to cope with UA behind NAT @@ -115,6 +131,9 @@ tcp_connection_lifetime=3615 tcp_accept_aliases=no # Enable SIP outbound TCP keep-alive using PING-PONG (CRLFCRLF - CRLF). tcp_crlf_ping=yes +#!ifdef TCP_PROCESSES +tcp_children=TCP_PROCESSES +#!endif #!else disable_tcp=yes #!endif @@ -455,8 +474,18 @@ route[REQINIT] { ###################################################################### #!ifdef WITH_XMLRPC route[XMLRPC] { - # allow XMLRPC from localhost - if ((method=="POST" || method=="GET") && (src_ip==127.0.0.1)) { + if ((method=="POST" || method=="GET") +#!ifdef XMLRPC_WHITELIST_1 +&& ((src_ip == XMLRPC_WHITELIST_1) +#!ifdef XMLRPC_WHITELIST_2 + || (src_ip == XMLRPC_WHITELIST_2) +#!endif +#!ifdef XMLRPC_WHITELIST_3 + || (src_ip == XMLRPC_WHITELIST_3) +#!endif +) +#!endif +) { # close connection only for xmlrpclib user agents (there is a bug in # xmlrpclib: it waits for EOF before interpreting the response). if ($hdr(User-Agent) =~ "xmlrpclib") diff --git a/examples/pcscf/pcscf.cfg b/examples/pcscf/pcscf.cfg index 69c8cb8..5e38d7f 100644 --- a/examples/pcscf/pcscf.cfg +++ b/examples/pcscf/pcscf.cfg @@ -13,6 +13,11 @@ # SIP-Address of capturing node, if not set, capturing is disabled. ##!define CAPTURE_NODE "sip:10.0.6.1"
+# Allowed IPs for XML-RPC-Queries +#!define XMLRPC_WHITELIST_1 "127.0.0.1" +##!define XMLRPC_WHITELIST_2 "127.0.0.1" +##!define XMLRPC_WHITELIST_3 "127.0.0.1" + # IP-Adress(es) of the RTP-Proxy #!define RTPPROXY_ADDRESS "udp:127.0.0.1:22222" # @@ -28,13 +33,25 @@ # - start RTPProxy: # rtpproxy -l _your_public_ip_ -s udp:localhost:7722 # +# *** To force alls calls through the RTP-Proxy +# - this will automagically enable NAT-Traversal +# - define FORCE_RTPRELAY +# +# *** To enable IPv4/IPv6 Translation (RTPProxy) +# - this will automagically enable NAT-Traversal +# - define WITH_RTPIPV4 +# +# *** To enable TCP support execute: +# - define WITH_TCP +# # *** To enable TLS support execute: # - adjust CFGDIR/tls.cfg as needed # - define WITH_TLS +# - this will automagically enable TCP # # *** To enable XMLRPC support execute: # - define WITH_XMLRPC -# - adjust route[XMLRPC] for access policy +# - this will automagically enable TCP # # *** To enable anti-flood detection execute: # - adjust pike and htable=>ipban settings as needed (default is @@ -51,8 +68,12 @@ # Enabled Features for this host: ##!define WITH_DEBUG ##!define WITH_NAT +##!define FORCE_RTPRELAY ##!define WITH_TLS #!define WITH_XMLRPC #!define WITH_ANTIFLOOD ##!define WITH_RX +##!define WITH_TCP +##!define WITH_RTPIPV4 +
diff --git a/examples/scscf/kamailio.cfg b/examples/scscf/kamailio.cfg index 444cd74..d8da8ab 100644 --- a/examples/scscf/kamailio.cfg +++ b/examples/scscf/kamailio.cfg @@ -73,15 +73,23 @@ dns_try_ipv6=yes # Try onle IPv6: dns_cache_flags=6
-#!ifdef WITH_TLS +#!ifdef WITH_XMLRPC +#!ifndef WITH_TCP #!define WITH_TCP -enable_tls=yes +#!endif +#!ifndef TCP_PROCESSES +# Number of TCP Processes +#!define TCP_PROCESSES 3 +#!endif #!endif
#!ifdef WITH_TCP # life time of TCP connection when there is no traffic # - a bit higher than registration expires to cope with UA behind NAT tcp_connection_lifetime=3615 +#!ifdef TCP_PROCESSES +tcp_children=TCP_PROCESSES +#!endif #!else disable_tcp=yes #!endif @@ -286,9 +294,9 @@ modparam("dispatcher", "ds_probing_mode", 1) # - processing of any incoming SIP request starts with this route
route { -#!ifdef WITH_DEBUG +##!ifdef WITH_DEBUG xlog("L_ERR", "$rm ($fu ($si:$sp) to $tu, $ci)\n"); -#!endif +##!endif
# per request initial checks route(REQINIT); @@ -411,8 +419,18 @@ route[subscribe] ###################################################################### #!ifdef WITH_XMLRPC route[XMLRPC] { - # allow XMLRPC from localhost - if ((method=="POST" || method=="GET") && (src_ip==127.0.0.1)) { + if ((method=="POST" || method=="GET") +#!ifdef XMLRPC_WHITELIST_1 +&& ((src_ip == XMLRPC_WHITELIST_1) +#!ifdef XMLRPC_WHITELIST_2 + || (src_ip == XMLRPC_WHITELIST_2) +#!endif +#!ifdef XMLRPC_WHITELIST_3 + || (src_ip == XMLRPC_WHITELIST_3) +#!endif +) +#!endif +) { # close connection only for xmlrpclib user agents (there is a bug in # xmlrpclib: it waits for EOF before interpreting the response). if ($hdr(User-Agent) =~ "xmlrpclib") @@ -463,8 +481,11 @@ route[REGISTER] { exit; } } else { + xlog("L_ERR", "Auth succeeded\n"); + setdebug("9"); # We need to check if this user is registered or not if (!impu_registered("location")) { + xlog("L_ERR", "Not REGISTERED\n"); save("location"); if ($avp(saa_return_code) == 1) { isc_match_filter_reg("0","location"); diff --git a/examples/scscf/scscf.cfg b/examples/scscf/scscf.cfg index 5da0b25..b1ffdc1 100644 --- a/examples/scscf/scscf.cfg +++ b/examples/scscf/scscf.cfg @@ -26,14 +26,25 @@ # Let the HSS decide ##!define REG_AUTH_DEFAULT_ALG "HSS-Selected"
+# Number of TCP Processes +#!define TCP_PROCESSES 3 + +# Allowed IPs for XML-RPC-Queries +#!define XMLRPC_WHITELIST_1 "127.0.0.1" +##!define XMLRPC_WHITELIST_2 "127.0.0.1" +##!define XMLRPC_WHITELIST_3 "127.0.0.1" + # Several features can be enabled using '#!define WITH_FEATURE' directives: # # *** To run in debug mode: # - define WITH_DEBUG # +# *** To enable TCP support execute: +# - define WITH_TCP +# # *** To enable XMLRPC support execute: # - define WITH_XMLRPC -# - adjust route[XMLRPC] for access policy +# - this will automagically enable TCP # # *** To enable basic dialplan support: # - define WITH_DIALPLAN