Hi all,
 
I use two X-Lite SIP clients with Contact list supported. I want to use chat (text mode) with each sip clients(X-Lite) via Openser.
I study the documents of Openser ( http://openser.org/docs/ ), I think the modules ( presence, pua, pua_usrloc, pua_mi ) should what I need.
But I don't know how to set it up. I can't see any online or offline information for both Xlite1 and Xlite2. Of couse, I add both of them as friends in contact list on X-Lite software.
 
Can anyone kind to give me some tips or any URL to reference please?
 
 
Xlite1  ==chat==> Openser ==Chat==> Xlite2
 
# -- presence params --
loadmodule "presence.so"
modparam("presence", "db_url", "mysql://openser:openserrw@localhost/openser")
modparam("presence", "max_expires", 3600)
modparam("presence", "force_active", 1)
modparam("presence", "server_address", "sip:127.0.0.1:5060" )
 
#### I don't know how to configure them in DB
# loadmodule "pua.so"
# modparam("pua", "db_url", "mysql://openser:openserrw@localhost/openser")
# loadmodule "pua_mi.so"
# loadmodule "pua_usrloc.so"
 
route[0]
{
 xlog("L_INFO", "New request - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
 force_rport();
 if(msg:len > max_len)
 {
  
  xlog("L_INFO", "Message too big - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
  sl_send_reply("513", "Message Too Big");
  exit;
 }
 if (!mf_process_maxfwd_header("10"))
 {
  xlog("L_INFO", "Too many hops - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
  sl_send_reply("483", "Too Many Hops");
  exit;
 }
 if(!is_method("REGISTER"))
 {
  if(nat_uac_test("19"))
  {
   record_route(";nat=yes");
  }
  else
  {
   record_route();
  }
 }
 if(is_method("CANCEL") || is_method("BYE"))
 {
  end_media_session();
 }
 if (is_method("NOTIFY")) {
  sl_send_reply("200", "OK");
  exit;
 };

 if(loose_route())
 {
  if(!has_totag())
  {  
   xlog("L_INFO", "Initial loose-routing rejected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
   sl_send_reply("403", "Initial Loose-Routing Rejected");
   exit;
  }
  if(nat_uac_test("19") || search("^Route:.*;nat=yes"))
  {
   fix_nated_contact();
   if(!search("^Content-Length:[ ]*0"))
   {
    setbflag(6);
   }
  }
  if(is_method("BYE"))
  {
   setflag(24); # account failed transactions
   setflag(25); # account successful transactions
  }
  # mark as loose-routed for acc
  setflag(26);
  route(11);
 }
 if(is_method("REGISTER"))
 {
  route(10);
 }
 setflag(24); # account failed transactions
 setflag(25); # account successful transactions

 if(is_method("INVITE"))
 {
  route(12);
 }
 if(is_method("CANCEL") || is_method("ACK"))
 {
  route(16);
 }

 ## Added for Presence
 if(is_method("PUBLISH") || is_method("SUBSCRIBE") || is_method("MESSAGE"))
 {
  route(19);
 }

 route(17);
}

route[19]
{
 xlog("L_INFO", "route[19] Presence Handling Router - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
 # absorb retransmissions
 if (! t_newtran())
 {
    sl_reply_error();
    exit;
 };
 
 if(is_method("PUBLISH"))
 {
  handle_publish();
  t_release();
 } else if(is_method("SUBSCRIBE")) {
  handle_subscribe();
  t_release();
 };
 exit;
}
 


--

Best Regards
Charles