Call receiving doesn't work in certain network

As a test setup I have an Asterisk server that two SIP clients can access via an OpenVPN connection. Both devices use OpenVPN Connect and get assigned an address from the pool 10.61.1.0/24. The Asterisk server runs at 10.61.1.1.

When the SIP clients are in my home network they will not receive calls.

I’ve narrowed it down as follows:

  • Functionality is normal in any other network (for example my mobile hotspot).
  • Calling extensions works, only receiving calls does not.
  • Network communications are normal, as traffic flows properly (Client 1 => Asterisk server => Client 2)
  • Wireshark on the “called” device shows incoming SIP traffic from the asterisk server, but it only shows up as “Fragmented IP protocol”, never any complete packets.

Here is a Wireshark screenshot of a “broken” incoming call that doesn’t ring:

Screenshot - Wireshark capture of broken incoming call

In comparison, here is a Wireshark screenshot of the exact same event when in any different network:

Screenshot - Wireshark capture of working call

The only difference between the two situations is the Wifi network that the clients are in.

I’d be very thankful if anyone had any ideas on what could be causing this.

Only SIP servers can receive calls!

However your real problem seems to be a combination of an over long request and an MSS that doesn’t allow for the VPN overhead, or is otherwise too large for the actual network, so that the full first fragment gets rejected because something isn’t prepared to further fragment it.

Are you enabling an excessive number of codecs?

Wireshark might be useful, here, in showing the fragmentation, but normally we would want sip set debug on/pjsip set logger on output from the Asterisk full log.

As is requested by @david551 , a SIP trace is needed let’s trace the INVITE request