Tigase Forums

Installation and maintenance: Push notification component's schema issues - dist max 7.2.0

Tigase XMPP Server Board - 11 hours 56 min ago

Hello,

I am getting some errors when importing the schema. The tigase archive is a nighly build from about 4 days ago.

mysql> source database/mysql-push-schema-1.0.0.sql ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 5240 Current database: tigasedb Query OK, 0 rows affected (0.27 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected, 1 warning (0.00 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected, 1 warning (0.02 sec) Query OK, 0 rows affected (0.01 sec) Query OK, 0 rows affected (0.00 sec) Query OK, 0 rows affected (0.00 sec) ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'declare _nodeSha1 char(40)' at line 1 ERROR 1327 (42000): Undeclared variable: _serviceJidSha1 ERROR 1054 (42S22): Unknown column '_serviceJidSha1' in 'where clause' ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'end // delimiter' at line 1

Thank you

Categories: Tigase Forums

API and development: RE: milliseconds precision for stream stanzas

Tigase XMPP Server Board - 12 hours 4 min ago

Ah, the strict packet ordering, forgot about that one.
Thanks for detailing.

Categories: Tigase Forums

API and development: RE: milliseconds precision for stream stanzas

Tigase XMPP Server Board - Fri, 06/23/2017 - 17:51

You know that the XMPP is called "near-real-time" protocol? So it is not real time protocol.

What it means, for example, is ,suppose, there are 2 users/devices sending a message at about the same time to the same destination. Even if there is a few seconds of time between each sender sends his message, there is no guarantee that they will be delivered in the same order. Messages can arrive to the destination at any order. There is no way the order can be guaranteed in such a case.

Of course, if 2 messages are sent by the same user/device to the same destination, both messages should be delivered in the same order and in most cases the order is preserved. Sometimes, however, for performance reasons, the order may not be preserved. Tigase has a special configuration option to enforce strict packets ordering. This however, reduces it's ability to use concurrent packets processing and performance.

So, increasing timestamp precision does not help here, because at the point when the timestamp is created, the packets can already be in an incorrect order.

I see your example is for a groupchat use-case. So, between a group chat component and a user who receives messages from group chat we have the second case, that is messages are sent from a single sender (groupchat) to a single destination (user). In this case messages order should be preserved. However, before messages get to the groupchat component they arrive from multiple users and this is where they can arrive at mixed order.

Categories: Tigase Forums

API and development: RE: milliseconds precision for stream stanzas

Tigase XMPP Server Board - Fri, 06/23/2017 - 17:31

That would be for more precise message ordering purposes.

Categories: Tigase Forums

API and development: RE: milliseconds precision for stream stanzas

Tigase XMPP Server Board - Fri, 06/23/2017 - 16:57

Could you please explain/provide some details on why you need such a precision?

Categories: Tigase Forums

API and development: milliseconds precision for stream stanzas

Tigase XMPP Server Board - Fri, 06/23/2017 - 16:33

Hi,

I have noticed that <delay>'s timestamps are all written with microsecond precision and millisecond accuracy inside a 5.6 MySQL db. However, they are written out to clients with seconds precision:

<message from="grchat@domain.com/user" type="groupchat" to="someone@domain.com" id="FF2F084A-E9C2-4A00-B148-E44CEA35C8C1"> <body>12</body> <delay xmlns="urn:xmpp:delay" from="grchat@domain.com" stamp="2017-06-23T18:04:28Z"/> </message>

XEP-0082 does not forbid millisecond precission. Any chance of having this implemented ? I am currently on a 7.2.0 nighlty build (dist max). Or perhaps there is a switch for this matter to put into etc/init.properties ?

Thank you!

Categories: Tigase Forums

Installation and maintenance: RE: muc#roomconfig_roomadmins broken ?

Tigase XMPP Server Board - Fri, 06/23/2017 - 10:14

Thank you Bartosz, I have spotted the difference between what I was sending and what the linked test scenario sends, namely:

<field var="FORM_TYPE"> <value>http://jabber.org/protocol/muc#roomconfig</value> </field>

I have included that one and it seems all fine now.

mysql> select * from tig_muc_room_affiliations where room_id=378; +---------+----------------------------------------------+------------------------------------------+-------------+ | room_id | jid | jid_sha1 | affiliation | +---------+----------------------------------------------+------------------------------------------+-------------+ | 378 | kellogs3@domain.com | 1903fba1055b994eb27bf8aa7462dd053553af02 | outcast | | 378 | admin@domain.com | 4386256acf3c850c061c9c9b2b6910c06a76af62 | owner | | 378 | kellogs2@domain.com | f8b61a58a40dcb8311a5d011f3bf10004d02cef8 | admin | +---------+----------------------------------------------+------------------------------------------+-------------+

Perhaps it would be a good idea to send back to client an <error> stanza instead of the <result> stanza in such scenarios.

Categories: Tigase Forums

Installation and maintenance: RE: muc#roomconfig_roomadmins broken ?

Tigase XMPP Server Board - Wed, 06/21/2017 - 23:17

Field muc#roomconfig_roomadmins is not stored in database because it is processed in different way (there is separate affiliation storage).
I added tests to cover this problem but tests works. Would you like to check test scenario here
The only thing I added is field muc#roomconfig_roomadmins in room config result.

Categories: Tigase Forums

Installation and maintenance: muc#roomconfig_roomadmins broken ?

Tigase XMPP Server Board - Mon, 06/19/2017 - 06:14

Hello,

downloaded latest nightly build of tigase as of today from http://build.xmpp-test.net/nightlies/dists/latest/tigase-server-dist-max.tar.gz

I have tried setting up a list of admins for an existing MUC room like so:

<iq id='create2' to='maglavais@muc.domain.com' type='set'> <query xmlns='http://jabber.org/protocol/muc#owner'> <x xmlns='jabber:x:data' type='submit'> <field var='muc#roomconfig_roomadmins'> <value>kellogs2@domain.com</value> </field> </x> </query> </iq> <iq from="maglavais@muc.domain.com" type="result" to="admin@domain.com/kellogs-PC" id="create2"/>

in the logs I can see:
017-06-19 12:44:04.225 [in_3-muc] PresenceFiltered.onSetAffiliation() FINEST: Modifying affiliation of: kellogs2@domain.com on occupantsPresenceFiltered: [[]] 2017-06-19 12:44:04.225 [in_3-muc] Room.getAffiliation() FINEST: Getting affiliations for: kellogs2@domain.com from set: {kellogs2@domain.com=admin, admin@domain.co=owner}

However upon joining the room with the newly setup admin user:

<presence from="maglavais@domain.com/kellogs2" to="kellogs2@domain.com/kellogs-PC"> <priority>5</priority> <c xmlns="http://jabber.org/protocol/caps" node="http://psi-im.org/caps" ver="caps-b75d8d2b25" ext="cs ep-notify-2 html"/> <x xmlns="http://jabber.org/protocol/muc#user"> <item affiliation="none" nick="kellogs2" role="participant"/> <status code="110"/> </x> </presence>

Some more info from the db:

mysql> select * from tig_muc_room_affiliations where room_id=378; +---------+-----------------------------+------------------------------------------+-------------+ | room_id | jid | jid_sha1 | affiliation | +---------+-----------------------------+------------------------------------------+-------------+ | 378 | admin@domain.com | 4386256acf3c850c061c9c9b2b6910c06a76af62 | owner | +---------+-----------------------------+------------------------------------------+-------------+ 378 f11c9a4ba7d0cdc36d84836e657c97ec789961ff NULL <x type="form" xmlns="jabber:x:data"><field type="text-single" label="Natural-Language Room Name" var="muc#roomconfig_roomname"><value></value></field><field type="text-single" label="Short Description of Room" var="muc#roomconfig_roomdesc"><value></value></field><field type="boolean" label="Make Room Persistent?" var="muc#roomconfig_persistentroom"><value>true</value></field><field type="boolean" label="Make Room Publicly Searchable?" var="muc#roomconfig_publicroom"><value>true</value></field><field type="boolean" label="Make Room Moderated?" var="muc#roomconfig_moderatedroom"><value>false</value></field><field type="boolean" label="Make Room Members Only?" var="muc#roomconfig_membersonly"><value>false</value></field><field type="boolean" label="Password Required to Enter?" var="muc#roomconfig_passwordprotectedroom"><value>0</value></field><field type="text-single" label="Password" var="muc#roomconfig_roomsecret"><value></value></field><field type="list-single" label="Room anonymity level:" var="muc#roomconfig_anonymity"><value>semianonymous</value><option label="Non-Anonymous Room"><value>nonanonymous</value></option><option label="Semi-Anonymous Room"><value>semianonymous</value></option><option label="Fully-Anonymous Room"><value>fullanonymous</value></option></field><field type="boolean" label="Allow Occupants to Change Subject?" var="muc#roomconfig_changesubject"><value>true</value></field><field type="boolean" label="Enable Public Logging?" var="muc#roomconfig_enablelogging"><value>0</value></field><field type="list-single" label="Logging format:" var="logging_format"><value>html</value><option label="HTML"><value>html</value></option><option label="Plain text"><value>plain</value></option></field><field type="text-single" label="Maximum Number of History Messages Returned by Room" var="muc#maxhistoryfetch"><value>50</value></field><field type="list-single" label="Maximum Number of Occupants" var="muc#roomconfig_maxusers"><value></value><option label="10"><value>10</value></option><option label="20"><value>20</value></option><option label="30"><value>30</value></option><option label="50"><value>50</value></option><option label="100"><value>100</value></option><option label="None"><value/></option></field><field type="list-single" label="Presence delivery logic" var="tigase#presence_delivery_logic"><value>PREFERE_PRIORITY</value><option label="PREFERE_LAST"><value>PREFERE_LAST</value></option><option label="PREFERE_PRIORITY"><value>PREFERE_PRIORITY</value></option></field><field type="boolean" label="Enable filtering of presence (broadcasting presence only between selected groups" var="tigase#presence_filtering"><value>0</value></field><field type="list-multi" label="Affiliations for which presence should be delivered" var="tigase#presence_filtered_affiliations"><option label="admin"><value>admin</value></option><option label="member"><value>member</value></option><option label="none"><value>none</value></option><option label="outcast"><value>outcast</value></option><option label="owner"><value>owner</value></option></field></x> 2017-06-19 12:04:51.169000 NULL NULL NULL

I have also tried setting the jid as an owner with a similar outcome. Am I doing it wrong ?

Categories: Tigase Forums

Installation and maintenance: RE: Logging to standard output/error

Tigase XMPP Server Board - Sun, 06/18/2017 - 09:06

Wow quite some changes you had in 7.2 :-)

Thanks for your help!!

Categories: Tigase Forums

API and development: RE: Internal domain xmpp federation setup

Tigase XMPP Server Board - Fri, 06/16/2017 - 15:56

pranathi venkatayogi wrote:

Thank you. Your reply gives some hope.
From the surface looks like sylkserver won't support such xeps.

Indeed, I looked at the Sylkserver website and it does not look like it supports them.

Considering the second option - "customized s2s implementation in the Tigase server".
- Does this require only change in the Tigase server or something needs to be changed on Sylkserver as well?

My suggestion was written with assumption that Sylkserver cannot be changed. So the customization would be on the Tigase XMPP Server side.
Although I am not entirely sure, if it would work at all. I do not know exactly how Sylkserver works and how exactly it implements the s2s protocol. There are several border cases which could either make the customization possible or impossible.

Please note, what you are asking about is not within a protocol compliance.

- Can you give some pointers how one would go about writing this in Tigase?

The first step would be to do some research to learn how exactly the s2s is implemented on Sylkserver side and what is possible to do. Only then, we could figure out the best way to customize the s2s in the Tigase server to give you a functionality needed.

As I understand your question, you would like us to give you some suggestions and guidance on how you could do this modifications yourself. The Tigase server is open source and it is entirely possible for you to modify the code to your needs. However, in this particular case, you won't be able to start doing it without a very good and deep understanding of the s2s protocol between XMPP servers.
The spec looks very simple but there are so many border cases, implemented differently by different vendors which makes the protocol surprisingly complex.

Categories: Tigase Forums

API and development: RE: Internal domain xmpp federation setup

Tigase XMPP Server Board - Fri, 06/16/2017 - 15:44

Thank you. Your reply gives some hope.
From the surface looks like sylkserver won't support such xeps.
Considering the second option - "customized s2s implementation in the Tigase server".
- Does this require only change in the Tigase server or something needs to be changed on Sylkserver as well?
- Can you give some pointers how one would go about writing this in Tigase?

Thanks
Pranathi

Categories: Tigase Forums

API and development: RE: Internal domain xmpp federation setup

Tigase XMPP Server Board - Fri, 06/16/2017 - 15:10

There are a few possible solutions.

The simplest would be to connect the SIP-XMPP gateway as an external component via external component protocol to the XMPP server. The best would be to use: https://xmpp.org/extensions/xep-0225.html as in Tigase you can specify what domains are behind the component connection, so it would automatically send packets back to a correct destination.

If the Sylkserver does not support XEP-0225 or XEP-0114 for connections to the XMPP Server, and can only use s2s connections, then, the only option I can see would be a customized s2s implementation in the Tigase server what would do what you are asking for.

Categories: Tigase Forums

API and development: RE: Internal domain xmpp federation setup

Tigase XMPP Server Board - Fri, 06/16/2017 - 14:53

Here is our stack:

Blink (sip client) -> Kamailio (sip proxy) -> Sylkserver (sip->xmpp gateway) -> XMPP Server (Cisco IM and presence server/Tigase) -> xmpp client

Sip client and domain is of customer's, hence we don’t have control over them.
When I send sip msrp message from that customer to our xmpp agent, cisco server is doing a SRV lookup for _xmpp-server._tcp.<customer domain>, which is failing.

Is there a way to tell the xmpp server to send the packets to where they came from instead of doing SRV lookup?

Categories: Tigase Forums

API and development: RE: Internal domain xmpp federation setup

Tigase XMPP Server Board - Fri, 06/16/2017 - 14:28

How exactly are you connecting SIP to Tigase?

Categories: Tigase Forums

Installation and maintenance: RE: Logging to standard output/error

Tigase XMPP Server Board - Fri, 06/16/2017 - 14:11
Hi Daniel,
yes, it's possible to adjust JUL settings, you can do it via init.properties file:
  • in version up to 7.1.0, for example:
    basic-conf/logging/java.util.logging.FileHandler.limit=100000000 basic-conf/logging/java.util.logging.FileHandler.count=20 basic-conf/logging/java.util.logging.ConsoleHandler basic-conf/logging/tigase.db.level=FINE basic-conf/logging/.level=ALL
  • in newer versions, for example:
    logging { java.util.logging.FileHandler { count = '20' limit = '500000000' } }
Categories: Tigase Forums

Installation and maintenance: Logging to standard output/error

Tigase XMPP Server Board - Thu, 06/15/2017 - 14:29

Hello Tigase team,
I was wondering if it's possible to redirect all logging (that is, the ones in tigase.log.#) to standard output or error. It would be really convenient because I'm building a Docker container for Tigase and I'd like to handle logging in the host system. If I'm not mistaken, Tigase uses java.util.logging right? Can I use a custom logging.properties somehow? Does Tigase take that into account?

Thanks

Categories: Tigase Forums

API and development: Internal domain xmpp federation setup

Tigase XMPP Server Board - Wed, 06/14/2017 - 09:28

Hi,
We are using SIP->XMPP gateway to chat from SIP world to XMPP world. This translation will be internal and not exposed to outside world.
It is not possible to add xmpp_server DNS srv records for all sip domains (as we dont own them).

Is there a way to configure tigase to accept packets from the gateway server without doing a dialback?
Or can i preset the valid domains and hosts they serve somewhere, so tigase need not do a DNS srv lookup.

Thank you for your reply.

Categories: Tigase Forums

Pages

Get in touch

We provide software products, consulting and custom development services

Tigase, Inc.
100 Pine Street, Suite 1250
San Francisco, CA 94111, USA
Phone: (415) 315 9771

Follow us on:

Twitter

  • Tigase Messenger for iOS has been released! Our Thanks to all the Beta Testers (drawing soon). Check it out here https://t.co/h91jH8cYSE 3 weeks 2 days ago
  • Try a new twist on XMPP: Stateless XMPP https://t.co/cybgEfdSMm 1 month 21 hours ago
Back to Top