Documentation |
Documentation.Tutorials-Presence-SimplePresConfig HistoryHide minor edits - Show changes to markup December 10, 2014, at 02:18 PM
by
- Added line 63:
modparam("presence_xml", "force_active", 1) October 09, 2014, at 03:07 PM
by
- 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 02:52 PM
by
- 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 03:24 PM
by
- Changed lines 1-2 from:
<- Back [++[@ to:
Added line 8:
Changed line 10 from:
to:
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:
Changed line 46 from:
to:
Changed lines 48-49 from:
to:
modparam("mi_fifo","fifo_name","/tmp/opensips_fifo") Changed lines 51-55 from:
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:
Changed lines 58-61 from:
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; }
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 09:15 PM
by
- Added lines 21-22:
mpath="/usr/local/lib/opensips/modules/" Changed lines 24-39 from:
mpath="/usr/local/lib/opensips/modules/" to:
Added line 29:
loadmodule "sipmsgops.so" Changed lines 37-38 from:
to:
loadmodule "signaling.so" Changed lines 41-42 from:
to:
Deleted line 53:
Deleted line 54:
Deleted line 56:
Deleted lines 58-61:
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 12:27 PM
by
- Added lines 1-202:
# # # 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; } |