[OpenSIPS-Users] No Presence NOTIFY - When a Contact comes online
Anca Vamanu
anca at opensips.org
Mon Oct 26 12:28:38 CET 2009
Hi Mani,
You are sure that the presentity has a subscription to the newly logged
in user? Can you check if there is an error in the log file?
If there is an active subscription and the server receives a Publish
message, it will send a Notify.
You can check in database - table active_watchers if there is a
subscription to the newly logged in user, and the log it in and see what
happens. You can raise the debug level to 6 and send me the log part
corresponding to the processing of Publish message from the newly logged
in user.
Regards,
Anca
Manivasagam Sivaraman wrote:
> I'm using non rls presence mode. When a user logs in , he gets the
> latest presence for all the users correctly who are online at that
> time, and if any of the online users goes offline I get NOTIFY as
> well. In this logged in state, if any other user newly logs in , this
> presentity is not getting NOTIFIED by the presence server. The newly
> logged in user gets all the presence NOTIFIES (incl his own)
> correctly. I can reproduce this almost every time. I'm not sure if my
> config is wrong or there is a bug.
>
> Please help.
>
> Here is my config.
>
> #auto_aliases=no
>
> loadmodule "db_mysql.so"
> loadmodule "signaling.so"
> loadmodule "sl.so"
> loadmodule "tm.so"
> loadmodule "rr.so"
> loadmodule "maxfwd.so"
> loadmodule "usrloc.so"
> loadmodule "registrar.so"
> loadmodule "textops.so"
> loadmodule "mi_fifo.so"
> loadmodule "uri_db.so"
> loadmodule "uri.so"
> loadmodule "xlog.so"
> loadmodule "acc.so"
> loadmodule "nathelper.so"
> loadmodule "mi_xmlrpc.so"
> modparam("mi_xmlrpc", "log_file", "/var/log/openser-xmlrpc.log")
> modparam("mi_xmlrpc", "port", 8000)
> modparam("usrloc", "nat_bflag", 6)
>
> # -- nathelper params --
> modparam("nathelper", "rtpproxy_sock", "udp:localhost:22222")
> modparam("nathelper", "natping_interval", 30)
> modparam("nathelper", "ping_nated_only", 1) # Ping only clients behind NAT
> modparam("nathelper", "sipping_bflag", 7)
> modparam("nathelper|registrar", "received_avp", "$avp(i:42)")
> modparam("nathelper", "sipping_from",
> "sip:pinger at sips01.smithmicro.com
> <mailto:sip%3Apinger at sips01.smithmicro.com>")
>
> loadmodule "auth.so"
> loadmodule "auth_db.so"
> loadmodule "alias_db.so"
>
> #loadmodule "domain.so"
>
> loadmodule "presence.so"
> loadmodule "presence_xml.so"
> loadmodule "presence_mwi.so"
> loadmodule "pua.so"
> loadmodule "pua_mi.so"
> #loadmodule "rls.so"
>
> # ----------------- setting module-specific parameters ---------------
> # ----- mi_fifo params -----
> modparam("mi_fifo", "fifo_name", "/tmp/opensips_fifo")
>
> # ----- rr params -----
> # add value to ;lr param to cope with most of the UAs
> modparam("rr", "enable_full_lr", 1)
>
> # do not append from tag to the RR (no need for this script)
> modparam("rr", "append_fromtag", 0)
>
> # ----- registrar params -----
> modparam("registrar", "method_filtering", 1)
>
> # ----- usrloc params -----
> modparam("usrloc", "db_mode", 0)
> /* uncomment the following lines if you want to enable DB persistency
> for location entries */
> modparam("usrloc", "db_mode", 2)
> modparam("usrloc", "db_url",
> "mysql://opensips:opensipsrw@localhost/opensips")
>
> modparam("uri_db", "use_uri_table", 0)
> modparam("uri_db", "db_url", "")
>
> # ----- acc params -----
> /* what sepcial events should be accounted ? */
> modparam("acc", "early_media", 1)
> modparam("acc", "report_ack", 1)
> modparam("acc", "report_cancels", 1)
> modparam("acc", "detect_direction", 0)
> /* account triggers (flags) */
> modparam("acc", "failed_transaction_flag", 3)
> modparam("acc", "log_flag", 1)
> modparam("acc", "log_missed_flag", 2)
> /* uncomment the following lines to enable DB accounting also */
> modparam("acc", "db_flag", 1)
> modparam("acc", "db_missed_flag", 2)
>
> modparam("auth_db", "calculate_ha1", yes)
> modparam("auth_db", "password_column", "password")
> modparam("auth_db", "db_url",
> "mysql://opensips:opensipsrw@localhost/opensips")
> modparam("auth_db", "load_credentials", "")
>
>
> modparam("alias_db", "db_url",
> "mysql://opensips:opensipsrw@localhost/opensips")
>
> # ----- presence params -----
> /* uncomment the following lines if you want to enable presence */
> modparam("presence|presence_xml", "db_url",
> "mysql://opensips:opensipsrw@localhost/opensips")
> modparam("presence", "server_address", "sip:63.148.166.215:5060
> <http://63.148.166.215:5060>")
> modparam("presence", "fallback2db", 1)
> modparam("presence", "clean_period", 30)
>
> # -- xcap params --
> modparam("presence_xml", "db_url",
> "mysql://opensips:opensipsrw@localhost/opensips")
> modparam("presence_xml", "force_active", 1)
> modparam("presence_xml", "pidf_manipulation", 1)
> modparam("presence_xml", "integrated_xcap_server", 0)
> modparam("presence_xml", "xcap_server", "localhost:9080")
> # -- rr params --
> #modparam("rr", "enable_full_lr", 1)
>
>
> route {
> if (method!="REGISTER") {
> record_route();
> };
>
> if (loose_route()) {
> append_hf("P-Hint: rr-enforced");
> if (method=="INVITE") {
> if (!proxy_authorize("","subscriber")) {
> proxy_challenge("","0");
> return;
> } else if (!check_from()) {
> sl_send_reply("403", "Use From=ID");
> return;
> };
> consume_credentials();
> if (nat_uac_test("19")) {
> setbflag(6);
> force_rport();
> fix_nated_contact();
> };
> force_rtp_proxy("l");
> };
> if (method=="ACK") {
> if (nat_uac_test("19")) {
> setbflag(6);
> force_rport();
> fix_nated_contact();
> };
> }
> route(1);
> return;
> };
> # -----------------------------------------------------------------
> # Call Type Processing Section
> # -----------------------------------------------------------------
> if (uri!=myself) {
> route(4);
> route(1);
> return;
> };
> if (method=="REGISTER") {
> route(2);
> return;
> } else if (method=="SUBSCRIBE") {
> route(3);
> return;
> } else if (method=="PUBLISH") {
> route(3);
> return;
> };
> lookup("aliases");
> if (uri!=myself) {
> append_hf("P-Hint: outbound alias");
> route(4);
> route(1);
> return;
> };
> if (!lookup("location")) {
> sl_send_reply("404", "User Not Found");
> return;
> };
> append_hf("P-Hint: usrloc applied");
> route(1);
> }
> route[1] {
> # -----------------------------------------------------------------
> # Default Message Handler
> # -----------------------------------------------------------------
> t_on_reply("1");
> if (!t_relay()) {
> if (method=="INVITE" && isbflagset(6)) {
> unforce_rtp_proxy();
> };
> sl_reply_error();
> };
> }
> route[3] {
> if (nat_uac_test("19")) {
> setbflag(6);
> }
> lookup("aliases");
> if (uri!=myself) {
> route(4);
> route(1);
> return;
> };
> if (!lookup("location")) {
> if(method!="SUBSCRIBE" && method!="MESSAGE") {
> sl_send_reply("404", "User Not Found");
> return;
> }
> }
> route(4);
> route(1);
> }
> route[4] {
> if ( isbflagset(6) )
> {
> ## Added for Subscribes
> if (method=="SUBSCRIBE") {
> # in-dialog subscribe request
> # mani added 2 following line to fix subscribe contact
> if (nat_uac_test("1")) {
> fix_nated_contact();
> }
> route(5);
> return;
> }
> else if (method=="PUBLISH") {
> # publish
> route(5);
> return;
> }
> fix_nated_contact();
> }
> # !! Presence handling
> route[5]
> {
> if (!t_newtran())
> {
> sl_reply_error();
> exit;
> };
> if(is_method("PUBLISH"))
> {
> handle_publish();
> }
> else
> if( is_method("SUBSCRIBE"))
> {
> handle_subscribe();
> }
> exit;
> }
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
More information about the Users
mailing list