Topic: Probleme creation multichat

Bonjour,

alors je développe une application d'instant messaging qui implémente aussi le multi-chat en c++ sur un serveur ejabberd. Pour cela j'utilise la librairie Iris (qui est vieille je sais mais bon j'ai pas le choix ...) et donc mon problème est l'arrivée d'invité dans la chat-room. Je m'explique
je me base sur le passage d'un chat 1to1 à une room
Donc, une des deux personnes (on va l'appeler A et l'autre B et l'invite C) cree la room jusque la tout va bien
ensuite A invite B et C, normal jusque la.
Seulement lorsque C reçoit son invitation, elle envoie sa présence dans la room, et parfois la room lui répond qu'elle en est le owner
et du coup la conversation ne marche pas.
Ce qui est bizarre, c'est que ça n'a pas l'air temporelle : j'ai attendu avant d'envoyer les invitations et le problème est le même. De plus, ça n'arrive pas tout le temps, et donc je ne vois pas le problème parce que je suis à la lettre le protocole XMPP.

Voila si quelqu'un à un élément de réponse je suis preneur :-)

Merki d'avance

Re: Probleme creation multichat

Tu es sur que le salon est bien créé par A ? Et pourquoi ça ne marche pas si C est owner ? Ca change quoi ?

3 (edited by Samildanach 22-05-2008 16:01:56)

Re: Probleme creation multichat

oui oui je suis sur que ca marche parce que j arrive a communiquer quand je n ai pas ce probleme, j echange des messages et ils sont bien diffuses par le serveur
Et oui je ne comprend pas pour quoi quand C passe en owner l echange de messages ne se fait pas C est le seul a recevoir les messages qu ils envoient et ne recoit pas ceux des autres
et pareil pour A qui envoit et recoit uniquement ses propres messages

Re: Probleme creation multichat

d'apres le protocole ca change rien s'il y a plusieurs owner mais bon pour moi ca ne fonctionne pas
c'est assez bizarre je trouve

5 (edited by Samildanach 23-05-2008 08:50:29)

Re: Probleme creation multichat

voila les echanges xmpp avec timestamp
pour A :
[20080522 17:20:30]
<presence to="test@conference.com/A" >
<status>bouh</status>
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc"/>
</presence>


[20080522 17:20:30]
<message to="test@conference.com" id="aabfa" >
<x xmlns="http://jabber.org/protocol/muc#user">
<invite to="C@xxxxx.com" />
</x>
</message>


[20080522 17:20:30]
<presence from="test@conference.com/A" to="A@xxxxx.com/client" >
<status>bouh</status>
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc#user">
<item affiliation="owner" role="moderator" jid="A@xxxxx.com/client" />
<status code="201" />
</x>
</presence>



pour C
[20080522 17:20:30]
<message from="test@conference.com" type="normal" to="C@xxxxx.com" >
<x xmlns="http://jabber.org/protocol/muc#user">
<invite from="A@xxxxx.com/client" >
<reason/>
</invite>
</x>
<x xmlns="jabber:x:conference" jid="test@conference.com" />
</message>


[20080522 17:20:31]
<presence to="test@conference.com/C" >
<status>bouh</status>
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc"/>
</presence>


[20080522 17:20:31]
<presence from="test@conference.com/C" to="C@xxxxxx.com/client" >
<status>bouh</status>
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc#user">
<item affiliation="owner" role="moderator" jid="C@xxxxxx.com/client" />
<status code="201" />
</x>
</presence>

Re: Probleme creation multichat

Le fait de passer C en owner ne fait que le salon devienne modéré, ou en attente de configuration ?

7 (edited by Samildanach 23-05-2008 08:51:57)

Re: Probleme creation multichat

Alors quand ca ne marche pas, en demandant les infos de la room j'obtiens

pour A (considere comme "owner" et "moderator") :

[20080523 08:43:48]
<iq from="A@xxxxx.com/client" type="get" to="test@conference.com" id="disco3" >
<query xmlns="http://jabber.org/protocol/disco#info"/>
</iq>


[20080523 08:43:48]
<iq from="test@conference.com" type="result" to="A@xxxxx.com/client" id="disco3" >
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="conference" type="text" name="test" />
<feature var="http://jabber.org/protocol/muc" />
<feature var="muc_public" />
<feature var="muc_temporary" />
<feature var="muc_open" />
<feature var="muc_semianonymous" />
<feature var="muc_unmoderated" />
<feature var="muc_unsecured" />
<x xmlns="jabber:x:data" type="result" >
<field type="hidden" var="FORM_TYPE" >
<value>http://jabber.org/protocol/muc#roominfo</value>
</field>
<field label="Description" var="muc#roominfo_description" >
<value/>
</field>
<field label="Number of occupants" var="muc#roominfo_occupants" >
<value>1</value>
</field>
</x>
</query>
</iq>


Et pour C (sachant que C est conside comme "owner"et "moderator") :
[20080523 08:43:45]
<iq from="C@xxxxx.com/client" type="get" to="test@conference.com" id="disco3" >
<query xmlns="http://jabber.org/protocol/disco#info"/>
</iq>


[20080523 08:43:46]
<iq from="test@conference.com" type="result" to="C@xxxxx.com/client" id="disco3" >
<query xmlns="http://jabber.org/protocol/disco#info">
<identity category="conference" type="text" name="test" />
<feature var="http://jabber.org/protocol/muc" />
<feature var="muc_public" />
<feature var="muc_temporary" />
<feature var="muc_open" />
<feature var="muc_semianonymous" />
<feature var="muc_unmoderated" />
<feature var="muc_unsecured" />
<x xmlns="jabber:x:data" type="result" >
<field type="hidden" var="FORM_TYPE" >
<value>http://jabber.org/protocol/muc#roominfo</value>
</field>
<field label="Description" var="muc#roominfo_description" >
<value/>
</field>
<field label="Number of occupants" var="muc#roominfo_occupants" >
<value>1</value>
</field>
</x>
</query>
</iq>



Donc en gros si je comprend bien pour la même room j'ai 2 owner (ce qui ne gène pas en théorie) et la room n'est pas modérée

8 (edited by Samildanach 23-05-2008 11:36:40)

Re: Probleme creation multichat

Je pense qu'il n'y a pas de temps a attendre entre le moment ou A crée la room et devient owner et celui ou il envoie les invitations. Je n'arrive pas  à comprendre ce que je fais mal .... sad

Re: Probleme creation multichat

la conversation ne marche pas, ad, tu as une trace de ce qui arrive quand tu envoie un message ?

Re: Probleme creation multichat

Ben si A envoie un message à la room, il part bien, et A reçoit ce même message de la room, mais C non.

Et lorsque C envoie en message à la room, il part aussi, et est renvoyé par la room mais uniquement à C.

j'espère être assez clair lol

Re: Probleme creation multichat

tu peut donner les traces des envois, aussi ?

Re: Probleme creation multichat

Ben par exemple, il s'est passé cela pour C :

[20080523 10:13:42]
<presence from="test@conference.com/C" to="C@xxxxx.com/client" >
<status>bouh</status>
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc#user">
<item affiliation="owner" role="moderator" jid="C@xxxxx.com/client" />
<status code="201" />
</x>
</presence>

[20080523 10:13:45]
<message from="C@xxxxx.com/client" type="groupchat" to="test@conference.com" id="aabca" >
<body>re</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
</message>

[20080523 10:13:45]
<message from="test@conference.com/C" type="groupchat" to="C@xxxxx.com/client" id="aabca" >
<body>re</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
</message>



Et A, pendant ce temps :

[20080523 10:13:31]
<presence from="test@conference.com/A" to="A@xxxxx.com/client" >
<status>bouh</status>
<priority>0</priority>
<x xmlns="http://jabber.org/protocol/muc#user">
<item affiliation="owner" role="moderator" jid="A@xxxxx.com/client" />
<status code="201" />
</x>
</presence>

[20080523 10:13:49]
<message from="A@xxxxx.com/client" type="groupchat" to="test@conference.com" id="aac5a" >
<body>ret</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
</message>

[20080523 10:13:49]
<message from="test@conference.com/A" type="groupchat" to="A@xxxxx.com/client" id="aac5a" >
<body>ret</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
</message>



Donc A et C sont considérés comme owner et modérateur de la même room seulement ils envoient ils envoient des messages mais sont les seuls a les voir. Pourtant j'envoie bien les messages en groupchat. Et surtout je ne comprend pasp ourquoi C devient owner, parce que des fois ca marche bien il est juste membre. Est-ce que ca viendrait du serveur ?

Re: Probleme creation multichat

Je pense que tu peut essayer de voir si ça vient du serveur en mettant mu-conference ( https://gna.org/projects/mu-conference/ ), parce que la, je seche smile

Re: Probleme creation multichat

Merki pour ton aide et ton temps, mais bon je peux pas toucher au serveur ... tant pis, je vais essayer de me debrouiller

Re: Probleme creation multichat

Et essayer avec un autre serveur, genre un serveur publique, ou un serveur de test ?

Re: Probleme creation multichat

je n'en connais pas tu aurais des adresses par hasard

Merki d'avance

Re: Probleme creation multichat

Il y a le serveur chat.jabberfr.org, enfin ça depend de ce que tu veut faire. Tu peut aussi aller demander sur le salon jabberfr@chat.jabberfr.org , ou voir sur le wiki la liste : http://wiki.jabberfr.org/MUC#Serveurs_d … 3.A9rences .  Bien sur, prévient les admins si tu penses que ça va poser probléme ( genre surcharge de la machine, etc ), ou pour verifier la version du serveur, etc.

Quand à installer ton propre serveur jabber, une fois de plus, je te renvoie vers le wiki et les pages des serveurs ( http://wiki.jabberfr.org/Portail:Administrateur ).

Re: Probleme creation multichat

oki merki pour ton aide, je vais voir ce que ca donne

@pluche

Re: Probleme creation multichat

Ben maintenant ca marche, a priori ca venait du serveur, c'etait un ejabberd 1.2 et je suis passe a un ejabberd 2. Sans que l'ancien se basait sur l'ancien protocol je ne sais pas trop. En tout cas ca marche, mais j'ai encore une petite question
je cree des room normal mais je voudrais les creer en non-anonymous. J'ai parcouru le protocol mais je n'ai pas comrpis comment on fait pour creer une room non-anonymous

Si tu as une idee, merki d'avance ;-)

Re: Probleme creation multichat

Faut que tu demandes le formulaire de configuration du salon, soit à la création, soit après.

http://www.xmpp.org/extensions/xep-0045.html#roomconfig
http://www.xmpp.org/extensions/xep-0045 … m-reserved

Re: Probleme creation multichat

Oki merki bien j'avais pas tres bien compris cette partie mais ca devrait aller

Re: Probleme creation multichat

J'envoie ça au serveur :

<iq from="A@xxxxx.com/client" type="get" to="conference_xxxxx@conference.xxxxx.com" id="reg1" >
<query xmlns="jabber:iq:roomconfig"/>
</iq>


mais il me répond :
<iq from="conference_xxxxx@conference.xxxxx.com" type="error" to="A@xxxxx.com/client" id="reg1" >
<query xmlns="jabber:iq:roomconfig"/>
<error type="cancel" code="501" >
<feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>

j'imagine que le serveur est mal configuré si je comprend il lui manque quelques fonctions non ?
me trompe-je ? et donc que faire ?

merki d'avance

Re: Probleme creation multichat

Tu as trouvé où le jabber:iq:roomconfig ?

Le xmlns doit normalement être : http://jabber.org/protocol/muc#owner

Re: Probleme creation multichat

Du coup tu fais ca ?

<iq from="A@xxxxx.com/client" type="get" to="conference_xxxxx@conference.xxxxx.com" id="reg1" >
<query xmlns="http://jabber.org/protocol/muc#owner"/>
</iq>

Et après ? moi j'ai essayé de suivre le protocole et ça dit de demander un form de roomconfig
et d'y répondre. Après je comprend peut être mal comment ca fonctionne ...

Re: Probleme creation multichat

Ouais faut envoyer ça comme stanza. J'ai fait que suivre ce qui était marqué là : http://www.xmpp.org/extensions/xep-0045.html#roomconfig

Normalement après l'envoie de ce message le serveur va te répondre avec un formulaire xdata (cf XEP 0004) auquel tu dois répondre pour configurer le salon.