* #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"