Project

General

Profile

Internal domain xmpp federation setup

pranathi venkatayogi
Added over 1 year ago

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.


Replies (5)

Added by Wojciech Kapcia TigaseTeam over 1 year ago

How exactly are you connecting SIP to Tigase?

Added by pranathi venkatayogi over 1 year ago

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., 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?

Avatar?id=6023&size=32x32

Added by Artur Hefczyc TigaseTeam over 1 year ago

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.

Added by pranathi venkatayogi over 1 year ago

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

Avatar?id=6023&size=32x32

Added by Artur Hefczyc TigaseTeam over 1 year ago

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.

    (1-5/5)