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