OSDN Git Service

Set the thread pool size of NIST sip stack to one.
authorChung-yih Wang <cywang@google.com>
Mon, 18 Oct 2010 07:57:24 +0000 (15:57 +0800)
committerChung-yih Wang <cywang@google.com>
Mon, 18 Oct 2010 08:00:47 +0000 (16:00 +0800)
Set the thread pool size to one to fix the out-of-order packets
seen in sip service when the device is waken up from sleep.

bug:http://b/3099715
Change-Id: Ia169e3fde77488068c369e3345ecf6a6d8ddf792

voip/java/com/android/server/sip/SipSessionGroup.java

index d861fa5..578bd9b 100644 (file)
@@ -82,6 +82,11 @@ class SipSessionGroup implements SipListener {
     private static final boolean DEBUG = true;
     private static final boolean DEBUG_PING = DEBUG && false;
     private static final String ANONYMOUS = "anonymous";
+    // Limit the size of thread pool to 1 for the order issue when the phone is
+    // waken up from sleep and there are many packets to be processed in the SIP
+    // stack. Note: The default thread pool size in NIST SIP stack is -1 which is
+    // unlimited.
+    private static final String THREAD_POOL_SIZE = "1";
     private static final int EXPIRY_TIME = 3600; // in seconds
     private static final int CANCEL_CALL_TIMER = 3; // in seconds
     private static final long WAKE_LOCK_HOLDING_TIME = 500; // in milliseconds
@@ -129,6 +134,7 @@ class SipSessionGroup implements SipListener {
         SipFactory sipFactory = SipFactory.getInstance();
         Properties properties = new Properties();
         properties.setProperty("javax.sip.STACK_NAME", getStackName());
+        properties.setProperty("javax.sip.THREAD_POOL_SIZE", THREAD_POOL_SIZE);
         String outboundProxy = myself.getProxyAddress();
         if (!TextUtils.isEmpty(outboundProxy)) {
             Log.v(TAG, "outboundProxy is " + outboundProxy);