<div>Hi all,</div>
<div> </div>
<div>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.</div>
<div>I study the documents of Openser ( <a href="http://openser.org/docs/">http://openser.org/docs/</a> ), I think the modules ( presence, pua, pua_usrloc, pua_mi ) should what I need.</div>
<div>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.</div>
<div> </div>
<div>Can anyone kind to give me some tips or any URL to reference please?</div>
<div> </div>
<div> </div>
<div>Xlite1 ==chat==> Openser ==Chat==> Xlite2</div>
<div> </div>
<div># -- presence params --<br>loadmodule "presence.so"<br>modparam("presence", "db_url", "mysql://openser:openserrw@localhost/openser")<br>modparam("presence", "max_expires", 3600)
<br>modparam("presence", "force_active", 1)<br>modparam("presence", "server_address", "sip:<a href="http://127.0.0.1:5060">127.0.0.1:5060</a>" )</div>
<div> </div>
<div>#### I don't know how to configure them in DB</div>
<div># loadmodule "pua.so"<br># modparam("pua", "db_url", "mysql://openser:openserrw@localhost/openser")<br># loadmodule "pua_mi.so"<br># loadmodule "pua_usrloc.so"
</div>
<div> </div>
<div>route[0]</div>
<div>{</div>
<div> xlog("L_INFO", "New request - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br> force_rport();<br> if(msg:len > max_len)<br> {<br> <br> xlog("L_INFO", "Message too big - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
<br> sl_send_reply("513", "Message Too Big");<br> exit;<br> }<br> if (!mf_process_maxfwd_header("10"))<br> {<br> xlog("L_INFO", "Too many hops - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
<br> sl_send_reply("483", "Too Many Hops");<br> exit;<br> }<br> if(!is_method("REGISTER"))<br> {<br> if(nat_uac_test("19"))<br> {<br> record_route(";nat=yes");<br> }
<br> else<br> {<br> record_route();<br> }<br> }<br> if(is_method("CANCEL") || is_method("BYE"))<br> {<br> end_media_session();<br> }</div>
<div> if (is_method("NOTIFY")) {<br> sl_send_reply("200", "OK");<br> exit;<br> };</div>
<div>
<p> if(loose_route())<br> {<br> if(!has_totag())<br> { <br> xlog("L_INFO", "Initial loose-routing rejected - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br> sl_send_reply("403", "Initial Loose-Routing Rejected");
<br> exit;<br> }<br> if(nat_uac_test("19") || search("^Route:.*;nat=yes"))<br> {<br> fix_nated_contact();<br> if(!search("^Content-Length:[ ]*0"))<br> {<br> setbflag(6);<br> }
<br> }<br> if(is_method("BYE"))<br> {<br> setflag(24); # account failed transactions<br> setflag(25); # account successful transactions<br> }<br> # mark as loose-routed for acc<br> setflag(26);<br> route(11);
<br> }<br> if(is_method("REGISTER"))<br> {<br> route(10);<br> }<br> setflag(24); # account failed transactions<br> setflag(25); # account successful transactions</p>
<p> if(is_method("INVITE"))<br> {<br> route(12);<br> }<br> if(is_method("CANCEL") || is_method("ACK"))<br> {<br> route(16);<br> }</p>
<p> ## Added for Presence<br> if(is_method("PUBLISH") || is_method("SUBSCRIBE") || is_method("MESSAGE"))<br> {<br> route(19);<br> }</p>
<p> route(17);<br>}<br></p></div>
<div>route[19]<br>{<br> xlog("L_INFO", "route[19] Presence Handling Router - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");<br> # absorb retransmissions<br> if (! t_newtran())<br> {<br> sl_reply_error();
<br> exit;<br> };<br> <br> if(is_method("PUBLISH"))<br> {<br> handle_publish();<br> t_release();<br> } else if(is_method("SUBSCRIBE")) {<br> handle_subscribe();<br> t_release();<br> };<br> exit;
<br>}<br> </div>
<div><br clear="all"><br>-- <br><br>Best Regards<br>Charles </div>