BEEM - Android XMPP Application: Issueshttp://elyzion.net/http://elyzion.net/themes/beem/favicon/favicon.ico?15180459462013-05-09T09:15:54ZBEEM - Android XMPP Application
Redmine BEEM - Android XMPP - Support #492 (New): I wont to Server path in your applications Beem-0.1.8 http://elyzion.net/issues/4922013-05-09T09:15:54ZAnonymous
<p>Respected sir,<br />I wont to Server path in your applications Beem-0.1.8 in android on code.<br />where code is server in your app.</p> BEEM - Android XMPP - Bug #489 (New): digest-uri wrong when using separate server http://elyzion.net/issues/4892013-03-25T14:50:50ZAnonymous
<p>Hi,</p>
<p>when configuring a separate server for connection, this<br />server IP or domain is used as the digest uri. This is wrong<br />for virtual hosts, which are very common.</p>
<p>Solution:<br />Introduce option to use domain of Jabber-ID as digest uri<br />(even when domain is not fully qualified as without ".com" or so,<br />like "myjabber" or "mygroup".</p>
<p>Example:</p>
<p>Jabber-ID: user@virthost<br />Server: xmpp.veryltd.com</p>
<p>In this case there is a virtual host "virthost" configured in jabber at<br />the server xmpp.veryltd.com. The digest uri therefore should be "virthost" <br />otherwise authentication fails.</p>
<p>Thanks a lot!</p>
<p><strong>What steps will reproduce the problem?</strong><br />1. <br />2. <br />3.</p>
<p><strong>What is the expected output? What do you see instead?</strong></p>
<p><strong>What version of Beem are you using? On what Android version? On what device?</strong></p>
<p>Please provide any additional information below.</p> BEEM - Android XMPP - Bug #449 (Closed): Beem Authentication Bughttp://elyzion.net/issues/4492012-08-12T12:39:59ZAnonymous
<p>Hi All,<br />So my JID is either in the form of <a class="email" href="mailto:555@sub.myname.net">555@sub.myname.net</a> or just 555 (I can't tell) and I'm trying to log into host sub.myname.net with a slightly modified xmpp server, but I don't think that's the problem and I can't seem to figure out what's wrong.. Any help/guidance would be apprciated..</p>
<p>When I set the JID to 555 in Beem (with the option to "Use my full JID as username" in either setting), I see a convo with my XMPP server that is like:<br /><pre>
<stream:stream to="555" xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" version="1.0">
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' id='0314dcea-1729-4f45-8272-820fb14594f3' from='555' version='1.0'><stream:error><host-unknown xmlns="urn:ietf:params:xml:ns:xmpp-streams"/></stream:error></stream:stream>
<presence id="eU8sz-14" type="unavailable"></presence>
</stream:stream>
</pre></p>
<p>When I set my JID to the form of <a class="email" href="mailto:555@sub.myname.net">555@sub.myname.net</a> with "Use my full JID as username" <strong>off</strong> I see something like:<br /><pre>
<stream:stream xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" to="sub.myname.net" version="1.0"/>
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' id='1c2d492b-7c31-42d2-8946-bf268981dbeb' from='sub.myname.net' version='1.0'>
<stream:features>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>PLAIN</mechanism>
</mechanisms>
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" mechanism="PLAIN">NTU1NTU1VTlKTnhGb2JCRmp5RW1FSg==</auth>
<failure xmlns="urn:ietf:params:xml:ns:xmpp-sasl"><not-authorized/></failure>
</pre><br />There, "NTU1NTU1VTlKTnhGb2JCRmp5RW1FSg==" is the base64 encoding of "555555U9JNxFobBFjyEmEJ", with 555 being my JID before the @ and "U9JNxFobBFjyEmEJ" being my example password.</p>
<p>When I set my JID to the form of <a class="email" href="mailto:555@sub.myname.net">555@sub.myname.net</a> with "Use my full JID as username" <strong>on</strong> I see something identical to the previous, except the base64 encoding translates to: "<a class="email" href="mailto:555@sub.myname.net">555@sub.myname.net</a><NULL><a class="email" href="mailto:555@sub.myname.net">555@sub.myname.net</a><NULL>U9JNxFobBFjyEmEJ" (WITH delimiters).</p>
<p>Finally, when I use my Desktop PC and Jabber, using all normal settings, I see something like:<br /><pre>
<stream:stream xmlns="jabber:client" xmlns:stream="http://etherx.jabber.org/streams" to="sub.myname.net" version="1.0"/>
<stream:stream xmlns='jabber:client' xmlns:stream='http://etherx.jabber.org/streams' xml:lang='en' id='24672be6-d751-4928-a750-fbc20cce6e5f' from='sub.myname.net' version='1.0'>
<stream:features>
<mechanisms xmlns="urn:ietf:params:xml:ns:xmpp-sasl">
<mechanism>PLAIN</mechanism>
</mechanisms>
</stream:features>
<auth xmlns="urn:ietf:params:xml:ns:xmpp-sasl" xmlns:ga="http://www.google.com/talk/protocol/auth" mechanism="PLAIN" client-uses-full-bind-result="true">NTU1VTlKTnhGb2JCRmp5RW1FSg==</auth>
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
</pre></p>
<p>This base64 encoding translates simply into "<NULL>555<NULL>U9JNxFobBFjyEmEJ" with no domain and no duplicated JID. This is the only thing that authenticates successfully against my server.</p>
<p>(Note that I also don't understand how the server is supposed to discern between the end of the JID and the beginning of the password with the auth stanzas from Beem, since they lack the NULL byte delimieters, but maybe I'm missing something..)</p>
<p>Please advise.<br />Thanks!<br />Mike</p>
<p>(Note: I've gone and replaced all usernames, passwords and domains for privacy reasons.)</p>
<p>PS: <br />Looking at RFC 4616 (the spec for PLAIN SASL AUTH), the format of the auth XMPP stanza's base64-encoded contents should be "authzid<NULL>authcid<NULL>password", where the relationship between authzid and authcid are described as follows (sorry if this is remedial.. these are new terms to me):</p>
<pre>
Upon receipt of the message, the server will verify the presented (in the message) authentication identity (authcid) and password (passwd) with the system authentication database, and it will verify that the authentication credentials permit the client to act as the (presented or derived) authorization identity (authzid).
</pre>
<p>Looking at my code, it looks like authzid is disregarded. So it seems this whole problem is fixed by allowing some way for the transmitted base64-encoded string to read "noonecares<NULL>555<NULL>U9JNxFobBFjyEmEJ"</p> BEEM - Android XMPP - Feature #425 (Closed): Rework the CreateAccount activityhttp://elyzion.net/issues/4252012-04-11T15:58:54ZFrédéric Barthéléry
<p>The code may be simplified and actually the activity cause an ANR because of network requests made on the main thread.</p> BEEM - Android XMPP - Bug #387 (Closed): Unknown certificate error after update to 0.1.7http://elyzion.net/issues/3872012-01-20T21:47:49ZAnonymous
<p>I've just updated to version 0.1.7-rc1 and started getting an unknown certificate error while connecting to the jabber server.</p>
<p>I get a message box with the title "Accept Unknown Certificate?" and the message following text:</p>
<p>Trust anchor for certification path not found.</p>
<p>CN=jabster.pl<br />(OID.1.2.840.113549.1.9.1=#1612737570706F7274406361636572742E6F762, CN=CA Cert Signing Authority,OU=http://www.cacert.org, O=Root CA)<br />OID.1.2.840.113549.1.9.1=#1612737570706F7274406361636572742E6F762, CN=CA Cert Signing Authority,OU=http://www.cacert.org, O=Root CA<br />(OID.1.2.840.113549.1.9.1=#1612737570706F7274406361636572742E6F762, CN=CA Cert Signing Authority,OU=http://www.cacert.org, O=Root CA)</p> BEEM - Android XMPP - Bug #293 (Rejected): Unable to view received messages.http://elyzion.net/issues/2932010-08-19T01:07:37ZAnonymous
<p>Using a custom XMPP server (specifically for Champions Online), when people send me a message, or reply to my messages, I cannot see their text. The notification sound plays, but no text is shown. HTC Magic 2.1 firmware.</p> BEEM - Android XMPP - Feature #253 (Closed): Deal with strict certificate checkinghttp://elyzion.net/issues/2532010-04-07T20:24:55ZFrédéric Barthéléry
<p>Strict certificate checking for TLS connections needs better API support. Currently, an exception is thrown when connecting and it's not possible to handle it gracefully.<br />This will probably need some heavy patch on smack code for TLS. <br />see <a class="external" href="http://www.igniterealtime.org/issues/browse/SMACK-157">http://www.igniterealtime.org/issues/browse/SMACK-157</a></p> BEEM - Android XMPP - Bug #203 (Rejected): Importation du projet "File of wrong type exists"http://elyzion.net/issues/2032009-10-08T10:42:22ZJean-Manuel Da Silvadasilvj@gmail.com
<p>A la creation du projet sous Eclipse et son importation, un message d'erreur apparait:<br />"Cannot create file because existing file of wrong type exists: D:\code\beem\res\values"</p> BEEM - Android XMPP - Bug #162 (Rejected): Raccourci BEEMhttp://elyzion.net/issues/1622009-06-01T01:41:14ZJean-Manuel Da Silvadasilvj@gmail.com
<p>Le raccourci BEEM ne fonctionne plus. Il est ainsi impossible de relancer l'application une fois qu'on en est sorti.</p> BEEM - Android XMPP - Feature #142 (Closed): Gérer l'erreur de connexion lors du Loginhttp://elyzion.net/issues/1422009-05-26T22:52:52ZJean-Manuel Da Silvadasilvj@gmail.com
<p>En cas d'une tentative de login échouée, afficher une AlertDialog avec le message d'erreur correspondant.</p> BEEM - Android XMPP - Support #140 (Closed): [DOCTEC] Description de l'architecture logiciellehttp://elyzion.net/issues/1402009-05-26T14:05:57ZPhilippe Lagobalrogbarbu@gmail.com
Dans cette partie de la documentation utilisateur, il nous faudrait:
<ul>
<li>un schema detaillé decrivant toutes les briques logicielle utilisées (libs, framework app android, beem-core, beem-ui)</li>
<li>une explication succinte sur chacune des briques et comment elles interagissent entre elles.</li>
</ul>
<p>note: améliorer le schema present dans le DA3</p> BEEM - Android XMPP - Bug #136 (Closed): Basculement entre les conversations en courshttp://elyzion.net/issues/1362009-05-25T01:44:59ZFrédéric Barthéléry
<p>Basculement entre plusieurs conversations<br />L'utilisateur doit pouvoir basculer entre<br />plusieurs conversations sans pour autant perdre<br />les messages precedents.</p>
<p>Lorsqu'on bascule entre plusieurs conversations on perd l'affichage des messages deja recus. On cree egalement une activite par conversation ce qui rend difficile la navigation.</p> BEEM - Android XMPP - Feature #135 (Closed): Fermer application, Test et recherche de bugshttp://elyzion.net/issues/1352009-05-25T01:38:16ZFrédéric Barthéléry
<p>Pour le moment l'application ne quitte jamais. Il<br />nous faut definir les comportements ou on doit<br />considerer l'application comme ferme et<br />comment acceder a cet etat.</p> BEEM - Android XMPP - Support #119 (Closed): Réunions de la semaine du 18 au 23 Mai.http://elyzion.net/issues/1192009-05-18T02:15:36ZJean-Manuel Da Silvadasilvj@gmail.com
<p>Créer un document récapitulatif des questions à traiter lors de ces réunions.<br />Réaliser des comptes rendus que chacun puisse s'y référer lorsque le besoin s'en fait sentir.</p> BEEM - Android XMPP - Feature #58 (Closed): Liste de XEP a implementerhttp://elyzion.net/issues/582009-03-25T22:50:27ZFrédéric Barthéléry
<a name="Intro"></a>
<h2 >Intro<a href="#Intro" class="wiki-anchor">¶</a></h2>
<p>Voici une liste d'extension qu'ils nous faudrait implementer dans BEEM. Cette liste est non exhaustive et sert surtout pour avoir une idee des differents ecrans utilisateur (activite android) qu'il faut realiser.</p>
<a name="Extensions-requise-pour-BEEM"></a>
<h2 >Extensions requise pour BEEM<a href="#Extensions-requise-pour-BEEM" class="wiki-anchor">¶</a></h2>
<a name="XMPP-Core-Client-2009"></a>
<h3 >XMPP Core Client 2009<a href="#XMPP-Core-Client-2009" class="wiki-anchor">¶</a></h3>
Un client XMPP doit implementer ces specifications:
<ul>
<li><a href="http://tools.ietf.org/html/rfc3920" class="external">rfc3920</a> Cette specification definie le coeur du protocole XMPP</li>
<li><a href="http://tools.ietf.org/html/rfc3921" class="external">rfc3921</a> Cette specification definie un ensemble d'extension basique pour le XMPP</li>
<li><a href="http://xmpp.org/extensions/xep-0030.html" class="external">XEP-0030 Service Discovery</a> Cette specification permet de decouvrir les services disponible avec un agent XMPP, aussi bien un client que le serveur ou autre chose. Ainsi on peut par exemple gerer que notre contact supporte la video donc on active la possibilite de communiquer avec lui par webcam. </li>
<li><a href="http://xmpp.org/extensions/xep-0115.html" class="external">XEP 115 Entity capabilities</a> Cette specification permet de gagner de la bande passante lors de la decouverte des services disponibles.</li>
</ul>
<p>Les rfc 3920 et 3921 sont mises a jours par ces 2 rfcs <a href="http://tools.ietf.org/html/draft-saintandre-rfc3920bis-09" class="external">rfc3920bis</a> et <a href="http://tools.ietf.org/html/draft-saintandre-rfc3921bis-08" class="external">rfc3921bis</a> . Dans l'ensemble ces 4 specifications sont implementes dans Smack donc niveau protocole, il ne devrait pas y avoir grand chose a coder. Je vous conseille de parcourir le sommaire de ces specs afin de voir quel fonctionnalites activer dans l'interface utilisateur.</p>
<a name="XMPP-Advanced-Client-2009"></a>
<h3 >XMPP Advanced Client 2009<a href="#XMPP-Advanced-Client-2009" class="wiki-anchor">¶</a></h3>
Un client XMPP "avance" doit implementer ces specifications :
<ul>
<li><a href="http://xmpp.org/extensions/xep-0016.html" class="external">XEP-0016: Privacy Lists</a> Cette extension specifie le protocole pour implementer le blocage d'un contact (comme msn)</li>
<li><a href="http://xmpp.org/extensions/xep-0191.html" class="external">XEP-0191: Simple Communications Blocking</a> est une simplification de la XEP-0016 afin de faciliter l'implementation de cette fonctionnalite donc c'est surtout elle qu'il faut regarder</li>
<li><a href="http://xmpp.org/extensions/xep-0045.html" class="external">XEP-0045: Multi-User Chat</a> Cette specification permet d'implementer des salons de discussion like irc</li>
<li><a href="http://xmpp.org/extensions/xep-0054.html" class="external">XEP-0054 vcard-tmp</a> permet de stocker une v-card sur le serveur et ainsi permettre de recuperer des informations sur un contact</li>
<li><a href="http://xmpp.org/extensions/xep-0085.html" class="external">XEP-0085: Chat State Notifications</a> Lors d'une discussion, cette extenstion permet de signaler que quelqu'un est en train d'ecrire un message (par exemple)</li>
</ul>
<p>La XEP-0085 ne semble pas tres interessantes pour BEEM car elle cause aussi une utilisation supplementaire de la bande passante sans apporter de reel interet pour une utilisation sur mobile.<br />La XEP-0054 est deja assez ancienne et risque fort d'etre remplacer par la <a href="http://xmpp.org/extensions/xep-0154.html" class="external">XEP-0154: User Profile</a> qui est en status experimental.</p>
<a name="Jingle"></a>
<h3 >Jingle<a href="#Jingle" class="wiki-anchor">¶</a></h3>
Comme vous le savez tous Jingle est l'extension XMPP qui permet de realiser des echanges multimedia. Cette extension est plutot grosse, elle est donc definie en plusieurs XEP.
<ul>
<li><a href="http://xmpp.org/extensions/xep-0166.html" class="external">XEP-0166: Jingle</a> definit le coeur du protocole Jingle</li>
<li><a href="http://xmpp.org/extensions/xep-0167.html" class="external">XEP-0167: Jingle RTP Sessions</a> specifie le protocole pour realiser une session en utilisant le protocole RTP</li>
<li><a href="http://xmpp.org/extensions/xep-0176.html" class="external">XEP-0176: Jingle ICE-UDP Transport Method</a> specifie une methode de transport utilisant ICE-UDP. Cette methode de transport permet notamment de regler les problemes de NAT.</li>
<li><a href="http://xmpp.org/extensions/xep-0177.html" class="external">XEP-0177: Jingle Raw UDP Transport Method</a> specifie une methode de transport en UDP. C'est une methode simple qui marche dans les configurations simples.</li>
</ul>
<a name="Autres-extensions-interessantes"></a>
<h2 >Autres extensions interessantes<a href="#Autres-extensions-interessantes" class="wiki-anchor">¶</a></h2>
<a name="Personnal-Eventing-Protocol-ou-PEP"></a>
<h3 ><a href="http://xmpp.org/extensions/xep-0163.html" class="external">Personnal Eventing Protocol</a> ou PEP<a href="#Personnal-Eventing-Protocol-ou-PEP" class="wiki-anchor">¶</a></h3>
<p>PEP est une simplification de l'extension <a href="http://xmpp.org/extensions/xep-0060.html" class="external">Publish-Subscribe</a> realise dans l'optique de permettre a l'utilisateur de definir des information contextuelle tel que la musique qu'il ecoute ou encore son activite actuelle. Elle definie un ensemble de specifications pour chaque possibilite. <br /><a href="http://xmpp.org/extensions/xep-0118.html" class="external">XEP-0118: User Tune</a> pour la fonction "Je suis en train d'ecouter ..." <br /><a href="http://xmpp.org/extensions/xep-0108.html" class="external">XEP-0108: User Activity</a> pour "Je suis en train de dormir" <br /><a href="http://xmpp.org/extensions/xep-0107.html" class="external">XEP-0107: User Mood</a> pour "Je suis fatigue" <br /><a href="http://xmpp.org/extensions/xep-0080.html" class="external">XEP-0080: User Location</a> pour "Je suis a la Tour Eiffel plus precisement a latitutde 42 longitude 42" <br /><a href="http://xmpp.org/extensions/xep-0084.html" class="external">XEP-0084: User Avatar</a> pour envoyer son nouvel avatar</p>
<a name="Avatars"></a>
<h3 >Avatars<a href="#Avatars" class="wiki-anchor">¶</a></h3>
Afin de gerer les avatars de l'utilisateur on peut implementer ces specification:
<ul>
<li><a href="http://xmpp.org/extensions/xep-0153.html" class="external">XEP-0153: vCard-Based Avatars</a> cette extension est actuellement la plus utilise pour gerer les avatars. Cependant elle est destine a etre remplace par la suivante</li>
<li><a href="http://xmpp.org/extensions/xep-0084.html" class="external">XEP-0084: User Avatar</a> Cette extension elle utilise Publish-Subscribe</li>
</ul>
<a name="Gains-en-bande-passante"></a>
<h3 >Gains en bande passante<a href="#Gains-en-bande-passante" class="wiki-anchor">¶</a></h3>
<p><a href="http://xmpp.org/extensions/xep-0138.html" class="external">XEP-0138: Stream Compression</a> pour compresser la connexion avec le serveur<br /><a href="http://xmpp.org/extensions/xep-0237.html" class="external">XEP-0237: Roster Versioning</a> Cette extension permet d'eviter l'envoi de toute la liste de contact. Elle met en place un mecanisme de version de la liste envoie uniquement les changements entre les differentes version de la liste de contact. Elle est egalement specifier dans la rfc3921bis</p>
<a name="Divers"></a>
<h3 >Divers<a href="#Divers" class="wiki-anchor">¶</a></h3>
<p><a href="http://xmpp.org/extensions/xep-0126.html" class="external">XEP-0126: Invisibility</a> pour apparaitre deconnecte.<br /><a href="http://xmpp.org/extensions/xep-0154.html" class="external">XEP-0154: User Profile</a> Cette extension est destine a remplacer les vcards. Elle permet le stockage de beaucoup plus d'informations et pourrait meme servir a mettre en place un social networking</p>