Ticket #1488 (closed defect: worksforme)

Opened 6 years ago

Last modified 5 years ago

Problem with sending and receiving large (INVITE) requests over TCP on Android 4.0.2/4.0.3 possibly due to fragmentation

Reported by: bennylp Owned by: bennylp
Priority: normal Milestone: release-2.1
Component: pjsip Version: common
Keywords: Cc:
Backport to 1.x milestone: Backported: no

Description (last modified by bennylp) (diff)

When the server sends a large (INVITE) request towards the Android client via TCP, PJSIP does not seem to process this request. Looking at the log there seems to be no activity regarding the incoming data. The OS may not notify us at all about the incoming data. Wireshark capture shows that server sent the INVITE request as TCP fragments and instead of receiving acknowledgement, it gets error from the client instead (see the attached capture).

This has been tested with different wi-fi routers and 3G providers and the issue remains. Smaller SIP requests towards the client work as expected.

Update:

The same problem also occurs in the sending direction. PJSIP sends large (INVITE) request, the log shows it, but nothing actually gets transmitted. After this the TCP socket seems to be disfunctional until it is closed.

Attachments

undelivered-tcp-packets-on-android.pcap (40.9 KB) - added by bennylp 5 years ago.
See packet 52/53

Change History

comment:1 Changed 6 years ago by bennylp

  • Milestone changed from release-1.14 to Known-Issues-and-Ideas

Moved to Known Issues

comment:2 Changed 5 years ago by bennylp

  • Summary changed from Problem with receiving incoming large (INVITE) request over TCP on Android ICS 4.0.3 possibly due to fragmentation to Problem with sending and receiving large (INVITE) requests over TCP on Android 4.0.2/4.0.3 possibly due to fragmentation
  • Backported unset
  • Description modified (diff)

comment:3 Changed 5 years ago by bennylp

  • Milestone changed from Known-Issues-and-Ideas to release-2.1

comment:4 Changed 5 years ago by bennylp

  • Status changed from new to closed
  • Resolution set to worksforme

Got a solution'''

We can avoid the problem if we avoid using port 5060 in both source and destination TCP connection.

comment:5 Changed 5 years ago by bennylp

  • Description modified (diff)

Changed 5 years ago by bennylp

See packet 52/53

Note: See TracTickets for help on using tickets.