Documentation

Documentation.Tutorials-Presence-SimplePresConfig History

Hide minor edits - Show changes to markup

December 10, 2014, at 01:18 PM by 89.120.101.121 -
Added line 63:

modparam("presence_xml", "force_active", 1)

October 09, 2014, at 02:07 PM by 89.120.101.121 -
Changed lines 41-43 from:
to:

loadmodule "presence_xml.so" loadmodule "xcap.so"

Changed line 61 from:

modparam("presence","db_url","mysql://opensips:opensipsrw@localhost/opensips")

to:

modparam("presence|xcap","db_url","mysql://opensips:opensipsrw@localhost/opensips")

October 09, 2014, at 01:52 PM by 89.120.101.121 -
Changed lines 41-42 from:

loadmodule "presence_xml.so"

to:
Changed line 59 from:

modparam("presence|presence_xml","db_url","mysql://opensips:opensipsrw@localhost/opensips")

to:

modparam("presence","db_url","mysql://opensips:opensipsrw@localhost/opensips")

Deleted line 60:

modparam("presence_xml","force_active",1)

July 02, 2014, at 02:24 PM by 89.120.101.121 -
Changed lines 1-2 from:

<- Back [++[@

to:
Documentation -> Tutorials -> Presence -> Presence Server -> Presence Server config file


[@

Added line 8:
  1. OpenSIPS 1.11.x configuration file
Changed line 10 from:
  1. OpenSIPS Presence Server without permission rules quick-start config script
to:
  1. SIP Presence Server
Changed line 12 from:
to:
Changed lines 14-22 from:

/* Uncomment these lines to enter debugging mode */ debug=7 # debug level (cmd line: -dddddddddd) fork=no log_stderror=yes

check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R)

to:

debug=3 fork=yes log_stderror=no

check_via=no dns=no rev_dns=no

Changed lines 24-25 from:

children=4

to:

children=2

Changed lines 27-29 from:

mpath="/usr/local/lib/opensips/modules/"

to:

mpath="/usr/local/opensips/lib/modules/"

Added lines 31-32:

loadmodule "signaling.so" loadmodule "tm.so"

Deleted line 35:

loadmodule "tm.so"

Added lines 37-39:

loadmodule "mi_fifo.so" loadmodule "usrloc.so" loadmodule "registrar.so"

Changed lines 42-46 from:

loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "mi_fifo.so" loadmodule "signaling.so"

to:
Deleted line 43:
  1. db_mysql.so must be loaded !
Changed line 46 from:
to:
Changed lines 48-49 from:
to:

modparam("mi_fifo","fifo_name","/tmp/opensips_fifo")

Changed lines 51-55 from:
  1. Uncomment this if you want to use SQL database
  2. for persistent storage and comment the previous line

modparam("usrloc", "db_mode", 2) modparam("usrloc", "db_url", "mysql://opensips:opensipsrw@127.0.0.1/opensips")

to:

modparam("usrloc","db_mode",2) modparam("usrloc","db_url","mysql://opensips:opensipsrw@localhost/opensips")

Deleted lines 56-57:
  1. If you set "calculate_ha1" parameter to yes (which true in this config),
  2. uncomment also the following parameter)
Changed lines 58-61 from:
  1. -- mi_fifo params --

modparam("mi_fifo","fifo_name", "/tmp/opensips_fifo")

to:
Changed lines 60-64 from:

modparam("presence|presence_xml", "db_url", "mysql://opensips:opensipsrw@127.0.0.1/opensips") modparam("presence", "server_address", "sip:sa@10.10.10.10:5060" ) modparam("presence_xml", "force_active", 1)

to:

modparam("presence|presence_xml","db_url","mysql://opensips:opensipsrw@localhost/opensips") modparam("presence","server_address","sip:sa@10.10.10.10:5060") modparam("presence_xml","force_active",1)

Changed line 66 from:
to:
Deleted line 67:
Changed lines 69-70 from:
	# initial sanity checks 
	if (!mf_process_maxfwd_header("10")) {
to:
	# initial sanity checks
	if(!mf_process_maxfwd_header("10")) {
Changed lines 75-78 from:
 	if (has_totag()) {
		## sequential requests within a dialog should
		## take the path determined by record-routing
to:
	if (has_totag()) {
		# sequential requests within a dialog should
		# take the path determined by record-routing
Changed lines 80-82 from:
			## route it out to whatever destination was set by loose_route()
			## in $du (destination URI).
			route(RELAY);
to:
			# route it out to whatever destination was set by loose_route()
			# in $du (destination URI).
			route(relay);
Changed lines 84-88 from:
			if ( is_method("ACK") ) {
to:
			if (is_method("SUBSCRIBE") && uri==myself) {
				# in-dialog subscribe requests
				route(handle_presence);
				exit;
			} else if ( is_method("ACK") ) {
Changed lines 90-91 from:
					## non loose-route, but stateful ACK; must be an ACK after 
					## a 487 or e.g. 404 from upstream server
to:
					# non loose-route, but stateful ACK; must be an ACK after 
					# a 487 or e.g. 404 from upstream server
Changed lines 95-96 from:
					## ACK without matching transaction ->
					## ignore and discard
to:
					# ACK without matching transaction ->
					# ignore and discard
Changed lines 114-130 from:
	## record routing
to:
	# authenticate if from local subscriber (uncomment to enable auth)
	# authenticate all initial non-REGISTER request that pretend to be
	# generated by local subscriber (domain from FROM URI is local)
	##if (!(method=="REGISTER") && from_uri==myself) {
	##  if (!proxy_authorize("", "subscriber")) {
	##      proxy_challenge("", "0");
	##      exit;
	##  }
	##  if (!db_check_from()) {
	##      send_reply("403","Forbidden auth ID");
	##      exit;
	##  }
	##
	##  consume_credentials();
	##}

	# record routing
Changed lines 133-137 from:
	if (!uri==myself) {
		# mark routing logic in request
		append_hf("P-hint: outbound\r\n"); 
		route(RELAY);
to:
	if (uri!=myself) {
		# routing to other SIP domains
		route(relay);
Changed lines 138-185 from:
	## if the request is for other domain use UsrLoc
	## (in case, it does not work, use the following command
	## with proper names and addresses in it)
	if (uri==myself) {

		## presence handling
		if( is_method("PUBLISH|SUBSCRIBE"))
			route(PRESENCE);

		if ( is_method("REGISTER") ) {

			## Uncomment this if you want to use digest authentication
			#if (!www_authorize("opensips.org", "subscriber")) {
			#	www_challenge("opensips.org", "0");
			#	exit;
			#};

			save("location");
			exit;
		}

		## native SIP destinations are handled using our USRLOC DB
		if (!lookup("location")) {
			send_reply("404", "Not Found");
			exit;
		}
		append_hf("P-hint: usrloc applied\r\n");
	};

	route(RELAY);

}

route[RELAY] {

	# send it out now
	if (!t_relay()) 
		sl_reply_error();
	exit;

}

  1. presence handling route

route[PRESENCE] {

	## absorb retransmissions
	if (!t_newtran()) {
	        sl_reply_error();
	        exit;
to:
	# SIP 2 SIP presence traffic
	if (is_method("PUBLISH|SUBSCRIBE")) {
		route(handle_presence);
		exit;
Changed lines 145-147 from:
	## handle presence requests
	if(is_method("PUBLISH")) {
		handle_publish();
to:
	if (is_method("REGISTER")) {

		# Uncomment this if you want to use digest authentication
		#if (!www_authorize("", "subscriber")) {
		#  www_challenge("", "0");
		#  exit;
		#}

		save("location");
		exit;
Changed lines 156-160 from:
	else if( is_method("SUBSCRIBE")) {
		handle_subscribe();
        };

	exit;
to:
	# native SIP destinations are handled using our USRLOC DB
	if(!lookup("location")) {
		send_reply("404","Not Found");
		exit;
	}

	route(relay);
Changed lines 165-193 from:

@]++]

to:

route[relay]{

	# send it out
	if(!t_relay())
		sl_reply_error();

	exit;

}

route[handle_presence] {

	if(!t_newtran()){
		sl_reply_error();
		exit;
	}

	if (is_method("PUBLISH")) {
		handle_publish();
	} else

	if (is_method("SUBSCRIBE")) {
		handle_subscribe();
	}

	exit;

} @]

June 17, 2014, at 08:15 PM by 89.120.101.121 -
Added lines 21-22:
  1. ------------------ module loading ----------------------------------

mpath="/usr/local/lib/opensips/modules/"

Changed lines 24-39 from:
  1. uncomment the following lines for TLS support
  2. disable_tls = 0
  3. listen = tls:your_IP:5061
  4. tls_verify_server = 1
  5. tls_verify_client = 1
  6. tls_require_client_certificate = 0
  7. tls_method = TLSv1
  8. tls_certificate = "/usr/local/etc/opensips/tls/user/user-cert.pem"
  9. tls_private_key = "/usr/local/etc/opensips/tls/user/user-privkey.pem"
  10. tls_ca_list = "/usr/local/etc/opensips/tls/user/user-calist.pem"
  11. ------------------ module loading ----------------------------------

mpath="/usr/local/lib/opensips/modules/"

to:
Added line 29:

loadmodule "sipmsgops.so"

Changed lines 37-38 from:
  1. for 1.5 you must load also signaling module; uncomment the next line
  2. loadmodule "signaling.so"
to:

loadmodule "signaling.so"

Changed lines 41-42 from:
  1. loadmodule "/usr/local/lib/opensips/modules/auth.so"
  2. loadmodule "/usr/local/lib/opensips/modules/auth_db.so"
to:
  1. loadmodule "auth.so"
  2. loadmodule "auth_db.so"
Deleted line 53:
Deleted line 54:
Deleted line 56:
Deleted lines 58-61:
  1. -- rr params --
  2. add value to ;lr param to make some broken UAs happy

modparam("rr", "enable_full_lr", 1)

Changed lines 73-74 from:
	# initial sanity checks -- messages with
	# max_forwards==0, or excessively long requests
to:
	# initial sanity checks 
Changed line 75 from:
		sl_send_reply("483","Too Many Hops");
to:
		send_reply("483","Too Many Hops");
Changed line 77 from:
	};
to:
	}
Changed lines 79-80 from:
	if (msg:len >=  2048 ) {
		sl_send_reply("513", "Message too big");
to:
 	if (has_totag()) {
		## sequential requests within a dialog should
		## take the path determined by record-routing
		if (loose_route()) {
			## route it out to whatever destination was set by loose_route()
			## in $du (destination URI).
			route(RELAY);
		} else {
			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
					t_relay();
					exit;
				} else {
					## ACK without matching transaction ->
					## ignore and discard
					exit;
				}
			}
			send_reply("404","Not here");
		}
Changed lines 102-115 from:
	};
to:
	}

	# CANCEL processing
	if (is_method("CANCEL")) {
		if (t_check_trans())
			t_relay();
		exit;
	}

	t_check_trans();

	## record routing
	if (!is_method("REGISTER|MESSAGE"))
		record_route();
Changed lines 117-126 from:
	# we record-route all messages -- to make sure that
	# subsequent messages will go through our proxy; that's
	# particularly good if upstream and downstream entities
	# use different transport protocol
	if (!method=="REGISTER")
		record_route();

	# subsequent messages withing a dialog should take the
	# path determined by record-routing
	if (loose_route()) {
to:
	if (!uri==myself) {
Deleted lines 118-123:
		append_hf("P-hint: rr-enforced\r\n"); 
		route(1);
	};

	if (!uri==myself) {
		# mark routing logic in request
Changed lines 120-129 from:
		# if you have some interdomain connections via TLS
		#if(uri=~"@tls_domain1.net") {
		#	t_relay("tls:domain1.net");
		#	exit;
		#} else if(uri=~"@tls_domain2.net") {
		#	t_relay("tls:domain2.net");
		#	exit;
		#}
		route(1);
	};
to:
		route(RELAY);
	}
Changed lines 123-125 from:
	# if the request is for other domain use UsrLoc
	# (in case, it does not work, use the following command
	# with proper names and addresses in it)
to:
	## if the request is for other domain use UsrLoc
	## (in case, it does not work, use the following command
	## with proper names and addresses in it)
Changed line 128 from:
		# presence handling
to:
		## presence handling
Changed line 130 from:
			route(2);
to:
			route(PRESENCE);
Changed line 132 from:
		if (method=="REGISTER") {
to:
		if ( is_method("REGISTER") ) {
Changed line 134 from:
			# Uncomment this if you want to use digest authentication
to:
			## Uncomment this if you want to use digest authentication
Changed line 142 from:
		};
to:
		}
Changed line 144 from:
		# native SIP destinations are handled using our USRLOC DB
to:
		## native SIP destinations are handled using our USRLOC DB
Changed line 146 from:
			sl_send_reply("404", "Not Found");
to:
			send_reply("404", "Not Found");
Changed lines 148-149 from:
		};
		append_hf("P-hint: usrloc applied\r\n"); 
to:
		}
		append_hf("P-hint: usrloc applied\r\n");
Added lines 151-153:
	route(RELAY);

}

Deleted lines 154-155:
	route(1);

}

Added lines 156-161:

route[RELAY] {

	# send it out now
	if (!t_relay()) 
		sl_reply_error();
	exit;

}

Deleted lines 162-170:

route[1] {

	# send it out now; use stateful forwarding as it works reliably
	# even for UDP2TCP
	if (!t_relay()) {
		sl_reply_error();
	};
	exit;

}

Changed line 164 from:

route[2]

to:

route[PRESENCE]

Changed lines 166-168 from:
	# absorb retransmissions
	if (! t_newtran())
	{
to:
	## absorb retransmissions
	if (!t_newtran()) {
Changed lines 170-175 from:
	};

	#handle presence requests

	if(is_method("PUBLISH"))
	{
to:
	}

	## handle presence requests
	if(is_method("PUBLISH")) {
Changed lines 175-177 from:
		t_release();
                /* the call to t_release is no longer needed in 1.5 */
	} 
to:
	}
Deleted lines 177-178:
		t_release();
	        /* the call to t_release is no longer needed in 1.5 */
April 26, 2013, at 11:27 AM by 109.99.235.212 -
Added lines 1-202:

<- Back

#
#
# OpenSIPS Presence Server without permission rules quick-start config script
#

# ----------- global configuration parameters ------------------------

/* Uncomment these lines to enter debugging mode */ 
debug=7            # debug level (cmd line: -dddddddddd)
fork=no
log_stderror=yes

check_via=no	# (cmd. line: -v)
dns=no          # (cmd. line: -r)
rev_dns=no      # (cmd. line: -R)
listen=udp:10.10.10.10:5060
children=4


#
# uncomment the following lines for TLS support
#disable_tls = 0
#listen = tls:your_IP:5061
#tls_verify_server = 1
#tls_verify_client = 1
#tls_require_client_certificate = 0
#tls_method = TLSv1
#tls_certificate = "/usr/local/etc/opensips/tls/user/user-cert.pem"
#tls_private_key = "/usr/local/etc/opensips/tls/user/user-privkey.pem"
#tls_ca_list = "/usr/local/etc/opensips/tls/user/user-calist.pem"

# ------------------ module loading ----------------------------------
mpath="/usr/local/lib/opensips/modules/"


loadmodule "db_mysql.so"
loadmodule "sl.so"
loadmodule "maxfwd.so"
loadmodule "textops.so"
loadmodule "tm.so"
loadmodule "rr.so"
loadmodule "presence.so"
loadmodule "presence_xml.so"
loadmodule "usrloc.so"
loadmodule "registrar.so"
loadmodule "mi_fifo.so"
# for 1.5 you must load also signaling module; uncomment the next line
#loadmodule "signaling.so" 

# Uncomment this if you want digest authentication
# db_mysql.so must be loaded !
#loadmodule "/usr/local/lib/opensips/modules/auth.so"
#loadmodule "/usr/local/lib/opensips/modules/auth_db.so"

# ----------------- setting module-specific parameters ---------------

# -- usrloc params --
# Uncomment this if you want to use SQL database 
# for persistent storage and comment the previous line
modparam("usrloc", "db_mode", 2)
modparam("usrloc", "db_url", "mysql://opensips:opensipsrw@127.0.0.1/opensips")

# -- auth params --
# Uncomment if you are using auth module
#
#modparam("auth_db", "calculate_ha1", yes)
#
# If you set "calculate_ha1" parameter to yes (which true in this config), 
# uncomment also the following parameter)
#
#modparam("auth_db", "password_column", "password")

# -- rr params --
# add value to ;lr param to make some broken UAs happy
modparam("rr", "enable_full_lr", 1)

# -- mi_fifo params --
modparam("mi_fifo","fifo_name", "/tmp/opensips_fifo")

# -- presence params --
modparam("presence|presence_xml", "db_url", "mysql://opensips:opensipsrw@127.0.0.1/opensips")
modparam("presence", "server_address", "sip:sa@10.10.10.10:5060" )
modparam("presence_xml", "force_active", 1)


# -------------------------  request routing logic -------------------

# main routing logic

route{
	# initial sanity checks -- messages with
	# max_forwards==0, or excessively long requests
	if (!mf_process_maxfwd_header("10")) {
		sl_send_reply("483","Too Many Hops");
		exit;
	};

	if (msg:len >=  2048 ) {
		sl_send_reply("513", "Message too big");
		exit;
	};

	# we record-route all messages -- to make sure that
	# subsequent messages will go through our proxy; that's
	# particularly good if upstream and downstream entities
	# use different transport protocol
	if (!method=="REGISTER")
		record_route();

	# subsequent messages withing a dialog should take the
	# path determined by record-routing
	if (loose_route()) {
		# mark routing logic in request
		append_hf("P-hint: rr-enforced\r\n"); 
		route(1);
	};

	if (!uri==myself) {
		# mark routing logic in request
		append_hf("P-hint: outbound\r\n"); 
		# if you have some interdomain connections via TLS
		#if(uri=~"@tls_domain1.net") {
		#	t_relay("tls:domain1.net");
		#	exit;
		#} else if(uri=~"@tls_domain2.net") {
		#	t_relay("tls:domain2.net");
		#	exit;
		#}
		route(1);
	};

	# if the request is for other domain use UsrLoc
	# (in case, it does not work, use the following command
	# with proper names and addresses in it)
	if (uri==myself) {

		# presence handling
		if( is_method("PUBLISH|SUBSCRIBE"))
			route(2);

		if (method=="REGISTER") {

			# Uncomment this if you want to use digest authentication
			#if (!www_authorize("opensips.org", "subscriber")) {
			#	www_challenge("opensips.org", "0");
			#	exit;
			#};

			save("location");
			exit;
		};

		# native SIP destinations are handled using our USRLOC DB
		if (!lookup("location")) {
			sl_send_reply("404", "Not Found");
			exit;
		};
		append_hf("P-hint: usrloc applied\r\n"); 
	};

	route(1);
}


route[1] {
	# send it out now; use stateful forwarding as it works reliably
	# even for UDP2TCP
	if (!t_relay()) {
		sl_reply_error();
	};
	exit;
}

# presence handling route
route[2]
{
	# absorb retransmissions
	if (! t_newtran())
	{
	        sl_reply_error();
	        exit;
	};

	#handle presence requests

	if(is_method("PUBLISH"))
	{
		handle_publish();
		t_release();
                /* the call to t_release is no longer needed in 1.5 */
	} 
	else if( is_method("SUBSCRIBE")) {
		handle_subscribe();
		t_release();
	        /* the call to t_release is no longer needed in 1.5 */
        };

	exit;
}

Page last modified on December 10, 2014, at 01:18 PM