瀏覽代碼

misc/examples/ims/pcscf: Add support for IPSec in the P-CSCF examples

Tsvetomir Dimitrov 7 年之前
父節點
當前提交
c4daee8635
共有 2 個文件被更改,包括 21 次插入2 次删除
  1. 15 1
      misc/examples/ims/pcscf/kamailio.cfg
  2. 6 1
      misc/examples/ims/pcscf/pcscf.cfg.sample

+ 15 - 1
misc/examples/ims/pcscf/kamailio.cfg

@@ -162,6 +162,9 @@ loadmodule "statistics"
 loadmodule "ims_dialog"
 loadmodule "ims_dialog"
 loadmodule "ims_usrloc_pcscf" 
 loadmodule "ims_usrloc_pcscf" 
 loadmodule "ims_registrar_pcscf"
 loadmodule "ims_registrar_pcscf"
+#!ifdef WITH_IPSEC
+loadmodule "ims_ipsec_pcscf"
+#!endif
 
 
 #!ifdef WITH_XMLRPC
 #!ifdef WITH_XMLRPC
 loadmodule "xmlrpc"
 loadmodule "xmlrpc"
@@ -366,6 +369,12 @@ modparam("ims_registrar_pcscf", "subscribe_to_reginfo", 0)
 modparam("ims_registrar_pcscf", "publish_reginfo", 0)
 modparam("ims_registrar_pcscf", "publish_reginfo", 0)
 #!endif
 #!endif
 
 
+#!ifdef WITH_IPSEC
+modparam("ims_ipsec_pcscf", "ipsec_listen_addr", IPSEC_LISTEN_ADDR)
+modparam("ims_ipsec_pcscf", "ipsec_client_port", IPSEC_CLIENT_PORT)
+modparam("ims_ipsec_pcscf", "ipsec_server_port", IPSEC_SERVER_PORT)
+#!endif
+
 #!ifdef WITH_RX
 #!ifdef WITH_RX
 # -- CDP params --
 # -- CDP params --
 modparam("cdp","config_file","/etc/kamailio_pcscf/pcscf.xml")
 modparam("cdp","config_file","/etc/kamailio_pcscf/pcscf.xml")
@@ -700,7 +709,11 @@ route[REQINIT] {
 		send_reply("503", "Server shutting down");
 		send_reply("503", "Server shutting down");
 		exit;
 		exit;
 	}
 	}
-	
+
+	if (!is_method("REGISTER")) {
+        ipsec_forward("location");
+    }
+
 	# Ignore Re-Transmits:
 	# Ignore Re-Transmits:
 	if (t_lookup_request()) {
 	if (t_lookup_request()) {
 		exit;
 		exit;
@@ -852,6 +865,7 @@ event_route[uac:reply] {
 			}
 			}
 			xlog("  Unregistering $uac_req(ruri);$var(alias)\n");
 			xlog("  Unregistering $uac_req(ruri);$var(alias)\n");
 			setdebug("9");
 			setdebug("9");
+			ipsec_destroy("location");
 			pcscf_unregister("location", "$uac_req(ruri);$var(alias)", "$(uac_req(ouri){uri.host})", "$(uac_req(ouri){uri.port})");
 			pcscf_unregister("location", "$uac_req(ruri);$var(alias)", "$(uac_req(ouri){uri.host})", "$(uac_req(ouri){uri.port})");
 			resetdebug();
 			resetdebug();
 			$sht(natping=>$uac_req(ouri)) = $null;
 			$sht(natping=>$uac_req(ouri)) = $null;

+ 6 - 1
misc/examples/ims/pcscf/pcscf.cfg.sample

@@ -7,6 +7,11 @@ listen=udp:11.22.33.44:5060
 # SIP / TCP/TLS
 # SIP / TCP/TLS
 #listen=tls:11.22.33.44:5061
 #listen=tls:11.22.33.44:5061
 
 
+# IPSEC / UDP
+#!define IPSEC_LISTEN_ADDR "11.22.33.44"
+#!define IPSEC_CLIENT_PORT 5062
+#!define IPSEC_SERVER_PORT 5063
+
 alias=pcscf.mnc001.mcc001.3gppnetwork.org
 alias=pcscf.mnc001.mcc001.3gppnetwork.org
 
 
 #!define MY_WS_PORT 80
 #!define MY_WS_PORT 80
@@ -104,4 +109,4 @@ alias=pcscf.mnc001.mcc001.3gppnetwork.org
 ##!define WITH_REGINFO
 ##!define WITH_REGINFO
 ##!define WITH_RTPPING
 ##!define WITH_RTPPING
 ##!define WITH_WEBSOCKET
 ##!define WITH_WEBSOCKET
-
+##!define WITH_IPSEC