Browse Source

CFG file from IM gateway (SMS+Jabber)

Daniel-Constantin Mierla 23 năm trước cách đây
mục cha
commit
04b3dde346
1 tập tin đã thay đổi với 171 bổ sung0 xóa
  1. 171 0
      etc/imgw.cfg

+ 171 - 0
etc/imgw.cfg

@@ -0,0 +1,171 @@
+# ----------- global configuration parameters ------------------------
+
+debug=3          # debug level (cmd line: -dddddddddd)
+fork=yes
+#fork=no
+log_stderror=no     # (cmd line: -E)
+#log_stderror=yes   # (cmd line: -E)
+check_via=yes       # (cmd. line: -v)
+dns=on              # (cmd. line: -r)
+rev_dns=yes         # (cmd. line: -R)
+port=5080
+children=2
+
+# advertise IP address in Via (as opposed to advertising DNS name
+# which is annoying for downstream servers and some phones can
+# not handle DNS at all)
+listen=195.37.77.100
+
+# ------------------ module loading ----------------------------------
+
+loadmodule "../sip_router/modules/sl/sl.so"
+loadmodule "../sip_router/modules/print/print.so"
+loadmodule "../sip_router/modules/tm/tm.so"
+loadmodule "../sip_router/modules/maxfwd/maxfwd.so"
+loadmodule "../sip_router/modules/sms/sms.so"
+loadmodule "../sip_router/modules/mysql/mysql.so"
+loadmodule "../sip_router/modules/jabber/jabber.so"
+
+# ----------------- setting module-specific parameters ---------------
+
+# -- sms params --
+modparam("sms","modems","Falcom [d=/dev/ttyS0;b=9600;p=9254;m=new;l=10;r=2]")
+modparam("sms","networks","D1[c=491710765000;m=10]")
+modparam("sms","links","Falcom[D1]")
+modparam("sms","domain","iptel.org")
+modparam("sms","max_sms_parts",3)
+modparam("sms","use_contact",1)
+
+# -- tm params --
+modparam("tm", "fr_timer", 10 )
+modparam("tm", "fr_inv_timer", 10 )
+modparam("tm", "wt_timer", 10 )
+
+# -- jabber params --
+modparam("jabber","contact","sip:bat.iptel.org:5080")
+modparam("jabber","db_url","sql://s2jgw:[email protected]/sip_jab")
+modparam("jabber","jaddress","bat.iptel.org")
+modparam("jabber","jport",5222)
+modparam("jabber","workers",2)
+modparam("jabber","max_jobs",10)
+
+
+# -------------------------  request routing logic -------------------
+
+# main routing logic
+
+route{
+
+	# filter too old messages
+	log("LOG: Checking maxfwd\n");
+	if (!mf_process_maxfwd_header("10")) {
+		log("LOG: Too many hops\n");
+		sl_send_reply("483","Too Many Hops");
+		break;
+	};
+
+	if ((search("To:.*@icq\.iptel\.org")) || (search("To:.*@icq\.bat\.iptel\.org"))
+	 || (search("To:.*@sms\.bat\.iptel\.org")) || (search("To:.*@msn\.iptel\.org"))
+	 || (search("To:.*@msn\.bat\.iptel\.org")))
+	{
+		### ----- JABBER GATEWAY ------
+		if (! t_newtran())
+		{
+			# retransmit whatever we have
+			# it's useless to do any retransmision, because we haven't
+			# sent any statefull reply. (bogdan)
+			#t_retransmit_reply();
+			break;
+		} else {
+			if (method=="MESSAGE")
+			{
+				log("MESSAGE received -> sending as JABBER\n");
+				if (jab_send_message())
+				{
+					sl_send_reply("202","Accepted");
+				}else{
+					sl_send_reply("502","Bad gateway");
+				};
+			}else{
+				log("NON_Message request received for JABBER gateway->dropt!\n");
+				sl_send_reply("501","Not implemented");
+			};
+			# transaction conclude it -- junk it now (it will
+			# stay there until WAIT timer hits)
+			t_release();
+		};
+		t_unref();
+	} else {
+		### ----- SMS GATEWAY ------
+		if (len_gt( max_len )) {
+			sl_send_reply("513", "Riesengross -- Message too large");
+			break;
+		};
+
+		# accept only req coming from iptel.org
+		if (!src_ip==195.37.77.101 |
+		!( uri=~"iptel.org" | uri=~"195\.37\.77\.100" ))
+		{
+			log("SER:Forbidden request: wrong src_ip or req_uri\n");
+			sl_send_reply("403","Forbidden");
+			break;
+		};
+
+		#accept only MESSAGE requests
+		if (!method=="MESSAGE")
+		{
+			sl_send_reply("501","Not Implemented");
+			break;
+		};
+
+		# SMS expects the numbers as follows <int> <area> <nr>
+		# align numbering to it
+		/*
+		if (uri=~"sip:001" ) {
+			strip(2);
+			prefix("49");
+		} else if (uri=~"sip:\+491") {
+			strip(1);
+		} else if (uri=~"sip:000491") {
+			strip(3);
+		} else {
+			sl_send_reply("403", "SMS only to German 01* networks");
+			break;
+		};
+		*/
+
+		if (! t_newtran())
+		{
+			# retransmit whatever we have
+			# it's useless to do any retransmision, because we haven't
+			# sent any statefull reply. (bogdan)
+			#t_retransmit_reply();
+			break;
+		} else {
+			# do what you want to do
+			if (sms_send_msg_to_net("D1"))
+			{
+				# for sending replies, we woun't use the statefull
+				# function because it is not able to add the Contact
+				# header (in fact to add any rpl_lump :-( )
+				# things went well, send ok upstream
+				if (!sl_send_reply("202", "yes sir, SMS sent over"))
+				{
+					# if replying failed, retry statelessly
+					sl_reply_error();
+				};
+			} else {
+				if (!sl_send_reply("502", "Bad gateway - SMS error"))
+				{
+					# if replying failed, retry statelessly
+					sl_reply_error();
+				};
+			};
+			# transaction conclude it -- junk it now (it will
+			# stay there until WAIT timer hits)
+			t_release();
+		};
+		t_unref();
+	}
+}
+