* #36737: switch back to svn repo, remove assert in sip_transaction.c
diff --git a/jni/pjproject-android/.svn/pristine/a2/a234cbb3b511b64edc810eef54bf5b78514f02c9.svn-base b/jni/pjproject-android/.svn/pristine/a2/a234cbb3b511b64edc810eef54bf5b78514f02c9.svn-base
new file mode 100644
index 0000000..e224c6a
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a234cbb3b511b64edc810eef54bf5b78514f02c9.svn-base
@@ -0,0 +1,447 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+#ifndef __PJLIB_UTIL_ERRNO_H__
+#define __PJLIB_UTIL_ERRNO_H__
+
+
+#include <pj/errno.h>
+
+/**
+ * @defgroup PJLIB_UTIL_ERROR Error Codes
+ * @ingroup PJLIB_UTIL_BASE
+ * @{
+ */
+
+/**
+ * Start of error code relative to PJ_ERRNO_START_USER.
+ * This value is 320000.
+ */
+#define PJLIB_UTIL_ERRNO_START    (PJ_ERRNO_START_USER + PJ_ERRNO_SPACE_SIZE*3)
+
+
+/************************************************************
+ * STUN ERROR
+ ***********************************************************/
+/**
+ * @hideinitializer
+ * Unable to resolve STUN server
+ */
+#define PJLIB_UTIL_ESTUNRESOLVE	    (PJLIB_UTIL_ERRNO_START+1)	/* 320001 */
+/**
+ * @hideinitializer
+ * Unknown STUN message type.
+ */
+#define PJLIB_UTIL_ESTUNINMSGTYPE   (PJLIB_UTIL_ERRNO_START+2)	/* 320002 */
+/**
+ * @hideinitializer
+ * Invalid STUN message length
+ */
+#define PJLIB_UTIL_ESTUNINMSGLEN    (PJLIB_UTIL_ERRNO_START+3)	/* 320003 */
+/**
+ * @hideinitializer
+ * Invalid STUN attribute length
+ */
+#define PJLIB_UTIL_ESTUNINATTRLEN   (PJLIB_UTIL_ERRNO_START+4)	/* 320004 */
+/**
+ * @hideinitializer
+ * Invalid STUN attribute type
+ */
+#define PJLIB_UTIL_ESTUNINATTRTYPE  (PJLIB_UTIL_ERRNO_START+5)	/* 320005 */
+/**
+ * @hideinitializer
+ * Invalid STUN server/socket index
+ */
+#define PJLIB_UTIL_ESTUNININDEX     (PJLIB_UTIL_ERRNO_START+6)	/* 320006 */
+/**
+ * @hideinitializer
+ * No STUN binding response in the message
+ */
+#define PJLIB_UTIL_ESTUNNOBINDRES   (PJLIB_UTIL_ERRNO_START+7)	/* 320007 */
+/**
+ * @hideinitializer
+ * Received STUN error attribute
+ */
+#define PJLIB_UTIL_ESTUNRECVERRATTR (PJLIB_UTIL_ERRNO_START+8)	/* 320008 */
+/**
+ * @hideinitializer
+ * No STUN mapped address attribute
+ */
+#define PJLIB_UTIL_ESTUNNOMAP       (PJLIB_UTIL_ERRNO_START+9)	/* 320009 */
+/**
+ * @hideinitializer
+ * Received no response from STUN server
+ */
+#define PJLIB_UTIL_ESTUNNOTRESPOND  (PJLIB_UTIL_ERRNO_START+10)	/* 320010 */
+/**
+ * @hideinitializer
+ * Symetric NAT detected by STUN
+ */
+#define PJLIB_UTIL_ESTUNSYMMETRIC   (PJLIB_UTIL_ERRNO_START+11)	/* 320011 */
+/**
+ * @hideinitializer
+ * Invalid STUN magic value
+ */
+#define PJLIB_UTIL_ESTUNNOTMAGIC    (PJLIB_UTIL_ERRNO_START+12)	/* 320012 */
+/**
+ * @hideinitializer
+ * Invalid STUN fingerprint value
+ */
+#define PJLIB_UTIL_ESTUNFINGERPRINT (PJLIB_UTIL_ERRNO_START+13)	/* 320013 */
+
+
+
+/************************************************************
+ * XML ERROR
+ ***********************************************************/
+/**
+ * @hideinitializer
+ * General invalid XML message.
+ */
+#define PJLIB_UTIL_EINXML	    (PJLIB_UTIL_ERRNO_START+20)	/* 320020 */
+
+
+
+/************************************************************
+ * DNS ERROR
+ ***********************************************************/
+/**
+ * @hideinitializer
+ * DNS query packet buffer is too small.
+ * This error occurs when the user supplied buffer for creating DNS
+ * query (#pj_dns_make_query() function) is too small.
+ */
+#define PJLIB_UTIL_EDNSQRYTOOSMALL  (PJLIB_UTIL_ERRNO_START+40)	/* 320040 */
+/**
+ * @hideinitializer
+ * Invalid DNS packet length.
+ * This error occurs when the received DNS response packet does not
+ * match all the fields length.
+ */
+#define PJLIB_UTIL_EDNSINSIZE	    (PJLIB_UTIL_ERRNO_START+41)	/* 320041 */
+/**
+ * @hideinitializer
+ * Invalid DNS class.
+ * This error occurs when the received DNS response contains network
+ * class other than IN (Internet).
+ */
+#define PJLIB_UTIL_EDNSINCLASS	    (PJLIB_UTIL_ERRNO_START+42)	/* 320042 */
+/**
+ * @hideinitializer
+ * Invalid DNS name pointer.
+ * This error occurs when parsing the compressed names inside DNS
+ * response packet, when the name pointer points to an invalid address
+ * or the parsing has triggerred too much recursion.
+ */
+#define PJLIB_UTIL_EDNSINNAMEPTR    (PJLIB_UTIL_ERRNO_START+43)	/* 320043 */
+/**
+ * @hideinitializer
+ * Invalid DNS nameserver address. If hostname was specified for nameserver
+ * address, this error means that the function was unable to resolve
+ * the nameserver hostname.
+ */
+#define PJLIB_UTIL_EDNSINNSADDR	    (PJLIB_UTIL_ERRNO_START+44)	/* 320044 */
+/**
+ * @hideinitializer
+ * No nameserver is in DNS resolver. No nameserver is configured in the 
+ * resolver.
+ */
+#define PJLIB_UTIL_EDNSNONS	    (PJLIB_UTIL_ERRNO_START+45)	/* 320045 */
+/**
+ * @hideinitializer
+ * No working DNS nameserver. All nameservers have been queried,
+ * but none was able to serve any DNS requests. These "bad" nameservers
+ * will be re-tested again for "goodness" after some period.
+ */
+#define PJLIB_UTIL_EDNSNOWORKINGNS  (PJLIB_UTIL_ERRNO_START+46)	/* 320046 */
+/**
+ * @hideinitializer
+ * No answer record in the DNS response.
+ */
+#define PJLIB_UTIL_EDNSNOANSWERREC  (PJLIB_UTIL_ERRNO_START+47)	/* 320047 */
+/**
+ * @hideinitializer
+ * Invalid DNS answer. This error is raised for example when the DNS
+ * answer does not have a query section, or the type of RR in the answer
+ * doesn't match the query.
+ */
+#define PJLIB_UTIL_EDNSINANSWER	    (PJLIB_UTIL_ERRNO_START+48)	/* 320048 */
+
+
+/* DNS ERRORS MAPPED FROM RCODE: */
+
+/**
+ * Start of error code mapped from DNS RCODE
+ */
+#define PJLIB_UTIL_DNS_RCODE_START  (PJLIB_UTIL_ERRNO_START+50)	/* 320050 */
+
+/**
+ * Map DNS RCODE status into pj_status_t.
+ */
+#define PJ_STATUS_FROM_DNS_RCODE(rcode)	(rcode==0 ? PJ_SUCCESS : \
+					 PJLIB_UTIL_DNS_RCODE_START+rcode)
+/**
+ * @hideinitializer
+ * Format error - The name server was unable to interpret the query.
+ * This corresponds to DNS RCODE 1.
+ */
+#define PJLIB_UTIL_EDNS_FORMERR	    PJ_STATUS_FROM_DNS_RCODE(1)	/* 320051 */
+/**
+ * @hideinitializer
+ * Server failure - The name server was unable to process this query due to a
+ * problem with the name server.
+ * This corresponds to DNS RCODE 2.
+ */
+#define PJLIB_UTIL_EDNS_SERVFAIL    PJ_STATUS_FROM_DNS_RCODE(2)	/* 320052 */
+/**
+ * @hideinitializer
+ * Name Error - Meaningful only for responses from an authoritative name
+ * server, this code signifies that the domain name referenced in the query 
+ * does not exist.
+ * This corresponds to DNS RCODE 3.
+ */
+#define PJLIB_UTIL_EDNS_NXDOMAIN    PJ_STATUS_FROM_DNS_RCODE(3)	/* 320053 */
+/**
+ * @hideinitializer
+ * Not Implemented - The name server does not support the requested kind of 
+ * query.
+ * This corresponds to DNS RCODE 4.
+ */
+#define PJLIB_UTIL_EDNS_NOTIMPL    PJ_STATUS_FROM_DNS_RCODE(4)	/* 320054 */
+/**
+ * @hideinitializer
+ * Refused - The name server refuses to perform the specified operation for
+ * policy reasons.
+ * This corresponds to DNS RCODE 5.
+ */
+#define PJLIB_UTIL_EDNS_REFUSED	    PJ_STATUS_FROM_DNS_RCODE(5)	/* 320055 */
+/**
+ * @hideinitializer
+ * The name exists.
+ * This corresponds to DNS RCODE 6.
+ */
+#define PJLIB_UTIL_EDNS_YXDOMAIN    PJ_STATUS_FROM_DNS_RCODE(6)	/* 320056 */
+/**
+ * @hideinitializer
+ * The RRset (name, type) exists.
+ * This corresponds to DNS RCODE 7.
+ */
+#define PJLIB_UTIL_EDNS_YXRRSET	    PJ_STATUS_FROM_DNS_RCODE(7)	/* 320057 */
+/**
+ * @hideinitializer
+ * The RRset (name, type) does not exist.
+ * This corresponds to DNS RCODE 8.
+ */
+#define PJLIB_UTIL_EDNS_NXRRSET	    PJ_STATUS_FROM_DNS_RCODE(8)	/* 320058 */
+/**
+ * @hideinitializer
+ * The requestor is not authorized to perform this operation.
+ * This corresponds to DNS RCODE 9.
+ */
+#define PJLIB_UTIL_EDNS_NOTAUTH	    PJ_STATUS_FROM_DNS_RCODE(9)	/* 320059 */
+/**
+ * @hideinitializer
+ * The zone specified is not a zone.
+ * This corresponds to DNS RCODE 10.
+ */
+#define PJLIB_UTIL_EDNS_NOTZONE	    PJ_STATUS_FROM_DNS_RCODE(10)/* 320060 */
+
+
+/************************************************************
+ * NEW STUN ERROR
+ ***********************************************************/
+/* Messaging errors */
+/**
+ * @hideinitializer
+ * Too many STUN attributes.
+ */
+#define PJLIB_UTIL_ESTUNTOOMANYATTR (PJLIB_UTIL_ERRNO_START+110)/* 320110 */
+/**
+ * @hideinitializer
+ * Unknown STUN attribute. This error happens when the decoder encounters
+ * mandatory attribute type which it doesn't understand.
+ */
+#define PJLIB_UTIL_ESTUNUNKNOWNATTR (PJLIB_UTIL_ERRNO_START+111)/* 320111 */
+/**
+ * @hideinitializer
+ * Invalid STUN socket address length.
+ */
+#define PJLIB_UTIL_ESTUNINADDRLEN   (PJLIB_UTIL_ERRNO_START+112)/* 320112 */
+/**
+ * @hideinitializer
+ * STUN IPv6 attribute not supported
+ */
+#define PJLIB_UTIL_ESTUNIPV6NOTSUPP (PJLIB_UTIL_ERRNO_START+113)/* 320113 */
+/**
+ * @hideinitializer
+ * Expecting STUN response message.
+ */
+#define PJLIB_UTIL_ESTUNNOTRESPONSE (PJLIB_UTIL_ERRNO_START+114)/* 320114 */
+/**
+ * @hideinitializer
+ * STUN transaction ID mismatch.
+ */
+#define PJLIB_UTIL_ESTUNINVALIDID   (PJLIB_UTIL_ERRNO_START+115)/* 320115 */
+/**
+ * @hideinitializer
+ * Unable to find handler for the request.
+ */
+#define PJLIB_UTIL_ESTUNNOHANDLER   (PJLIB_UTIL_ERRNO_START+116)/* 320116 */
+/**
+ * @hideinitializer
+ * Found non-FINGERPRINT attribute after MESSAGE-INTEGRITY. This is not
+ * valid since MESSAGE-INTEGRITY MUST be the last attribute or the
+ * attribute right before FINGERPRINT before the message.
+ */
+#define PJLIB_UTIL_ESTUNMSGINTPOS    (PJLIB_UTIL_ERRNO_START+118)/* 320118 */
+/**
+ * @hideinitializer
+ * Found attribute after FINGERPRINT. This is not valid since FINGERPRINT
+ * MUST be the last attribute in the message.
+ */
+#define PJLIB_UTIL_ESTUNFINGERPOS   (PJLIB_UTIL_ERRNO_START+119)/* 320119 */
+/**
+ * @hideinitializer
+ * Missing STUN USERNAME attribute.
+ * When credential is included in the STUN message (MESSAGE-INTEGRITY is
+ * present), the USERNAME attribute must be present in the message.
+ */
+#define PJLIB_UTIL_ESTUNNOUSERNAME  (PJLIB_UTIL_ERRNO_START+120)/* 320120 */
+/**
+ * @hideinitializer
+ * Unknown STUN username/credential.
+ */
+#define PJLIB_UTIL_ESTUNUSERNAME    (PJLIB_UTIL_ERRNO_START+121)/* 320121 */
+/**
+ * @hideinitializer
+ * Missing/invalidSTUN MESSAGE-INTEGRITY attribute.
+ */
+#define PJLIB_UTIL_ESTUNMSGINT	    (PJLIB_UTIL_ERRNO_START+122)/* 320122 */
+/**
+ * @hideinitializer
+ * Found duplicate STUN attribute.
+ */
+#define PJLIB_UTIL_ESTUNDUPATTR	    (PJLIB_UTIL_ERRNO_START+123)/* 320123 */
+/**
+ * @hideinitializer
+ * Missing STUN REALM attribute.
+ */
+#define PJLIB_UTIL_ESTUNNOREALM	    (PJLIB_UTIL_ERRNO_START+124)/* 320124 */
+/**
+ * @hideinitializer
+ * Missing/stale STUN NONCE attribute value.
+ */
+#define PJLIB_UTIL_ESTUNNONCE	    (PJLIB_UTIL_ERRNO_START+125)/* 320125 */
+/**
+ * @hideinitializer
+ * STUN transaction terminates with failure.
+ */
+#define PJLIB_UTIL_ESTUNTSXFAILED    (PJLIB_UTIL_ERRNO_START+126)/* 320126 */
+
+
+//#define PJ_STATUS_FROM_STUN_CODE(code)	(PJLIB_UTIL_ERRNO_START+code)
+
+/************************************************************
+ * HTTP Client ERROR
+ ***********************************************************/
+/**
+ * @hideinitializer
+ * Invalid URL format
+ */
+#define PJLIB_UTIL_EHTTPINURL	    (PJLIB_UTIL_ERRNO_START+151)/* 320151 */
+/**
+ * @hideinitializer
+ * Invalid port number
+ */
+#define PJLIB_UTIL_EHTTPINPORT	    (PJLIB_UTIL_ERRNO_START+152)/* 320152 */
+/**
+ * @hideinitializer
+ * Incomplete headers received
+ */
+#define PJLIB_UTIL_EHTTPINCHDR	    (PJLIB_UTIL_ERRNO_START+153)/* 320153 */
+/**
+ * @hideinitializer
+ * Insufficient buffer
+ */
+#define PJLIB_UTIL_EHTTPINSBUF	    (PJLIB_UTIL_ERRNO_START+154)/* 320154 */
+/**
+ * @hideinitializer
+ * Connection lost
+ */
+#define PJLIB_UTIL_EHTTPLOST	    (PJLIB_UTIL_ERRNO_START+155)/* 320155 */
+
+/************************************************************
+ * CLI ERROR
+ ***********************************************************/
+
+/**
+ * @hideinitializer
+ * End the current session. This is a special error code returned by
+ * pj_cli_sess_exec() to indicate that "exit" or equivalent command has been
+ * called to end the current session.
+ */
+#define PJ_CLI_EEXIT        	    (PJLIB_UTIL_ERRNO_START+201)/* 320201 */
+/**
+ * @hideinitializer
+ * A required CLI argument is not specified.
+ */
+#define PJ_CLI_EMISSINGARG    	    (PJLIB_UTIL_ERRNO_START+202)/* 320202 */
+ /**
+ * @hideinitializer
+ * Too many CLI arguments.
+ */
+#define PJ_CLI_ETOOMANYARGS    	    (PJLIB_UTIL_ERRNO_START+203)/* 320203 */
+/**
+ * @hideinitializer
+ * Invalid CLI argument. Typically this is caused by extra characters
+ * specified in the command line which does not match any arguments.
+ */
+#define PJ_CLI_EINVARG        	    (PJLIB_UTIL_ERRNO_START+204)/* 320204 */
+/**
+ * @hideinitializer
+ * CLI command with the specified name already exist.
+ */
+#define PJ_CLI_EBADNAME        	    (PJLIB_UTIL_ERRNO_START+205)/* 320205 */
+/**
+ * @hideinitializer
+ * CLI command with the specified id already exist.
+ */
+#define PJ_CLI_EBADID        	    (PJLIB_UTIL_ERRNO_START+206)/* 320206 */
+/**
+ * @hideinitializer
+ * Invalid XML format for CLI command specification.
+ */
+#define PJ_CLI_EBADXML        	    (PJLIB_UTIL_ERRNO_START+207)/* 320207 */
+/**
+ * @hideinitializer
+ * CLI command entered by user match with more than one command/argument 
+ * specification.
+ */
+#define PJ_CLI_EAMBIGUOUS	    (PJLIB_UTIL_ERRNO_START+208)/* 320208 */
+/**
+ * @hideinitializer
+ * Telnet connection lost.
+ */
+#define PJ_CLI_ETELNETLOST          (PJLIB_UTIL_ERRNO_START+211)/* 320211 */
+
+/**
+ * @}
+ */
+
+#endif	/* __PJLIB_UTIL_ERRNO_H__ */
diff --git a/jni/pjproject-android/.svn/pristine/a2/a262e50e7241d2252a3f79f5f416fcac4c33c456.svn-base b/jni/pjproject-android/.svn/pristine/a2/a262e50e7241d2252a3f79f5f416fcac4c33c456.svn-base
new file mode 100644
index 0000000..b5016e4
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a262e50e7241d2252a3f79f5f416fcac4c33c456.svn-base
@@ -0,0 +1,119 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+#ifndef __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__
+#define __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__
+
+/**
+ * @file evsub_msg.h
+ * @brief SIP Event Notification Headers (RFC 3265)
+ */
+#include <pjsip/sip_msg.h>
+
+/**
+ * @defgroup PJSIP_EVENT_HDRS Additional Header Fields
+ * @ingroup PJSIP_EVENT_NOT
+ * @{
+ */
+
+PJ_BEGIN_DECL
+
+
+/** Max events in Allow-Events header. */
+#define PJSIP_MAX_ALLOW_EVENTS	16
+
+/**
+ * This structure describes Event header.
+ */
+typedef struct pjsip_event_hdr
+{
+    /** Standard header fields. */
+    PJSIP_DECL_HDR_MEMBER(struct pjsip_event_hdr);
+
+    pj_str_t	    event_type;	    /**< Event name. */
+    pj_str_t	    id_param;	    /**< Optional event ID parameter. */
+    pjsip_param	    other_param;    /**< Other parameter. */
+} pjsip_event_hdr;
+
+/**
+ * Create an Event header.
+ *
+ * @param pool	    The pool.
+ *
+ * @return	    New Event header instance.
+ */
+PJ_DECL(pjsip_event_hdr*) pjsip_event_hdr_create(pj_pool_t *pool);
+
+
+/**
+ * This structure describes Allow-Events header.
+ */
+typedef pjsip_generic_array_hdr pjsip_allow_events_hdr;
+
+
+/**
+ * Create a new Allow-Events header.
+ *
+ * @param pool	    The pool.
+ *
+ * @return	    Allow-Events header.
+ */
+PJ_DECL(pjsip_allow_events_hdr*) 
+pjsip_allow_events_hdr_create(pj_pool_t *pool);
+
+
+/**
+ * This structure describes Subscription-State header.
+ */
+typedef struct pjsip_sub_state_hdr
+{
+    /** Standard header fields. */
+    PJSIP_DECL_HDR_MEMBER(struct pjsip_sub_state_hdr);
+
+    pj_str_t	    sub_state;		/**< Subscription state. */
+    pj_str_t	    reason_param;	/**< Optional termination reason. */
+    int		    expires_param;	/**< Expires param, or -1. */
+    int		    retry_after;	/**< Retry after param, or -1. */
+    pjsip_param	    other_param;	/**< Other parameters. */
+} pjsip_sub_state_hdr;
+
+/**
+ * Create new Subscription-State header.
+ *
+ * @param pool	    The pool.
+ *
+ * @return	    Subscription-State header.
+ */
+PJ_DECL(pjsip_sub_state_hdr*) pjsip_sub_state_hdr_create(pj_pool_t *pool);
+
+/**
+ * Initialize parser for event notify module.
+ */
+PJ_DECL(void) pjsip_evsub_init_parser(void);
+
+
+PJ_END_DECL
+
+
+/**
+ * @}
+ */
+
+#endif	/* __PJSIP_SIMPLE_EVENT_NOTIFY_MSG_H__ */
+
diff --git a/jni/pjproject-android/.svn/pristine/a2/a27da366040cd8eb98a3194aab03d386d11e2438.svn-base b/jni/pjproject-android/.svn/pristine/a2/a27da366040cd8eb98a3194aab03d386d11e2438.svn-base
new file mode 100644
index 0000000..15766e8
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a27da366040cd8eb98a3194aab03d386d11e2438.svn-base
@@ -0,0 +1,84 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+#ifndef __PJSIP_TEL_URI_H__
+#define __PJSIP_TEL_URI_H__
+
+/**
+ * @file sip_tel_uri.h
+ * @brief Tel: URI
+ */
+
+#include <pjsip/sip_uri.h>
+
+/**
+ * @addtogroup PJSIP_TEL_URI tel URI Scheme
+ * @ingroup PJSIP_URI
+ * @brief Support for "tel:" URI scheme.
+ * @{
+ */
+
+
+PJ_BEGIN_DECL
+
+/**
+ * tel: URI.
+ */
+typedef struct pjsip_tel_uri
+{
+    pjsip_uri_vptr *vptr;	/**< Pointer to virtual function table.	*/
+    pj_str_t	    number;	/**< Global or local phone number	*/
+    pj_str_t	    context;	/**< Phone context (for local number).	*/
+    pj_str_t	    ext_param;	/**< Extension param.			*/
+    pj_str_t	    isub_param;	/**< ISDN sub-address param.		*/
+    pjsip_param	    other_param;/**< Other parameter.			*/
+} pjsip_tel_uri;
+
+
+/**
+ * Create a new tel: URI.
+ *
+ * @param pool	    The pool.
+ *
+ * @return	    New instance of tel: URI.
+ */
+PJ_DECL(pjsip_tel_uri*) pjsip_tel_uri_create(pj_pool_t *pool);
+
+/**
+ * This function compares two numbers for equality, according to rules as
+ * specified in RFC 3966.
+ *
+ * @param nb1	    The first number.
+ * @param nb2	    The second number.
+ *
+ * @return	    Zero if equal, -1 if nb1 is less than nb2, or +1 if
+ *		    nb1 is greater than nb2.
+ */
+PJ_DECL(int) pjsip_tel_nb_cmp(const pj_str_t *nb1, const pj_str_t *nb2);
+
+
+PJ_END_DECL
+
+
+/**
+ * @}
+ */
+
+
+#endif	/* __PJSIP_TEL_URI_H__ */
diff --git a/jni/pjproject-android/.svn/pristine/a2/a27dd60b7c1c9bbca9e81266618162bd0fe2e4c5.svn-base b/jni/pjproject-android/.svn/pristine/a2/a27dd60b7c1c9bbca9e81266618162bd0fe2e4c5.svn-base
new file mode 100644
index 0000000..466a699
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a27dd60b7c1c9bbca9e81266618162bd0fe2e4c5.svn-base
@@ -0,0 +1,450 @@
+/* $Id$ */
+/* 
+ * Copyright (C) 2008-2011 Teluu Inc. (http://www.teluu.com)
+ * Copyright (C) 2003-2008 Benny Prijono <benny@prijono.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA 
+ */
+#include <pjsip/sip_tel_uri.h>
+#include <pjsip/sip_msg.h>
+#include <pjsip/sip_parser.h>
+#include <pjsip/print_util.h>
+#include <pj/pool.h>
+#include <pj/assert.h>
+#include <pj/string.h>
+#include <pj/ctype.h>
+#include <pj/except.h>
+#include <pjlib-util/string.h>
+#include <pjlib-util/scanner.h>
+
+#define ALPHA
+#define DIGITS		    "0123456789"
+#define HEX		    "aAbBcCdDeEfF"
+#define HEX_DIGITS	    DIGITS HEX
+#define VISUAL_SEP	    "-.()"
+#define PHONE_DIGITS	    DIGITS VISUAL_SEP
+#define GLOBAL_DIGITS	    "+" PHONE_DIGITS
+#define LOCAL_DIGITS	    HEX_DIGITS "*#" VISUAL_SEP
+#define NUMBER_SPEC	    LOCAL_DIGITS GLOBAL_DIGITS
+#define PHONE_CONTEXT	    ALPHA GLOBAL_DIGITS
+//#define RESERVED	    ";/?:@&=+$,"
+#define RESERVED	    "/:@&$,+"
+#define MARK		    "-_.!~*'()"
+#define UNRESERVED	    ALPHA DIGITS MARK
+#define ESCAPED		    "%"
+#define URIC		    RESERVED UNRESERVED ESCAPED "[]+"
+#define PARAM_UNRESERVED    "[]/:&+$"
+#define PARAM_CHAR	    PARAM_UNRESERVED UNRESERVED ESCAPED
+
+static pj_cis_buf_t cis_buf;
+static pj_cis_t pjsip_TEL_NUMBER_SPEC;
+static pj_cis_t pjsip_TEL_EXT_VALUE_SPEC;
+static pj_cis_t pjsip_TEL_PHONE_CONTEXT_SPEC;
+static pj_cis_t pjsip_TEL_URIC_SPEC;
+static pj_cis_t pjsip_TEL_VISUAL_SEP_SPEC;
+static pj_cis_t pjsip_TEL_PNAME_SPEC;
+static pj_cis_t pjsip_TEL_PVALUE_SPEC;
+static pj_cis_t pjsip_TEL_PVALUE_SPEC_ESC;
+static pj_cis_t pjsip_TEL_PARSING_PVALUE_SPEC;
+static pj_cis_t pjsip_TEL_PARSING_PVALUE_SPEC_ESC;
+
+static pj_str_t pjsip_ISUB_STR = { "isub", 4 };
+static pj_str_t pjsip_EXT_STR = { "ext", 3 };
+static pj_str_t pjsip_PH_CTX_STR = { "phone-context", 13 };
+
+
+static const pj_str_t *tel_uri_get_scheme( const pjsip_tel_uri* );
+static void *tel_uri_get_uri( pjsip_tel_uri* );
+static pj_ssize_t tel_uri_print( pjsip_uri_context_e context,
+				 const pjsip_tel_uri *url, 
+				 char *buf, pj_size_t size);
+static int tel_uri_cmp( pjsip_uri_context_e context,
+			const pjsip_tel_uri *url1, const pjsip_tel_uri *url2);
+static pjsip_tel_uri* tel_uri_clone(pj_pool_t *pool, const pjsip_tel_uri *rhs);
+static void*	      tel_uri_parse( pj_scanner *scanner, pj_pool_t *pool,
+				     pj_bool_t parse_params);
+
+typedef const pj_str_t* (*P_GET_SCHEME)(const void*);
+typedef void* 		(*P_GET_URI)(void*);
+typedef pj_ssize_t 	(*P_PRINT_URI)(pjsip_uri_context_e,const void *,
+				       char*,pj_size_t);
+typedef int 		(*P_CMP_URI)(pjsip_uri_context_e, const void*, 
+				     const void*);
+typedef void* 		(*P_CLONE)(pj_pool_t*, const void*);
+
+static pjsip_uri_vptr tel_uri_vptr = 
+{
+    (P_GET_SCHEME)	&tel_uri_get_scheme,
+    (P_GET_URI) 	&tel_uri_get_uri,
+    (P_PRINT_URI) 	&tel_uri_print,
+    (P_CMP_URI)		&tel_uri_cmp,
+    (P_CLONE)		&tel_uri_clone
+};
+
+
+PJ_DEF(pjsip_tel_uri*) pjsip_tel_uri_create(pj_pool_t *pool)
+{
+    pjsip_tel_uri *uri = PJ_POOL_ZALLOC_T(pool, pjsip_tel_uri);
+    uri->vptr = &tel_uri_vptr;
+    pj_list_init(&uri->other_param);
+    return uri;
+}
+
+
+static const pj_str_t *tel_uri_get_scheme( const pjsip_tel_uri *uri )
+{
+    PJ_UNUSED_ARG(uri);
+    return &pjsip_parser_const()->pjsip_TEL_STR;
+}
+
+static void *tel_uri_get_uri( pjsip_tel_uri *uri )
+{
+    return uri;
+}
+
+
+pj_status_t pjsip_tel_uri_subsys_init(void)
+{
+    pj_status_t status;
+
+    pj_cis_buf_init(&cis_buf);
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_EXT_VALUE_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_str(&pjsip_TEL_EXT_VALUE_SPEC, PHONE_DIGITS);
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_NUMBER_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_str(&pjsip_TEL_NUMBER_SPEC, NUMBER_SPEC);
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_VISUAL_SEP_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_str(&pjsip_TEL_VISUAL_SEP_SPEC, VISUAL_SEP);
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_PHONE_CONTEXT_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_alpha(&pjsip_TEL_PHONE_CONTEXT_SPEC);
+    pj_cis_add_num(&pjsip_TEL_PHONE_CONTEXT_SPEC);
+    pj_cis_add_str(&pjsip_TEL_PHONE_CONTEXT_SPEC, PHONE_CONTEXT);
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_URIC_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_alpha(&pjsip_TEL_URIC_SPEC);
+    pj_cis_add_num(&pjsip_TEL_URIC_SPEC);
+    pj_cis_add_str(&pjsip_TEL_URIC_SPEC, URIC);
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_PNAME_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_alpha(&pjsip_TEL_PNAME_SPEC);
+    pj_cis_add_num(&pjsip_TEL_PNAME_SPEC);
+    pj_cis_add_str(&pjsip_TEL_PNAME_SPEC, "-");
+
+    status = pj_cis_init(&cis_buf, &pjsip_TEL_PVALUE_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_alpha(&pjsip_TEL_PVALUE_SPEC);
+    pj_cis_add_num(&pjsip_TEL_PVALUE_SPEC);
+    pj_cis_add_str(&pjsip_TEL_PVALUE_SPEC, PARAM_CHAR);
+
+    status = pj_cis_dup(&pjsip_TEL_PVALUE_SPEC_ESC, &pjsip_TEL_PVALUE_SPEC);
+    pj_cis_del_str(&pjsip_TEL_PVALUE_SPEC_ESC, "%");
+
+    status = pj_cis_dup(&pjsip_TEL_PARSING_PVALUE_SPEC, &pjsip_TEL_URIC_SPEC);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+    pj_cis_add_cis(&pjsip_TEL_PARSING_PVALUE_SPEC, &pjsip_TEL_PVALUE_SPEC);
+    pj_cis_add_str(&pjsip_TEL_PARSING_PVALUE_SPEC, "=");
+
+    status = pj_cis_dup(&pjsip_TEL_PARSING_PVALUE_SPEC_ESC, 
+			&pjsip_TEL_PARSING_PVALUE_SPEC);
+    pj_cis_del_str(&pjsip_TEL_PARSING_PVALUE_SPEC_ESC, "%");
+
+    status = pjsip_register_uri_parser("tel", &tel_uri_parse);
+    PJ_ASSERT_RETURN(status==PJ_SUCCESS, status);
+
+    return PJ_SUCCESS;
+}
+
+/* Print tel: URI */
+static pj_ssize_t tel_uri_print( pjsip_uri_context_e context,
+				 const pjsip_tel_uri *uri, 
+				 char *buf, pj_size_t size)
+{
+    int printed;
+    char *startbuf = buf;
+    char *endbuf = buf+size-1;
+    const pjsip_parser_const_t *pc = pjsip_parser_const();
+
+    PJ_UNUSED_ARG(context);
+
+    /* Print scheme. */
+    copy_advance(buf, pc->pjsip_TEL_STR);
+    *buf++ = ':';
+
+    /* Print number. */
+    copy_advance_escape(buf, uri->number, pjsip_TEL_NUMBER_SPEC);
+
+    /* ISDN sub-address or extension must appear first. */
+
+    /* Extension param. */
+    copy_advance_pair_escape(buf, ";ext=", 5, uri->ext_param, 
+			     pjsip_TEL_EXT_VALUE_SPEC);
+
+    /* ISDN sub-address. */
+    copy_advance_pair_escape(buf, ";isub=", 6, uri->isub_param, 
+			     pjsip_TEL_URIC_SPEC);
+
+    /* Followed by phone context, if present. */
+    copy_advance_pair_escape(buf, ";phone-context=", 15, uri->context, 
+			     pjsip_TEL_PHONE_CONTEXT_SPEC);
+
+
+    /* Print other parameters. */
+    printed = (int)pjsip_param_print_on(&uri->other_param, buf, (endbuf-buf), 
+					&pjsip_TEL_PNAME_SPEC, 
+					&pjsip_TEL_PVALUE_SPEC, ';');
+    if (printed < 0)
+	return -1;
+    buf += printed;
+
+    *buf = '\0';
+
+    return (buf-startbuf);
+}
+
+/* Compare two numbers, according to RFC 3966:
+ *  - both must be either local or global numbers.
+ *  - The 'global-number-digits' and the 'local-number-digits' must be
+ *    equal, after removing all visual separators.
+ */
+PJ_DEF(int) pjsip_tel_nb_cmp(const pj_str_t *number1, const pj_str_t *number2)
+{
+    const char *s1 = number1->ptr,
+	       *e1 = number1->ptr + number1->slen,
+	       *s2 = number2->ptr,
+	       *e2 = number2->ptr + number2->slen;
+
+    /* Compare each number, ignoreing visual separators. */
+    while (s1!=e1 && s2!=e2) {
+	int diff;
+
+	if (pj_cis_match(&pjsip_TEL_VISUAL_SEP_SPEC, *s1)) {
+	    ++s1;
+	    continue;
+	}
+	if (pj_cis_match(&pjsip_TEL_VISUAL_SEP_SPEC, *s2)) {
+	    ++s2;
+	    continue;
+	}
+
+	diff = pj_tolower(*s1) - pj_tolower(*s2);
+	if (!diff) {
+	    ++s1, ++s2;
+	    continue;
+	} else
+	    return diff;
+    }
+
+    /* Exhaust remaining visual separators. */
+    while (s1!=e1 && pj_cis_match(&pjsip_TEL_VISUAL_SEP_SPEC, *s1))
+	++s1;
+    while (s2!=e2 && pj_cis_match(&pjsip_TEL_VISUAL_SEP_SPEC, *s2))
+	++s2;
+
+    if (s1==e1 && s2==e2)
+	return 0;
+    else if (s1==e1)
+	return -1;
+    else
+	return 1;
+}
+
+/* Compare two tel: URI */
+static int tel_uri_cmp( pjsip_uri_context_e context,
+			const pjsip_tel_uri *url1, const pjsip_tel_uri *url2)
+{
+    int result;
+
+    PJ_UNUSED_ARG(context);
+
+    /* Scheme must match. */
+    if (url1->vptr != url2->vptr)
+	return -1;
+
+    /* Compare number. */
+    result = pjsip_tel_nb_cmp(&url1->number, &url2->number);
+    if (result != 0)
+	return result;
+
+    /* Compare phone-context as hostname or as as global nb. */
+    if (url1->context.slen) {
+	if (*url1->context.ptr != '+')
+	    result = pj_stricmp(&url1->context, &url2->context);
+	else
+	    result = pjsip_tel_nb_cmp(&url1->context, &url2->context);
+
+	if (result != 0)
+	    return result;
+
+    } else if (url2->context.slen)
+	return -1;
+
+    /* Compare extension. */
+    if (url1->ext_param.slen) {
+	result = pjsip_tel_nb_cmp(&url1->ext_param, &url2->ext_param);
+	if (result != 0)
+	    return result;
+    }
+
+    /* Compare isub bytes by bytes. */
+    if (url1->isub_param.slen) {
+	result = pj_stricmp(&url1->isub_param, &url2->isub_param);
+	if (result != 0)
+	    return result;
+    }
+
+    /* Other parameters are compared regardless of the order.
+     * If one URI has parameter not found in the other URI, the URIs are
+     * not equal.
+     */
+    if (url1->other_param.next != &url1->other_param) {
+	const pjsip_param *p1, *p2;
+	int cnt1 = 0, cnt2 = 0;
+
+	p1 = url1->other_param.next;
+	while (p1 != &url1->other_param) {
+	    p2 = pjsip_param_cfind(&url2->other_param, &p1->name);
+	    if (!p2 )
+		return 1;
+
+	    result = pj_stricmp(&p1->value, &p2->value);
+	    if (result != 0)
+		return result;
+
+	    p1 = p1->next;
+	    ++cnt1;
+	}
+
+	p2 = url2->other_param.next;
+	while (p2 != &url2->other_param)
+	    ++cnt2, p2 = p2->next;
+
+	if (cnt1 < cnt2)
+	    return -1;
+	else if (cnt1 > cnt2)
+	    return 1;
+
+    } else if (url2->other_param.next != &url2->other_param)
+	return -1;
+
+    /* Equal. */
+    return 0;
+}
+
+/* Clone tel: URI */
+static pjsip_tel_uri* tel_uri_clone(pj_pool_t *pool, const pjsip_tel_uri *rhs)
+{
+    pjsip_tel_uri *uri = pjsip_tel_uri_create(pool);
+
+    pj_strdup(pool, &uri->number, &rhs->number);
+    pj_strdup(pool, &uri->context, &rhs->context);
+    pj_strdup(pool, &uri->ext_param, &rhs->ext_param);
+    pj_strdup(pool, &uri->isub_param, &rhs->isub_param);
+    pjsip_param_clone(pool, &uri->other_param, &rhs->other_param);
+
+    return uri;
+}
+
+/* Parse tel: URI 
+ * THis actually returns (pjsip_tel_uri *) type.
+ */
+static void* tel_uri_parse( pj_scanner *scanner, pj_pool_t *pool,
+			    pj_bool_t parse_params)
+{
+    pjsip_tel_uri *uri;
+    pj_str_t token;
+    int skip_ws = scanner->skip_ws;
+    const pjsip_parser_const_t *pc = pjsip_parser_const();
+
+    scanner->skip_ws = 0;
+
+    /* Parse scheme. */
+    pj_scan_get(scanner, &pc->pjsip_TOKEN_SPEC, &token);
+    if (pj_scan_get_char(scanner) != ':')
+	PJ_THROW(PJSIP_SYN_ERR_EXCEPTION);
+    if (pj_stricmp_alnum(&token, &pc->pjsip_TEL_STR) != 0)
+	PJ_THROW(PJSIP_SYN_ERR_EXCEPTION);
+
+    /* Create URI */
+    uri = pjsip_tel_uri_create(pool);
+
+    /* Get the phone number. */
+#if defined(PJSIP_UNESCAPE_IN_PLACE) && PJSIP_UNESCAPE_IN_PLACE!=0
+    pj_scan_get_unescape(scanner, &pjsip_TEL_NUMBER_SPEC, &uri->number);
+#else
+    pj_scan_get(scanner, &pjsip_TEL_NUMBER_SPEC, &uri->number);
+    uri->number = pj_str_unescape(pool, &uri->number);
+#endif
+
+    /* Get all parameters. */
+    if (parse_params && *scanner->curptr==';') {
+	pj_str_t pname, pvalue;
+	const pjsip_parser_const_t *pc = pjsip_parser_const();
+
+	do {
+	    /* Eat the ';' separator. */
+	    pj_scan_get_char(scanner);
+
+	    /* Get pname. */
+	    pj_scan_get(scanner, &pc->pjsip_PARAM_CHAR_SPEC, &pname);
+
+	    if (*scanner->curptr == '=') {
+		pj_scan_get_char(scanner);
+
+#		if defined(PJSIP_UNESCAPE_IN_PLACE) && PJSIP_UNESCAPE_IN_PLACE!=0
+		    pj_scan_get_unescape(scanner, 
+					 &pjsip_TEL_PARSING_PVALUE_SPEC_ESC,
+					 &pvalue);
+#		else
+		    pj_scan_get(scanner, &pjsip_TEL_PARSING_PVALUE_SPEC, 
+				&pvalue);
+		    pvalue = pj_str_unescape(pool, &pvalue);
+#		endif
+
+	    } else {
+		pvalue.slen = 0;
+		pvalue.ptr = NULL;
+	    }
+
+	    /* Save the parameters. */
+	    if (pj_stricmp_alnum(&pname, &pjsip_ISUB_STR)==0) {
+		uri->isub_param = pvalue;
+	    } else if (pj_stricmp_alnum(&pname, &pjsip_EXT_STR)==0) {
+		uri->ext_param = pvalue;
+	    } else if (pj_stricmp_alnum(&pname, &pjsip_PH_CTX_STR)==0) {
+		uri->context = pvalue;
+	    } else {
+		pjsip_param *param = PJ_POOL_ALLOC_T(pool, pjsip_param);
+		param->name = pname;
+		param->value = pvalue;
+		pj_list_insert_before(&uri->other_param, param);
+	    }
+
+	} while (*scanner->curptr==';');
+    }
+
+    scanner->skip_ws = skip_ws;
+    pj_scan_skip_whitespace(scanner);
+    return uri;
+}
+
diff --git a/jni/pjproject-android/.svn/pristine/a2/a2a1226261d0544ba88f92512d37555ed69c350d.svn-base b/jni/pjproject-android/.svn/pristine/a2/a2a1226261d0544ba88f92512d37555ed69c350d.svn-base
new file mode 100644
index 0000000..b7458c3
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a2a1226261d0544ba88f92512d37555ed69c350d.svn-base
@@ -0,0 +1,17 @@
+# $Id$
+#
+from inc_cfg import *
+
+# Call with PCMA codec
+test_param = TestParam(
+		"PESQ codec PCMA (RX side uses snd dev)",
+		[
+			InstanceParam("UA1", "--max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav --null-audio"),
+			InstanceParam("UA2", "--max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file  wavs/tmp.8.wav   --auto-answer 200")
+		]
+		)
+
+if (HAS_SND_DEV == 0):
+	test_param.skip = True
+
+pesq_threshold = 3.5
diff --git a/jni/pjproject-android/.svn/pristine/a2/a2d54087fdc5e605dc02b8cefd2fdaebb4f0d18f.svn-base b/jni/pjproject-android/.svn/pristine/a2/a2d54087fdc5e605dc02b8cefd2fdaebb4f0d18f.svn-base
new file mode 100644
index 0000000..e20db73
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a2d54087fdc5e605dc02b8cefd2fdaebb4f0d18f.svn-base
@@ -0,0 +1,16 @@
+# Don't change the "export PJ_VERSION_xxx" style, they are parsed by setup.py
+export PJ_VERSION_MAJOR  := 2
+export PJ_VERSION_MINOR  := 1
+export PJ_VERSION_REV    := 0
+export PJ_VERSION_SUFFIX := -svn
+
+export PJ_VERSION := $(PJ_VERSION_MAJOR).$(PJ_VERSION_MINOR)
+
+ifneq ($(PJ_VERSION_REV),)
+export PJ_VERSION := $(PJ_VERSION).$(PJ_VERSION_REV)
+endif
+
+ifneq ($(PJ_VERSION_SUFFIX),)
+export PJ_VERSION := $(PJ_VERSION)$(PJ_VERSION_SUFFIX)
+endif
+
diff --git a/jni/pjproject-android/.svn/pristine/a2/a2e939340c87b4c7d594954d8e2bb5e45f1ec596.svn-base b/jni/pjproject-android/.svn/pristine/a2/a2e939340c87b4c7d594954d8e2bb5e45f1ec596.svn-base
new file mode 100644
index 0000000..299017c
--- /dev/null
+++ b/jni/pjproject-android/.svn/pristine/a2/a2e939340c87b4c7d594954d8e2bb5e45f1ec596.svn-base
@@ -0,0 +1 @@
+#include "../../../portaudio/src/common/pa_debugprint.c"