#
#
# 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;
}
| News OpenSIPS 1.6.211th of March 2010
OpenSIPS 1.6.2 is brings new features... OpenSIPS Control Panel 4.008th of March 2010
OpenSIPS CP 4.0 comes with user provisioning... Conference on "OpenSIPS 2.0"5th of March 2010
VoIP Users Conference will host an audio conference OpenSIPS webinar25th of February 2010
Next webinars is Explaining the default script OpenSIPS 2.0 Design15th of February 2010
Design of OpenSIPS 2.0 is unveiled OpenSIPS webinar28th of January 2010
Next OpenSIPS webinars is SIP Introduction Building Telephony Systems with OpenSIPS 1.621st of January 2010
New edition is available... OpenSIPS 1.6.1 is released21st of December 2009
OpenSIPS 1.6.1 minor release is out... OpenSIPS Development Course17th of December 2009
OpenSIPS Devel Course for 2010... OpenSIPS Bootcamps 201009th of December 2009
2010 Schedule for Bootcamp events... User Location is faster13th of November 2009
USRLOC is 3 time faster than before... OpenSIPS Control Panel 3.030th of October 2009
OpenSIPS CP 3.0 major release is out... OpenSIPS 1.6.0 is released16th of October 2009
OpenSIPS 1.6.0 major release is out... OpenSIPS VoIP Service21th of September 2009
OpenSIPS project offers free VoIP services... OpenSIPS & Astricon21th of September 2009
OpenSIPS talks and exhibits at Astricon 2009... SVN freeze17th of September 2009
SVN trunk gets frozen to prepare 1.6 release... New types of script routes10th of September 2009
New additions to configuration file routes... STUN server7th of September 2009
OpenSIPS has now a built-in STUN server... Pseudovariable implementation extended3rd of September 2009
Added new operations for pvars to give more power to the script writer... OpenSIPS Asterisk Integration30th of August 2009
Tutorial for realtime integration... OpenSIPS 1.5.3 is released27th of August 2009
OpenSIPS 1.5.3 minor release is out... AAA and RADIUS support18th of April 2009
New AAA API and RADIUS enhancements in OpenSIPS OpenSIPS webinar4th of April 2009
Next OpenSIPS webinars is Types of Routs in OpenSIPS B2BUA3rd of August 2009
A B2BUA signaling implementation in OpenSIPS DB virtual23th of July 2009
A DB conn mixer for failover, parallel and LB Codec manipulation23th of July 2009
SDP codecs and priorities manipulation Memcached interfacing16th of July 2009
memcached support for memory caching API OpenSIPS 1.5.2 is released15th of July 2009
OpenSIPS 1.5.2 minor release is out... OpenSIPS@ClueCon14th of July 2009
OpenSIPS talks at ClueCon OpenSIPS webinar30th of June 2009
Next OpenSIPS webinars is Routing in SIP REGISTRAR enhancements29th of June 2009
REGISTRAR module becomes more flexible OpenSIPS free webinars01st of June 2009
OpenSIPS webinars program was launched OpenSIPS-CP 2.0 is released13rd of April 2009
OpenSIPS Control Panel 2.0 major release is out... OpenSIPS 1.5.1 is released13rd of April 2009
OpenSIPS 1.5.1 minor release is out... OpenSIPS 1.5.0 is released23rd of March 2009
OpenSIPS 1.5.0 major release is out... OpenSIPS 1.4.5 is released23rd of March 2009
OpenSIPS 1.4.5 minor release is out... OpenSIPS as Load Balancer4th of March 2009 OpenSIPS at Amoocon (AsteriskTAG)24th of February 2009 |