I am at Interop HotStage in Belmont, CA trying to deploy a 'unified communication'
situation to demonstrate for the Interop Vegas show here in a few weeks. I am in charge of
the OpenSER/Asterisk components and presence is giving me a huge headache.
Apr 8 11:34:12 openser openser[23798]:
ERROR:presence:handle_subscribe: Missing or unsupported event header
field value Apr 8 11:34:12 openser openser[23798]:
ERROR:presence:handle_subscribe: ^Ievent= message-summary
Hopefully someone out there can help me figure out what is going wrong.
I am running Openser v1.3.1 from tarball on Ubuntu Gutsy, no xcap server (haven't
figured out if we really need one or not for our demo...)
I have loaded both presence and presence_xml. If you notice there is what I believe to be
a 'tab' character in the event= message-summary error response. I wonder if this
tab is causing the issue.
I see the Subscribe/Publish messages coming into openser and they are getting routed to
the appropriate config block and processed as I have seen documented, but every so often
the "Missing or unsupported event
header field value and ^Ievent= message-summary" error pops up.
Between two X-Lite softclients using 'presence agent' method, we never seem to get
any presence notifications, I presume due to the error above, but I am unsure.
All dependencies on both presence.so and presence_xml.so seem to be met
(verified with ldd)
# ldd presence_xml.so
linux-gate.so.1 => (0xffffe000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7e76000)
libc.so.6 => /lib/tls/i686/cmov/libc.so.6 (0xb7d2c000)
libdl.so.2 => /lib/tls/i686/cmov/libdl.so.2 (0xb7d27000)
libz.so.1 => /usr/lib/libz.so.1 (0xb7d12000)
libm.so.6 => /lib/tls/i686/cmov/libm.so.6 (0xb7ced000)
/lib/ld-linux.so.2 (0x80000000)
(identical for presence.so)
Here are the relevant portions of my config:
loadmodule "presence.so"
modparam("presence", "db_url",
"mysql://XXX:XXX@localhost/openser")
modparam("presence", "max_expires", 60)
modparam("presence", "server_address",
"sip:valid.ip.address:5060")
loadmodule "presence_xml.so"
modparam("presence_xml",
"db_url","mysql://XXX:XXX@localhost/openser")
modparam("presence_xml", "force_active", 1)
...
if(is_method("PUBLISH|SUBSCRIBE")) {
route(2);
}
...
route[2] {
xlog("L_INFO", "Dealing with $rm F:$fu T:$tu\n");
sl_send_reply("100","trying");
if (!t_newtran()) {
sl_reply_error();
exit;
};
append_to_reply("Contact: <sip:valid.ip.address:5060>\r\n");
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();
}
}
exit;
}
If anyone wants to help me troubleshoot and make this work, I will make sure you get
credit for assisting us here at Interop.
Jeremy McNamara