updated pjsip stack
There is still a bug on incoming calls when buiding for android
diff --git a/jni/pjproject-android/pjsip/include/pjsip-simple/errno.h b/jni/pjproject-android/pjsip/include/pjsip-simple/errno.h
index 72450aa..62927ca 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: errno.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 5184a79..b0159bf 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: evsub.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 64035e2..b5016e4 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: evsub_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 61d5c72..9cd5e97 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: iscomposing.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 4f59d40..9887cfe 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: mwi.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 6e26264..98828da 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: pidf.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 d266baa..f29489f 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: presence.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 5940ab7..59a5870 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: publish.h 4173 2012-06-20 10:39:05Z ming $ */
+/* $Id$ */
/*
* 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 1ee8982..6caf05a 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: rpid.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 74eee03..f8c7f77 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: types.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 911a429..bf6fbf2 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: xpidf.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 1b01d24..d44b0f6 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: sip_100rel.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 1bb0360..5782cf9 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: sip_inv.h 4562 2013-07-15 04:23:31Z ming $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -172,6 +172,10 @@
* #pjsip_inv_set_sdp_answer() and the re-INVITE will be answered
* automatically.
*
+ * Remarks: Application may need to monitor on_tsx_state_changed()
+ * callback to check whether the re-INVITE is already answered
+ * automatically with 487 due to being cancelled.
+ *
* @param inv The invite session.
* @param offer Remote offer.
* @param rdata The received re-INVITE request.
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 826d45e..80c7a33 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: sip_regc.h 4173 2012-06-20 10:39:05Z ming $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -84,6 +84,22 @@
typedef void pjsip_regc_cb(struct pjsip_regc_cbparam *param);
/**
+ * Structure to hold parameters when calling application's callback
+ * specified in #pjsip_regc_set_reg_tsx_cb().
+ * To update contact address, application can set the field contact_cnt
+ * and contact inside the callback.
+ */
+struct pjsip_regc_tsx_cb_param
+{
+ struct pjsip_regc_cbparam cbparam;
+ int contact_cnt;
+ pj_str_t contact[PJSIP_REGC_MAX_CONTACT];
+};
+
+/** Type declaration for callback set in #pjsip_regc_set_reg_tsx_cb(). */
+typedef void pjsip_regc_tsx_cb(struct pjsip_regc_tsx_cb_param *param);
+
+/**
* Client registration information.
*/
struct pjsip_regc_info
@@ -191,6 +207,21 @@
pj_uint32_t expires);
/**
+ * Set callback to be called when the registration received a final response.
+ * This callback is different with the one specified during creation via
+ * #pjsip_regc_create(). This callback will be called for any final response
+ * (including 401/407/423) and before any subsequent requests are sent.
+ * In case of unregistration, this callback will not be called.
+ *
+ * @param regc The client registration structure.
+ * @param tsx_cb Pointer to callback function to receive registration status.
+ *
+ * @return PJ_SUCCESS on success.
+ */
+PJ_DECL(pj_status_t) pjsip_regc_set_reg_tsx_cb(pjsip_regc *regc,
+ pjsip_regc_tsx_cb *tsx_cb);
+
+/**
* Set the "sent-by" field of the Via header for outgoing requests.
*
* @param regc The client registration structure.
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 6293b0f..aff4449 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: sip_replaces.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 6ef7931..aac4e68 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: sip_timer.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 b7b68d9..b8d8126 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: sip_xfer.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 a2021cd..25f6bd0 100644
--- a/jni/pjproject-android/pjsip/include/pjsip.h
+++ b/jni/pjproject-android/pjsip/include/pjsip.h
@@ -1,4 +1,4 @@
-/* $Id: pjsip.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 e616fa3..6d82aad 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: print_util.h 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 cd59372..ce262ef 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: sip_auth.h 4214 2012-07-25 14:29:28Z nanang $ */
+/* $Id$ */
/*
* 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 0665bf2..291e2b0 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: sip_auth_aka.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 ee6da24..56dec78 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: sip_auth_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 703c52f..9685fcd 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: sip_auth_parser.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 6cae772..38eda08 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: sip_autoconf.h.in 3295 2010-08-25 12:51:29Z bennylp $ */
+/* $Id$ */
/*
* 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 11b82cb..ed93e92 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: sip_config.h 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 63e12ac..9f37c32 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: sip_dialog.h 4173 2012-06-20 10:39:05Z ming $ */
+/* $Id$ */
/*
* 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 63c65d7..265b7f2 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: sip_endpoint.h 4275 2012-10-04 06:11:58Z bennylp $ */
+/* $Id$ */
/*
* 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 26e326e..afcecc4 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: sip_errno.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 d6c90af..4e002bc 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: sip_event.h 4154 2012-06-05 10:41:17Z bennylp $ */
+/* $Id$ */
/*
* 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 45884cc..cc44fef 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: sip_module.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 9031fa2..40fae8b 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: sip_msg.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 be8ae26..d04a1c7 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: sip_multipart.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 1f6f656..0d767f0 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: sip_parser.h 4445 2013-03-20 11:29:08Z nanang $ */
+/* $Id$ */
/*
* 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 e139fa6..621ca8f 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: sip_private.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 6f578a1..5a12cf7 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: sip_resolve.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 f85ec74..15766e8 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: sip_tel_uri.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 575298a..e60f214 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: sip_transaction.h 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 21b2238..4ff3597 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: sip_transport.h 4275 2012-10-04 06:11:58Z bennylp $ */
+/* $Id$ */
/*
* 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 1883a02..9bb760b 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: sip_transport_loop.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 e35e814..7e7bc13 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: sip_transport_tcp.h 4506 2013-04-26 06:01:43Z bennylp $ */
+/* $Id$ */
/*
* 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 6ed1ce7..00d8fe7 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: sip_transport_tls.h 4506 2013-04-26 06:01:43Z bennylp $ */
+/* $Id$ */
/*
* 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 f58d1e6..27c643a 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: sip_transport_udp.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 9809983..d212dd2 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: sip_types.h 4262 2012-09-20 06:00:23Z bennylp $ */
+/* $Id$ */
/*
* 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 4c69e45..d1df5b2 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: sip_ua_layer.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 398085b..a6925d9 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: sip_uri.h 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 018ad87..226dccd 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: sip_util.h 4347 2013-02-13 10:19:25Z nanang $ */
+/* $Id$ */
/*
* 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 3ab2c5e..7adf26b 100644
--- a/jni/pjproject-android/pjsip/include/pjsip_auth.h
+++ b/jni/pjproject-android/pjsip/include/pjsip_auth.h
@@ -1,4 +1,4 @@
-/* $Id: pjsip_auth.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 af5acda..b60ce4c 100644
--- a/jni/pjproject-android/pjsip/include/pjsip_simple.h
+++ b/jni/pjproject-android/pjsip/include/pjsip_simple.h
@@ -1,4 +1,4 @@
-/* $Id: pjsip_simple.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 59d5358..2f5da2e 100644
--- a/jni/pjproject-android/pjsip/include/pjsip_ua.h
+++ b/jni/pjproject-android/pjsip/include/pjsip_ua.h
@@ -1,4 +1,4 @@
-/* $Id: pjsip_ua.h 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 0707493..be5b08e 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: pjsua.h 4555 2013-07-10 04:27:05Z ming $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -569,6 +569,39 @@
/**
+ * This enumeration specifies the contact rewrite method.
+ */
+typedef enum pjsua_contact_rewrite_method
+{
+ /**
+ * The Contact update will be done by sending unregistration
+ * to the currently registered Contact, while simultaneously sending new
+ * registration (with different Call-ID) for the updated Contact.
+ */
+ PJSUA_CONTACT_REWRITE_UNREGISTER = 1,
+
+ /**
+ * The Contact update will be done in a single, current
+ * registration session, by removing the current binding (by setting its
+ * Contact's expires parameter to zero) and adding a new Contact binding,
+ * all done in a single request.
+ */
+ PJSUA_CONTACT_REWRITE_NO_UNREG = 2,
+
+ /**
+ * The Contact update will be done when receiving any registration final
+ * response. If this flag is not specified, contact update will only be
+ * done upon receiving 2xx response. This flag MUST be used with
+ * PJSUA_CONTACT_REWRITE_UNREGISTER or PJSUA_CONTACT_REWRITE_NO_UNREG
+ * above to specify how the Contact update should be performed when
+ * receiving 2xx response.
+ */
+ PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE = 4
+
+} pjsua_contact_rewrite_method;
+
+
+/**
* Call settings.
*/
typedef struct pjsua_call_setting
@@ -2501,16 +2534,6 @@
/**
- * This macro specifies the URI scheme to use in Contact header
- * when secure transport such as TLS is used. Application can specify
- * either "sip" or "sips".
- */
-#ifndef PJSUA_SECURE_SCHEME
-# define PJSUA_SECURE_SCHEME "sip"
-#endif
-
-
-/**
* Maximum time to wait for unpublication transaction(s) to complete
* during shutdown process, before sending unregistration. The library
* tries to wait for the unpublication (un-PUBLISH) to complete before
@@ -2540,25 +2563,18 @@
/**
* This macro specifies the default value for \a contact_rewrite_method
- * field in pjsua_acc_config. I specifies how Contact update will be
+ * field in pjsua_acc_config. It specifies how Contact update will be
* done with the registration, if \a allow_contact_rewrite is enabled in
- * the account config.
+ * the account config. See \a pjsua_contact_rewrite_method for the options.
*
- * If set to 1, the Contact update will be done by sending unregistration
- * to the currently registered Contact, while simultaneously sending new
- * registration (with different Call-ID) for the updated Contact.
+ * Value PJSUA_CONTACT_REWRITE_UNREGISTER(1) is the legacy behavior.
*
- * If set to 2, the Contact update will be done in a single, current
- * registration session, by removing the current binding (by setting its
- * Contact's expires parameter to zero) and adding a new Contact binding,
- * all done in a single request.
- *
- * Value 1 is the legacy behavior.
- *
- * Default value: 2
+ * Default value: PJSUA_CONTACT_REWRITE_NO_UNREG(2) |
+ * PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE(4)
*/
#ifndef PJSUA_CONTACT_REWRITE_METHOD
-# define PJSUA_CONTACT_REWRITE_METHOD 2
+# define PJSUA_CONTACT_REWRITE_METHOD (PJSUA_CONTACT_REWRITE_NO_UNREG | \
+ PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE)
#endif
@@ -3010,20 +3026,13 @@
/**
* Specify how Contact update will be done with the registration, if
- * \a allow_contact_rewrite is enabled.
+ * \a allow_contact_rewrite is enabled. The value is bitmask combination of
+ * \a pjsua_contact_rewrite_method. See also pjsua_contact_rewrite_method.
*
- * If set to 1, the Contact update will be done by sending unregistration
- * to the currently registered Contact, while simultaneously sending new
- * registration (with different Call-ID) for the updated Contact.
+ * Value PJSUA_CONTACT_REWRITE_UNREGISTER(1) is the legacy behavior.
*
- * If set to 2, the Contact update will be done in a single, current
- * registration session, by removing the current binding (by setting its
- * Contact's expires parameter to zero) and adding a new Contact binding,
- * all done in a single request.
- *
- * Value 1 is the legacy behavior.
- *
- * Default value: PJSUA_CONTACT_REWRITE_METHOD (2)
+ * Default value: PJSUA_CONTACT_REWRITE_METHOD
+ * (PJSUA_CONTACT_REWRITE_NO_UNREG | PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE)
*/
int contact_rewrite_method;
@@ -3589,11 +3598,13 @@
* data is only valid until the account is destroyed.
*
* @param acc_id The account ID.
+ * @param pool Pool to duplicate the config.
* @param acc_cfg Structure to receive the settings.
*
* @return PJ_SUCCESS on success, or the appropriate error code.
*/
PJ_DECL(pj_status_t) pjsua_acc_get_config(pjsua_acc_id acc_id,
+ pj_pool_t *pool,
pjsua_acc_config *acc_cfg);
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 444f559..dcf5020 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: pjsua_internal.h 4543 2013-06-24 09:53:16Z bennylp $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -214,6 +214,7 @@
int index; /**< Index in accounts array. */
pj_str_t display; /**< Display name, if any. */
pj_str_t user_part; /**< User part of local URI. */
+ pj_bool_t is_sips; /**< Local URI uses "sips"? */
pj_str_t contact; /**< Our Contact header. */
pj_str_t reg_contact; /**< Contact header for REGISTER.
It may be different than acc
diff --git a/jni/pjproject-android/pjsip/src/pjsip-simple/errno.c b/jni/pjproject-android/pjsip/src/pjsip-simple/errno.c
index e1bdb95..91a066d 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: errno.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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.c b/jni/pjproject-android/pjsip/src/pjsip-simple/evsub.c
index 94d12be..aa2498c 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: evsub.c 4447 2013-03-21 08:28:21Z nanang $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -32,6 +32,7 @@
#include <pj/log.h>
#include <pj/os.h>
#include <pj/pool.h>
+#include <pj/rand.h>
#include <pj/string.h>
@@ -1749,6 +1750,10 @@
unsigned timeout = (sub->expires->ivalue > TIME_UAC_REFRESH) ?
sub->expires->ivalue - TIME_UAC_REFRESH : sub->expires->ivalue;
+ /* Reduce timeout by about 1 - 10 secs (randomized) */
+ if (timeout > 10)
+ timeout += -10 + (pj_rand() % 10);
+
PJ_LOG(5,(sub->obj_name, "Will refresh in %d seconds",
timeout));
set_timer(sub, TIMER_TYPE_UAC_REFRESH, timeout);
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 fc9f093..b44a715 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: evsub_msg.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 7053539..18fd1f5 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: iscomposing.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 da86131..537ca9e 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: mwi.c 4172 2012-06-19 14:35:18Z nanang $ */
+/* $Id$ */
/*
* 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 0b68d1a..b90725d 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: pidf.c 3841 2011-10-24 09:28:13Z ming $ */
+/* $Id$ */
/*
* 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 5b96ec7..2e94e93 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: presence.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 e692f47..221228e 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: presence_body.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 0048bc6..fcb412d 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: publishc.c 4530 2013-05-30 09:27:49Z nanang $ */
+/* $Id$ */
/*
* 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 8e63205..f02b137 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: rpid.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 22801d7..4ca4b29 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: xpidf.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 f64ef19..60b989b 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: sip_100rel.c 4208 2012-07-18 07:52:33Z ming $ */
+/* $Id$ */
/*
* 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_inv.c b/jni/pjproject-android/pjsip/src/pjsip-ua/sip_inv.c
index 270032b..e73049b 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: sip_inv.c 4565 2013-07-17 14:00:26Z bennylp $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -4271,18 +4271,9 @@
{
/*
- * Handle strandled incoming CANCEL.
+ * Handle strandled incoming CANCEL or CANCEL for re-INVITE
*/
- pjsip_rx_data *rdata = e->body.tsx_state.src.rdata;
- pjsip_tx_data *tdata;
- pj_status_t status;
-
- status = pjsip_dlg_create_response(dlg, rdata, 200, NULL, &tdata);
- if (status != PJ_SUCCESS) return;
-
- status = pjsip_dlg_send_response(dlg, tsx, tdata);
- if (status != PJ_SUCCESS) return;
-
+ inv_respond_incoming_cancel(inv, tsx, e);
}
else if (tsx->method.id == PJSIP_INVITE_METHOD &&
tsx->role == PJSIP_ROLE_UAS)
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 02d7e23..ca907ba 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: sip_reg.c 4548 2013-06-28 09:25:17Z bennylp $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -75,6 +75,7 @@
void *token;
pjsip_regc_cb *cb;
+ pjsip_regc_tsx_cb *tsx_cb;
pj_str_t str_srv_url;
pjsip_uri *srv_url;
@@ -727,6 +728,26 @@
return PJ_SUCCESS;
}
+static void cbparam_init( struct pjsip_regc_cbparam *cbparam,
+ pjsip_regc *regc,
+ pj_status_t status, int st_code,
+ const pj_str_t *reason,
+ pjsip_rx_data *rdata, pj_int32_t expiration,
+ int contact_cnt, pjsip_contact_hdr *contact[])
+{
+ cbparam->regc = regc;
+ cbparam->token = regc->token;
+ cbparam->status = status;
+ cbparam->code = st_code;
+ cbparam->reason = *reason;
+ cbparam->rdata = rdata;
+ cbparam->contact_cnt = contact_cnt;
+ cbparam->expiration = expiration;
+ if (contact_cnt) {
+ pj_memcpy( cbparam->contact, contact,
+ contact_cnt*sizeof(pjsip_contact_hdr*));
+ }
+}
static void call_callback(pjsip_regc *regc, pj_status_t status, int st_code,
const pj_str_t *reason,
@@ -735,23 +756,11 @@
{
struct pjsip_regc_cbparam cbparam;
-
if (!regc->cb)
return;
- cbparam.regc = regc;
- cbparam.token = regc->token;
- cbparam.status = status;
- cbparam.code = st_code;
- cbparam.reason = *reason;
- cbparam.rdata = rdata;
- cbparam.contact_cnt = contact_cnt;
- cbparam.expiration = expiration;
- if (contact_cnt) {
- pj_memcpy( cbparam.contact, contact,
- contact_cnt*sizeof(pjsip_contact_hdr*));
- }
-
+ cbparam_init(&cbparam, regc, status, st_code, reason, rdata, expiration,
+ contact_cnt, contact);
(*regc->cb)(&cbparam);
}
@@ -813,6 +822,15 @@
}
}
+PJ_DEF(pj_status_t) pjsip_regc_set_reg_tsx_cb( pjsip_regc *regc,
+ pjsip_regc_tsx_cb *tsx_cb)
+{
+ PJ_ASSERT_RETURN(regc, PJ_EINVAL);
+ regc->tsx_cb = tsx_cb;
+ return PJ_SUCCESS;
+}
+
+
PJ_DEF(pj_status_t) pjsip_regc_set_via_sent_by( pjsip_regc *regc,
pjsip_host_port *via_addr,
pjsip_transport *via_tp)
@@ -1035,6 +1053,7 @@
pjsip_regc *regc = (pjsip_regc*) token;
pjsip_transaction *tsx = event->body.tsx_state.tsx;
pj_bool_t handled = PJ_TRUE;
+ pj_bool_t update_contact = PJ_FALSE;
pj_atomic_inc(regc->busy_ctr);
pj_lock_acquire(regc->lock);
@@ -1056,6 +1075,49 @@
}
}
+ if (regc->_delete_flag == 0 && regc->tsx_cb &&
+ regc->current_op == REGC_REGISTERING)
+ {
+ struct pjsip_regc_tsx_cb_param param;
+
+ param.contact_cnt = -1;
+ cbparam_init(¶m.cbparam, regc, PJ_SUCCESS, tsx->status_code,
+ &tsx->status_text,
+ (event->body.tsx_state.type==PJSIP_EVENT_RX_MSG) ?
+ event->body.tsx_state.src.rdata : NULL,
+ -1, 0, NULL);
+
+ /* Call regc tsx callback before handling any response */
+ pj_lock_release(regc->lock);
+ (*regc->tsx_cb)(¶m);
+ pj_lock_acquire(regc->lock);
+
+ if (param.contact_cnt >= 0) {
+ /* Since we receive non-2xx response, it means that (some) contact
+ * bindings haven't been established so we can safely remove these
+ * contact headers. This is to avoid removing non-existent contact
+ * bindings later.
+ */
+ if (tsx->status_code/100 != 2) {
+ pjsip_contact_hdr *h;
+
+ h = regc->contact_hdr_list.next;
+ while (h != ®c->contact_hdr_list) {
+ pjsip_contact_hdr *next = h->next;
+
+ if (h->expires == -1) {
+ pj_list_erase(h);
+ }
+ h = next;
+ }
+ }
+
+ /* Update contact address */
+ pjsip_regc_update_contact(regc, param.contact_cnt, param.contact);
+ update_contact = PJ_TRUE;
+ }
+ }
+
/* Handle 401/407 challenge (even when _delete_flag is set) */
if (tsx->status_code == PJSIP_SC_PROXY_AUTHENTICATION_REQUIRED ||
tsx->status_code == PJSIP_SC_UNAUTHORIZED)
@@ -1066,7 +1128,49 @@
/* reset current op */
regc->current_op = REGC_IDLE;
- status = pjsip_auth_clt_reinit_req( ®c->auth_sess,
+ if (update_contact) {
+ pjsip_msg *msg;
+ pjsip_hdr *hdr, *ins_hdr;
+ pjsip_contact_hdr *chdr;
+
+ /* Delete Contact headers, but we shouldn't delete headers
+ * which are supposed to remove contact bindings since
+ * we cannot reconstruct those headers.
+ */
+ msg = tsx->last_tx->msg;
+ hdr = msg->hdr.next;
+ ins_hdr = &msg->hdr;
+ while (hdr != &msg->hdr) {
+ pjsip_hdr *next = hdr->next;
+
+ if (hdr->type == PJSIP_H_CONTACT) {
+ chdr = (pjsip_contact_hdr *)hdr;
+ if (chdr->expires != 0) {
+ pj_list_erase(hdr);
+ ins_hdr = next;
+ }
+ }
+ hdr = next;
+ }
+
+ /* Add Contact headers. */
+ chdr = regc->contact_hdr_list.next;
+ while (chdr != ®c->contact_hdr_list) {
+ pj_list_insert_before(ins_hdr, (pjsip_hdr*)
+ pjsip_hdr_shallow_clone(tsx->last_tx->pool, chdr));
+ chdr = chdr->next;
+ }
+
+ /* Also add bindings which are to be removed */
+ while (!pj_list_empty(®c->removed_contact_hdr_list)) {
+ chdr = regc->removed_contact_hdr_list.next;
+ pj_list_insert_before(ins_hdr, (pjsip_hdr*)
+ pjsip_hdr_clone(tsx->last_tx->pool, chdr));
+ pj_list_erase(chdr);
+ }
+ }
+
+ status = pjsip_auth_clt_reinit_req( ®c->auth_sess,
rdata,
tsx->last_tx,
&tdata);
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 121b2bd..b117dd3 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: sip_replaces.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 5381dbc..06bfaf0 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: sip_timer.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 cfa3e10..571b807 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: sip_xfer.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 b3c2dde..82efbaf 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: sip_auth_aka.c 3999 2012-03-30 07:10:13Z bennylp $ */
+/* $Id$ */
/*
* 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 0c723a5..b337e1e 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: sip_auth_client.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 b13318d..0f37fae 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: sip_auth_msg.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 823372c..4708dc6 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: sip_auth_parser.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 8d4f8a3..a0c083f 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: sip_auth_parser_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 c38b40c..514d9d5 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: sip_auth_server.c 4214 2012-07-25 14:29:28Z nanang $ */
+/* $Id$ */
/*
* 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 d64e7cb..dacc2f8 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: sip_config.c 4442 2013-03-19 07:39:25Z nanang $ */
+/* $Id$ */
/*
* 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 0e70d33..9ddadb0 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: sip_dialog.c 4208 2012-07-18 07:52:33Z ming $ */
+/* $Id$ */
/*
* 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 5bf3935..8c76562 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: sip_dialog_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 71a681a..7a3a3a3 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: sip_endpoint.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 1386023..0170f6f 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: sip_endpoint_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 211db39..806733f 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: sip_errno.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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_msg.c b/jni/pjproject-android/pjsip/src/pjsip/sip_msg.c
index 52c9010..0ec56ad 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: sip_msg.c 4550 2013-07-02 11:45:57Z riza $ */
+/* $Id$ */
/*
* 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 8eb058e..5d0e566 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: sip_multipart.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 2709a80..33db355 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: sip_parser.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 21f9718..e74d27c 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: sip_parser_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 f5efc1e..fb23b53 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: sip_resolve.c 4108 2012-04-27 01:32:12Z bennylp $ */
+/* $Id$ */
/*
* 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 57c8e3b..466a699 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: sip_tel_uri.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 d13fb52..fc00ccf 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: sip_tel_uri_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 9d62006..446617e 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: sip_transaction.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -2224,6 +2224,18 @@
{
pj_status_t status;
+ if (resched && pj_timer_entry_running(&tsx->retransmit_timer)) {
+ /* We've been asked to reschedule but the timer is already rerunning.
+ * This can only happen in a race condition where, between removing
+ * this retransmit timer from the heap and actually scheduling it,
+ * another thread has got in and rescheduled the timer itself. In
+ * this scenario, the transmission has already happened and so we
+ * should just quit out immediately, without either resending the
+ * message or restarting the timer.
+ */
+ return PJ_SUCCESS;
+ }
+
PJ_ASSERT_RETURN(tsx->last_tx!=NULL, PJ_EBUG);
PJ_LOG(5,(tsx->obj_name, "Retransmiting %s, count=%d, restart?=%d",
@@ -2332,6 +2344,7 @@
* timeout.
*/
lock_timer(tsx);
+ tsx_cancel_timer( tsx, &tsx->timeout_timer );
tsx_schedule_timer( tsx, &tsx->timeout_timer, &timeout_timer_val,
TIMEOUT_TIMER);
unlock_timer(tsx);
@@ -2677,6 +2690,7 @@
}
lock_timer(tsx);
+ tsx_cancel_timer(tsx, &tsx->timeout_timer);
tsx_schedule_timer( tsx, &tsx->timeout_timer,
&timeout, TIMEOUT_TIMER);
unlock_timer(tsx);
@@ -2705,6 +2719,7 @@
* non-reliable transports, and zero for reliable transports.
*/
lock_timer(tsx);
+ tsx_cancel_timer(tsx, &tsx->timeout_timer);
if (tsx->method.id == PJSIP_INVITE_METHOD) {
/* Start timer H for INVITE */
tsx_schedule_timer(tsx, &tsx->timeout_timer,
diff --git a/jni/pjproject-android/pjsip/src/pjsip/sip_transport.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport.c
index e47fe21..7caa2e9 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: sip_transport.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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_loop.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_loop.c
index 498b529..a3347d6 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: sip_transport_loop.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 3f490a6..2235985 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: sip_transport_tcp.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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_tls.c b/jni/pjproject-android/pjsip/src/pjsip/sip_transport_tls.c
index 2aa9271..dc83ab8 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: sip_transport_tls.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2009-2011 Teluu Inc. (http://www.teluu.com)
*
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 369c0b9..bdd0416 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: sip_transport_udp.c 4559 2013-07-12 05:01:38Z ming $ */
+/* $Id$ */
/*
* 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 80d1e88..3faad08 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: sip_transport_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 a2ad986..021005a 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: sip_ua_layer.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 7441443..0870186 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: sip_uri.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 5c32ef0..520d873 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: sip_util.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 ea5a060..2264acc 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: sip_util_proxy.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 e77786f..3cbd3bd 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: sip_util_proxy_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 3212cab..9036a02 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: sip_util_statefull.c 4169 2012-06-18 09:19:58Z nanang $ */
+/* $Id$ */
/*
* 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 140e907..a6878a0 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: sip_util_wrap.cpp 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 4fb3f8a..77d9a12 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: pjsua_acc.c 4546 2013-06-27 10:07:14Z bennylp $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -201,6 +201,7 @@
acc->srv_domain = sip_uri->host;
acc->srv_port = 0;
}
+ acc->is_sips = PJSIP_URI_SCHEME_IS_SIPS(name_addr);
/* Parse registrar URI, if any */
@@ -685,14 +686,80 @@
/* Get config */
PJ_DEF(pj_status_t) pjsua_acc_get_config(pjsua_acc_id acc_id,
+ pj_pool_t *pool,
pjsua_acc_config *acc_cfg)
{
PJ_ASSERT_RETURN(acc_id>=0 && acc_id<(int)PJ_ARRAY_SIZE(pjsua_var.acc)
&& pjsua_var.acc[acc_id].valid, PJ_EINVAL);
- pj_memcpy(acc_cfg, &pjsua_var.acc[acc_id].cfg, sizeof(*acc_cfg));
+ //this now would not work due to corrupt header list
+ //pj_memcpy(acc_cfg, &pjsua_var.acc[acc_id].cfg, sizeof(*acc_cfg));
+ pjsua_acc_config_dup(pool, acc_cfg, &pjsua_var.acc[acc_id].cfg);
return PJ_SUCCESS;
}
+/* Compare two SIP headers. Return zero if equal */
+static int pjsip_hdr_cmp(const pjsip_hdr *h1, const pjsip_hdr *h2)
+{
+ char buf1[PJSIP_MAX_URL_SIZE];
+ char buf2[PJSIP_MAX_URL_SIZE];
+ pj_str_t p1, p2;
+
+ p1.ptr = buf1;
+ p1.slen = 0;
+ p2.ptr = buf2;
+ p2.slen = 0;
+
+ p1.slen = pjsip_hdr_print_on((void*)h1, buf1, sizeof(buf1));
+ if (p1.slen < 0)
+ p1.slen = 0;
+ p2.slen = pjsip_hdr_print_on((void*)h2, buf2, sizeof(buf2));
+ if (p2.slen < 0)
+ p2.slen = 0;
+
+ return pj_strcmp(&p1, &p2);
+}
+
+/* Update SIP header list from another list. Return PJ_TRUE if
+ * the list has been updated */
+static pj_bool_t update_hdr_list(pj_pool_t *pool, pjsip_hdr *dst,
+ const pjsip_hdr *src)
+{
+ pjsip_hdr *dst_i;
+ const pjsip_hdr *src_i;
+ pj_bool_t changed = PJ_FALSE;
+
+ /* Remove header that's no longer needed */
+ for (dst_i = dst->next; dst_i != dst; ) {
+ for (src_i = src->next; src_i != src; src_i = src_i->next) {
+ if (pjsip_hdr_cmp(dst_i, src_i) == 0)
+ break;
+ }
+ if (src_i == src) {
+ pjsip_hdr *next = dst_i->next;
+ pj_list_erase(dst_i);
+ changed = PJ_TRUE;
+ dst_i = next;
+ } else {
+ dst_i = dst_i->next;
+ }
+ }
+
+ /* Add new header */
+ for (src_i = src->next; src_i != src; src_i = src_i->next) {
+ for (dst_i = dst->next; dst_i != dst; dst_i = dst_i->next) {
+ if (pjsip_hdr_cmp(dst_i, src_i) == 0)
+ break;
+ }
+ if (dst_i == dst) {
+ dst_i = pjsip_hdr_clone(pool, src_i);
+ pj_list_push_back(dst, dst_i);
+ changed = PJ_TRUE;
+ }
+ }
+
+ return changed;
+}
+
/*
* Modify account information.
*/
@@ -778,6 +845,15 @@
reg_sip_uri = (pjsip_sip_uri*) pjsip_uri_get_uri(reg_uri);
}
+ /* REGISTER header list */
+ if (update_hdr_list(acc->pool, &acc->cfg.reg_hdr_list, &cfg->reg_hdr_list)) {
+ update_reg = PJ_TRUE;
+ unreg_first = PJ_TRUE;
+ }
+
+ /* SUBSCRIBE header list */
+ update_hdr_list(acc->pool, &acc->cfg.sub_hdr_list, &cfg->sub_hdr_list);
+
/* Global outbound proxy */
global_route_crc = calc_proxy_crc(pjsua_var.ua_cfg.outbound_proxy,
pjsua_var.ua_cfg.outbound_proxy_cnt);
@@ -836,6 +912,7 @@
pj_strdup_with_null(acc->pool, &acc->user_part, &id_sip_uri->user);
pj_strdup_with_null(acc->pool, &acc->srv_domain, &id_sip_uri->host);
acc->srv_port = 0;
+ acc->is_sips = PJSIP_URI_SCHEME_IS_SIPS(id_name_addr);
update_reg = PJ_TRUE;
unreg_first = PJ_TRUE;
}
@@ -1048,6 +1125,7 @@
/* Credential info */
{
unsigned i;
+ pj_bool_t cred_changed = PJ_FALSE;
/* Selective update credential info. */
for (i = 0; i < cfg->cred_count; ++i) {
@@ -1071,6 +1149,8 @@
/* Not found, insert this */
if (j == acc->cfg.cred_count) {
+ cred_changed = PJ_TRUE;
+
/* If account credential is full, discard the last one. */
if (acc->cfg.cred_count == PJ_ARRAY_SIZE(acc->cfg.cred_info)) {
pj_array_erase(acc->cfg.cred_info, sizeof(pjsip_cred_info),
@@ -1097,8 +1177,10 @@
acc->cred[acc->cred_cnt++] = pjsua_var.ua_cfg.cred_info[i];
}
- update_reg = PJ_TRUE;
- unreg_first = PJ_TRUE;
+ if (cred_changed) {
+ update_reg = PJ_TRUE;
+ unreg_first = PJ_TRUE;
+ }
}
/* Authentication preference */
@@ -1414,6 +1496,7 @@
/* Update NAT address from the REGISTER response */
static pj_bool_t acc_check_nat_addr(pjsua_acc *acc,
+ int contact_rewrite_method,
struct pjsip_regc_cbparam *param)
{
pjsip_transport *tp;
@@ -1598,12 +1681,13 @@
(int)via_addr->slen,
via_addr->ptr,
rport,
- acc->cfg.contact_rewrite_method));
+ contact_rewrite_method));
- pj_assert(acc->cfg.contact_rewrite_method == 1 ||
- acc->cfg.contact_rewrite_method == 2);
+ pj_assert(contact_rewrite_method == PJSUA_CONTACT_REWRITE_UNREGISTER ||
+ contact_rewrite_method == PJSUA_CONTACT_REWRITE_NO_UNREG ||
+ contact_rewrite_method == PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE);
- if (acc->cfg.contact_rewrite_method == 1) {
+ if (contact_rewrite_method == PJSUA_CONTACT_REWRITE_UNREGISTER) {
/* Unregister current contact */
pjsua_acc_set_registration(acc->index, PJ_FALSE);
if (acc->regc != NULL) {
@@ -1622,6 +1706,10 @@
const char *beginquote, *endquote;
char transport_param[32];
int len;
+ pj_bool_t secure;
+
+ secure = pjsip_transport_get_flag_from_type(tp->key.type) &
+ PJSIP_TRANSPORT_SECURE;
/* Enclose IPv6 address in square brackets */
if (tp->key.type & PJSIP_TRANSPORT_IPV6) {
@@ -1645,7 +1733,8 @@
tmp = (char*) pj_pool_alloc(pool, PJSIP_MAX_URL_SIZE);
len = pj_ansi_snprintf(tmp, PJSIP_MAX_URL_SIZE,
- "<sip:%.*s%s%s%.*s%s:%d%s%.*s%s>%.*s",
+ "<%s:%.*s%s%s%.*s%s:%d%s%.*s%s>%.*s",
+ ((secure && acc->is_sips)? "sips" : "sip"),
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen? "@" : ""),
@@ -1681,12 +1770,16 @@
}
- if (acc->cfg.contact_rewrite_method == 2 && acc->regc != NULL) {
+ if (contact_rewrite_method == PJSUA_CONTACT_REWRITE_NO_UNREG &&
+ acc->regc != NULL)
+ {
pjsip_regc_update_contact(acc->regc, 1, &acc->reg_contact);
}
/* Perform new registration */
- pjsua_acc_set_registration(acc->index, PJ_TRUE);
+ if (contact_rewrite_method < PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE) {
+ pjsua_acc_set_registration(acc->index, PJ_TRUE);
+ }
pj_pool_release(pool);
@@ -1978,6 +2071,37 @@
"active": "not active")));
}
+static void regc_tsx_cb(struct pjsip_regc_tsx_cb_param *param)
+{
+ pjsua_acc *acc = (pjsua_acc*) param->cbparam.token;
+
+ PJSUA_LOCK();
+
+ if (param->cbparam.regc != acc->regc) {
+ PJSUA_UNLOCK();
+ return;
+ }
+
+ pj_log_push_indent();
+
+ if ((acc->cfg.contact_rewrite_method &
+ PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE) ==
+ PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE &&
+ param->cbparam.code >= 400 &&
+ param->cbparam.rdata)
+ {
+ if (acc_check_nat_addr(acc, PJSUA_CONTACT_REWRITE_ALWAYS_UPDATE,
+ ¶m->cbparam))
+ {
+ param->contact_cnt = 1;
+ param->contact[0] = acc->reg_contact;
+ }
+ }
+
+ PJSUA_UNLOCK();
+ pj_log_pop_indent();
+}
+
/*
* This callback is called by pjsip_regc when outgoing register
* request has completed.
@@ -2046,7 +2170,9 @@
update_rfc5626_status(acc, param->rdata);
/* Check NAT bound address */
- if (acc_check_nat_addr(acc, param)) {
+ if (acc_check_nat_addr(acc, (acc->cfg.contact_rewrite_method & 3),
+ param))
+ {
PJSUA_UNLOCK();
pj_log_pop_indent();
return;
@@ -2191,6 +2317,8 @@
return status;
}
+ pjsip_regc_set_reg_tsx_cb(acc->regc, regc_tsx_cb);
+
/* If account is locked to specific transport, then set transport to
* the client registration.
*/
@@ -2958,7 +3086,7 @@
(int)acc->display.slen,
acc->display.ptr,
(acc->display.slen?"\" " : ""),
- (secure ? PJSUA_SECURE_SCHEME : "sip"),
+ ((secure && acc->is_sips)? "sips" : "sip"),
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen?"@":""),
@@ -3129,7 +3257,7 @@
(int)acc->display.slen,
acc->display.ptr,
(acc->display.slen?"\" " : ""),
- (secure ? PJSUA_SECURE_SCHEME : "sip"),
+ ((secure && acc->is_sips)? "sips" : "sip"),
(int)acc->user_part.slen,
acc->user_part.ptr,
(acc->user_part.slen?"@":""),
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 0f768b8..d81ac9a 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: pjsua_aud.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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_call.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_call.c
index 8984f8f..1cd91fc 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: pjsua_call.c 4561 2013-07-15 01:29:03Z ming $ */
+/* $Id$ */
/*
* 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 a9295aa..d170b66 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: pjsua_core.c 4555 2013-07-10 04:27:05Z ming $ */
+/* $Id$ */
/*
* 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_dump.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_dump.c
index 513fee0..2f8ef73 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: pjsua_dump.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2011-2011 Teluu Inc. (http://www.teluu.com)
*
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 5a9cd2f..7ae3188 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: pjsua_im.c 4561 2013-07-15 01:29:03Z ming $ */
+/* $Id$ */
/*
* 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 b23ece9..62b413a 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: pjsua_media.c 4544 2013-06-26 01:02:02Z bennylp $ */
+/* $Id$ */
/*
* 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_pres.c b/jni/pjproject-android/pjsip/src/pjsua-lib/pjsua_pres.c
index 87d6d68..a9c3107 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: pjsua_pres.c 4564 2013-07-16 06:24:54Z bennylp $ */
+/* $Id$ */
/*
* 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 245685a..0096aca 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: pjsua_vid.c 4560 2013-07-12 13:50:52Z ming $ */
+/* $Id$ */
/*
* 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 ef2f35b..c661d57 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: dlg_core_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 7f6f3b0..986b312 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: dns_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 7fdb11e..2131ae6 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: inv_offer_answer_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 423e8cb..9904bf8 100644
--- a/jni/pjproject-android/pjsip/src/test/main.c
+++ b/jni/pjproject-android/pjsip/src/test/main.c
@@ -1,4 +1,4 @@
-/* $Id: main.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 d3c5636..3150c90 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: msg_err_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 aaeda7d..ac058de 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: msg_logger.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 0975af3..bdc2046 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: msg_test.c 4550 2013-07-02 11:45:57Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
@@ -447,7 +447,7 @@
print_msg:
var.print_len = var.print_len + entry->len;
pj_get_timestamp(&t1);
- if (var.flag && FLAG_PRINT_ONLY)
+ if (var.flag & FLAG_PRINT_ONLY)
ref_msg = print_msg;
len = pjsip_msg_print(ref_msg, msgbuf1, PJSIP_MAX_PKT_LEN);
if (len < 1) {
diff --git a/jni/pjproject-android/pjsip/src/test/multipart_test.c b/jni/pjproject-android/pjsip/src/test/multipart_test.c
index 30d6126..4f16e68 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: multipart_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 152caad..17cb399 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: regc_test.c 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 d10d345..0361e61 100644
--- a/jni/pjproject-android/pjsip/src/test/test.c
+++ b/jni/pjproject-android/pjsip/src/test/test.c
@@ -1,4 +1,4 @@
-/* $Id: test.c 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 9b70435..690598b 100644
--- a/jni/pjproject-android/pjsip/src/test/test.h
+++ b/jni/pjproject-android/pjsip/src/test/test.h
@@ -1,4 +1,4 @@
-/* $Id: test.h 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 6c60036..efa2ea1 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: transport_loop_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 4bc8c1c..9024ef9 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: transport_tcp_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 851d5dd..ab22c5e 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: transport_test.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 3c92632..bc0831a 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: transport_udp_test.c 3553 2011-05-05 06:14:19Z nanang $ */
+/* $Id$ */
/*
* 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 aaeabce..baae9fd 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: tsx_basic_test.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 81d543e..2282b6a 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: tsx_bench.c 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 6b67d81..d978df8 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: tsx_uac_test.c 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 5d796f4..3c43f53 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: tsx_uas_test.c 4420 2013-03-05 11:59:54Z bennylp $ */
+/* $Id$ */
/*
* 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 330e49b..f7f7365 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: txdata_test.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* 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 32be4bb..c647764 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: uri_test.c 4537 2013-06-19 06:47:43Z riza $ */
+/* $Id$ */
/*
* Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
* Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>