diff --git a/jni/pjproject-android/pjsip/build/Makefile b/jni/pjproject-android/pjsip/build/Makefile
index 0f8fd13..a10fdc7 100644
--- a/jni/pjproject-android/pjsip/build/Makefile
+++ b/jni/pjproject-android/pjsip/build/Makefile
@@ -7,18 +7,32 @@
 include ../../version.mak
 include $(PJDIR)/build/common.mak
 
+export LIBDIR := ../lib
+export BINDIR := ../bin
+
 RULES_MAK := $(PJDIR)/build/rules.mak
 
 PJLIB_LIB:=../../pjlib/lib/libpj-$(TARGET_NAME)$(LIBEXT)
 PJLIB_UTIL_LIB:=../../pjlib-util/lib/libpjlib-util-$(TARGET_NAME)$(LIBEXT)
+PJNATH_LIB:=../../pjnath/lib/libpjnath-$(TARGET_NAME)$(LIBEXT)
 PJMEDIA_LIB:=../../pjmedia/lib/libpjmedia-$(TARGET_NAME)$(LIBEXT)
-PJMEDIA_CODEC_LIB:=../../pjmedia/lib/libpjmedia-codec-$(TARGET_NAME)$(LIBEXT)
 
-export PJSIP_LIB:=../lib/libpjsip-$(TARGET_NAME)$(LIBEXT)
-export PJSIP_UA_LIB:=../lib/libpjsip-ua-$(TARGET_NAME)$(LIBEXT)
-export PJSIP_SIMPLE_LIB:=../lib/libpjsip-simple-$(TARGET_NAME)$(LIBEXT)
-export PJSUA_LIB_LIB=../lib/libpjsua-$(TARGET_NAME)$(LIBEXT)
+export PJSIP_LIB:=libpjsip-$(TARGET_NAME)$(LIBEXT)
+export PJSIP_UA_LIB:=libpjsip-ua-$(TARGET_NAME)$(LIBEXT)
+export PJSIP_SIMPLE_LIB:=libpjsip-simple-$(TARGET_NAME)$(LIBEXT)
+export PJSUA_LIB_LIB:=libpjsua-$(TARGET_NAME)$(LIBEXT)
 
+ifeq ($(PJ_SHARED_LIBRARIES),)
+else
+export PJSIP_SONAME := libpjsip.$(SHLIB_SUFFIX)
+export PJSIP_SHLIB := $(PJSIP_SONAME).$(PJ_VERSION_MAJOR)
+export PJSIP_UA_SONAME := libpjsip-ua.$(SHLIB_SUFFIX)
+export PJSIP_UA_SHLIB := $(PJSIP_UA_SONAME).$(PJ_VERSION_MAJOR)
+export PJSIP_SIMPLE_SONAME := libpjsip-simple.$(SHLIB_SUFFIX)
+export PJSIP_SIMPLE_SHLIB := $(PJSIP_SIMPLE_SONAME).$(PJ_VERSION_MAJOR)
+export PJSUA_LIB_SONAME := libpjsua.$(SHLIB_SUFFIX)
+export PJSUA_LIB_SHLIB := $(PJSUA_LIB_SONAME).$(PJ_VERSION_MAJOR)
+endif
 
 ###############################################################################
 # Gather all flags.
@@ -31,6 +45,10 @@
 		   $(CC_INC)../../pjmedia/include
 export _CXXFLAGS:= $(_CFLAGS) $(CC_CXXFLAGS) $(OS_CXXFLAGS) $(M_CXXFLAGS) \
 		   $(HOST_CXXFLAGS) $(CXXFLAGS)
+export _LDFLAGS := $(APP_THIRD_PARTY_LIBS) \
+		   $(APP_THIRD_PARTY_EXT) \
+		   $(CC_LDFLAGS) $(OS_LDFLAGS) $(M_LDFLAGS) $(HOST_LDFLAGS) \
+		   $(APP_LDFLAGS) $(LDFLAGS) 
 
 ###############################################################################
 # Defines for building PJSIP core library
@@ -48,6 +66,10 @@
 		sip_transaction.o sip_util_statefull.o \
 		sip_dialog.o sip_ua_layer.o
 export PJSIP_CFLAGS += $(_CFLAGS)
+export PJSIP_CXXFLAGS += $(_CXXFLAGS)
+export PJSIP_LDFLAGS += $(PJLIB_UTIL_LDLIB) \
+			$(PJLIB_LDLIB) \
+			$(_LDFLAGS)
 
 ###############################################################################
 # Defines for building PJSIP UA library
@@ -57,6 +79,13 @@
 			sip_inv.o sip_reg.o sip_replaces.o sip_xfer.o \
 			sip_100rel.o sip_timer.o
 export PJSIP_UA_CFLAGS += $(_CFLAGS)
+export PJSIP_UA_CXXFLAGS += $(_CXXFLAGS)
+export PJSIP_UA_LDFLAGS += $(PJSIP_SIMPLE_LDLIB) \
+			   $(PJSIP_LDLIB) \
+			   $(PJMEDIA_LDLIB) \
+			   $(PJLIB_UTIL_LDLIB) \
+			   $(PJLIB_LDLIB) \
+			   $(_LDFLAGS)
 
 
 ###############################################################################
@@ -68,6 +97,11 @@
 			mwi.o pidf.o presence.o presence_body.o publishc.o \
 			rpid.o xpidf.o
 export PJSIP_SIMPLE_CFLAGS += $(_CFLAGS)
+export PJSIP_SIMPLE_CXXFLAGS += $(_CXXFLAGS)
+export PJSIP_SIMPLE_LDFLAGS += $(PJSIP_LDLIB) \
+			       $(PJLIB_UTIL_LDLIB) \
+			       $(PJLIB_LDLIB) \
+			       $(_LDFLAGS)
 
 
 ###############################################################################
@@ -79,6 +113,18 @@
 			pjsua_im.o pjsua_media.o pjsua_pres.o \
 			pjsua_dump.o pjsua_aud.o pjsua_vid.o
 export PJSUA_LIB_CFLAGS += $(_CFLAGS) $(PJ_VIDEO_CFLAGS)
+export PJSUA_LIB_CXXFLAGS += $(_CXXFLAGS) $(PJ_VIDEO_CFLAGS)
+export PJSUA_LIB_LDFLAGS += $(PJSIP_UA_LDLIB) \
+			    $(PJSIP_SIMPLE_LDLIB) \
+			    $(PJSIP_LDLIB) \
+			    $(PJMEDIA_AUDIODEV_LDLIB) \
+			    $(PJMEDIA_VIDEODEV_LDLIB) \
+			    $(PJMEDIA_CODEC_LDLIB) \
+			    $(PJMEDIA_LDLIB) \
+			    $(PJNATH_LDLIB) \
+			    $(PJLIB_UTIL_LDLIB) \
+			    $(PJLIB_LDLIB) \
+			    $(_LDFLAGS)
 
 
 export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
@@ -95,8 +141,20 @@
 		    tsx_uas_test.o txdata_test.o uri_test.o \
 		    inv_offer_answer_test.o
 export TEST_CFLAGS += $(_CFLAGS)
-export TEST_LDFLAGS += $(PJ_LDFLAGS) $(PJ_LDLIBS) $(LDFLAGS)
-export TEST_EXE := ../bin/pjsip-test-$(TARGET_NAME)$(HOST_EXE)
+export TEST_CXXFLAGS += $(_CXXFLAGS)
+export TEST_LDFLAGS += $(PJSIP_LDLIB) \
+		       $(PJSIP_UA_LDLIB) \
+		       $(PJSIP_SIMPLE_LDLIB) \
+		       $(PJSUA_LDLIB) \
+		       $(PJMEDIA_CODEC_LDLIB) \
+		       $(PJMEDIA_VIDEODEV_LDLIB) \
+		       $(PJMEDIA_LDLIB) \
+		       $(PJMEDIA_AUDIODEV_LDLIB) \
+		       $(PJLIB_LDLIB) \
+		       $(PJLIB_UTIL_LDLIB) \
+		       $(PJNATH_LDLIB) \
+		       $(_LDFLAGS)
+export TEST_EXE := pjsip-test-$(TARGET_NAME)$(HOST_EXE)
 
 	
 export CC_OUT CC AR RANLIB HOST_MV HOST_RM HOST_RMDIR HOST_MKDIR OBJEXT LD LDOUT 
@@ -104,9 +162,11 @@
 # Main entry
 #
 #
-TARGETS := pjsip pjsip-ua pjsip-simple pjsua-lib pjsip-test
-
-.PHONY: $(TARGETS)
+TARGETS := $(PJSIP_LIB) $(PJSIP_SONAME) \
+	   $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) \
+	   $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME) \
+	   $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME) \
+	   $(TEST_EXE)
 
 all: $(TARGETS)
 
@@ -124,42 +184,61 @@
 dep: depend
 distclean: realclean
 
-.PHONY: dep depend pjsip pjsip-ua pjsua-lib clean realclean distclean
+.PHONY: all dep depend clean realclean distclean
+.PHONY: $(TARGETS)
+.PHONY: $(PJSIP_LIB) $(PJSIP_SONAME)
+.PHONY: $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
+.PHONY: $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME)
+.PHONY: $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME)
+.PHONY: $(TEST_EXE)
 
-pjsip:
-	$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(PJSIP_LIB)
+pjsip: $(PJSIP_LIB)
+$(PJSIP_SONAME): $(PJSIP_LIB)
+$(PJSIP_LIB) $(PJSIP_SONAME):
+	$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-pjsip-ua:
-	$(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(PJSIP_UA_LIB)
+pjsip-ua: $(PJSIP_UA_LIB)
+$(PJSIP_UA_SONAME): $(PJSIP_UA_LIB)
+$(PJSIP_UA_LIB) $(PJSIP_UA_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME)
+	$(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-pjsip-simple:
-	$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(PJSIP_SIMPLE_LIB)
+pjsip-simple: $(PJSIP_SIMPLE_LIB)
+$(PJSIP_SIMPLE_SONAME): $(PJSIP_SIMPLE_LIB)
+$(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME)
+	$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-pjsua-lib: 
-	$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(PJSUA_LIB_LIB)
+pjsua-lib: $(PJSUA_LIB_LIB)
+$(PJSUA_LIB_SONAME): $(PJSUA_LIB_LIB)
+$(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME): $(PJSIP_LIB) $(PJSIP_SONAME) $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME) $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
+	$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-pjsip-test: pjsip
-	$(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $(TEST_EXE)
+pjsip-test: $(TEST_EXE)
+$(TEST_EXE): $(PJSIP_LIB) $(PJSIP_SONAME)
+$(TEST_EXE): $(PJSIP_UA_LIB) $(PJSIP_UA_SONAME)
+$(TEST_EXE): $(PJSIP_SIMPLE_LIB) $(PJSIP_SIMPLE_SONAME)
+$(TEST_EXE): $(PJSUA_LIB_LIB) $(PJSUA_LIB_SONAME)
+$(TEST_EXE):
+	$(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $(subst /,$(HOST_PSEP),$(BINDIR)/$@)
 
-.PHONY: ../lib/pjsip.ko
-../lib/pjsip.ko:
+.PHONY: pjsip.ko
+pjsip.ko:
 	echo Making $@
-	$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $@
+	$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-.PHONY: ../lib/pjsip-ua.ko
-../lib/pjsip-ua.ko:
+.PHONY: pjsip-ua.ko
+pjsip-ua.ko:
 	echo Making $@
-	$(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $@
+	$(MAKE) -f $(RULES_MAK) APP=PJSIP_UA app=pjsip-ua $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-.PHONY: ../lib/pjsip-simple.ko
-../lib/pjsip-simple.ko:
+.PHONY: pjsip-simple.ko
+pjsip-simple.ko:
 	echo Making $@
-	$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $@
+	$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
-.PHONY: ../lib/pjsua-lib.ko
-../lib/pjsua-lib.ko:
+.PHONY: pjsua-lib.ko
+pjsua-lib.ko:
 	echo Making $@
-	$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@
+	$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $(subst /,$(HOST_PSEP),$(LIBDIR)/$@)
 
 clean:
 	$(MAKE) -f $(RULES_MAK) APP=PJSIP app=pjsip $@
@@ -174,7 +253,7 @@
 	$(MAKE) -f $(RULES_MAK) APP=PJSIP_SIMPLE app=pjsip-simple $@
 	$(MAKE) -f $(RULES_MAK) APP=PJSUA_LIB app=pjsua-lib $@
 	$(MAKE) -f $(RULES_MAK) APP=TEST app=pjsip-test $@
-	echo '$(TEST_EXE): $(PJMEDIA_LIB) $(PJSUA_LIB_LIB) $(PJSIP_SIMPLE_LIB) $(PJSIP_UA_LIB) $(PJSIP_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjsip-test-$(TARGET_NAME).depend
+	echo '$(BINDIR)/$(TEST_EXE): $(PJMEDIA_LIB) $(LIBDIR)/$(PJSUA_LIB_LIB) $(LIBDIR)/$(PJSIP_SIMPLE_LIB) $(LIBDIR)/$(PJSIP_UA_LIB) $(LIBDIR)/$(PJSIP_LIB) $(PJNATH_LIB) $(PJLIB_UTIL_LIB) $(PJLIB_LIB)' >> .pjsip-test-$(TARGET_NAME).depend
 
 realclean:
 	$(subst @@,$(subst /,$(HOST_PSEP),.pjsip-$(TARGET_NAME).depend),$(HOST_RMR))
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/errno.h b/jni/pjproject-android/pjsip/include/pjsip-simple/errno.h
index 62927ca..72450aa 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/errno.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/errno.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: errno.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/evsub.h b/jni/pjproject-android/pjsip/include/pjsip-simple/evsub.h
index b0159bf..5184a79 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/evsub.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/evsub.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: evsub.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/evsub_msg.h b/jni/pjproject-android/pjsip/include/pjsip-simple/evsub_msg.h
index b5016e4..64035e2 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/evsub_msg.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/evsub_msg.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: evsub_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/iscomposing.h b/jni/pjproject-android/pjsip/include/pjsip-simple/iscomposing.h
index 9cd5e97..61d5c72 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/iscomposing.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/iscomposing.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: iscomposing.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/mwi.h b/jni/pjproject-android/pjsip/include/pjsip-simple/mwi.h
index 9887cfe..4f59d40 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/mwi.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/mwi.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: mwi.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/pidf.h b/jni/pjproject-android/pjsip/include/pjsip-simple/pidf.h
index 98828da..6e26264 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/pidf.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/pidf.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pidf.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/presence.h b/jni/pjproject-android/pjsip/include/pjsip-simple/presence.h
index f29489f..d266baa 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/presence.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/presence.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: presence.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/publish.h b/jni/pjproject-android/pjsip/include/pjsip-simple/publish.h
index 59a5870..5940ab7 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/publish.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/publish.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: publish.h 4173 2012-06-20 10:39:05Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/rpid.h b/jni/pjproject-android/pjsip/include/pjsip-simple/rpid.h
index 6caf05a..1ee8982 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/rpid.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/rpid.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: rpid.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/types.h b/jni/pjproject-android/pjsip/include/pjsip-simple/types.h
index f8c7f77..74eee03 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/types.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/types.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: types.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/xpidf.h b/jni/pjproject-android/pjsip/include/pjsip-simple/xpidf.h
index bf6fbf2..911a429 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-simple/xpidf.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-simple/xpidf.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: xpidf.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_100rel.h b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_100rel.h
index d44b0f6..1b01d24 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_100rel.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_100rel.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_100rel.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_inv.h b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_inv.h
index 5782cf9..392819a 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_inv.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_inv.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_inv.h 4653 2013-11-19 10:18:17Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -393,6 +393,7 @@
     pjsip_inv_state	 state;			    /**< Invite sess state. */
     pj_bool_t		 cancelling;		    /**< CANCEL requested   */
     pj_bool_t		 pending_cancel;	    /**< Wait to send CANCEL*/
+    pjsip_tx_data	*pending_bye;               /**< BYE to send later  */
     pjsip_status_code	 cause;			    /**< Disconnect cause.  */
     pj_str_t		 cause_text;		    /**< Cause text.	    */
     pj_bool_t		 notify;		    /**< Internal.	    */
diff --git a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_regc.h b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_regc.h
index 80c7a33..bfc5b74 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_regc.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_regc.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_regc.h 4586 2013-09-04 10:07:45Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_replaces.h b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_replaces.h
index aff4449..6293b0f 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_replaces.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_replaces.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_replaces.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_timer.h b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_timer.h
index aac4e68..6ef7931 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_timer.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_timer.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_timer.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_xfer.h b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_xfer.h
index b8d8126..b7b68d9 100644
--- a/jni/pjproject-android/pjsip/include/pjsip-ua/sip_xfer.h
+++ b/jni/pjproject-android/pjsip/include/pjsip-ua/sip_xfer.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_xfer.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip.h b/jni/pjproject-android/pjsip/include/pjsip.h
index 25f6bd0..a2021cd 100644
--- a/jni/pjproject-android/pjsip/include/pjsip.h
+++ b/jni/pjproject-android/pjsip/include/pjsip.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsip.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/print_util.h b/jni/pjproject-android/pjsip/include/pjsip/print_util.h
index 6d82aad..e616fa3 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/print_util.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/print_util.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: print_util.h 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_auth.h b/jni/pjproject-android/pjsip/include/pjsip/sip_auth.h
index ce262ef..cd59372 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_auth.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_auth.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth.h 4214 2012-07-25 14:29:28Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_auth_aka.h b/jni/pjproject-android/pjsip/include/pjsip/sip_auth_aka.h
index 291e2b0..0665bf2 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_auth_aka.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_auth_aka.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_aka.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_auth_msg.h b/jni/pjproject-android/pjsip/include/pjsip/sip_auth_msg.h
index 56dec78..ee6da24 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_auth_msg.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_auth_msg.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_auth_parser.h b/jni/pjproject-android/pjsip/include/pjsip/sip_auth_parser.h
index 9685fcd..703c52f 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_auth_parser.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_auth_parser.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_parser.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_autoconf.h.in b/jni/pjproject-android/pjsip/include/pjsip/sip_autoconf.h.in
index 38eda08..6cae772 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_autoconf.h.in
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_autoconf.h.in
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_autoconf.h.in 3295 2010-08-25 12:51:29Z bennylp $ */
 /* 
  * Copyright (C) 2008-2009 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_config.h b/jni/pjproject-android/pjsip/include/pjsip/sip_config.h
index ed93e92..11b82cb 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_config.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_config.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_config.h 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_dialog.h b/jni/pjproject-android/pjsip/include/pjsip/sip_dialog.h
index 9f37c32..63e12ac 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_dialog.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_dialog.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_dialog.h 4173 2012-06-20 10:39:05Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_endpoint.h b/jni/pjproject-android/pjsip/include/pjsip/sip_endpoint.h
index 265b7f2..63c65d7 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_endpoint.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_endpoint.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_endpoint.h 4275 2012-10-04 06:11:58Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_errno.h b/jni/pjproject-android/pjsip/include/pjsip/sip_errno.h
index afcecc4..26e326e 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_errno.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_errno.h
@@ -1,4 +1,4 @@
-/* $Id$  */
+/* $Id: sip_errno.h 3553 2011-05-05 06:14:19Z nanang $  */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_event.h b/jni/pjproject-android/pjsip/include/pjsip/sip_event.h
index 4e002bc..d6c90af 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_event.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_event.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_event.h 4154 2012-06-05 10:41:17Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_module.h b/jni/pjproject-android/pjsip/include/pjsip/sip_module.h
index cc44fef..45884cc 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_module.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_module.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_module.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_msg.h b/jni/pjproject-android/pjsip/include/pjsip/sip_msg.h
index 40fae8b..9031fa2 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_msg.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_msg.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_multipart.h b/jni/pjproject-android/pjsip/include/pjsip/sip_multipart.h
index d04a1c7..be8ae26 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_multipart.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_multipart.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_multipart.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_parser.h b/jni/pjproject-android/pjsip/include/pjsip/sip_parser.h
index 0d767f0..1f6f656 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_parser.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_parser.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_parser.h 4445 2013-03-20 11:29:08Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_private.h b/jni/pjproject-android/pjsip/include/pjsip/sip_private.h
index 621ca8f..e139fa6 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_private.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_private.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_private.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_resolve.h b/jni/pjproject-android/pjsip/include/pjsip/sip_resolve.h
index 5a12cf7..6f578a1 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_resolve.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_resolve.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_resolve.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_tel_uri.h b/jni/pjproject-android/pjsip/include/pjsip/sip_tel_uri.h
index 15766e8..f85ec74 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_tel_uri.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_tel_uri.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_tel_uri.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_transaction.h b/jni/pjproject-android/pjsip/include/pjsip/sip_transaction.h
index e60f214..575298a 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_transaction.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_transaction.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transaction.h 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_transport.h b/jni/pjproject-android/pjsip/include/pjsip/sip_transport.h
index 4ff3597..21b2238 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_transport.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_transport.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport.h 4275 2012-10-04 06:11:58Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_loop.h b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_loop.h
index 9bb760b..1883a02 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_loop.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_loop.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_loop.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tcp.h b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tcp.h
index 7e7bc13..e35e814 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tcp.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tcp.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_tcp.h 4506 2013-04-26 06:01:43Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tls.h b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tls.h
index 00d8fe7..6ed1ce7 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tls.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_tls.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_tls.h 4506 2013-04-26 06:01:43Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_udp.h b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_udp.h
index 27c643a..f58d1e6 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_transport_udp.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_transport_udp.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_udp.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_types.h b/jni/pjproject-android/pjsip/include/pjsip/sip_types.h
index d212dd2..9809983 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_types.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_types.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_types.h 4262 2012-09-20 06:00:23Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_ua_layer.h b/jni/pjproject-android/pjsip/include/pjsip/sip_ua_layer.h
index d1df5b2..4c69e45 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_ua_layer.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_ua_layer.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_ua_layer.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_uri.h b/jni/pjproject-android/pjsip/include/pjsip/sip_uri.h
index a6925d9..398085b 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_uri.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_uri.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_uri.h 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip/sip_util.h b/jni/pjproject-android/pjsip/include/pjsip/sip_util.h
index 226dccd..018ad87 100644
--- a/jni/pjproject-android/pjsip/include/pjsip/sip_util.h
+++ b/jni/pjproject-android/pjsip/include/pjsip/sip_util.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_util.h 4347 2013-02-13 10:19:25Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip_auth.h b/jni/pjproject-android/pjsip/include/pjsip_auth.h
index 7adf26b..3ab2c5e 100644
--- a/jni/pjproject-android/pjsip/include/pjsip_auth.h
+++ b/jni/pjproject-android/pjsip/include/pjsip_auth.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsip_auth.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip_simple.h b/jni/pjproject-android/pjsip/include/pjsip_simple.h
index b60ce4c..af5acda 100644
--- a/jni/pjproject-android/pjsip/include/pjsip_simple.h
+++ b/jni/pjproject-android/pjsip/include/pjsip_simple.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsip_simple.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsip_ua.h b/jni/pjproject-android/pjsip/include/pjsip_ua.h
index 2f5da2e..59d5358 100644
--- a/jni/pjproject-android/pjsip/include/pjsip_ua.h
+++ b/jni/pjproject-android/pjsip/include/pjsip_ua.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsip_ua.h 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua.h b/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua.h
index be5b08e..7fea2f0 100644
--- a/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua.h
+++ b/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua.h 4667 2013-12-03 05:22:10Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -5593,9 +5593,10 @@
 
     /** 
      * Jitter buffer initial prefetch delay in msec. The value must be
-     * between jb_min_pre and jb_max_pre below.
+     * between jb_min_pre and jb_max_pre below. If the value is 0,
+     * prefetching will be disabled.
      *
-     * Default: -1 (to use default stream settings, currently 150 msec)
+     * Default: -1 (to use default stream settings, currently 0)
      */
     int			jb_init;
 
diff --git a/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua_internal.h b/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua_internal.h
index dcf5020..5cac12a 100644
--- a/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua_internal.h
+++ b/jni/pjproject-android/pjsip/include/pjsua-lib/pjsua_internal.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_internal.h 4592 2013-09-06 10:04:39Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/errno.c b/jni/pjproject-android/pjsip/src/pjsip-simple/errno.c
index 91a066d..eee8575 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/errno.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/errno.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: errno.c 4613 2013-10-08 09:08:13Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -110,7 +110,8 @@
     errstr.slen = pj_ansi_snprintf(buf, bufsize, 
 				   "Unknown pjsip-simple error %d",
  				   statcode);
-
+    if (errstr.slen < 1 || errstr.slen >= (pj_ssize_t)bufsize)
+	errstr.slen = bufsize - 1;
     return errstr;
 }
 
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/evsub.c b/jni/pjproject-android/pjsip/src/pjsip-simple/evsub.c
index aa2498c..3070cb8 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/evsub.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/evsub.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: evsub.c 4572 2013-07-22 09:17:30Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/evsub_msg.c b/jni/pjproject-android/pjsip/src/pjsip-simple/evsub_msg.c
index b44a715..fc9f093 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/evsub_msg.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/evsub_msg.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: evsub_msg.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/iscomposing.c b/jni/pjproject-android/pjsip/src/pjsip-simple/iscomposing.c
index 18fd1f5..7053539 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/iscomposing.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/iscomposing.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: iscomposing.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/mwi.c b/jni/pjproject-android/pjsip/src/pjsip-simple/mwi.c
index 537ca9e..da86131 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/mwi.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/mwi.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: mwi.c 4172 2012-06-19 14:35:18Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/pidf.c b/jni/pjproject-android/pjsip/src/pjsip-simple/pidf.c
index b90725d..0b68d1a 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/pidf.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/pidf.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pidf.c 3841 2011-10-24 09:28:13Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/presence.c b/jni/pjproject-android/pjsip/src/pjsip-simple/presence.c
index 2e94e93..5b96ec7 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/presence.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/presence.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: presence.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/presence_body.c b/jni/pjproject-android/pjsip/src/pjsip-simple/presence_body.c
index 221228e..e692f47 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/presence_body.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/presence_body.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: presence_body.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/publishc.c b/jni/pjproject-android/pjsip/src/pjsip-simple/publishc.c
index fcb412d..0048bc6 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/publishc.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/publishc.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: publishc.c 4530 2013-05-30 09:27:49Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/rpid.c b/jni/pjproject-android/pjsip/src/pjsip-simple/rpid.c
index f02b137..8e63205 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/rpid.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/rpid.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: rpid.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/xpidf.c b/jni/pjproject-android/pjsip/src/pjsip-simple/xpidf.c
index 4ca4b29..22801d7 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-simple/xpidf.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-simple/xpidf.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: xpidf.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_100rel.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_100rel.c
index 60b989b..86105ca 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_100rel.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_100rel.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_100rel.c 4613 2013-10-08 09:08:13Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -344,6 +344,9 @@
 				 rseq, rdata->msg_info.cseq->cseq,
 				 (int)tsx->method.name.slen,
 				 tsx->method.name.ptr);
+    if (rack.slen < 1 || rack.slen >= (int)sizeof(rack_buf)) {
+	return PJ_ETOOSMALL;
+    }
     rack_hdr = pjsip_generic_string_hdr_create(tdata->pool, &RACK, &rack);
     pjsip_msg_add_hdr(tdata->msg, (pjsip_hdr*) rack_hdr);
 
diff --git a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_inv.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_inv.c
index e73049b..45fdfd0 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_inv.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_inv.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_inv.c 4653 2013-11-19 10:18:17Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -263,6 +263,10 @@
 	    pjsip_tx_data_dec_ref(inv->invite_req);
 	    inv->invite_req = NULL;
 	}
+	if (inv->pending_bye) {
+	    pjsip_tx_data_dec_ref(inv->pending_bye);
+	    inv->pending_bye = NULL;
+	}
 	pjsip_100rel_end_session(inv);
 	pjsip_timer_end_session(inv);
 	pjsip_dlg_dec_session(inv->dlg, &mod_inv.mod);
@@ -355,6 +359,26 @@
     return sdp;
 }
 
+/* Process pending disconnection
+ *  http://trac.pjsip.org/repos/ticket/1712
+ */
+static void inv_perform_pending_bye(pjsip_inv_session *inv)
+{
+    if (inv->pending_bye) {
+	pjsip_tx_data *bye = inv->pending_bye;
+	pj_status_t status;
+
+	PJ_LOG(4,(inv->dlg->obj_name, "Sending pending BYE"));
+
+	inv->pending_bye = NULL;
+	status = pjsip_inv_send_msg(inv, bye);
+
+	if (status != PJ_SUCCESS) {
+	    PJ_PERROR(1,(inv->dlg->obj_name, status,
+			 "Failed sending pending BYE"));
+	}
+    }
+}
 
 /*
  * Send ACK for 2xx response.
@@ -528,6 +552,14 @@
 
 	    PJSIP_EVENT_INIT_RX_MSG(event, rdata);
 	    inv_set_state(inv, PJSIP_INV_STATE_CONFIRMED, &event);
+
+	    /* Send pending BYE if any:
+	     *   http://trac.pjsip.org/repos/ticket/1712
+	     * Do this after setting the state to CONFIRMED, so that we
+	     * have consistent CONFIRMED state between caller and callee.
+	     */
+	    if (inv->pending_bye)
+		inv_perform_pending_bye(inv);
 	}
     }
 
@@ -2889,6 +2921,23 @@
 	    goto on_error;
 	}
 
+	/* Don't send BYE before ACK is received
+	 * http://trac.pjsip.org/repos/ticket/1712
+	 */
+	if (tdata->msg->line.req.method.id == PJSIP_BYE_METHOD &&
+	    inv->role == PJSIP_ROLE_UAS &&
+	    inv->state == PJSIP_INV_STATE_CONNECTING)
+	{
+	    if (inv->pending_bye)
+		pjsip_tx_data_dec_ref(inv->pending_bye);
+
+	    inv->pending_bye = tdata;
+	    PJ_LOG(4, (inv->obj_name, "Delaying BYE request until "
+		       "ACK is received"));
+	    pjsip_dlg_dec_lock(inv->dlg);
+	    goto on_return;
+	}
+
 	/* Associate our data in outgoing invite transaction */
 	tsx_inv_data = PJ_POOL_ZALLOC_T(inv->pool, struct tsx_inv_data);
 	tsx_inv_data->inv = inv;
@@ -2924,6 +2973,7 @@
     }
 
     /* Done */
+on_return:
     pj_log_pop_indent();
     return PJ_SUCCESS;
 
@@ -4091,6 +4141,15 @@
 		}
 
 		inv_set_state(inv, PJSIP_INV_STATE_CONFIRMED, e);
+
+		/* Send pending BYE if any:
+		 *   http://trac.pjsip.org/repos/ticket/1712
+		 * Do this after setting the state to CONFIRMED, so that we
+		 * have consistent CONFIRMED state between caller and callee.
+		 */
+		if (inv->pending_bye)
+		    inv_perform_pending_bye(inv);
+
 	    }
 	    break;
 
diff --git a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_reg.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_reg.c
index ca907ba..286b13d 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_reg.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_reg.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_reg.c 4586 2013-09-04 10:07:45Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_replaces.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_replaces.c
index b117dd3..121b2bd 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_replaces.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_replaces.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_replaces.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_timer.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_timer.c
index 06bfaf0..5381dbc 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_timer.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_timer.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_timer.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_xfer.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_xfer.c
index 571b807..cfa3e10 100644
--- a/jni/pjproject-android/pjsip/src/pjsip-ua/sip_xfer.c
+++ b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_xfer.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_xfer.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_aka.c b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_aka.c
index 82efbaf..b3c2dde 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_aka.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_aka.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_aka.c 3999 2012-03-30 07:10:13Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_client.c b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_client.c
index b337e1e..0c723a5 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_client.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_client.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_client.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_msg.c b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_msg.c
index 0f37fae..b13318d 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_msg.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_msg.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_msg.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser.c b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser.c
index 4708dc6..823372c 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_parser.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser_wrap.cpp
index a0c083f..8d4f8a3 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_parser_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_parser_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_server.c b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_server.c
index 514d9d5..c38b40c 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_auth_server.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_auth_server.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_auth_server.c 4214 2012-07-25 14:29:28Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_config.c b/jni/pjproject-android/pjsip/src/pjsip/sip_config.c
index dacc2f8..d64e7cb 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_config.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_config.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_config.c 4442 2013-03-19 07:39:25Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_dialog.c b/jni/pjproject-android/pjsip/src/pjsip/sip_dialog.c
index 9ddadb0..0e70d33 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_dialog.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_dialog.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_dialog.c 4208 2012-07-18 07:52:33Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_dialog_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_dialog_wrap.cpp
index 8c76562..5bf3935 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_dialog_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_dialog_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_dialog_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint.c b/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint.c
index 7a3a3a3..71a681a 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_endpoint.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint_wrap.cpp
index 0170f6f..1386023 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_endpoint_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_endpoint_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_errno.c b/jni/pjproject-android/pjsip/src/pjsip/sip_errno.c
index 806733f..09a91cb 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_errno.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_errno.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_errno.c 4613 2013-10-08 09:08:13Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -204,7 +204,8 @@
     errstr.slen = pj_ansi_snprintf(buf, bufsize, 
 				   "Unknown pjsip error %d",
 				   statcode);
-
+    if (errstr.slen < 1 || errstr.slen >= (pj_ssize_t)bufsize)
+	errstr.slen = bufsize - 1;
     return errstr;
 
 }
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_msg.c b/jni/pjproject-android/pjsip/src/pjsip/sip_msg.c
index 0ec56ad..52c9010 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_msg.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_msg.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_msg.c 4550 2013-07-02 11:45:57Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_multipart.c b/jni/pjproject-android/pjsip/src/pjsip/sip_multipart.c
index 5d0e566..8eb058e 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_multipart.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_multipart.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_multipart.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_parser.c b/jni/pjproject-android/pjsip/src/pjsip/sip_parser.c
index 33db355..2709a80 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_parser.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_parser.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_parser.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_parser_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_parser_wrap.cpp
index e74d27c..21f9718 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_parser_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_parser_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_parser_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_resolve.c b/jni/pjproject-android/pjsip/src/pjsip/sip_resolve.c
index fb23b53..f5efc1e 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_resolve.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_resolve.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_resolve.c 4108 2012-04-27 01:32:12Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri.c b/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri.c
index 466a699..57c8e3b 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_tel_uri.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri_wrap.cpp
index fc00ccf..d13fb52 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_tel_uri_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_tel_uri_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transaction.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transaction.c
index 446617e..7450fc8 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transaction.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transaction.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transaction.c 4630 2013-10-22 10:16:28Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -648,20 +648,25 @@
     tsx = (pjsip_transaction*)
     	  pj_hash_get_lower( mod_tsx_layer.htable, key->ptr, 
 			     (unsigned)key->slen, &hval );
+    
+    /* Prevent the transaction to get deleted before we have chance to lock it.
+     */
+    if (tsx && lock)
+        pj_grp_lock_add_ref(tsx->grp_lock);
+    
     pj_mutex_unlock(mod_tsx_layer.mutex);
 
     TSX_TRACE_((THIS_FILE, 
 		"Finding tsx with hkey=0x%p and key=%.*s: found %p",
 		hval, key->slen, key->ptr, tsx));
 
-    /* Race condition!
-     * Transaction may gets deleted before we have chance to lock it.
-     */
-    PJ_TODO(FIX_RACE_CONDITION_HERE);
+    /* Simulate race condition! */
     PJ_RACE_ME(5);
 
-    if (tsx && lock)
+    if (tsx && lock) {
 	pj_grp_lock_acquire(tsx->grp_lock);
+        pj_grp_lock_dec_ref(tsx->grp_lock);
+    }
 
     return tsx;
 }
@@ -798,18 +803,21 @@
 	return PJ_FALSE;
     }
 
+    /* Prevent the transaction to get deleted before we have chance to lock it
+     * in pjsip_tsx_recv_msg().
+     */
+    pj_grp_lock_add_ref(tsx->grp_lock);
+    
     /* Unlock hash table. */
     pj_mutex_unlock( mod_tsx_layer.mutex );
 
-    /* Race condition!
-     * Transaction may gets deleted before we have chance to lock it
-     * in pjsip_tsx_recv_msg().
-     */
-    PJ_TODO(FIX_RACE_CONDITION_HERE);
+    /* Simulate race condition! */
     PJ_RACE_ME(5);
 
     /* Pass the message to the transaction. */
     pjsip_tsx_recv_msg(tsx, rdata );
+    
+    pj_grp_lock_dec_ref(tsx->grp_lock);
 
     return PJ_TRUE;
 }
@@ -849,18 +857,21 @@
 	return PJ_FALSE;
     }
 
+    /* Prevent the transaction to get deleted before we have chance to lock it
+     * in pjsip_tsx_recv_msg().
+     */
+    pj_grp_lock_add_ref(tsx->grp_lock);
+
     /* Unlock hash table. */
     pj_mutex_unlock( mod_tsx_layer.mutex );
 
-    /* Race condition!
-     * Transaction may gets deleted before we have chance to lock it
-     * in pjsip_tsx_recv_msg().
-     */
-    PJ_TODO(FIX_RACE_CONDITION_HERE);
+    /* Simulate race condition! */
     PJ_RACE_ME(5);
 
     /* Pass the message to the transaction. */
     pjsip_tsx_recv_msg(tsx, rdata );
+    
+    pj_grp_lock_dec_ref(tsx->grp_lock);
 
     return PJ_TRUE;
 }
@@ -3143,10 +3154,12 @@
 	}
 
     } else {
-	/* Ignore request to transmit. */
+	/* Ignore request to transmit. 
 	PJ_ASSERT_RETURN(event->type == PJSIP_EVENT_TX_MSG && 
 			 event->body.tx_msg.tdata == tsx->last_tx, 
 			 PJ_EINVALIDOP);
+
+*/
     }
 
     return PJ_SUCCESS;
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport.c
index 7caa2e9..d0a1360 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transport.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transport.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport.c 4615 2013-10-08 11:14:42Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -577,13 +577,15 @@
 
 PJ_DEF(char*) pjsip_tx_data_get_info( pjsip_tx_data *tdata )
 {
+    PJ_ASSERT_RETURN(tdata, "NULL");
+
     /* tdata->info may be assigned by application so if it exists
      * just return it.
      */
     if (tdata->info)
 	return tdata->info;
 
-    if (tdata==NULL || tdata->msg==NULL)
+    if (tdata->msg==NULL)
 	return "NULL";
 
     pj_lock_acquire(tdata->lock);
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_loop.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_loop.c
index a3347d6..498b529 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_loop.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_loop.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_loop.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tcp.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tcp.c
index 2235985..4f50cca 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tcp.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tcp.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_tcp.c 4661 2013-11-29 00:33:05Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -176,7 +176,7 @@
     if (tcp->close_reason == PJ_SUCCESS)
 	tcp->close_reason = status;
 
-    if (tcp->base.is_shutdown)
+    if (tcp->base.is_shutdown || tcp->base.is_destroying)
 	return;
 
     /* Prevent immediate transport destroy by application, as transport
@@ -195,6 +195,10 @@
 	(*state_cb)(&tcp->base, PJSIP_TP_STATE_DISCONNECTED, &state_info);
     }
 
+    /* check again */
+    if (tcp->base.is_shutdown || tcp->base.is_destroying)
+	return;
+
     /* We can not destroy the transport since high level objects may
      * still keep reference to this transport. So we can only 
      * instruct transport manager to gracefully start the shutdown
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tls.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tls.c
index dc83ab8..9cd2976 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tls.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tls.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_tls.c 4661 2013-11-29 00:33:05Z bennylp $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
@@ -183,7 +183,7 @@
     if (tls->close_reason == PJ_SUCCESS)
 	tls->close_reason = status;
 
-    if (tls->base.is_shutdown)
+    if (tls->base.is_shutdown || tls->base.is_destroying)
 	return;
 
     /* Prevent immediate transport destroy by application, as transport
@@ -214,6 +214,10 @@
 	(*state_cb)(&tls->base, PJSIP_TP_STATE_DISCONNECTED, &state_info);
     }
 
+    /* check again */
+    if (tls->base.is_shutdown || tls->base.is_destroying)
+	return;
+
     /* We can not destroy the transport since high level objects may
      * still keep reference to this transport. So we can only 
      * instruct transport manager to gracefully start the shutdown
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_udp.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_udp.c
index bdd0416..369c0b9 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_udp.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_udp.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_udp.c 4559 2013-07-12 05:01:38Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_wrap.cpp
index 3faad08..80d1e88 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_transport_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_transport_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_ua_layer.c b/jni/pjproject-android/pjsip/src/pjsip/sip_ua_layer.c
index 021005a..a2ad986 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_ua_layer.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_ua_layer.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_ua_layer.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_uri.c b/jni/pjproject-android/pjsip/src/pjsip/sip_uri.c
index 0870186..7441443 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_uri.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_uri.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_uri.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_util.c b/jni/pjproject-android/pjsip/src/pjsip/sip_util.c
index 520d873..5c32ef0 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_util.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_util.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_util.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy.c b/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy.c
index 2264acc..ea5a060 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_util_proxy.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy_wrap.cpp
index 3cbd3bd..e77786f 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_util_proxy_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_util_proxy_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_util_statefull.c b/jni/pjproject-android/pjsip/src/pjsip/sip_util_statefull.c
index 9036a02..3212cab 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_util_statefull.c
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_util_statefull.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_util_statefull.c 4169 2012-06-18 09:19:58Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_util_wrap.cpp b/jni/pjproject-android/pjsip/src/pjsip/sip_util_wrap.cpp
index a6878a0..140e907 100644
--- a/jni/pjproject-android/pjsip/src/pjsip/sip_util_wrap.cpp
+++ b/jni/pjproject-android/pjsip/src/pjsip/sip_util_wrap.cpp
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: sip_util_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_acc.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_acc.c
index 77d9a12..512c45f 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_acc.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_acc.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_acc.c 4613 2013-10-08 09:08:13Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -1749,7 +1749,7 @@
 			       (acc->cfg.use_rfc5626? ob: ""),
 			       (int)acc->cfg.contact_params.slen,
 			       acc->cfg.contact_params.ptr);
-	if (len < 1) {
+	if (len < 1 || len >= PJSIP_MAX_URL_SIZE) {
 	    PJ_LOG(1,(THIS_FILE, "URI too long"));
 	    pj_pool_release(pool);
 	    return PJ_FALSE;
@@ -3101,7 +3101,8 @@
 				     (acc->cfg.use_rfc5626? ob: ""),
 				     (int)acc->cfg.contact_params.slen,
 				     acc->cfg.contact_params.ptr);
-
+    if (contact->slen < 1 || contact->slen >= (int)PJSIP_MAX_URL_SIZE)
+	return PJ_ETOOSMALL;
     return PJ_SUCCESS;
 }
 
@@ -3271,6 +3272,8 @@
 				     acc->cfg.contact_uri_params.ptr,
 				     (int)acc->cfg.contact_params.slen,
 				     acc->cfg.contact_params.ptr);
+    if (contact->slen < 1 || contact->slen >= (int)PJSIP_MAX_URL_SIZE)
+	return PJ_ETOOSMALL;
 
     return PJ_SUCCESS;
 }
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_aud.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_aud.c
index d81ac9a..a801f75 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_aud.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_aud.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_aud.c 4613 2013-10-08 09:08:13Z bennylp $ */
 /*
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -1759,12 +1759,14 @@
 	if (status==PJ_SUCCESS) {
 	    if (param->base.clock_rate != pjsua_var.media_cfg.clock_rate) {
 		char tmp_buf[128];
-		int tmp_buf_len = sizeof(tmp_buf);
+		int tmp_buf_len;
 
-		tmp_buf_len = pj_ansi_snprintf(tmp_buf, sizeof(tmp_buf)-1,
+		tmp_buf_len = pj_ansi_snprintf(tmp_buf, sizeof(tmp_buf),
 					       "%s (%dKHz)",
 					       rec_info.name,
 					       param->base.clock_rate/1000);
+		if (tmp_buf_len < 1 || tmp_buf_len >= (int)sizeof(tmp_buf))
+		    tmp_buf_len = sizeof(tmp_buf) - 1;
 		pj_strset(&tmp, tmp_buf, tmp_buf_len);
 		pjmedia_conf_set_port0_name(pjsua_var.mconf, &tmp);
 	    } else {
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_call.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_call.c
index 1cd91fc..8984f8f 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_call.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_call.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_call.c 4561 2013-07-15 01:29:03Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_core.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_core.c
index d170b66..4188eaf 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_core.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_core.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_core.c 4610 2013-10-03 10:26:14Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -309,10 +309,23 @@
 
 PJ_DEF(void) pjsua_media_config_default(pjsua_media_config *cfg)
 {
+    const pj_sys_info *si = pj_get_sys_info();
+    pj_str_t dev_model = {"iPhone5", 7};
+    
     pj_bzero(cfg, sizeof(*cfg));
 
     cfg->clock_rate = PJSUA_DEFAULT_CLOCK_RATE;
-    cfg->snd_clock_rate = 0;
+    /* It is reported that there may be some media server resampling problem
+     * with iPhone 5 devices running iOS 7, so we set the sound device's
+     * clock rate to 44100 to avoid resampling.
+     */
+    if (pj_stristr(&si->machine, &dev_model) &&
+        ((si->os_ver & 0xFF000000) >> 24) >= 7)
+    {
+        cfg->snd_clock_rate = 44100;
+    } else {
+        cfg->snd_clock_rate = 0;
+    }
     cfg->channel_count = 1;
     cfg->audio_frame_ptime = PJSUA_DEFAULT_AUDIO_FRAME_PTIME;
     cfg->max_media_ports = PJSUA_MAX_CONF_PORTS;
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_dump.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_dump.c
index 2f8ef73..1a4fa08 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_dump.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_dump.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_dump.c 4613 2013-10-08 09:08:13Z bennylp $ */
 /* 
  * Copyright (C) 2011-2011 Teluu Inc. (http://www.teluu.com)
  *
@@ -128,7 +128,7 @@
 	   ""
 	   );
 
-    if (len < 1 || len > end-p) {
+    if (len < 1 || len >= end-p) {
 	*p = '\0';
 	return (unsigned)(p-buf);
     }
@@ -186,7 +186,7 @@
 	   pj_math_stat_get_stddev(&stat->tx.jitter) / 1000.0
 	   );
 
-    if (len < 1 || len > end-p) {
+    if (len < 1 || len >= end-p) {
 	*p = '\0';
 	return (unsigned)(p-buf);
     }
@@ -201,7 +201,7 @@
 	   stat->rtt.last / 1000.0,
 	   pj_math_stat_get_stddev(&stat->rtt) / 1000.0
 	   );
-    if (len < 1 || len > end-p) {
+    if (len < 1 || len >= end-p) {
 	*p = '\0';
 	return (unsigned)(p-buf);
     }
@@ -259,7 +259,7 @@
 	    len = pj_ansi_snprintf(p, end-p,
 		      "%s  #%d %s deactivated\n",
 		      indent, i, media_type_str);
-	    if (len < 1 || len > end-p) {
+	    if (len < 1 || len >= end-p) {
 		*p = '\0';
 		return;
 	    }
@@ -363,7 +363,7 @@
 		  codec_info,
 		  dir_str,
 		  rem_addr);
-	if (len < 1 || len > end-p) {
+	if (len < 1 || len >= end-p) {
 	    *p = '\0';
 	    return;
 	}
@@ -470,7 +470,7 @@
 	    sprintf(s, "%d", v)
 
 #   define VALIDATE_PRINT_BUF() \
-	if (len < 1 || len > end-p) { *p = '\0'; return; } \
+	if (len < 1 || len >= end-p) { *p = '\0'; return; } \
 	p += len; *p++ = '\n'; *p = '\0'
 
 
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_im.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_im.c
index 7ae3188..5a9cd2f 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_im.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_im.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_im.c 4561 2013-07-15 01:29:03Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_media.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_media.c
index 62b413a..1095113 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_media.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_media.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_media.c 4614 2013-10-08 11:13:11Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -1383,7 +1383,7 @@
          * by the last media transport to finish.
          */
         if (info->status != PJ_SUCCESS)
-            pj_memcpy(&call->med_ch_info, info, sizeof(info));
+            pj_memcpy(&call->med_ch_info, info, sizeof(*info));
 
         /* Check whether all the call's medias have finished calling their
          * callbacks.
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_pres.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_pres.c
index a9c3107..87d6d68 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_pres.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_pres.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_pres.c 4564 2013-07-16 06:24:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_vid.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_vid.c
index 0096aca..245685a 100644
--- a/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_vid.c
+++ b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_vid.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: pjsua_vid.c 4560 2013-07-12 13:50:52Z ming $ */
 /* 
  * Copyright (C) 2011-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/test/dlg_core_test.c b/jni/pjproject-android/pjsip/src/test/dlg_core_test.c
index c661d57..ef2f35b 100644
--- a/jni/pjproject-android/pjsip/src/test/dlg_core_test.c
+++ b/jni/pjproject-android/pjsip/src/test/dlg_core_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: dlg_core_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/dns_test.c b/jni/pjproject-android/pjsip/src/test/dns_test.c
index 986b312..7f6f3b0 100644
--- a/jni/pjproject-android/pjsip/src/test/dns_test.c
+++ b/jni/pjproject-android/pjsip/src/test/dns_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: dns_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/inv_offer_answer_test.c b/jni/pjproject-android/pjsip/src/test/inv_offer_answer_test.c
index 2131ae6..7fdb11e 100644
--- a/jni/pjproject-android/pjsip/src/test/inv_offer_answer_test.c
+++ b/jni/pjproject-android/pjsip/src/test/inv_offer_answer_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: inv_offer_answer_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/main.c b/jni/pjproject-android/pjsip/src/test/main.c
index 9904bf8..423e8cb 100644
--- a/jni/pjproject-android/pjsip/src/test/main.c
+++ b/jni/pjproject-android/pjsip/src/test/main.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: main.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/msg_err_test.c b/jni/pjproject-android/pjsip/src/test/msg_err_test.c
index 3150c90..d3c5636 100644
--- a/jni/pjproject-android/pjsip/src/test/msg_err_test.c
+++ b/jni/pjproject-android/pjsip/src/test/msg_err_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: msg_err_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/msg_logger.c b/jni/pjproject-android/pjsip/src/test/msg_logger.c
index ac058de..aaeda7d 100644
--- a/jni/pjproject-android/pjsip/src/test/msg_logger.c
+++ b/jni/pjproject-android/pjsip/src/test/msg_logger.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: msg_logger.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/msg_test.c b/jni/pjproject-android/pjsip/src/test/msg_test.c
index bdc2046..1b2c231 100644
--- a/jni/pjproject-android/pjsip/src/test/msg_test.c
+++ b/jni/pjproject-android/pjsip/src/test/msg_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: msg_test.c 4587 2013-09-05 02:14:05Z ming $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/multipart_test.c b/jni/pjproject-android/pjsip/src/test/multipart_test.c
index 4f16e68..30d6126 100644
--- a/jni/pjproject-android/pjsip/src/test/multipart_test.c
+++ b/jni/pjproject-android/pjsip/src/test/multipart_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: multipart_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  *
diff --git a/jni/pjproject-android/pjsip/src/test/regc_test.c b/jni/pjproject-android/pjsip/src/test/regc_test.c
index 17cb399..152caad 100644
--- a/jni/pjproject-android/pjsip/src/test/regc_test.c
+++ b/jni/pjproject-android/pjsip/src/test/regc_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: regc_test.c 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/test.c b/jni/pjproject-android/pjsip/src/test/test.c
index 0361e61..d10d345 100644
--- a/jni/pjproject-android/pjsip/src/test/test.c
+++ b/jni/pjproject-android/pjsip/src/test/test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: test.c 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/test.h b/jni/pjproject-android/pjsip/src/test/test.h
index 690598b..9b70435 100644
--- a/jni/pjproject-android/pjsip/src/test/test.h
+++ b/jni/pjproject-android/pjsip/src/test/test.h
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: test.h 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/transport_loop_test.c b/jni/pjproject-android/pjsip/src/test/transport_loop_test.c
index efa2ea1..6c60036 100644
--- a/jni/pjproject-android/pjsip/src/test/transport_loop_test.c
+++ b/jni/pjproject-android/pjsip/src/test/transport_loop_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: transport_loop_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/transport_tcp_test.c b/jni/pjproject-android/pjsip/src/test/transport_tcp_test.c
index 9024ef9..4bc8c1c 100644
--- a/jni/pjproject-android/pjsip/src/test/transport_tcp_test.c
+++ b/jni/pjproject-android/pjsip/src/test/transport_tcp_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: transport_tcp_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/transport_test.c b/jni/pjproject-android/pjsip/src/test/transport_test.c
index ab22c5e..851d5dd 100644
--- a/jni/pjproject-android/pjsip/src/test/transport_test.c
+++ b/jni/pjproject-android/pjsip/src/test/transport_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: transport_test.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/transport_udp_test.c b/jni/pjproject-android/pjsip/src/test/transport_udp_test.c
index bc0831a..3c92632 100644
--- a/jni/pjproject-android/pjsip/src/test/transport_udp_test.c
+++ b/jni/pjproject-android/pjsip/src/test/transport_udp_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: transport_udp_test.c 3553 2011-05-05 06:14:19Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/tsx_basic_test.c b/jni/pjproject-android/pjsip/src/test/tsx_basic_test.c
index baae9fd..aaeabce 100644
--- a/jni/pjproject-android/pjsip/src/test/tsx_basic_test.c
+++ b/jni/pjproject-android/pjsip/src/test/tsx_basic_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: tsx_basic_test.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/tsx_bench.c b/jni/pjproject-android/pjsip/src/test/tsx_bench.c
index 2282b6a..81d543e 100644
--- a/jni/pjproject-android/pjsip/src/test/tsx_bench.c
+++ b/jni/pjproject-android/pjsip/src/test/tsx_bench.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: tsx_bench.c 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/tsx_uac_test.c b/jni/pjproject-android/pjsip/src/test/tsx_uac_test.c
index d978df8..6b67d81 100644
--- a/jni/pjproject-android/pjsip/src/test/tsx_uac_test.c
+++ b/jni/pjproject-android/pjsip/src/test/tsx_uac_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: tsx_uac_test.c 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/tsx_uas_test.c b/jni/pjproject-android/pjsip/src/test/tsx_uas_test.c
index 3c43f53..5d796f4 100644
--- a/jni/pjproject-android/pjsip/src/test/tsx_uas_test.c
+++ b/jni/pjproject-android/pjsip/src/test/tsx_uas_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: tsx_uas_test.c 4420 2013-03-05 11:59:54Z bennylp $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/txdata_test.c b/jni/pjproject-android/pjsip/src/test/txdata_test.c
index f7f7365..330e49b 100644
--- a/jni/pjproject-android/pjsip/src/test/txdata_test.c
+++ b/jni/pjproject-android/pjsip/src/test/txdata_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: txdata_test.c 4537 2013-06-19 06:47:43Z riza $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
diff --git a/jni/pjproject-android/pjsip/src/test/uri_test.c b/jni/pjproject-android/pjsip/src/test/uri_test.c
index c647764..5649a03 100644
--- a/jni/pjproject-android/pjsip/src/test/uri_test.c
+++ b/jni/pjproject-android/pjsip/src/test/uri_test.c
@@ -1,4 +1,4 @@
-/* $Id$ */
+/* $Id: uri_test.c 4641 2013-11-04 09:05:43Z nanang $ */
 /* 
  * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
  * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -83,6 +83,7 @@
 static pjsip_uri *create_uri37( pj_pool_t *pool );
 static pjsip_uri *create_uri38( pj_pool_t *pool );
 static pjsip_uri *create_uri39( pj_pool_t *pool );
+static pjsip_uri *create_uri40( pj_pool_t *pool );
 static pjsip_uri *create_dummy( pj_pool_t *pool );
 
 #define ERR_NOT_EQUAL	-1001
@@ -357,6 +358,12 @@
 	PJ_SUCCESS,
 	"\"User\\\\\" <sip:localhost>",
 	&create_uri39,
+    },
+    {
+	/* Quoted display name. */
+	PJ_SUCCESS,
+	"\"\\\"User\\\"\" <sip:localhost>",
+	&create_uri40,
     }
 
 };
@@ -781,6 +788,20 @@
     return (pjsip_uri*)name_addr;
 }
 
+/* "\"\\\"User\\\"\" <sip:localhost>" */
+static pjsip_uri *create_uri40(pj_pool_t *pool)
+{
+    pjsip_name_addr *name_addr = pjsip_name_addr_create(pool);
+    pjsip_sip_uri *url;
+
+    url = pjsip_sip_uri_create(pool, 0);
+    name_addr->uri = (pjsip_uri*) url;
+
+    pj_strdup2(pool, &name_addr->display, "\\\"User\\\"");
+    pj_strdup2(pool, &url->host, "localhost");
+    return (pjsip_uri*)name_addr;
+}
+
 static pjsip_uri *create_dummy(pj_pool_t *pool)
 {
     PJ_UNUSED_ARG(pool);
