diff --git a/trunk/android-projects/makefile b/trunk/android-projects/makefile
index e39ddd44..ed77f8d3 100644
--- a/trunk/android-projects/makefile
+++ b/trunk/android-projects/makefile
@@ -24,6 +24,7 @@ clean:
else ##### All other libraries (tiny*)
all:
(cd ../$(PROJECT) ; $(MAKE) -f droid-makefile all; $(MAKE) -f droid-makefile install; cp --force lib$(PROJECT).$(EXT) $(OUTPUT_DIR))
+test:
(cd ../$(PROJECT)/test; $(MAKE) -f droid-makefile all; $(MAKE) -f droid-makefile install; cp --force test $(OUTPUT_DIR))
clean:
diff --git a/trunk/android-projects/root.mk b/trunk/android-projects/root.mk
index 330c7877..8a4cd332 100644
--- a/trunk/android-projects/root.mk
+++ b/trunk/android-projects/root.mk
@@ -2,9 +2,9 @@
## Root configuration file shared by all android projects.
######
-export ANDROID_NDK_ROOT=/cygdrive/c/android-ndk
+export ANDROID_NDK_ROOT=/cygdrive/c/android-ndk-r3
export ANDROID_SDK_ROOT=/cygdrive/c/android-sdk
-export ANDROID_PLATFORM=$(ANDROID_NDK_ROOT)/build/platforms/android-4
+export ANDROID_PLATFORM=$(ANDROID_NDK_ROOT)/build/platforms/android-5
# Output directory
export OUTPUT_DIR=$(shell pwd)/output
@@ -18,6 +18,7 @@ export LIB_DIR=/system/lib
export AR=arm-eabi-ar
export CC=arm-eabi-gcc
export CPP=arm-eabi-g++
+
export CFLAGS+=$(DEBUG_FLAGS) -I$(ANDROID_PLATFORM)/arch-arm/usr/include \
-march=armv5te \
-mtune=xscale \
@@ -47,9 +48,8 @@ export LDFLAGS_COMMON+=-nostdlib -lc -L$(OUTPUT_DIR)
ifeq ($(BT), static)
export EXT=a
export LDFLAGS=
- export LD_O=
- export LINK_LIB=$(AR) crs
+ export CFLAGS+=-static
else
export EXT=so
@@ -57,7 +57,4 @@ else
export LDFLAGS+=-Wl,--no-undefined
export LDFLAGS+=-Wl,--no-whole-archive
export LDFLAGS+=-Wl,-soname,lib$(PROJECT).$(EXT),-Bsymbolic,-shared,--whole-archive
-
- export LD_O=-o
- export LINK_LIB = $(CC)
endif
diff --git a/trunk/bindings/csharp/test/Program.cs b/trunk/bindings/csharp/test/Program.cs
index 76762373..4ba721f9 100644
--- a/trunk/bindings/csharp/test/Program.cs
+++ b/trunk/bindings/csharp/test/Program.cs
@@ -40,7 +40,7 @@ namespace test
success = stack.start();
/* Set Password */
- stack.setPassword(PASSWORD);
+ //stack.setPassword(PASSWORD);
/* Send REGISTER */
regSession = new RegistrationSession(stack);
@@ -48,10 +48,10 @@ namespace test
regSession.addCaps("+g.3gpp.smsip");
regSession.addCaps("language", "\"en,fr\"");
regSession.setExpires(35);
- //regSession.Register();
+ regSession.Register();
/* Send SUBSCRIBE(reg) */
- subSession = new SubscriptionSession(stack);
+ /*subSession = new SubscriptionSession(stack);
subSession.addHeader("Event", "reg");
subSession.addHeader("Accept", "application/reginfo+xml");
subSession.addHeader("Allow-Events", "refer, presence, presence.winfo, xcap-diff, conference");
@@ -59,7 +59,7 @@ namespace test
//String s = "H\x00\x15eg\x09\x20mamadou";
//subSession.setPayload(s, (uint)s.Length);
- subSession.Subscribe();
+ subSession.Subscribe();*/
Console.Read();
diff --git a/trunk/bindings/csharp/tsip_subscribe_event_type_t.cs b/trunk/bindings/csharp/tsip_subscribe_event_type_t.cs
new file mode 100644
index 00000000..1ac98e25
--- /dev/null
+++ b/trunk/bindings/csharp/tsip_subscribe_event_type_t.cs
@@ -0,0 +1,23 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+
+public enum tsip_subscribe_event_type_t {
+ tsip_i_subscribe,
+ tsip_ai_subscribe,
+ tsip_o_subscribe,
+ tsip_ao_subscribe,
+ tsip_i_unsubscribe,
+ tsip_ai_unsubscribe,
+ tsip_o_unsubscribe,
+ tsip_ao_unsubscribe,
+ tsip_i_notify,
+ tsip_ai_notify,
+ tsip_o_notify,
+ tsip_ao_notify
+}
diff --git a/trunk/bindings/java/SWIGTYPE_p_tsip_subscribe_event_type_t.java b/trunk/bindings/java/SWIGTYPE_p_tsip_subscribe_event_type_t.java
deleted file mode 100644
index 2c698464..00000000
--- a/trunk/bindings/java/SWIGTYPE_p_tsip_subscribe_event_type_t.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/* ----------------------------------------------------------------------------
- * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
- *
- * Do not make changes to this file unless you know what you are doing--modify
- * the SWIG interface file instead.
- * ----------------------------------------------------------------------------- */
-
-package org.doubango.tinyWRAP;
-
-public class SWIGTYPE_p_tsip_subscribe_event_type_t {
- private long swigCPtr;
-
- protected SWIGTYPE_p_tsip_subscribe_event_type_t(long cPtr, boolean futureUse) {
- swigCPtr = cPtr;
- }
-
- protected SWIGTYPE_p_tsip_subscribe_event_type_t() {
- swigCPtr = 0;
- }
-
- protected static long getCPtr(SWIGTYPE_p_tsip_subscribe_event_type_t obj) {
- return (obj == null) ? 0 : obj.swigCPtr;
- }
-}
-
diff --git a/trunk/bindings/java/droid-makefile b/trunk/bindings/java/droid-makefile
index aec1e6d6..ee95fe3c 100644
--- a/trunk/bindings/java/droid-makefile
+++ b/trunk/bindings/java/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -fno-rtti -fno-exceptions -I../_common -I../. -I../../tinySAK/src -I../../tinyNET/src -I../../tinyHTTP/include -I../../tinySIP/include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -lstdc++ -ltinySAK -ltinyNET -ltinySIP
+LDFLAGS := $(LDFLAGS) -lstdc++ -ltinySAK -ltinyHTTP -ltinyIPSec -ltinyNET -ltinySIP
@@ -19,8 +19,13 @@ OBJS = tinyWRAP_wrap.o\
../_common/SubscriptionEvent.o \
../_common/SubscriptionSession.o
+
$(APP): $(OBJS)
- $(CPP) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.cxx
$(CPP) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/bindings/java/droid-test/.project b/trunk/bindings/java/droid-test/.project
index bb63fdd7..9cef5645 100644
--- a/trunk/bindings/java/droid-test/.project
+++ b/trunk/bindings/java/droid-test/.project
@@ -69,7 +69,7 @@
libs/armeabi/libtinyWRAP.so
1
- C:/doubango/android-projects/output/libtinyWRAP.so
+ C:/Projects/Doubango/android-projects/output/libtinyWRAP.so
diff --git a/trunk/bindings/java/droid-test/AndroidManifest.xml b/trunk/bindings/java/droid-test/AndroidManifest.xml
index 646c370d..306e59be 100644
--- a/trunk/bindings/java/droid-test/AndroidManifest.xml
+++ b/trunk/bindings/java/droid-test/AndroidManifest.xml
@@ -1,9 +1,9 @@
-
+
@@ -16,5 +16,9 @@
+
+
+
+
\ No newline at end of file
diff --git a/trunk/bindings/java/droid-test/gen/org/doubango/test/R.java b/trunk/bindings/java/droid-test/gen/org/doubango/test/R.java
new file mode 100644
index 00000000..b3cf0c28
--- /dev/null
+++ b/trunk/bindings/java/droid-test/gen/org/doubango/test/R.java
@@ -0,0 +1,23 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package org.doubango.test;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int icon=0x7f020000;
+ }
+ public static final class layout {
+ public static final int main=0x7f030000;
+ }
+ public static final class string {
+ public static final int app_name=0x7f040001;
+ public static final int hello=0x7f040000;
+ }
+}
diff --git a/trunk/bindings/java/droid-test/res/drawable/icon.png b/trunk/bindings/java/droid-test/res/drawable/icon.png
new file mode 100644
index 00000000..a07c69fa
Binary files /dev/null and b/trunk/bindings/java/droid-test/res/drawable/icon.png differ
diff --git a/trunk/bindings/java/droid-test/res/layout/main.xml b/trunk/bindings/java/droid-test/res/layout/main.xml
new file mode 100644
index 00000000..3a5f117d
--- /dev/null
+++ b/trunk/bindings/java/droid-test/res/layout/main.xml
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/trunk/bindings/java/droid-test/res/values/strings.xml b/trunk/bindings/java/droid-test/res/values/strings.xml
new file mode 100644
index 00000000..89dc1978
--- /dev/null
+++ b/trunk/bindings/java/droid-test/res/values/strings.xml
@@ -0,0 +1,5 @@
+
+
+ Hello World, Main!
+ doubango
+
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/test/Main.java b/trunk/bindings/java/droid-test/src/org/doubango/test/Main.java
new file mode 100644
index 00000000..f0c6bdda
--- /dev/null
+++ b/trunk/bindings/java/droid-test/src/org/doubango/test/Main.java
@@ -0,0 +1,139 @@
+package org.doubango.test;
+
+import org.doubango.tinyWRAP.RegistrationEvent;
+import org.doubango.tinyWRAP.RegistrationSession;
+import org.doubango.tinyWRAP.SipCallback;
+import org.doubango.tinyWRAP.SipStack;
+
+import android.app.Activity;
+import android.net.DhcpInfo;
+import android.net.wifi.WifiInfo;
+import android.net.wifi.WifiManager;
+import android.os.Bundle;
+
+public class Main extends Activity {
+
+ final String REALM = "ericsson.com";
+ final String USER = "mamadou";
+ final String PROXY_CSCF_IP = "192.168.0.13";
+ //final String PASSWORD = null;
+ final int PROXY_CSCF_PORT = 5081;
+
+ private String getDns1()
+ {
+ WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+ String[] dhcpInfos = wifiManager.getDhcpInfo().toString().split(" ");
+ int i = 0;
+
+ while (i++ < dhcpInfos.length) {
+ if (dhcpInfos[i-1].equals("dns1")) {
+ return dhcpInfos[i];
+ }
+ }
+ return null;
+ }
+
+ private String getLocalIP(){
+ WifiManager wifiManager = (WifiManager) getSystemService(WIFI_SERVICE);
+ WifiInfo wifiInfo = wifiManager.getConnectionInfo();
+ int ipAddress = wifiInfo.getIpAddress(); /*what about IPv6?*/
+
+ if(ipAddress != 0){
+ return String.format("%d.%d.%d.%d",
+ (ipAddress>>0)&0xFF,
+ (ipAddress>>8)&0xFF,
+ (ipAddress>>16)&0xFF,
+ (ipAddress>>24)&0xFF
+ );
+ }
+ else{
+ return null;
+ }
+ }
+
+ /** Called when the activity is first created. */
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ @SuppressWarnings("unused")
+ boolean success;
+
+ /* Create call back */
+ callback = new MyCallback();
+ /* Create and configure the IMS/LTE stack */
+ stack = new SipStack(callback, String.format("sip:%s", REALM), String.format("%s@%s", USER, REALM), String.format("sip:%s@%s", USER, REALM));
+ stack.addHeader("Privacy", "INVITE, ACK, CANCEL, BYE, MESSAGE, OPTIONS, NOTIFY, PRACK, UPDATE, REFER");
+ stack.addHeader("P-Access-Network-Info", "ADSL;utran-cell-id-3gpp=00000000");
+ stack.addHeader("User-Agent", "IM-client/OMA1.0 doubango/v1.0.0");
+
+ /* Sets Proxy-CSCF */
+ success = stack.setProxyCSCF(PROXY_CSCF_IP, PROXY_CSCF_PORT, "tcp", "ipv4");
+ /* Sets Local IP if we are on the emulator */
+ /*if(android.provider.Settings.Secure.ANDROID_ID == null)*/{
+ String localIP, dns1;
+ if((localIP = this.getLocalIP()) == null){
+ localIP = "10.0.2.15";
+ }
+ dns1 = this.getDns1();
+ success = stack.setLocalIP(localIP);
+ }
+ /* Set Password */
+ //success = stack.setPassword(PASSWORD);
+ /* Starts the stack */
+ success = stack.start();
+
+ /* Send REGISTER */
+ regSession = new RegistrationSession(stack);
+ regSession.addCaps("+g.oma.sip-im");
+ regSession.addCaps("+g.3gpp.smsip");
+ regSession.addCaps("language", "\"en,fr\"");
+ regSession.setExpires(30);
+ if((success = regSession.Register())){
+ }
+
+
+ }
+
+
+ static RegistrationSession regSession;
+ static MyCallback callback;
+ static SipStack stack;
+
+
+
+ static {
+ try {
+ System.loadLibrary("tinyWRAP");
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Native code library failed to load.\n" + e);
+ System.exit(1);
+ }
+ catch(Exception e){
+ e.printStackTrace();
+ }
+ }
+}
+
+
+class MyCallback extends SipCallback
+{
+ public MyCallback()
+ {
+ super();
+ }
+
+ public int OnRegistrationChanged(RegistrationEvent e)
+ {
+ short code = e.getCode();
+ //tsip_event_type_t type = e.getType();
+
+ //RegistrationSession session = (RegistrationSession) e.getSession();
+
+ System.out.println("Code=" + code);
+ System.out.println("Phrase=" + e.getPhrase());
+
+ return 0;
+ }
+}
\ No newline at end of file
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationEvent.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationEvent.java
index d6f22815..d2fe11dc 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationEvent.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationEvent.java
@@ -39,8 +39,12 @@ public class RegistrationEvent extends SipEvent {
this(tinyWRAPJNI.new_RegistrationEvent(), true);
}
- public RegistrationSession getSession2() {
- long cPtr = tinyWRAPJNI.RegistrationEvent_getSession2(swigCPtr, this);
+ public tsip_register_event_type_t getType() {
+ return tsip_register_event_type_t.swigToEnum(tinyWRAPJNI.RegistrationEvent_getType(swigCPtr, this));
+ }
+
+ public RegistrationSession getSession() {
+ long cPtr = tinyWRAPJNI.RegistrationEvent_getSession(swigCPtr, this);
return (cPtr == 0) ? null : new RegistrationSession(cPtr, false);
}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationSession.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationSession.java
index be5f97c5..020e5527 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationSession.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/RegistrationSession.java
@@ -39,8 +39,8 @@ public class RegistrationSession extends SipSession {
this(tinyWRAPJNI.new_RegistrationSession(SipStack.getCPtr(Stack), Stack), true);
}
- public boolean Register(long expires) {
- return tinyWRAPJNI.RegistrationSession_Register(swigCPtr, this, expires);
+ public boolean Register() {
+ return tinyWRAPJNI.RegistrationSession_Register(swigCPtr, this);
}
public boolean UnRegister() {
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipCallback.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipCallback.java
index 22af0f56..6f8b8dd0 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipCallback.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipCallback.java
@@ -59,4 +59,8 @@ public class SipCallback {
return (getClass() == SipCallback.class) ? tinyWRAPJNI.SipCallback_OnRegistrationChanged(swigCPtr, this, RegistrationEvent.getCPtr(e), e) : tinyWRAPJNI.SipCallback_OnRegistrationChangedSwigExplicitSipCallback(swigCPtr, this, RegistrationEvent.getCPtr(e), e);
}
+ public int OnSubscriptionChanged(SubscriptionEvent e) {
+ return (getClass() == SipCallback.class) ? tinyWRAPJNI.SipCallback_OnSubscriptionChanged(swigCPtr, this, SubscriptionEvent.getCPtr(e), e) : tinyWRAPJNI.SipCallback_OnSubscriptionChangedSwigExplicitSipCallback(swigCPtr, this, SubscriptionEvent.getCPtr(e), e);
+ }
+
}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipEvent.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipEvent.java
index f1619d52..476e077f 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipEvent.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipEvent.java
@@ -36,11 +36,7 @@ public class SipEvent {
}
public SipEvent() {
- this(tinyWRAPJNI.new_SipEvent__SWIG_0(), true);
- }
-
- public SipEvent(short code, String phrase) {
- this(tinyWRAPJNI.new_SipEvent__SWIG_1(code, phrase), true);
+ this(tinyWRAPJNI.new_SipEvent(), true);
}
public short getCode() {
@@ -51,12 +47,8 @@ public class SipEvent {
return tinyWRAPJNI.SipEvent_getPhrase(swigCPtr, this);
}
- public tsip_event_type_t getType() {
- return tsip_event_type_t.swigToEnum(tinyWRAPJNI.SipEvent_getType(swigCPtr, this));
- }
-
- public SipSession getSession() {
- long cPtr = tinyWRAPJNI.SipEvent_getSession(swigCPtr, this);
+ public SipSession getBaseSession() {
+ long cPtr = tinyWRAPJNI.SipEvent_getBaseSession(swigCPtr, this);
return (cPtr == 0) ? null : new SipSession(cPtr, false);
}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipSession.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipSession.java
index 71a15b07..e5d7ebc4 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipSession.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipSession.java
@@ -71,4 +71,8 @@ public class SipSession {
return tinyWRAPJNI.SipSession_setToUri(swigCPtr, this, toUri);
}
+ public boolean setPayload(String str, long len) {
+ return tinyWRAPJNI.SipSession_setPayload(swigCPtr, this, str, len);
+ }
+
}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipStack.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipStack.java
index 95e1b72b..64335f45 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipStack.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SipStack.java
@@ -39,8 +39,12 @@ public class SipStack extends SafeObject {
this(tinyWRAPJNI.new_SipStack(SipCallback.getCPtr(callback), callback, realm_uri, impi_uri, impu_uri), true);
}
- public boolean Start() {
- return tinyWRAPJNI.SipStack_Start(swigCPtr, this);
+ public boolean start() {
+ return tinyWRAPJNI.SipStack_start(swigCPtr, this);
+ }
+
+ public boolean setPassword(String password) {
+ return tinyWRAPJNI.SipStack_setPassword(swigCPtr, this, password);
}
public boolean setProxyCSCF(String fqdn, long port, String transport, String ipversion) {
@@ -63,8 +67,8 @@ public class SipStack extends SafeObject {
return tinyWRAPJNI.SipStack_removeHeader(swigCPtr, this, name);
}
- public boolean Stop() {
- return tinyWRAPJNI.SipStack_Stop(swigCPtr, this);
+ public boolean stop() {
+ return tinyWRAPJNI.SipStack_stop(swigCPtr, this);
}
}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SubscriptionEvent.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SubscriptionEvent.java
new file mode 100644
index 00000000..1f131025
--- /dev/null
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SubscriptionEvent.java
@@ -0,0 +1,51 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package org.doubango.tinyWRAP;
+
+public class SubscriptionEvent extends SipEvent {
+ private long swigCPtr;
+
+ protected SubscriptionEvent(long cPtr, boolean cMemoryOwn) {
+ super(tinyWRAPJNI.SWIGSubscriptionEventUpcast(cPtr), cMemoryOwn);
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(SubscriptionEvent obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected void finalize() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ tinyWRAPJNI.delete_SubscriptionEvent(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ super.delete();
+ }
+
+ public SubscriptionEvent() {
+ this(tinyWRAPJNI.new_SubscriptionEvent(), true);
+ }
+
+ public tsip_subscribe_event_type_t getType() {
+ return tsip_subscribe_event_type_t.swigToEnum(tinyWRAPJNI.SubscriptionEvent_getType(swigCPtr, this));
+ }
+
+ public SubscriptionSession getSession() {
+ long cPtr = tinyWRAPJNI.SubscriptionEvent_getSession(swigCPtr, this);
+ return (cPtr == 0) ? null : new SubscriptionSession(cPtr, false);
+ }
+
+}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SubscriptionSession.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SubscriptionSession.java
new file mode 100644
index 00000000..3ce5f44b
--- /dev/null
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/SubscriptionSession.java
@@ -0,0 +1,50 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package org.doubango.tinyWRAP;
+
+public class SubscriptionSession extends SipSession {
+ private long swigCPtr;
+
+ protected SubscriptionSession(long cPtr, boolean cMemoryOwn) {
+ super(tinyWRAPJNI.SWIGSubscriptionSessionUpcast(cPtr), cMemoryOwn);
+ swigCPtr = cPtr;
+ }
+
+ protected static long getCPtr(SubscriptionSession obj) {
+ return (obj == null) ? 0 : obj.swigCPtr;
+ }
+
+ protected void finalize() {
+ delete();
+ }
+
+ public synchronized void delete() {
+ if (swigCPtr != 0) {
+ if (swigCMemOwn) {
+ swigCMemOwn = false;
+ tinyWRAPJNI.delete_SubscriptionSession(swigCPtr);
+ }
+ swigCPtr = 0;
+ }
+ super.delete();
+ }
+
+ public SubscriptionSession(SipStack Stack) {
+ this(tinyWRAPJNI.new_SubscriptionSession(SipStack.getCPtr(Stack), Stack), true);
+ }
+
+ public boolean Subscribe() {
+ return tinyWRAPJNI.SubscriptionSession_Subscribe(swigCPtr, this);
+ }
+
+ public boolean UnSubscribe() {
+ return tinyWRAPJNI.SubscriptionSession_UnSubscribe(swigCPtr, this);
+ }
+
+}
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tinyWRAPJNI.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tinyWRAPJNI.java
index 92804894..39a9dbe5 100644
--- a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tinyWRAPJNI.java
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tinyWRAPJNI.java
@@ -9,13 +9,11 @@
package org.doubango.tinyWRAP;
class tinyWRAPJNI {
- public final static native long new_SipEvent__SWIG_0();
- public final static native long new_SipEvent__SWIG_1(short jarg1, String jarg2);
+ public final static native long new_SipEvent();
public final static native void delete_SipEvent(long jarg1);
public final static native short SipEvent_getCode(long jarg1, SipEvent jarg1_);
public final static native String SipEvent_getPhrase(long jarg1, SipEvent jarg1_);
- public final static native int SipEvent_getType(long jarg1, SipEvent jarg1_);
- public final static native long SipEvent_getSession(long jarg1, SipEvent jarg1_);
+ public final static native long SipEvent_getBaseSession(long jarg1, SipEvent jarg1_);
public final static native long new_SipSession(long jarg1, SipStack jarg1_);
public final static native void delete_SipSession(long jarg1);
public final static native boolean SipSession_addHeader(long jarg1, SipSession jarg1_, String jarg2, String jarg3);
@@ -26,17 +24,29 @@ class tinyWRAPJNI {
public final static native boolean SipSession_setExpires(long jarg1, SipSession jarg1_, long jarg2);
public final static native boolean SipSession_setFromUri(long jarg1, SipSession jarg1_, String jarg2);
public final static native boolean SipSession_setToUri(long jarg1, SipSession jarg1_, String jarg2);
+ public final static native boolean SipSession_setPayload(long jarg1, SipSession jarg1_, String jarg2, long jarg3);
public final static native long new_RegistrationEvent();
public final static native void delete_RegistrationEvent(long jarg1);
- public final static native long RegistrationEvent_getSession2(long jarg1, RegistrationEvent jarg1_);
+ public final static native int RegistrationEvent_getType(long jarg1, RegistrationEvent jarg1_);
+ public final static native long RegistrationEvent_getSession(long jarg1, RegistrationEvent jarg1_);
public final static native long new_RegistrationSession(long jarg1, SipStack jarg1_);
public final static native void delete_RegistrationSession(long jarg1);
- public final static native boolean RegistrationSession_Register(long jarg1, RegistrationSession jarg1_, long jarg2);
+ public final static native boolean RegistrationSession_Register(long jarg1, RegistrationSession jarg1_);
public final static native boolean RegistrationSession_UnRegister(long jarg1, RegistrationSession jarg1_);
+ public final static native long new_SubscriptionEvent();
+ public final static native void delete_SubscriptionEvent(long jarg1);
+ public final static native int SubscriptionEvent_getType(long jarg1, SubscriptionEvent jarg1_);
+ public final static native long SubscriptionEvent_getSession(long jarg1, SubscriptionEvent jarg1_);
+ public final static native long new_SubscriptionSession(long jarg1, SipStack jarg1_);
+ public final static native void delete_SubscriptionSession(long jarg1);
+ public final static native boolean SubscriptionSession_Subscribe(long jarg1, SubscriptionSession jarg1_);
+ public final static native boolean SubscriptionSession_UnSubscribe(long jarg1, SubscriptionSession jarg1_);
public final static native long new_SipCallback();
public final static native void delete_SipCallback(long jarg1);
public final static native int SipCallback_OnRegistrationChanged(long jarg1, SipCallback jarg1_, long jarg2, RegistrationEvent jarg2_);
public final static native int SipCallback_OnRegistrationChangedSwigExplicitSipCallback(long jarg1, SipCallback jarg1_, long jarg2, RegistrationEvent jarg2_);
+ public final static native int SipCallback_OnSubscriptionChanged(long jarg1, SipCallback jarg1_, long jarg2, SubscriptionEvent jarg2_);
+ public final static native int SipCallback_OnSubscriptionChangedSwigExplicitSipCallback(long jarg1, SipCallback jarg1_, long jarg2, SubscriptionEvent jarg2_);
public final static native void SipCallback_director_connect(SipCallback obj, long cptr, boolean mem_own, boolean weak_global);
public final static native void SipCallback_change_ownership(SipCallback obj, long cptr, boolean take_or_release);
public final static native long new_SafeObject();
@@ -45,20 +55,26 @@ class tinyWRAPJNI {
public final static native int SafeObject_UnLock(long jarg1, SafeObject jarg1_);
public final static native long new_SipStack(long jarg1, SipCallback jarg1_, String jarg2, String jarg3, String jarg4);
public final static native void delete_SipStack(long jarg1);
- public final static native boolean SipStack_Start(long jarg1, SipStack jarg1_);
+ public final static native boolean SipStack_start(long jarg1, SipStack jarg1_);
+ public final static native boolean SipStack_setPassword(long jarg1, SipStack jarg1_, String jarg2);
public final static native boolean SipStack_setProxyCSCF(long jarg1, SipStack jarg1_, String jarg2, long jarg3, String jarg4, String jarg5);
public final static native boolean SipStack_setLocalIP(long jarg1, SipStack jarg1_, String jarg2);
public final static native boolean SipStack_setLocalPort(long jarg1, SipStack jarg1_, long jarg2);
public final static native boolean SipStack_addHeader(long jarg1, SipStack jarg1_, String jarg2, String jarg3);
public final static native boolean SipStack_removeHeader(long jarg1, SipStack jarg1_, String jarg2);
- public final static native boolean SipStack_Stop(long jarg1, SipStack jarg1_);
+ public final static native boolean SipStack_stop(long jarg1, SipStack jarg1_);
public final static native long SWIGRegistrationEventUpcast(long jarg1);
public final static native long SWIGRegistrationSessionUpcast(long jarg1);
+ public final static native long SWIGSubscriptionEventUpcast(long jarg1);
+ public final static native long SWIGSubscriptionSessionUpcast(long jarg1);
public final static native long SWIGSipStackUpcast(long jarg1);
public static int SwigDirector_SipCallback_OnRegistrationChanged(SipCallback self, long e) {
return self.OnRegistrationChanged((e == 0) ? null : new RegistrationEvent(e, false));
}
+ public static int SwigDirector_SipCallback_OnSubscriptionChanged(SipCallback self, long e) {
+ return self.OnSubscriptionChanged((e == 0) ? null : new SubscriptionEvent(e, false));
+ }
private final static native void swig_module_init();
static {
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tsip_register_event_type_t.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tsip_register_event_type_t.java
new file mode 100644
index 00000000..23b8d8d6
--- /dev/null
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tsip_register_event_type_t.java
@@ -0,0 +1,60 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package org.doubango.tinyWRAP;
+
+public final class tsip_register_event_type_t {
+ public final static tsip_register_event_type_t tsip_i_register = new tsip_register_event_type_t("tsip_i_register");
+ public final static tsip_register_event_type_t tsip_ai_register = new tsip_register_event_type_t("tsip_ai_register");
+ public final static tsip_register_event_type_t tsip_o_register = new tsip_register_event_type_t("tsip_o_register");
+ public final static tsip_register_event_type_t tsip_ao_register = new tsip_register_event_type_t("tsip_ao_register");
+ public final static tsip_register_event_type_t tsip_i_unregister = new tsip_register_event_type_t("tsip_i_unregister");
+ public final static tsip_register_event_type_t tsip_ai_unregister = new tsip_register_event_type_t("tsip_ai_unregister");
+ public final static tsip_register_event_type_t tsip_o_unregister = new tsip_register_event_type_t("tsip_o_unregister");
+ public final static tsip_register_event_type_t tsip_ao_unregister = new tsip_register_event_type_t("tsip_ao_unregister");
+
+ public final int swigValue() {
+ return swigValue;
+ }
+
+ public String toString() {
+ return swigName;
+ }
+
+ public static tsip_register_event_type_t swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
+ return swigValues[swigValue];
+ for (int i = 0; i < swigValues.length; i++)
+ if (swigValues[i].swigValue == swigValue)
+ return swigValues[i];
+ throw new IllegalArgumentException("No enum " + tsip_register_event_type_t.class + " with value " + swigValue);
+ }
+
+ private tsip_register_event_type_t(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext++;
+ }
+
+ private tsip_register_event_type_t(String swigName, int swigValue) {
+ this.swigName = swigName;
+ this.swigValue = swigValue;
+ swigNext = swigValue+1;
+ }
+
+ private tsip_register_event_type_t(String swigName, tsip_register_event_type_t swigEnum) {
+ this.swigName = swigName;
+ this.swigValue = swigEnum.swigValue;
+ swigNext = this.swigValue+1;
+ }
+
+ private static tsip_register_event_type_t[] swigValues = { tsip_i_register, tsip_ai_register, tsip_o_register, tsip_ao_register, tsip_i_unregister, tsip_ai_unregister, tsip_o_unregister, tsip_ao_unregister };
+ private static int swigNext = 0;
+ private final int swigValue;
+ private final String swigName;
+}
+
diff --git a/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tsip_subscribe_event_type_t.java b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tsip_subscribe_event_type_t.java
new file mode 100644
index 00000000..a6bb3ba4
--- /dev/null
+++ b/trunk/bindings/java/droid-test/src/org/doubango/tinyWRAP/tsip_subscribe_event_type_t.java
@@ -0,0 +1,64 @@
+/* ----------------------------------------------------------------------------
+ * This file was automatically generated by SWIG (http://www.swig.org).
+ * Version 1.3.40
+ *
+ * Do not make changes to this file unless you know what you are doing--modify
+ * the SWIG interface file instead.
+ * ----------------------------------------------------------------------------- */
+
+package org.doubango.tinyWRAP;
+
+public final class tsip_subscribe_event_type_t {
+ public final static tsip_subscribe_event_type_t tsip_i_subscribe = new tsip_subscribe_event_type_t("tsip_i_subscribe");
+ public final static tsip_subscribe_event_type_t tsip_ai_subscribe = new tsip_subscribe_event_type_t("tsip_ai_subscribe");
+ public final static tsip_subscribe_event_type_t tsip_o_subscribe = new tsip_subscribe_event_type_t("tsip_o_subscribe");
+ public final static tsip_subscribe_event_type_t tsip_ao_subscribe = new tsip_subscribe_event_type_t("tsip_ao_subscribe");
+ public final static tsip_subscribe_event_type_t tsip_i_unsubscribe = new tsip_subscribe_event_type_t("tsip_i_unsubscribe");
+ public final static tsip_subscribe_event_type_t tsip_ai_unsubscribe = new tsip_subscribe_event_type_t("tsip_ai_unsubscribe");
+ public final static tsip_subscribe_event_type_t tsip_o_unsubscribe = new tsip_subscribe_event_type_t("tsip_o_unsubscribe");
+ public final static tsip_subscribe_event_type_t tsip_ao_unsubscribe = new tsip_subscribe_event_type_t("tsip_ao_unsubscribe");
+ public final static tsip_subscribe_event_type_t tsip_i_notify = new tsip_subscribe_event_type_t("tsip_i_notify");
+ public final static tsip_subscribe_event_type_t tsip_ai_notify = new tsip_subscribe_event_type_t("tsip_ai_notify");
+ public final static tsip_subscribe_event_type_t tsip_o_notify = new tsip_subscribe_event_type_t("tsip_o_notify");
+ public final static tsip_subscribe_event_type_t tsip_ao_notify = new tsip_subscribe_event_type_t("tsip_ao_notify");
+
+ public final int swigValue() {
+ return swigValue;
+ }
+
+ public String toString() {
+ return swigName;
+ }
+
+ public static tsip_subscribe_event_type_t swigToEnum(int swigValue) {
+ if (swigValue < swigValues.length && swigValue >= 0 && swigValues[swigValue].swigValue == swigValue)
+ return swigValues[swigValue];
+ for (int i = 0; i < swigValues.length; i++)
+ if (swigValues[i].swigValue == swigValue)
+ return swigValues[i];
+ throw new IllegalArgumentException("No enum " + tsip_subscribe_event_type_t.class + " with value " + swigValue);
+ }
+
+ private tsip_subscribe_event_type_t(String swigName) {
+ this.swigName = swigName;
+ this.swigValue = swigNext++;
+ }
+
+ private tsip_subscribe_event_type_t(String swigName, int swigValue) {
+ this.swigName = swigName;
+ this.swigValue = swigValue;
+ swigNext = swigValue+1;
+ }
+
+ private tsip_subscribe_event_type_t(String swigName, tsip_subscribe_event_type_t swigEnum) {
+ this.swigName = swigName;
+ this.swigValue = swigEnum.swigValue;
+ swigNext = this.swigValue+1;
+ }
+
+ private static tsip_subscribe_event_type_t[] swigValues = { tsip_i_subscribe, tsip_ai_subscribe, tsip_o_subscribe, tsip_ao_subscribe, tsip_i_unsubscribe, tsip_ai_unsubscribe, tsip_o_unsubscribe, tsip_ao_unsubscribe, tsip_i_notify, tsip_ai_notify, tsip_o_notify, tsip_ao_notify };
+ private static int swigNext = 0;
+ private final int swigValue;
+ private final String swigName;
+}
+
diff --git a/trunk/tinyDEMO/droid-makefile b/trunk/tinyDEMO/droid-makefile
index 89e0a696..492aefff 100644
--- a/trunk/tinyDEMO/droid-makefile
+++ b/trunk/tinyDEMO/droid-makefile
@@ -1,7 +1,7 @@
APP := demo
CFLAGS := $(CFLAGS) -I../tinySAK/src -I../tinyNET/src -I../tinySMS/include -I../tinyHTTP/include -I../tinySIP/include
-LDFLAGS := $(LDFLAGS) -Bsymbolic -lm -ltinySAK -ltinySMS -ltinySIP
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -Wl,--entry=main -lm -ltinySAK -ltinyNET -ltinyHTTP -ltinyIPSec -ltinySMS -ltinySIP
all: $(APP)
diff --git a/trunk/tinyHTTP/droid-makefile b/trunk/tinyHTTP/droid-makefile
index 8b04fa12..7cf1b183 100644
--- a/trunk/tinyHTTP/droid-makefile
+++ b/trunk/tinyHTTP/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I../tinyNET/src -I./include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK -ltinyNET
+LDFLAGS := $(LDFLAGS) -ltinySAK -ltinyNET
all: $(APP)
@@ -37,7 +37,11 @@ OBJS += src/parsers/thttp_parser_header.o\
src/parsers/thttp_parser_url.o
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinyHTTP/ragel/thttp_parser_header.rl b/trunk/tinyHTTP/ragel/thttp_parser_header.rl
index cb74af23..134d56de 100644
--- a/trunk/tinyHTTP/ragel/thttp_parser_header.rl
+++ b/trunk/tinyHTTP/ragel/thttp_parser_header.rl
@@ -486,4 +486,4 @@ int thttp_header_parse(tsk_ragel_state_t *state, thttp_message_t *message)
%%write exec;
return ( cs >= %%{ write first_final; }%% ) ? 0 : -1;
-}
\ No newline at end of file
+}
diff --git a/trunk/tinyHTTP/test/droid-makefile b/trunk/tinyHTTP/test/droid-makefile
index 949aca24..0b559696 100644
--- a/trunk/tinyHTTP/test/droid-makefile
+++ b/trunk/tinyHTTP/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../include -I../../tinySAK/src -I../../tinyNET/src
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -ltinyNET -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -ltinyNET -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinyIPSec/droid-makefile b/trunk/tinyIPSec/droid-makefile
index 53d07730..75eb806b 100644
--- a/trunk/tinyIPSec/droid-makefile
+++ b/trunk/tinyIPSec/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I./src
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK
+LDFLAGS := -ltinySAK $(LDFLAGS)
all: $(APP)
@@ -14,7 +14,11 @@ OBJS = \
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinyIPSec/test/droid-makefile b/trunk/tinyIPSec/test/droid-makefile
index 773c2ed0..a86f36ad 100644
--- a/trunk/tinyIPSec/test/droid-makefile
+++ b/trunk/tinyIPSec/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../src -I../../tinySAK/src
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinyMEDIA/droid-makefile b/trunk/tinyMEDIA/droid-makefile
index 7e748b47..51539f12 100644
--- a/trunk/tinyMEDIA/droid-makefile
+++ b/trunk/tinyMEDIA/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I../tinyNET/src -I../tinySDP/include -I./include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK -ltinyNET -ltinySDP
+LDFLAGS := $(LDFLAGS) -ltinySAK -ltinyNET -ltinySDP
all: $(APP)
@@ -16,7 +16,11 @@ OBJS = \
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinyMEDIA/test/droid-makefile b/trunk/tinyMEDIA/test/droid-makefile
index 1f3e622e..229dfa65 100644
--- a/trunk/tinyMEDIA/test/droid-makefile
+++ b/trunk/tinyMEDIA/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../include -I../../tinySAK/src -I../../tinyNET/src -I../../tinySDP/include
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -ltinyNET -ltinySDP -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -ltinyNET -ltinySDP -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinyNET/droid-makefile b/trunk/tinyNET/droid-makefile
index 8e60b042..7e182477 100644
--- a/trunk/tinyNET/droid-makefile
+++ b/trunk/tinyNET/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I./src
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK
+LDFLAGS := $(LDFLAGS) -ltinySAK
all: $(APP)
@@ -71,7 +71,11 @@ OBJS += src/turn/tnet_turn.o\
src/turn/tnet_turn_message.o
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinyNET/test/droid-makefile b/trunk/tinyNET/test/droid-makefile
index 773c2ed0..e4a506fb 100644
--- a/trunk/tinyNET/test/droid-makefile
+++ b/trunk/tinyNET/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../src -I../../tinySAK/src
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinySAK/droid-makefile b/trunk/tinySAK/droid-makefile
index 3b6b898d..ba0f4965 100644
--- a/trunk/tinySAK/droid-makefile
+++ b/trunk/tinySAK/droid-makefile
@@ -36,7 +36,11 @@ OBJS = src/tsk.o\
src/tsk_xml.o
$(APP): $(OBJS)
- $(LINK_LIB) $(LDFLAGS) $(LD_O) $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinySAK/test/droid-makefile b/trunk/tinySAK/test/droid-makefile
index acad9188..f1a5af95 100644
--- a/trunk/tinySAK/test/droid-makefile
+++ b/trunk/tinySAK/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../src
-LDFLAGS := $(LDFLAGS_COMMON) -l$(PROJECT) -Wl,--entry=main
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinySDP/droid-makefile b/trunk/tinySDP/droid-makefile
index 497889bd..4a546601 100644
--- a/trunk/tinySDP/droid-makefile
+++ b/trunk/tinySDP/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I./include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK
+LDFLAGS := $(LDFLAGS) -ltinySAK
all: $(APP)
@@ -31,7 +31,11 @@ OBJS += src/parsers/tsdp_parser_message.o
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinySDP/test/droid-makefile b/trunk/tinySDP/test/droid-makefile
index 29e1fd3a..4dc3bfe4 100644
--- a/trunk/tinySDP/test/droid-makefile
+++ b/trunk/tinySDP/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../include -I../../tinySAK/src
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinySIP/droid-makefile b/trunk/tinySIP/droid-makefile
index 85e5c317..5ee0f107 100644
--- a/trunk/tinySIP/droid-makefile
+++ b/trunk/tinySIP/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I../tinyNET/src -I../tinyHTTP/include -I../tinyIPSec/src -I../tinySDP/include -I../tinyMEDIA/include -I./include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK -ltinyNET -ltinyHTTP -ltinyIPSec -ltinySDP -ltinyMEDIA
+LDFLAGS := $(LDFLAGS) -ltinySAK -ltinyNET -ltinyHTTP -ltinyIPSec -ltinySDP -ltinyMEDIA
all: $(APP)
@@ -162,7 +162,11 @@ OBJS += src/transports/tsip_transport.o\
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinySIP/test/droid-makefile b/trunk/tinySIP/test/droid-makefile
index 44a7901b..52011fd8 100644
--- a/trunk/tinySIP/test/droid-makefile
+++ b/trunk/tinySIP/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../include -I../../tinySAK/src -I../../tinyNET/src -I../../tinyHTTP/include
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -ltinyNET -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -ltinyNET -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinySMS/droid-makefile b/trunk/tinySMS/droid-makefile
index 5e411e30..e7d297c6 100644
--- a/trunk/tinySMS/droid-makefile
+++ b/trunk/tinySMS/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I./include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK
+LDFLAGS := $(LDFLAGS) -ltinySAK
all: $(APP)
@@ -23,7 +23,11 @@ OBJS += src/tpdu/tsms_tpdu_command.o\
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinySMS/test/droid-makefile b/trunk/tinySMS/test/droid-makefile
index 29e1fd3a..4dc3bfe4 100644
--- a/trunk/tinySMS/test/droid-makefile
+++ b/trunk/tinySMS/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../include -I../../tinySAK/src
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -Wl,--entry=main
all: $(APP)
diff --git a/trunk/tinyXCAP/droid-makefile b/trunk/tinyXCAP/droid-makefile
index 45152691..1026f8f4 100644
--- a/trunk/tinyXCAP/droid-makefile
+++ b/trunk/tinyXCAP/droid-makefile
@@ -1,7 +1,7 @@
-APP := lib$(PROJECT).so
+APP := lib$(PROJECT).$(EXT)
CFLAGS := $(CFLAGS) -I../tinySAK/src -I../tinyNET/src -I../tinyHTTP/include -I./include
-LDFLAGS := $(LDFLAGS) -Wl,-soname,lib$(PROJECT).so,-Bsymbolic,-shared,--whole-archive -ltinySAK -ltinyNET -ltinyHTTP
+LDFLAGS := $(LDFLAGS) -ltinySAK -ltinyNET -ltinyHTTP
all: $(APP)
@@ -15,7 +15,11 @@ OBJS = \
$(APP): $(OBJS)
- $(CC) $(LDFLAGS) -o $@ $^
+ifeq ($(EXT), a)
+ $(AR) rcs $@ $^
+else
+ $(CC) $(LDFLAGS) -o $@ $^
+endif
%.o: %.c
$(CC) -c $(INCLUDE) $(CFLAGS) $< -o $@
diff --git a/trunk/tinyXCAP/test/droid-makefile b/trunk/tinyXCAP/test/droid-makefile
index 627a6ccb..7477fb91 100644
--- a/trunk/tinyXCAP/test/droid-makefile
+++ b/trunk/tinyXCAP/test/droid-makefile
@@ -1,7 +1,7 @@
APP := test
CFLAGS := $(CFLAGS) -I../include -I../../tinySAK/src -I../../tinyNET/src -I../../tinyHTTP/include
-LDFLAGS := $(LDFLAGS) -Bsymbolic -ltinySAK -ltinyNET -ltinyHTTP -l$(PROJECT)
+LDFLAGS := $(LDFLAGS_COMMON) -Wl,-Bsymbolic,--whole-archive -l$(PROJECT) -ltinySAK -ltinyNET -ltinyHTTP -Wl,--entry=main
all: $(APP)
diff --git a/trunk/website/index.html b/trunk/website/index.html
index 6b729291..009e1561 100644
--- a/trunk/website/index.html
+++ b/trunk/website/index.html
@@ -51,7 +51,9 @@
- SIP (RFC 3261, 3GPP TS 24.229 Rel-9)
- - IMS-AKA (RFC 3310, 3GPP TS 33.203)
+ - IMS-AKA (RFC 3310, 3GPP TS 33.203, 35.205, 35.206, 35.207, 35.208 and 35.909)
+
+ - Private extension headers for 3GPP
- IPv4/IPv6 dual stack
@@ -77,7 +79,7 @@
- The tel URI for Telephone Numbers (RFC 3966)
- - SIMPLE
+ - SIP SIMPLE (Presence Subscription/Publication and Pager Mode IM)
- MMTel (UNI)
@@ -87,6 +89,10 @@
- MSRP (RFC 4975 and 5547)
+ - Audio/Video (AMR, Speex, G.711, H.264, H.263, MPEG4...)
+
+ - ...and many other features
+