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
Hello,
On 04/08/08 21:39, Jeremy McNamara wrote:
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
the above error message means that you try to handle an unsupported presence event. The subscribe is sent for MWI in this specific case, so it should be forwarded to Asterisk if you keep the voicemails there.
The presence_xml module is able to handle the events presence and presence.winfo. The presence module is the common framework for the other presence_* modules.
There is presence_mwi that should be able to handle the event 'message-summary'. However, if you don't get the presence working for two x-lite softphones, the error is somewhere else -- the above message does not affect the SIMPLE status presence part.
The 'tab' is printed from the C sources, in the debug message, it is not the cause for the issue.
You have to watch the SIP traffic and see if the SUBSCRIBEs and PUBLISHes are replied properly. Then check if after a PUBLISH a NOTIFY is issued.
Cheers, Daniel
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
Users mailing list Users@lists.openser.org http://lists.openser.org/cgi-bin/mailman/listinfo/users
Daniel-Constantin Mierla wrote:
There is presence_mwi that should be able to handle the event 'message-summary'. However, if you don't get the presence working for two x-lite softphones, the error is somewhere else -- the above message does not affect the SIMPLE status presence part.
Yeah - Shortly after I sent my message we fired up wireshark to figure out that there was a rouge Polycom phone sending us MWI indications, which we were not expecting. I knew something odd was happening just wasn't sure exactly what until we were able to sniff the wire.
The 'tab' is printed from the C sources, in the debug message, it is not the cause for the issue.
Ok - good to know.
You have to watch the SIP traffic and see if the SUBSCRIBEs and PUBLISHes are replied properly. Then check if after a PUBLISH a NOTIFY is issued.
OpenSER is sending what looks to be a properly formatted NOTIFY, however we always getting back a 481 Call Transaction Does Not exist from X-Lite to OpenSER's presence NOTIFY message.
We are setting up SJPhone and a Polycom phone to see if we get any different behavior.
Are we missing something in the config I sent previously?
Thank you,
Jeremy
On 04/08/08 22:37, Jeremy McNamara wrote:
Daniel-Constantin Mierla wrote:
There is presence_mwi that should be able to handle the event 'message-summary'. However, if you don't get the presence working for two x-lite softphones, the error is somewhere else -- the above message does not affect the SIMPLE status presence part.
Yeah - Shortly after I sent my message we fired up wireshark to figure out that there was a rouge Polycom phone sending us MWI indications, which we were not expecting. I knew something odd was happening just wasn't sure exactly what until we were able to sniff the wire.
The 'tab' is printed from the C sources, in the debug message, it is not the cause for the issue.
Ok - good to know.
You have to watch the SIP traffic and see if the SUBSCRIBEs and PUBLISHes are replied properly. Then check if after a PUBLISH a NOTIFY is issued.
OpenSER is sending what looks to be a properly formatted NOTIFY, however we always getting back a 481 Call Transaction Does Not exist from X-Lite to OpenSER's presence NOTIFY message.
We are setting up SJPhone and a Polycom phone to see if we get any different behavior.
Are we missing something in the config I sent previously?
The snippets seem to be ok, and as you got to openser sending the NOTIFY, it should be pretty much ok in the server side.
There is something that makes x-lite unhappy. If you can send me the SIP trace, from the SUBSCRIBE sent by x-lite, with the PUBLISH and the NOTIFY, I may be able to spot something.
Cheers, Daniel
Thank you,
Jeremy
Daniel-Constantin Mierla wrote:
There is something that makes x-lite unhappy. If you can send me the SIP trace, from the SUBSCRIBE sent by x-lite, with the PUBLISH and the NOTIFY, I may be able to spot something.
I sent you a SIP trace off-list. However, upon turning on some debug in X-Lite we are getting a message, "Got an INVITE or SUBSCRIBE that doesn't contain exactly one contact."
In my subscribe|publish route block i am setting:
append_to_reply("Contact: sip:valid.openser.ip.address:5060\r\n");
...I do see the Contact header within the SIP Notify message going to X-Lite.
This is smelling like either an incorrectly formatted Contact header or an X-Lite problem :(
Jeremy
On 04/08/08 23:08, Jeremy McNamara wrote:
Daniel-Constantin Mierla wrote:
There is something that makes x-lite unhappy. If you can send me the SIP trace, from the SUBSCRIBE sent by x-lite, with the PUBLISH and the NOTIFY, I may be able to spot something.
I sent you a SIP trace off-list. However, upon turning on some debug in X-Lite we are getting a message, "Got an INVITE or SUBSCRIBE that doesn't contain exactly one contact."
In my subscribe|publish route block i am setting:
append_to_reply("Contact:
this is wrong, indeed, I overlooked that line. Remove it from the configuration file (belongs to an old version of presence server configuration). The dialog for the subscribe is not created because of that. The 200ok for the subscribe has two contact headers, which is wrong.
You sent me only the NOTIFY/200ok -- the SUBSCRIBE/200ok and the PUBLISH/200ok would have been useful (as the problem is in 200OK for SUBSCRIBE) -- I am sure will work once removing above line and restarting.
Cheers, Daniel
...I do see the Contact header within the SIP Notify message going to X-Lite.
This is smelling like either an incorrectly formatted Contact header or an X-Lite problem :(
Jeremy
Daniel-Constantin Mierla wrote:
this is wrong, indeed, I overlooked that line. Remove it from the configuration file (belongs to an old version of presence server configuration). The dialog for the subscribe is not created because of that. The 200ok for the subscribe has two contact headers, which is wrong.
Removing the Contact header from my configuration script did the trick!
Now lets see if I can gateway presence to/from XMPP.
Thank you once again,
Jeremy McNamara