New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Difficulties joining chat rooms #720

Closed
damkh opened this Issue Aug 10, 2018 · 9 comments

Comments

Projects
None yet
3 participants
@damkh
Copy link

damkh commented Aug 10, 2018

Expected behavior

Auto-joining chat room after login to jsxc.

Actual behavior

If NO HISTORY in the chat room:
A chat room is in the roster (Bookmark and Auto-Join is enabled), but it's impossible to join there at the first login. When I click the chat room in the roster I get the "Join chat" window, click there to Continue and then click "Join": the "Join"-window still hangs on the page and I can't join to the chat room. But after logout-login to jsxc a user joins to the chat room straight away. This works only for the "Dual-Login" method. For other methods ("AJAX Login" and "Box Login") it doesn't work at all - neither auto-join, nor manually join. However after login-logout-login through the "Dual-Login" method the Auto-join function to the chat room starts to work.

If there is SOME HISTORY in the chat room:
The chat room is in the roster (Bookmark and Auto-Join are enabled). When I click the chat room in the roster I get the "Join chat" window, click there to Continue and then click "Join": I get the chat room tab at the bottom of the page, but the "Join"-window still hangs on the page.

Steps to reproduce the behavior

  1. Go to the jsxc example page (/jscx/example);
  2. Join a new chat room, check Bookmark and Auto-Join checkboxes - new chat room will be created. Keep the chat room clean (there must be no messages, no history), logout and clear browser cache, reload the page;
  3. Login through the Dual-Login method:
    3.1 Login and try join the newly created chat room - it gives eventually a window with the green Join button. Clicking this button gives nothing;
    3.2 Close this window, logout and login again to jsxc - you will be able to join the chat room;
  4. Login through other methods ("AJAX Login" and "Box Login"):
    4.1 Clear browser cache, reload the page, login and try to join the created chat room - it gives eventually a window with the green Join button. Clicking to this button gives nothing;
    4.2 Logout and login again - doesn't matter, the Join button will remain unclickable at next logins, until the Dual-login method is be used;
  5. Behavior with some history in the chat room:
    5.1 Clear browser cache, reload the page, login through the Dual-Login method and try to join to the created chat room. If the chat room history is empty, you won't be able to join the room. Keep the page open;
    5.2 Login to the jabber server using another account and another jabber-client (Miranda-NG eg.), join to the chat room and generate some messages. After the first message check the jsxc-page, the chat room tab should be show up at the bottom of the page - so you have joined the chat room;
    5.3 Clear browser cache, reload the page, login and try to join to the created chat room - you get the behavior described above in "If there is SOME HISTORY in a chat room".

Environment

  • JSXC version: 3.2.2, 3.4.1
  • Host system and version: Debian 9.4, Mageia 6
  • Browser vendor and version: Mozilla Firefox, Chromium browser
  • Any browser plugins enabled? -
  • XMPP server vendor and version: Ejabberd 18.01, Ejabberd 18.06
  • Is your XMPP server working with other clients as expected? Yes, checked on Miranda NG

Logs

Javascript. Clicking on the Join button, see 3.1 of "Steps to reproduce the behavior"

jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online

Javascript. See 3.2 of "Steps to reproduce the behavior"

jsxc.js:184 auto join test-room-2@conference.example.com
jsxc.js:184 Presence (test-room-2@conference.example.com): online
jsxc.js:184 Presence (test-room-2@conference.example.com/test001): online
jsxc.js:184 close dialog
jsxc.js:184 Update file transfer icons for test-room-2@conference.example.com
jquery.min.js:4 GET http://example.com/jsxc/build/css/images/ui-bg_flat_0_aaaaaa_40x100.png 404 (Not Found)

JSXC

$ State changed to INITIATING
$ State changed to PREVCONFOUND
$ check master
$ I am master.
$ State changed to ESTABLISHING
$ Try to attach
$ SID: 5546d900ce48c1097c565c3f42b6983d8d9c12f0
$ ATTACHED: null
$ Discover muc service
$ UI State changed to INITIATING
$ Waiting for server capabilities
$ Request server capabilities
$ DSA key creation started.
$ State changed to READY
$ discover http upload service
$ Load roster: <iq xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com" type="result" id="85da5433-5da4-4823-bbab-bd928e024f4a:sendIQ"><query xmlns="jabber:iq:roster"><item subscription="both" jid="admin@example.com"><group>example</group></item><item subscription="both" jid="test002@example.com"><group>example</group></item></query></iq>
$ Load bookmarks from pubsub
$ Roster loaded
$ Send presence: <presence xmlns="jabber:client"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://jsxc.org/" ver="UEMHBlT9XVU7FUwfm/6rl815MUE="></c></presence>
$ Update icon: 
$ [webrtc] Could not update icon, because could not find jid for example.com
$ UI State changed to READY
$ vCard: <iq xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com" type="result" id="73ca4317-6efa-4927-935e-c25daea6577d:sendIQ"><vCard xmlns="vcard-temp"></vCard></iq>
$ No photo provided
$ DSA key creation started
$ query conference.example.com for upload service
$ query pubsub.example.com for upload service
$ Carbons enabled
$ auto join test-room@conference.example.com
$ auto join test-room-2@conference.example.com
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com/example"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://jsxc.org/" ver="UEMHBlT9XVU7FUwfm/6rl815MUE="></c><x xmlns="vcard-temp:x:update"></x></presence>
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test001@example.com/example"><c xmlns="http://jabber.org/protocol/caps" hash="sha-1" node="http://jsxc.org/" ver="UEMHBlT9XVU7FUwfm/6rl815MUE="></c><x xmlns="vcard-temp:x:update"></x><delay xmlns="urn:xmpp:delay" from="test001@example.com/example" stamp="2018-08-10T06:05:25.004754Z"></delay></presence>
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room@conference.example.com" id="13192972959890676566"><c xmlns="http://jabber.org/protocol/caps" ver="Mi6G0puDtcUxJCptiu+zx8p6Hy0=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room@conference.example.com): online
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room@conference.example.com/test001): online
$ webrtc.onpresence: "test-room@conference.example.com/test001"
$ Update icon: "test-room@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="15725516013949352737"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="201"></status><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ muc service found: 
$ Variable muc doesn't exist. It was created.
$ Update icon: "test-room@conference.example.com"
$ Update icon: "test-room-2@conference.example.com"
$ DSA key creation finished
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="9073821292046879580"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="1102508400064005206"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="14447599801401790539"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" to="test001@example.com/example" from="test-room-2@conference.example.com" id="1370082517997871119"><c xmlns="http://jabber.org/protocol/caps" ver="E4I686o5HSs81HyknUkxclArKKw=" node="http://www.process-one.net/en/ejabberd/" hash="sha-1"></c></presence>
$ Presence (test-room-2@conference.example.com): online
$ Update icon: "test-room-2@conference.example.com"
$ onPresence: <presence xmlns="jabber:client" xml:lang="ru" to="test001@example.com/example" from="test-room-2@conference.example.com/test001"><x xmlns="vcard-temp:x:update"></x><x xmlns="http://jabber.org/protocol/muc#user"><item jid="test001@example.com/example" role="moderator" affiliation="owner"></item><status code="110"></status></x></presence>
$ Presence (test-room-2@conference.example.com/test001): online
$ webrtc.onpresence: "test-room-2@conference.example.com/test001"
$ Update icon: "test-room-2@conference.example.com"
$ New bookmark created: "test-room-2@conference.example.com"

XMPP

-

Host

-
@jsxc-bot

This comment has been minimized.

Copy link

jsxc-bot commented Aug 10, 2018

GitMate.io thinks possibly related issues are #599 (Invite someone to a MUC chat room), #299 (Video chat), #535 (Send File feature in Chat room), #651 (chat room is showing all users ), and #491 (Away from chat feature).

@jsxc-bot jsxc-bot added the bug label Aug 10, 2018

@damkh damkh changed the title Difficulties with join chat rooms Difficulties joining chat rooms Aug 10, 2018

@sualko

This comment has been minimized.

Copy link
Member

sualko commented Aug 18, 2018

Thanks for this awesome bug report 👍. I will look into it as soon as I have time. Please remind me in 1-2 weeks if I forget it.

@damkh

This comment has been minimized.

Copy link
Author

damkh commented Sep 3, 2018

Hi @sualko
Is there any news?

@sualko

This comment has been minimized.

Copy link
Member

sualko commented Sep 3, 2018

I can reproduce your issue and try to solve it now.

@sualko sualko closed this in bf78a3a Sep 3, 2018

@sualko

This comment has been minimized.

Copy link
Member

sualko commented Sep 3, 2018

If you have time to test the fix it would be awesome. Otherwise we will release a new version in 1-2 days.

@damkh

This comment has been minimized.

Copy link
Author

damkh commented Sep 3, 2018

Ok, will try to test today at night

@sualko

This comment has been minimized.

Copy link
Member

sualko commented Sep 3, 2018

Thanks a lot. I packed you the current master branch:

jsxc-3.4.2-git.a3443a5.zip

@damkh

This comment has been minimized.

Copy link
Author

damkh commented Sep 3, 2018

Tests are done, looks like everything is OK, thank you @sualko ! Waiting for the stable 3.4.2 release

@sualko

This comment has been minimized.

Copy link
Member

sualko commented Sep 4, 2018

🎉 thanks for testing 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment