Hi,
I'm trying to set up OpenSER as a presence server without using force_active (ie to allow authorization). I have two x-lite clients which register with OpenSER and can subscribe to each other. I get a prompt on each client asking whether to authorize the other, but if I click yes no presence info is displayed. If I restart either of the x-lites the authorization message appears again. I know this is because the subs_status field of the watchers table is not being changed from "pending" to "active". If I run a packet capture when starting up x-lite, it sends the 200 OK to the notify provided by OpenSER, but when I click "allow" in the authorization box, nothing is sent to OpenSER.
Has anyone got presence working with x-lite without using force_active? If so, is there anything I'm missing? My config file is as follows:
debug=7 # debug level (cmd line: -dddddddddd) fork=no log_stderror=yes check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) listen=udp:192.168.1.107:5060 children=4
mpath="/usr/local/lib/openser/modules/" loadmodule "mysql.so" loadmodule "sl.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "maxfwd.so " loadmodule "textops.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "presence.so" loadmodule "avpops.so" loadmodule "mi_fifo.so"
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") modparam("usrloc", "db_mode", 3) modparam("rr", "enable_full_lr", 1) modparam("presence|^usrloc$", "db_url"," mysql://user:pass@localhost /openser") modparam("presence", "force_active", 0) modparam("presence", "max_expires", 3600) modparam("presence", "server_address", "sip: 192.168.1.107:5060")
route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; };
if (!is_method("REGISTER")) record_route();
if (loose_route()) { route(1); exit; };
if (!uri==myself) { route(1); exit; };
if (uri==myself) { if (method=="REGISTER") { save("location"); exit; };
if (!lookup("location")) { sl_send_reply("404", "Not Found"); exit; }; }; if( is_method("PUBLISH|SUBSCRIBE")) { route(2); exit; };
route(1); } route[1] { if (!t_relay()) { sl_reply_error(); }; exit; } route[2] { sl_send_reply("100","trying"); 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; }
Thanks in advance,
Sebastian
Sebastian Murray-Roberts wrote:
Hi,
I'm trying to set up OpenSER as a presence server without using force_active (ie to allow authorization). I have two x-lite clients which register with OpenSER and can subscribe to each other. I get a prompt on each client asking whether to authorize the other, but if I click yes no presence info is displayed.
This is because xlite does not support XCAP. Usually the SIP client would (after clicking on yes) update the presrules and upload it via xcap to the server. Then, the server sets subscriptions to "active".
AFAIK with xlite you have to use force_active=1 as it does not support XCAP.
regards klaus
If I restart either of the x-lites the authorization message
appears again. I know this is because the subs_status field of the watchers table is not being changed from "pending" to "active". If I run a packet capture when starting up x-lite, it sends the 200 OK to the notify provided by OpenSER, but when I click "allow" in the authorization box, nothing is sent to OpenSER.
Has anyone got presence working with x-lite without using force_active? If so, is there anything I'm missing? My config file is as follows:
debug=7 # debug level (cmd line: -dddddddddd) fork=no log_stderror=yes check_via=no # (cmd. line: -v) dns=no # (cmd. line: -r) rev_dns=no # (cmd. line: -R) listen=udp:192.168.1.107:5060 children=4
mpath="/usr/local/lib/openser/modules/" loadmodule "mysql.so" loadmodule "sl.so" loadmodule "usrloc.so" loadmodule "registrar.so" loadmodule "maxfwd.so " loadmodule "textops.so" loadmodule "tm.so" loadmodule "rr.so" loadmodule "presence.so" loadmodule "avpops.so" loadmodule "mi_fifo.so"
modparam("mi_fifo", "fifo_name", "/tmp/openser_fifo") modparam("usrloc", "db_mode", 3) modparam("rr", "enable_full_lr", 1) modparam("presence|^usrloc$", "db_url"," mysql://user:pass@localhost /openser") modparam("presence", "force_active", 0) modparam("presence", "max_expires", 3600) modparam("presence", "server_address", "sip: 192.168.1.107:5060")
route{ if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); exit; }; if (msg:len >= 2048 ) { sl_send_reply("513", "Message too big"); exit; };
if (!is_method("REGISTER")) record_route();
if (loose_route()) { route(1); exit; };
if (!uri==myself) { route(1); exit; };
if (uri==myself) { if (method=="REGISTER") { save("location"); exit; };
if (!lookup("location")) { sl_send_reply("404", "Not Found"); exit; };
}; if( is_method("PUBLISH|SUBSCRIBE")) { route(2); exit; };
route(1); } route[1] { if (!t_relay()) { sl_reply_error(); }; exit; } route[2] { sl_send_reply("100","trying"); 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; }
Thanks in advance,
Sebastian
Users mailing list Users@openser.org http://openser.org/cgi-bin/mailman/listinfo/users