Hey,
I have the same problem , using the same openser configuration file, only
adding pua_bla "server_address" parameter on 1.3.2 bla stop working.
I installed 2 openser once with 1.3.0 and the other with openser 1.3.2, then
start openser using full debug log level to see what happens with each one.
I'm using Polycom 650 hardphones
Basic console error log
-------------------------------------
ERROR:pua_bla:bla_handle_notify: content length= 0
WARNING:tm:t_unref: script writer didn't release transaction
http://pastebin.com/m4a1b7969 (OpenSER 1.3.2 debug logs)
Full debug log
-----------------------
http://pastebin.com/m177c219a (OpenSER 1.3.0 full log)
http://pastebin.com/m36f3ffca (OpenSER 1.3.2 full log)
The main difference that I saw comparing both logs are remarked in pastbin,
and refer to: "DBG:pua:print_subs: pres_uri"
Please see below both configuration parameters
Openser Parameters
----------------------------------
# Presence server module - common API
loadmodule "presence.so"
modparam("presence", "server_address", "sip:192.168.4.10")
modparam("presence", "max_expires", 3600)
# Presence server module - presence & watcher info and XCAP
loadmodule "presence_xml.so"
modparam("presence_xml", "force_active", 1)
# Common API for presence user agent client
loadmodule "pua.so"
# BLA extension for PUA
loadmodule "pua_bla.so"
modparam("pua_bla", "default_domain", "192.168.4.10")
modparam("pua_bla", "header_name", "Sender")
modparam("pua_bla", "server_address", "sip:192.168.4.10")
(Only for OpenSER
1.3.2
I'm sending configuration of affected routes (Main, Register, Presence) so
you can see if there is an error.
route {
# Sanity Check Section
#.....
# Loose Route Section
if (loose_route()) {
xlog("L_INFO", "$mi Loose Routing");
if(!has_totag()) {
xlog("L_INFO", "OPENSER_NAME: $mi 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");
route(ACC_FORBIDDEN_ROUTE);
return;
}
if (is_method("CANCEL") || is_method("ACK")) {
xlog("L_INFO", "$mi CANCEL/ACK");
route(BASE_LOCAL_ROUTE);
return;
}
if (is_method("SUBSCRIBE") && $rd == "OPENSER_IP") {
# in-dialog subscribe requests
route(PRESENCE_ROUTE);
return;
}
if(is_method("BYE")) {
route(ACC_BYE_ROUTE);
xlog("L_INFO", "(ACC) $mi Setting account_flag");
setflag(ACC_FLAG);
route(BASE_LOCAL_ROUTE);
return;
}
};
# Call Type Processing Section
if (method=="INVITE") {
route(INVITE_ROUTE);
return;
};
if (method=="REGISTER") {
route(REGISTER_ROUTE);
return;
}
if(is_method("PUBLISH|SUBSCRIBE")) {
route(PRESENCE_ROUTE);
return;
}
if(is_method("NOTIFY")) {
if($hdr(event)=="dialog;sla") {
route(PRESENCE_ROUTE);
return;
}
}
}
route[REGISTER_ROUTE] {
# -----------------------------------------------------------------
# REGISTER Message Handler
# -----------------------------------------------------------------
# This cool register script came from
http://openser.org/docs/scripting.html
xlog("L_NOTICE", "OPENSER_NAME: $mi Register Route - \
M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
if ((!www_authorize("OPENSER_DOMAIN", "device")))) {
xlog("L_INFO", "OPENSER_NAME: $mi Register Authentication Failed - \
M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
www_challenge("OPENSER_DOMAIN", "0");
sl_send_reply("401", "Unauthorized");
exit;
}
else
xlog("L_INFO", "OPENSER_NAME: $mi Register Authentication OK -\
M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
if ( !(src_ip=="LOCAL_PAIR_IP" && src_port==LOCAL_PAIR_PORT) ) {
if($hdr(User-Agent) =~ "PolycomSoundPointIP-SPIP_650-UA") {
xlog("L_NOTICE", "$mi Polycom BLA set FLAG \
M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
bla_set_flag();
}
if (!save("location")) {
xlog("L_NOTICE", "$mi $fu save(location) Failed\n");
sl_reply_error();
return(0);
};
}
consume_credentials();
return;
}
route[PRESENCE_ROUTE] {
# -------------------------------------------------------------------
# Presence Route
# -------------------------------------------------------------------
xlog("L_INFO","$mi: Presence Route");
if (!t_newtran()){
sl_reply_error();
exit;
};
if(is_method("PUBLISH")){
if($hdr(Sender)!= NULL) {
handle_publish("$hdr(Sender)");
}
else {
handle_publish("");
}
t_release();
}
else
if( is_method("SUBSCRIBE")) {
handle_subscribe();
t_release();
} else
if(is_method("NOTIFY")) {
if(bla_handle_notify()) {
t_reply("200", "OK");
t_release();
}
exit;
}
Ok, I hope that provided information help to see if there is a problem on my
configuration or a is a bug on OpenSER 1.3.2
Thanks in advance,
Cheers,
Gustavo Mistrinelli