I'm using javamail lib to send calendar invites. I notice exchange server adds this to the text/html part of the mail. The text/plain and text/calendar parts are not modified.
<meta name=3D"Generator" content=3D"Microsoft Exchange Server">
<!-- converted from rtf -->
<style><!-- .EmailQuote { margin-left: 1pt; padding-left: 4pt; border-left:=
#800000 2px solid; } --></style>
This behavior is not noticed when
the invite is received by a non-exchange email like #gmail.com.
when the exact text/html content is sent without the text/calendar part to an exchange email.
I believe exchange server is treating text/html in calendar invites differently, but I'm not able to find a solution that works for both exchange and non-exchange servers.
Outlook prior to 2016 always converted HTML in the meeting requests in RTF (which is/was the native body format for the appointments / tasks / contacts).
What version of Outlook and Exchange are you using?
I have built a chat application using strophe.js library with openfire sever. The problem I face is that ,I'm sending nickname from my application but i don't know whether openfire is picking this name and sending it to the other end. Is there a way to check nicknames of all the clients connected to openfire in admin console ?
This is the code for sending nickname,on each msg i push nickname.
code:
var rep = $msg({
to: JANE,
from: connection.jid
}).c("nick",{xmlns:'http://jabber.org/protocol/nick'}).t("anil");
connection.send(rep.tree());
in application logs i can see xml format lik this,
<body rid='630150802' xmlns='http://jabber.org/protocol/httpbind' sid='3045bed3'>
<message to='xyz.yyy.com' from='3045bed3#domaiin.com/3045bed3' xmlns='jabber:client'>
<nick xmlns='http://jabber.org/protocol/nick'>anil</nick>
</message>
</body>
if i send the nick name along with msg with body,
logs looks like this,
<body rid='862711207' xmlns='http://jabber.org/protocol/httpbind' sid='9f5d7b67'>
<message to='xyz.yyy.com' from='9f5d7b67#domain.com/9f5d7b67' type='chat' xmlns='jabber:client'>
<nick xmlns='http://jabber.org/protocol/nick'>anil<body>hello</body></nick>
</message>
</body>
nick name header ends after message body ends, but I want it to be like this:
<body>
<message>
<nick>anil</nick>
<body>"chat text"</body>
</message>
</body>
How do I close this nick name field before the body starts?
I am having trouble finding the correct XEP to use for this specific use case:
Initiator (e.g. iOS or Android device) uploads a file to a server and needs to notify the responder (in this case this would be a browser based client) to download the file from the location he just uploaded to using HTTP.
All the XEP's I have come across talk about streams or IBB/SOCKS5. I did found the following which could be useful but no updates since 2007:
http://xmpp.org/extensions/inbox/jingle-httpft.html
Am I overlooking something on an XEP which is in draft or final?
Either use XEP-0066: Out of Band Data, or just encode the link in a XEP-0071: XHTML-IM a element.
The first:
<message from='stpeter#jabber.org/work'
to='MaineBoy#jabber.org/home'>
<body>Yeah, but do you have a license to Jabber?</body>
<x xmlns='jabber:x:oob'>
<url>http://www.jabber.org/images/psa-license.jpg</url>
</x>
</message>
The second:
<message>
<body>here is a file [http://www.jabber.org/images/psa-license.jpg]</body>
<html xmlns='http://jabber.org/protocol/xhtml-im'>
<body xmlns='http://www.w3.org/1999/xhtml'>
<p>Here is a <a href='http://www.jabber.org/images/psa-license.jpg'>file</a></p>
</body>
</html>
</message>
I have being checking out using a prototype test program the capabilities of the XMPP Facebook Chat, X-FACEBOOK. It worked great using a geoloc message XEP 0080 with Gmail servers, but when i try to send the same XML structure through the X-FACEBOOK, it trims the message and removes the GeoLoc node.
I wanted to ask if someone knows if its possible to send XEP 0080 messages in X-FACEBOOK and if so what structure should I use so the Facebook Chat XMPP Server won't trim the GeoLoc info.
Sent XMPP geoloc message:
<message to="-100002578491827#chat.facebook.com" from="4yony4#chat.facebook.com/19256ca9_4C5CC12947646" type="chat" xml:lang="en">
<event xmlns="http://jabber.org/protocol/pubsub#event">
<items node="http://jabber.org/protocol/geoloc">
<item id="">
<geoloc xmlns="http://jabber.org/protocol/geoloc">
<lat>40.488137</lat>
<lon>-3.397623</lon>
<timestamp>2012-07-27 09:09:50 GMT</timestamp>
<msgType>0</msgType>
</geoloc>
</item>
</items>
</event>
<body>
</body>
Received message by client:
<message xmlns="jabber:client" from="-1177157556#chat.facebook.com" to="" type="chat">
<active xmlns="http://jabber.org/protocol/chatstates"/>
<body></body>
</message>
Any solution or opinion will be greatly appreciated.
Well, changed the XML to resemble the one you posted, without the pub sub, and still the same problem, the message received in the recipient lacks all the namespaces under the GeoLoc node, which I think is a result of the Server not supporting that format. I can try and use the IQ subscriber option, thing is that I prefer to find a solution on which I can directly send the info to a user.
If there is a possibility, even a small one in which i may be able to send information regarding GeoLoc from User A to User B in Facebook Server it may be of great help, if not well i guess i will have to accept it.
Thx for the help BTW.
When I was testing facebook XMPP connection, it did not support almost any extensions and blocked any custom tags on server. It was able to send basic presences, basic messages, vcards and that was about all it could do.
Pubsub events should be sent to services. Modern XMPP servers also support PEP extension and you can send pubsub to servers itself. In other cases, use message with target user as Robin have advised.
I do not think facebook has any server with pubsub. Also i think it still filters any unsupported namespaces. Feel free to prove me I am wrong, it is more than year since I last tested it.
These are not the same message.
The received message is simply an indicator of the users chat state, as defined in XEP-0085 and has no direct relationship to the message you sent. That doesn't mean that the first didn't potentially trigger the second, whatever library you are using may have sent the chatstate as well when you sent the message. This type of message is commonly used in chat clients to indicate that someone you are chatting with is typing a message.
The problem is probably that the message you are sending is in fact a PEP message. This is meant to be sent by the PEP service in the server, not from a client. I don't know if Facebook supports PEP or not, but I would guess that it is being filtered out due to your incorrect usage of a known namespace. PEP or Pubsub are the recommended ways of publishing geolocation information, but to utilize those you have to send an IQ packet to the service, not a message to the other client.
Try this instead (Not saying it will work, but at least the pubsub stuff is stripped):
<message to="-100002578491827#chat.facebook.com" from="4yony4#chat.facebook.com/19256ca9_4C5CC12947646" type="chat" xml:lang="en">
<geoloc xmlns="http://jabber.org/protocol/geoloc">
<lat>40.488137</lat>
<lon>-3.397623</lon>
<timestamp>2012-07-27 09:09:50 GMT</timestamp>
<msgType>0</msgType>
</geoloc>
<body>
</body>
</message>
I want to second Pihhan. It seems like the Facebook XMPP servers restructure messages to contain only the message body, date, and timestamp. I think they do that to keep it identical to their comment graph objects.
It is annoying, but I suspect it is deliberate. After all, their Graph is the main issue, not XMPP.
I am trying to find out the execution order of XMPP stanzas, I am using Strophe + Ejabberd and if I send a request like this.
<body rid='someRID' xmlns='http://jabber.org/protocol/httpbind' sid='someSID'>
<message to='someUser#someDomain' type='chat' xmlns='jabber:client'>
<body>123</body>
</message>
<presence type='unavailable' xmlns='jabber:client' />
</body>
Presence stanzas is always executed first and message stanza later. Is there a way to specify order or something like that so that Message stanza is executed first and Presence later.
Thanks
It's a bug in the server. RFC 6120, Section 10.1 says:
An XMPP server MUST ensure in-order processing of the stanzas and
other XML elements it receives over a given input stream from a
connected client or remote server.