[jitsi-users] Jitsi and HA SIP infrastructure


#1

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs application made up of three servers in load balancing and fault tolerant configuration; all servers refer to the same SIP domain and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly accepts calls from the same server Jitsi registered to and discards SIP invites coming from the other two servers (even if belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org points to server1.mydomain.org, server2.mydomain.org, server3.mydomain.org with the same priorities (load balancing configuration). The three servers have different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
User B registers to server1.mydomain.org
User C registers to server3.mydomain.org

When user A calls user B, User B's jitsi client correctly establishes the call, because the incoming call is from the same server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts on the same client, one for each server....but this solution is really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco


#2

Marco,

Your phone should be registering to mydomain.org and not to specific
servers.

If you want clients to pick different servers at different locations on
your network, this is where you need to get creative with bind. See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

···

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri <marco_colaneri@yahoo.it>wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs application
made up of three servers in load balancing and fault tolerant
configuration; all servers refer to the same SIP domain and therefore the
same sip accounts).
Registration process with DNS SRV queries and outcoming calls are working
fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly accepts
calls from the same server Jitsi registered to and discards SIP invites
coming from the other two servers (even if belonging to the same sip
domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org points to server1.mydomain.org,
server2.mydomain.org, server3.mydomain.org with the same priorities (load
balancing configuration). The three servers have different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
User B registers to server1.mydomain.org
User C registers to server3.mydomain.org

When user A calls user B, User B's jitsi client correctly establishes the
call, because the incoming call is from the same server (server1) it is
registered to.
When user A calls user C, user C's jitsi client discards the INVITE
message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using HA and
fault tolerant systems.

At present I set up a workaround by configuring three sip accounts on the
same client, one for each server....but this solution is really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand binary and
those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info


#3

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org, not to a specific server. The softphone correctly resolves the sip domain to one of the three servers and registers to it. As the three servers have the same priority in srv records, phones registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does, that is to accept incoming calls from all the three servers.

Marco

···

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com> ha scritto:

Marco,

Your phone should be registering to mydomain.org and not to specific servers.

If you want clients to pick different servers at different locations on your network, this is where you need to get creative with bind. See: http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri <marco_colaneri@yahoo.it> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs application made up of three servers in load balancing and fault tolerant configuration; all servers refer to the same SIP domain and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly accepts calls from the same server Jitsi registered to and discards SIP invites coming from the other two servers (even if belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org points to server1.mydomain.org, server2.mydomain.org, server3.mydomain.org with the same priorities (load balancing configuration). The three servers have different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
User B registers to server1.mydomain.org
User C registers to server3.mydomain.org

When user A calls user B, User B's jitsi client correctly establishes the call, because the incoming call is from the same server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts on the same client, one for each server....but this solution is really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand binary and those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info


#4

yes, i would expect the same... as long as you're not trying to route the
call to user@server1.sipdomain... you should be routing calls inbound to
user@sipdomain

mike

···

On Wed, Jan 16, 2013 at 3:53 PM, Marco Colaneri <marco_colaneri@yahoo.it>wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org, not to
a specific server. The softphone correctly resolves the sip domain to one
of the three servers and registers to it. As the three servers have the
same priority in srv records, phones registrations distribute equally on
the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does, that
is to accept incoming calls from all the three servers.

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com> > ha scritto:

Marco,

Your phone should be registering to mydomain.org and not to specific
servers.

If you want clients to pick different servers at different locations on
your network, this is where you need to get creative with bind. See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri <marco_colaneri@yahoo.it>wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs application
made up of three servers in load balancing and fault tolerant
configuration; all servers refer to the same SIP domain and therefore the
same sip accounts).
Registration process with DNS SRV queries and outcoming calls are working
fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly accepts
calls from the same server Jitsi registered to and discards SIP invites
coming from the other two servers (even if belonging to the same sip
domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org points to server1.mydomain.org,
server2.mydomain.org, server3.mydomain.org with the same priorities
(load balancing configuration). The three servers have different ip
addresses.

Suppose that:
User A registers to server1.mydomain.org
User B registers to server1.mydomain.org
User C registers to server3.mydomain.org

When user A calls user B, User B's jitsi client correctly establishes the
call, because the incoming call is from the same server (server1) it is
registered to.
When user A calls user C, user C's jitsi client discards the INVITE
message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using HA and
fault tolerant systems.

At present I set up a workaround by configuring three sip accounts on the
same client, one for each server....but this solution is really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand binary
and those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info

--
There are 10 kinds of people in this world, those who understand binary and
those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info


#5

Hey Marco,

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>, not to a specific server. The softphone correctly
resolves the sip domain to one of the three servers and registers to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS= true

(you need to replace "acc123" with the corresponding account identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

···

On 16.01.13, 21:53, Marco Colaneri wrote:

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com > <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See: http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it>> wrote:

    Hi,

    I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
    application made up of three servers in load balancing and fault
    tolerant configuration; all servers refer to the same SIP domain
    and therefore the same sip accounts).
    Registration process with DNS SRV queries and outcoming calls are
    working fine.

    Nevertheless I am getting a issue for incoming calls. Jitsi anly
    accepts calls from the same server Jitsi registered to and
    discards SIP invites coming from the other two servers (even if
    belonging to the same sip domain).
    Logs say that "no listener is found".

    I try to explain better this issue through an example:

    DNS SRV record for mydomain.org <http://mydomain.org> points to
    server1.mydomain.org <http://server1.mydomain.org>,
    server2.mydomain.org <http://server2.mydomain.org>,
    server3.mydomain.org <http://server3.mydomain.org> with the same
    priorities (load balancing configuration). The three servers have
    different ip addresses.

    Suppose that:
    User A registers to server1.mydomain.org <http://server1.mydomain.org>
    User B registers to server1.mydomain.org <http://server1.mydomain.org>
    User C registers to server3.mydomain.org <http://server3.mydomain.org>

    When user A calls user B, User B's jitsi client correctly
    establishes the call, because the incoming call is from the same
    server (server1) it is registered to.
    When user A calls user C, user C's jitsi client discards the
    INVITE message and the call is not answered.

    Has anyone noticed this issue?

    I think that is a heavy limitation because it prevents from using
    HA and fault tolerant systems.

    At present I set up a workaround by configuring three sip accounts
    on the same client, one for each server....but this solution is
    really awful!

    Can anybody tell me if this behavior will be fixed in future releases?

    Thank you very much.

    Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info>

--
https://jitsi.org


#6

Yes, i'm routing the call to user@sipdomain... But the client can receive inbound calls only when they are relayed by the same server it previously registered to. For example as pstn inbound calls are balanced, my jitsi client can receive only one call every three inbound calls...

I'd like to open an issue about it.

Thank you for your interest.

Marco Colaneri

···

Il giorno 16/gen/2013, alle ore 21:59, Michael Picher <mpicher@gmail.com> ha scritto:

yes, i would expect the same... as long as you're not trying to route the call to user@server1.sipdomain... you should be routing calls inbound to user@sipdomain

mike

On Wed, Jan 16, 2013 at 3:53 PM, Marco Colaneri <marco_colaneri@yahoo.it> wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org, not to a specific server. The softphone correctly resolves the sip domain to one of the three servers and registers to it. As the three servers have the same priority in srv records, phones registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does, that is to accept incoming calls from all the three servers.

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com> ha scritto:

Marco,

Your phone should be registering to mydomain.org and not to specific servers.

If you want clients to pick different servers at different locations on your network, this is where you need to get creative with bind. See: http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri <marco_colaneri@yahoo.it> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs application made up of three servers in load balancing and fault tolerant configuration; all servers refer to the same SIP domain and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly accepts calls from the same server Jitsi registered to and discards SIP invites coming from the other two servers (even if belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org points to server1.mydomain.org, server2.mydomain.org, server3.mydomain.org with the same priorities (load balancing configuration). The three servers have different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
User B registers to server1.mydomain.org
User C registers to server3.mydomain.org

When user A calls user B, User B's jitsi client correctly establishes the call, because the incoming call is from the same server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts on the same client, one for each server....but this solution is really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand binary and those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info

--
There are 10 kinds of people in this world, those who understand binary and those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info


#7

network diagrams / pretty pictures help...

mike

···

On Wed, Jan 16, 2013 at 4:35 PM, Marco Colaneri <marco_colaneri@yahoo.it>wrote:

Yes, i'm routing the call to user@sipdomain... But the client can receive
inbound calls only when they are relayed by the same server it previously
registered to. For example as pstn inbound calls are balanced, my jitsi
client can receive only one call every three inbound calls...

I'd like to open an issue about it.

Thank you for your interest.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 21:59, Michael Picher <mpicher@gmail.com> > ha scritto:

yes, i would expect the same... as long as you're not trying to route the
call to user@server1.sipdomain... you should be routing calls inbound to
user@sipdomain

mike

On Wed, Jan 16, 2013 at 3:53 PM, Marco Colaneri <marco_colaneri@yahoo.it>wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org, not to
a specific server. The softphone correctly resolves the sip domain to one
of the three servers and registers to it. As the three servers have the
same priority in srv records, phones registrations distribute equally on
the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does, that
is to accept incoming calls from all the three servers.

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com> >> ha scritto:

Marco,

Your phone should be registering to mydomain.org and not to specific
servers.

If you want clients to pick different servers at different locations on
your network, this is where you need to get creative with bind. See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri <marco_colaneri@yahoo.it >> > wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs application
made up of three servers in load balancing and fault tolerant
configuration; all servers refer to the same SIP domain and therefore the
same sip accounts).
Registration process with DNS SRV queries and outcoming calls are
working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly accepts
calls from the same server Jitsi registered to and discards SIP invites
coming from the other two servers (even if belonging to the same sip
domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org points to server1.mydomain.org,
server2.mydomain.org, server3.mydomain.org with the same priorities
(load balancing configuration). The three servers have different ip
addresses.

Suppose that:
User A registers to server1.mydomain.org
User B registers to server1.mydomain.org
User C registers to server3.mydomain.org

When user A calls user B, User B's jitsi client correctly establishes
the call, because the incoming call is from the same server (server1) it is
registered to.
When user A calls user C, user C's jitsi client discards the INVITE
message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using HA and
fault tolerant systems.

At present I set up a workaround by configuring three sip accounts on
the same client, one for each server....but this solution is really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand binary
and those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info

--
There are 10 kinds of people in this world, those who understand binary
and those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info

--
There are 10 kinds of people in this world, those who understand binary and
those who don't.

mpicher@gmail.com
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info


#8

Thank you very much Emil, tomorrow i'll try your configuration and I'll let you know.

Marco Colaneri

···

Il giorno 16/gen/2013, alle ore 22:35, Emil Ivov <emcho@jitsi.org> ha scritto:

Hey Marco,

On 16.01.13, 21:53, Marco Colaneri wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>, not to a specific server. The softphone correctly
resolves the sip domain to one of the three servers and registers to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS= true

(you need to replace "acc123" with the corresponding account identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com >> <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See: http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it>> wrote:

   Hi,

   I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
   application made up of three servers in load balancing and fault
   tolerant configuration; all servers refer to the same SIP domain
   and therefore the same sip accounts).
   Registration process with DNS SRV queries and outcoming calls are
   working fine.

   Nevertheless I am getting a issue for incoming calls. Jitsi anly
   accepts calls from the same server Jitsi registered to and
   discards SIP invites coming from the other two servers (even if
   belonging to the same sip domain).
   Logs say that "no listener is found".

   I try to explain better this issue through an example:

   DNS SRV record for mydomain.org <http://mydomain.org> points to
   server1.mydomain.org <http://server1.mydomain.org>,
   server2.mydomain.org <http://server2.mydomain.org>,
   server3.mydomain.org <http://server3.mydomain.org> with the same
   priorities (load balancing configuration). The three servers have
   different ip addresses.

   Suppose that:
   User A registers to server1.mydomain.org <http://server1.mydomain.org>
   User B registers to server1.mydomain.org <http://server1.mydomain.org>
   User C registers to server3.mydomain.org <http://server3.mydomain.org>

   When user A calls user B, User B's jitsi client correctly
   establishes the call, because the incoming call is from the same
   server (server1) it is registered to.
   When user A calls user C, user C's jitsi client discards the
   INVITE message and the call is not answered.

   Has anyone noticed this issue?

   I think that is a heavy limitation because it prevents from using
   HA and fault tolerant systems.

   At present I set up a workaround by configuring three sip accounts
   on the same client, one for each server....but this solution is
   really awful!

   Can anybody tell me if this behavior will be fixed in future releases?

   Thank you very much.

   Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info>

--
https://jitsi.org


#9

Hi Emil,

I tested the new configuration on my sip infrastructure.
Setting FORCE_PROXY_BYPASS to true is not sufficient to fix my problem completely.

Jitsi still rejects INVITE messages coming from ip addresses different from its registrar ip address.

I found a thread on dev mailing list about a similar issue that mentioned SipStackSharing class and filterByIpAddress function.

I tried to comment the line where the function is invoked and rebuilt the code. So Jitsi seems to work as expected and accept calls coming from all three servers. TCP seems to work too without firewalls and NAT. In my configuration FORCE_PROXY_BYPASS is set to true.

In your opinion, could it make sense to add a boolean parameter to enable or disable filterByIpAddress function?

I agree with you on NAT and firewall traversal issues that configuration can lead to but i think that the user should be able to enable or disable this constraint. In an enterprise environment, for example, NAT can be avoid among internal clients and firewalls are managed; for medium and large deployments load balancing and HA configurations are fundamental, i think.
At the moment I face NAT traversal for remote user by a custom configuration on sipxecs platform which detects NAT condition and forces signaling and media relay through the registrar server.

Thank you for your help.

Best regards.

Marco Colaneri

···

Il giorno 16/gen/2013, alle ore 22:41, Marco Colaneri <marco_colaneri@yahoo.it> ha scritto:

Thank you very much Emil, tomorrow i'll try your configuration and I'll let you know.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:35, Emil Ivov <emcho@jitsi.org> ha scritto:

Hey Marco,

On 16.01.13, 21:53, Marco Colaneri wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>, not to a specific server. The softphone correctly
resolves the sip domain to one of the three servers and registers to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS= true

(you need to replace "acc123" with the corresponding account identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher <mpicher@gmail.com >>> <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See: http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >>>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it>> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
application made up of three servers in load balancing and fault
tolerant configuration; all servers refer to the same SIP domain
and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are
working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly
accepts calls from the same server Jitsi registered to and
discards SIP invites coming from the other two servers (even if
belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org <http://mydomain.org> points to
server1.mydomain.org <http://server1.mydomain.org>,
server2.mydomain.org <http://server2.mydomain.org>,
server3.mydomain.org <http://server3.mydomain.org> with the same
priorities (load balancing configuration). The three servers have
different ip addresses.

Suppose that:
User A registers to server1.mydomain.org <http://server1.mydomain.org>
User B registers to server1.mydomain.org <http://server1.mydomain.org>
User C registers to server3.mydomain.org <http://server3.mydomain.org>

When user A calls user B, User B's jitsi client correctly
establishes the call, because the incoming call is from the same
server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the
INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using
HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts
on the same client, one for each server....but this solution is
really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info>

--
https://jitsi.org


#10

Hey Marco,

Hi Emil,

I tested the new configuration on my sip infrastructure.
Setting FORCE_PROXY_BYPASS to true is not sufficient to fix my problem
completely.

In my original mail I gave you an example of the property that you need
to set in order to enable this:

> net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS= true

and I also added:

(you need to replace "acc123" with the corresponding account identifier).

Could it be that you forgot to replace that with your actual account
identifier?

I found a thread on dev mailing list about a similar issue that
mentioned SipStackSharing class and filterByIpAddress function.

I tried to comment the line where the function is invoked and rebuilt
the code. So Jitsi seems to work as expected and accept calls coming
from all three servers. TCP seems to work too without firewalls and NAT.
In my configuration FORCE_PROXY_BYPASS is set to true.

In your opinion, could it make sense to add a boolean parameter to
enable or disable /filterByIpAddress /function?

Yup, it would. It's actually there already and it is called
FORCE_PROXY_BYPASS :wink:

I suppose the lines you commented were 803 through 824 in the SIP
protocol provider. You probably noticed that the "if" condition in the
beginning would not be satisfied in case the "forceLooseRouting" field
is true. That field is initialized by the FORCE_PROXY_BYPASS property.

Hope this helps,
Emil

···

On 19.01.13, 23:42, Marco Colaneri wrote:

I agree with you on NAT and firewall traversal issues that configuration
can lead to but i think that the user should be able to enable or
disable this constraint. In an enterprise environment, for example, NAT
can be avoid among internal clients and firewalls are managed; for
medium and large deployments load balancing and HA configurations are
fundamental, i think.
At the moment I face NAT traversal for remote user by a custom
configuration on sipxecs platform which detects NAT condition and forces
signaling and media relay through the registrar server.

Thank you for your help.

Best regards.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:41, Marco Colaneri > <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it>> ha scritto:

Thank you very much Emil, tomorrow i'll try your configuration and
I'll let you know.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:35, Emil Ivov <emcho@jitsi.org >> <mailto:emcho@jitsi.org>> ha scritto:

Hey Marco,

On 16.01.13, 21:53, Marco Colaneri wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>
<http://mydomain.org>, not to a specific server. The softphone correctly
resolves the sip domain to one of the three servers and registers to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS=
true

(you need to replace "acc123" with the corresponding account identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher >>>> <mpicher@gmail.com <mailto:mpicher@gmail.com> >>>> <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org
<http://mydomain.org> <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >>>>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it> >>>>> <mailto:marco_colaneri@yahoo.it>> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
application made up of three servers in load balancing and fault
tolerant configuration; all servers refer to the same SIP domain
and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are
working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly
accepts calls from the same server Jitsi registered to and
discards SIP invites coming from the other two servers (even if
belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org <http://mydomain.org>
<http://mydomain.org> points to
server1.mydomain.org <http://server1.mydomain.org>
<http://server1.mydomain.org>,
server2.mydomain.org <http://server2.mydomain.org>
<http://server2.mydomain.org>,
server3.mydomain.org <http://server3.mydomain.org>
<http://server3.mydomain.org> with the same
priorities (load balancing configuration). The three servers have
different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
<http://server1.mydomain.org> <http://server1.mydomain.org>
User B registers to server1.mydomain.org
<http://server1.mydomain.org> <http://server1.mydomain.org>
User C registers to server3.mydomain.org
<http://server3.mydomain.org> <http://server3.mydomain.org>

When user A calls user B, User B's jitsi client correctly
establishes the call, because the incoming call is from the same
server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the
INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using
HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts
on the same client, one for each server....but this solution is
really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com> <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info
<mailto:3Ampicher@sipxecs.info>>

--
https://jitsi.org

--
https://jitsi.org


#11

Hi Emil,

Could it be that you forgot to replace that with your actual account
identifier?

No, I replaced it as you told me.

I suppose the lines you commented were 803 through 824 in the SIP
protocol provider.

No, I commented line 825 in SipStackSharing.java source code (http://massapi.com/source/jitsi/src/net/java/sip/communicator/impl/protocol/sip/SipStackSharing.java.html).

Thank you.

Best regards.

Marco Colaneri

···

Il giorno 20/gen/2013, alle ore 00:21, Emil Ivov <emcho@jitsi.org> ha scritto:

Hey Marco,

On 19.01.13, 23:42, Marco Colaneri wrote:

Hi Emil,

I tested the new configuration on my sip infrastructure.
Setting FORCE_PROXY_BYPASS to true is not sufficient to fix my problem
completely.

In my original mail I gave you an example of the property that you need
to set in order to enable this:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS= true

and I also added:

(you need to replace "acc123" with the corresponding account identifier).

Could it be that you forgot to replace that with your actual account
identifier?

I found a thread on dev mailing list about a similar issue that
mentioned SipStackSharing class and filterByIpAddress function.

I tried to comment the line where the function is invoked and rebuilt
the code. So Jitsi seems to work as expected and accept calls coming
from all three servers. TCP seems to work too without firewalls and NAT.
In my configuration FORCE_PROXY_BYPASS is set to true.

In your opinion, could it make sense to add a boolean parameter to
enable or disable /filterByIpAddress /function?

Yup, it would. It's actually there already and it is called
FORCE_PROXY_BYPASS :wink:

I suppose the lines you commented were 803 through 824 in the SIP
protocol provider. You probably noticed that the "if" condition in the
beginning would not be satisfied in case the "forceLooseRouting" field
is true. That field is initialized by the FORCE_PROXY_BYPASS property.

Hope this helps,
Emil

I agree with you on NAT and firewall traversal issues that configuration
can lead to but i think that the user should be able to enable or
disable this constraint. In an enterprise environment, for example, NAT
can be avoid among internal clients and firewalls are managed; for
medium and large deployments load balancing and HA configurations are
fundamental, i think.
At the moment I face NAT traversal for remote user by a custom
configuration on sipxecs platform which detects NAT condition and forces
signaling and media relay through the registrar server.

Thank you for your help.

Best regards.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:41, Marco Colaneri >> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it>> ha scritto:

Thank you very much Emil, tomorrow i'll try your configuration and
I'll let you know.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:35, Emil Ivov <emcho@jitsi.org >>> <mailto:emcho@jitsi.org>> ha scritto:

Hey Marco,

On 16.01.13, 21:53, Marco Colaneri wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>
<http://mydomain.org>, not to a specific server. The softphone correctly
resolves the sip domain to one of the three servers and registers to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS=
true

(you need to replace "acc123" with the corresponding account identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher >>>>> <mpicher@gmail.com <mailto:mpicher@gmail.com> >>>>> <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org
<http://mydomain.org> <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >>>>>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it> >>>>>> <mailto:marco_colaneri@yahoo.it>> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
application made up of three servers in load balancing and fault
tolerant configuration; all servers refer to the same SIP domain
and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are
working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly
accepts calls from the same server Jitsi registered to and
discards SIP invites coming from the other two servers (even if
belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org <http://mydomain.org>
<http://mydomain.org> points to
server1.mydomain.org <http://server1.mydomain.org>
<http://server1.mydomain.org>,
server2.mydomain.org <http://server2.mydomain.org>
<http://server2.mydomain.org>,
server3.mydomain.org <http://server3.mydomain.org>
<http://server3.mydomain.org> with the same
priorities (load balancing configuration). The three servers have
different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
<http://server1.mydomain.org> <http://server1.mydomain.org>
User B registers to server1.mydomain.org
<http://server1.mydomain.org> <http://server1.mydomain.org>
User C registers to server3.mydomain.org
<http://server3.mydomain.org> <http://server3.mydomain.org>

When user A calls user B, User B's jitsi client correctly
establishes the call, because the incoming call is from the same
server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the
INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using
HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts
on the same client, one for each server....but this solution is
really awful!

Can anybody tell me if this behavior will be fixed in future releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com> <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info
<mailto:3Ampicher@sipxecs.info>>

--
https://jitsi.org

--
https://jitsi.org


#12

Hey Marco,

/I suppose the lines you commented were 803 through 824 in the SIP
protocol provider/.

No, I commented line 825 in SipStackSharing.java source code
(http://massapi.com/source/jitsi/src/net/java/sip/communicator/impl/protocol/sip/SipStackSharing.java.html).

Oh ok ... good catch. We'd also need to add the check there. You still
also had the property set to true though, right? Otherwise it should
have been filtered by the provider.

Could you please add a ticket for this? I agree we need to make sure the
property is also taken into account there, but I wouldn't want to do
that right before the release!

Thanks,
Emil

···

On 21.01.13, 19:40, Marco Colaneri wrote:

Thank you.

Best regards.

Marco Colaneri

Il giorno 20/gen/2013, alle ore 00:21, Emil Ivov <emcho@jitsi.org > <mailto:emcho@jitsi.org>> ha scritto:

Hey Marco,

On 19.01.13, 23:42, Marco Colaneri wrote:

Hi Emil,

I tested the new configuration on my sip infrastructure.
Setting FORCE_PROXY_BYPASS to true is not sufficient to fix my problem
completely.

In my original mail I gave you an example of the property that you need
to set in order to enable this:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS=
true

and I also added:

(you need to replace "acc123" with the corresponding account identifier).

Could it be that you forgot to replace that with your actual account
identifier?

I found a thread on dev mailing list about a similar issue that
mentioned SipStackSharing class and filterByIpAddress function.

I tried to comment the line where the function is invoked and rebuilt
the code. So Jitsi seems to work as expected and accept calls coming
from all three servers. TCP seems to work too without firewalls and NAT.
In my configuration FORCE_PROXY_BYPASS is set to true.

In your opinion, could it make sense to add a boolean parameter to
enable or disable /filterByIpAddress /function?

Yup, it would. It's actually there already and it is called
FORCE_PROXY_BYPASS :wink:

I suppose the lines you commented were 803 through 824 in the SIP
protocol provider. You probably noticed that the "if" condition in the
beginning would not be satisfied in case the "forceLooseRouting" field
is true. That field is initialized by the FORCE_PROXY_BYPASS property.

Hope this helps,
Emil

I agree with you on NAT and firewall traversal issues that configuration
can lead to but i think that the user should be able to enable or
disable this constraint. In an enterprise environment, for example, NAT
can be avoid among internal clients and firewalls are managed; for
medium and large deployments load balancing and HA configurations are
fundamental, i think.
At the moment I face NAT traversal for remote user by a custom
configuration on sipxecs platform which detects NAT condition and forces
signaling and media relay through the registrar server.

Thank you for your help.

Best regards.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:41, Marco Colaneri >>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it> >>> <mailto:marco_colaneri@yahoo.it>> ha scritto:

Thank you very much Emil, tomorrow i'll try your configuration and
I'll let you know.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:35, Emil Ivov <emcho@jitsi.org >>>> <mailto:emcho@jitsi.org> >>>> <mailto:emcho@jitsi.org>> ha scritto:

Hey Marco,

On 16.01.13, 21:53, Marco Colaneri wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>
<http://mydomain.org>
<http://mydomain.org>, not to a specific server. The softphone
correctly
resolves the sip domain to one of the three servers and registers
to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS=
true

(you need to replace "acc123" with the corresponding account
identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher >>>>>> <mpicher@gmail.com <mailto:mpicher@gmail.com> >>>>>> <mailto:mpicher@gmail.com> >>>>>> <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org
<http://mydomain.org>
<http://mydomain.org> <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >>>>>>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it> >>>>>>> <mailto:marco_colaneri@yahoo.it> >>>>>>> <mailto:marco_colaneri@yahoo.it>> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
application made up of three servers in load balancing and fault
tolerant configuration; all servers refer to the same SIP domain
and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are
working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly
accepts calls from the same server Jitsi registered to and
discards SIP invites coming from the other two servers (even if
belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org <http://mydomain.org>
<http://mydomain.org>
<http://mydomain.org> points to
server1.mydomain.org <http://server1.mydomain.org>
<http://server1.mydomain.org>
<http://server1.mydomain.org>,
server2.mydomain.org <http://server2.mydomain.org>
<http://server2.mydomain.org>
<http://server2.mydomain.org>,
server3.mydomain.org <http://server3.mydomain.org>
<http://server3.mydomain.org>
<http://server3.mydomain.org> with the same
priorities (load balancing configuration). The three servers have
different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
<http://server1.mydomain.org>
<http://server1.mydomain.org> <http://server1.mydomain.org>
User B registers to server1.mydomain.org
<http://server1.mydomain.org>
<http://server1.mydomain.org> <http://server1.mydomain.org>
User C registers to server3.mydomain.org
<http://server3.mydomain.org>
<http://server3.mydomain.org> <http://server3.mydomain.org>

When user A calls user B, User B's jitsi client correctly
establishes the call, because the incoming call is from the same
server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the
INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using
HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts
on the same client, one for each server....but this solution is
really awful!

Can anybody tell me if this behavior will be fixed in future
releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com>
<mailto:mpicher@gmail.com> <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info
<mailto:3Ampicher@sipxecs.info>
<mailto:3Ampicher@sipxecs.info>>

--
https://jitsi.org

--
https://jitsi.org

--
https://jitsi.org


#13

Hi Emil,

I've opened the issue http://java.net/jira/browse/JITSI-1105 about the issue discussed in this email thread.

Thank you for support.

Marco Colaneri

···

________________________________
Da: Emil Ivov <emcho@jitsi.org>
A: users@jitsi.java.net
Cc: Marco Colaneri <marco_colaneri@yahoo.it>
Inviato: Lunedì 21 Gennaio 2013 22:08
Oggetto: [jitsi-users] Re: Jitsi and HA SIP infrastructure

Hey Marco,

On 21.01.13, 19:40, Marco Colaneri wrote:

/I suppose the lines you commented were 803 through 824 in the SIP
protocol provider/.

No, I commented line 825 in SipStackSharing.java source code
(http://massapi.com/source/jitsi/src/net/java/sip/communicator/impl/protocol/sip/SipStackSharing.java.html).

Oh ok ... good catch. We'd also need to add the check there. You still
also had the property set to true though, right? Otherwise it should
have been filtered by the provider.

Could you please add a ticket for this? I agree we need to make sure the
property is also taken into account there, but I wouldn't want to do
that right before the release!

Thanks,
Emil

Thank you.

Best regards.

Marco Colaneri

Il giorno 20/gen/2013, alle ore 00:21, Emil Ivov <emcho@jitsi.org > <mailto:emcho@jitsi.org>> ha scritto:

Hey Marco,

On 19.01.13, 23:42, Marco Colaneri wrote:

Hi Emil,

I tested the new configuration on my sip infrastructure.
Setting FORCE_PROXY_BYPASS to true is not sufficient to fix my problem
completely.

In my original mail I gave you an example of the property that you need
to set in order to enable this:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS=
true

and I also added:

(you need to replace "acc123" with the corresponding account identifier).

Could it be that you forgot to replace that with your actual account
identifier?

I found a thread on dev mailing list about a similar issue that
mentioned SipStackSharing class and filterByIpAddress function.

I tried to comment the line where the function is invoked and rebuilt
the code. So Jitsi seems to work as expected and accept calls coming
from all three servers. TCP seems to work too without firewalls and NAT.
In my configuration FORCE_PROXY_BYPASS is set to true.

In your opinion, could it make sense to add a boolean parameter to
enable or disable /filterByIpAddress /function?

Yup, it would. It's actually there already and it is called
FORCE_PROXY_BYPASS :wink:

I suppose the lines you commented were 803 through 824 in the SIP
protocol provider. You probably noticed that the "if" condition in the
beginning would not be satisfied in case the "forceLooseRouting" field
is true. That field is initialized by the FORCE_PROXY_BYPASS property.

Hope this helps,
Emil

I agree with you on NAT and firewall traversal issues that configuration
can lead to but i think that the user should be able to enable or
disable this constraint. In an enterprise environment, for example, NAT
can be avoid among internal clients and firewalls are managed; for
medium and large deployments load balancing and HA configurations are
fundamental, i think.
At the moment I face NAT traversal for remote user by a custom
configuration on sipxecs platform which detects NAT condition and forces
signaling and media relay through the registrar server.

Thank you for your help.

Best regards.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:41, Marco Colaneri >>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it> >>> <mailto:marco_colaneri@yahoo.it>> ha scritto:

Thank you very much Emil, tomorrow i'll try your configuration and
I'll let you know.

Marco Colaneri

Il giorno 16/gen/2013, alle ore 22:35, Emil Ivov <emcho@jitsi.org >>>> <mailto:emcho@jitsi.org> >>>> <mailto:emcho@jitsi.org>> ha scritto:

Hey Marco,

On 16.01.13, 21:53, Marco Colaneri wrote:

Hi Mike,

I just configured my Jitsi softphone to register to mydomain.org
<http://mydomain.org>
<http://mydomain.org>
<http://mydomain.org>, not to a specific server. The softphone
correctly
resolves the sip domain to one of the three servers and registers
to it.
As the three servers have the same priority in srv records, phones
registrations distribute equally on the three sip servers.

Now i'd expect Jitsi to work as most of sip phones and clients does,
that is to accept incoming calls from all the three servers.

You can get this by setting the FORCE_PROXY_BYPASS account property to
true ... if you really need to. You can do this by adding the following
line to sip-communicator.properties:

net.java.sip.communicator.impl.protocol.sip.acc123.FORCE_PROXY_BYPASS=
true

(you need to replace "acc123" with the corresponding account
identifier).

Note however that your setup would be a problem for most NATed network
out there. NATs ... and many firewalls in general, would not allow
incoming packets from external hosts that haven't been first contacted
from within the network.

It would also be unusable with TCP which is far more preferable for use
with SIP, rather than UDP. Other than being IETFs recommendation use of
TCP allows you to avoid issues such as this one:

https://jitsi.org/faq/frag

Adding the constraint in Jitsi itself was also part of a solution to a
security problem where anyone anywhere to could just send you requests
and get you to do things that you didn't necessarily want.

Hope this helps,
Emil

Marco

Il giorno 16/gen/2013, alle ore 19:12, Michael Picher >>>>>> <mpicher@gmail.com <mailto:mpicher@gmail.com> >>>>>> <mailto:mpicher@gmail.com> >>>>>> <mailto:mpicher@gmail.com>> ha scritto:

Marco,

Your phone should be registering to mydomain.org
<http://mydomain.org>
<http://mydomain.org> <http://mydomain.org>
and not to specific servers.

If you want clients to pick different servers at different locations
on your network, this is where you need to get creative with bind.
See:
http://wiki.sipfoundry.org/display/sipXecs/Location+based+DNS+views+for+sipXecs+using+BIND

Mike

On Wed, Jan 16, 2013 at 12:13 PM, Marco Colaneri >>>>>>> <marco_colaneri@yahoo.it <mailto:marco_colaneri@yahoo.it> >>>>>>> <mailto:marco_colaneri@yahoo.it> >>>>>>> <mailto:marco_colaneri@yahoo.it>> wrote:

Hi,

I'm testing Jitsi 1.0 with our sip infrastructure (Sipxecs
application made up of three servers in load balancing and fault
tolerant configuration; all servers refer to the same SIP domain
and therefore the same sip accounts).
Registration process with DNS SRV queries and outcoming calls are
working fine.

Nevertheless I am getting a issue for incoming calls. Jitsi anly
accepts calls from the same server Jitsi registered to and
discards SIP invites coming from the other two servers (even if
belonging to the same sip domain).
Logs say that "no listener is found".

I try to explain better this issue through an example:

DNS SRV record for mydomain.org <http://mydomain.org>
<http://mydomain.org>
<http://mydomain.org> points to
server1.mydomain.org <http://server1.mydomain.org>
<http://server1.mydomain.org>
<http://server1.mydomain.org>,
server2.mydomain.org <http://server2.mydomain.org>
<http://server2.mydomain.org>
<http://server2.mydomain.org>,
server3.mydomain.org <http://server3.mydomain.org>
<http://server3.mydomain.org>
<http://server3.mydomain.org> with the same
priorities (load balancing configuration). The three servers have
different ip addresses.

Suppose that:
User A registers to server1.mydomain.org
<http://server1.mydomain.org>
<http://server1.mydomain.org> <http://server1.mydomain.org>
User B registers to server1.mydomain.org
<http://server1.mydomain.org>
<http://server1.mydomain.org> <http://server1.mydomain.org>
User C registers to server3.mydomain.org
<http://server3.mydomain.org>
<http://server3.mydomain.org> <http://server3.mydomain.org>

When user A calls user B, User B's jitsi client correctly
establishes the call, because the incoming call is from the same
server (server1) it is registered to.
When user A calls user C, user C's jitsi client discards the
INVITE message and the call is not answered.

Has anyone noticed this issue?

I think that is a heavy limitation because it prevents from using
HA and fault tolerant systems.

At present I set up a workaround by configuring three sip accounts
on the same client, one for each server....but this solution is
really awful!

Can anybody tell me if this behavior will be fixed in future
releases?

Thank you very much.

Marco

--
There are 10 kinds of people in this world, those who understand
binary and those who don't.

mpicher@gmail.com <mailto:mpicher@gmail.com>
<mailto:mpicher@gmail.com> <mailto:mpicher@gmail.com>
blog: http://www.sipxecs.info
call: sip:mpicher@sipxecs.info <mailto:sip%3Ampicher@sipxecs.info
<mailto:3Ampicher@sipxecs.info>
<mailto:3Ampicher@sipxecs.info>>

--
https://jitsi.org

--
https://jitsi.org

--
https://jitsi.org