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