[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