Index: /pjproject/trunk/build.symbian/pjproject.cww
===================================================================
--- /pjproject/trunk/build.symbian/pjproject.cww	(revision 1242)
+++ /pjproject/trunk/build.symbian/pjproject.cww	(revision 1243)
@@ -316,8 +316,7 @@
         <EDOCTYPE>1</EDOCTYPE>
         <PATH USERELATIVEPATHS = "true">..\pjsip-apps\src\symbian_ua\ua.cpp</PATH>
-        <MAXIMIZED>true</MAXIMIZED>
         <FRAMELOC>
             <X>4</X>
-            <Y>4</Y>
+            <Y>23</Y>
         </FRAMELOC>
         <FRAMESIZE>
@@ -337,4 +336,107 @@
             </GROUPID>
         </DOCKINFO>
+    </WINDOW>
+    <WINDOW>
+        <SESSION>-1</SESSION>
+        <EDOCTYPE>1</EDOCTYPE>
+        <PATH USERELATIVEPATHS = "true">..\pjsip\src\pjsua-lib\pjsua_media.c</PATH>
+        <FRAMELOC>
+            <X>10</X>
+            <Y>40</Y>
+        </FRAMELOC>
+        <FRAMESIZE>
+            <W>630</W>
+            <H>410</H>
+        </FRAMESIZE>
+        <DOCKINFO>
+            <STATUS>0</STATUS>
+            <ROW></ROW>
+            <COLUMN></COLUMN>
+            <DOCKBARID></DOCKBARID>
+            <PCTWIDTH></PCTWIDTH>
+            <HGT></HGT>
+            <GROUPID>
+                <GIDHIGHPART></GIDHIGHPART>
+                <GIDLOWPART></GIDLOWPART>
+            </GROUPID>
+        </DOCKINFO>
+    </WINDOW>
+    <WINDOW>
+        <SESSION>-1</SESSION>
+        <EDOCTYPE>1</EDOCTYPE>
+        <PATH USERELATIVEPATHS = "true">..\pjmedia\src\pjmedia\nullsound.c</PATH>
+        <FRAMELOC>
+            <X>10</X>
+            <Y>40</Y>
+        </FRAMELOC>
+        <FRAMESIZE>
+            <W>630</W>
+            <H>410</H>
+        </FRAMESIZE>
+        <DOCKINFO>
+            <STATUS>0</STATUS>
+            <ROW></ROW>
+            <COLUMN></COLUMN>
+            <DOCKBARID></DOCKBARID>
+            <PCTWIDTH></PCTWIDTH>
+            <HGT></HGT>
+            <GROUPID>
+                <GIDHIGHPART></GIDHIGHPART>
+                <GIDLOWPART></GIDLOWPART>
+            </GROUPID>
+        </DOCKINFO>
+    </WINDOW>
+    <WINDOW>
+        <SESSION>-1</SESSION>
+        <EDOCTYPE>1</EDOCTYPE>
+        <PATH USERELATIVEPATHS = "true">..\pjmedia\include\pjmedia\sound.h</PATH>
+        <FRAMELOC>
+            <X>10</X>
+            <Y>40</Y>
+        </FRAMELOC>
+        <FRAMESIZE>
+            <W>630</W>
+            <H>410</H>
+        </FRAMESIZE>
+        <DOCKINFO>
+            <STATUS>0</STATUS>
+            <ROW></ROW>
+            <COLUMN></COLUMN>
+            <DOCKBARID></DOCKBARID>
+            <PCTWIDTH></PCTWIDTH>
+            <HGT></HGT>
+            <GROUPID>
+                <GIDHIGHPART></GIDHIGHPART>
+                <GIDLOWPART></GIDLOWPART>
+            </GROUPID>
+        </DOCKINFO>
+    </WINDOW>
+    <WINDOW>
+        <SESSION>-1</SESSION>
+        <EDOCTYPE>20</EDOCTYPE>
+        <MAXIMIZED>true</MAXIMIZED>
+        <FRAMELOC>
+            <X>0</X>
+            <Y>0</Y>
+        </FRAMELOC>
+        <FRAMESIZE>
+            <W>824</W>
+            <H>1521</H>
+        </FRAMESIZE>
+        <DOCKINFO>
+            <STATUS>0</STATUS>
+            <ROW></ROW>
+            <COLUMN></COLUMN>
+            <DOCKBARID></DOCKBARID>
+            <PCTWIDTH></PCTWIDTH>
+            <HGT></HGT>
+            <GROUPID>
+                <GIDHIGHPART></GIDHIGHPART>
+                <GIDLOWPART></GIDLOWPART>
+            </GROUPID>
+        </DOCKINFO>
+            <SYMBOLICSWINSETTINGS EXECUTABLEPATH = "C:\Symbian\9.1\S60_3rd\EPOC32\RELEASE\WINSCW\UDEB\euser.dll" MACHINENAME = "Local Windows PC"/>
+            <SYMBOLICSWINSETTINGS EXECUTABLEPATH = "C:\Symbian\9.1\S60_3rd\EPOC32\RELEASE\WINSCW\UDEB\ekern.exe" MACHINENAME = "Local Windows PC"/>
+            <SYMBOLICSWINSETTINGS EXECUTABLEPATH = "C:\WINDOWS\system32\ntdll.dll" MACHINENAME = "Local Windows PC"/>
     </WINDOW>
     <WINDOW>
@@ -372,25 +474,26 @@
         </FRAMELOC>
         <FRAMESIZE>
-            <W>792</W>
-            <H>1413</H>
-        </FRAMESIZE>
-        <DOCKINFO>
-            <STATUS>0</STATUS>
-            <ROW></ROW>
-            <COLUMN></COLUMN>
-            <DOCKBARID></DOCKBARID>
-            <PCTWIDTH></PCTWIDTH>
-            <HGT></HGT>
-            <GROUPID>
-                <GIDHIGHPART></GIDHIGHPART>
-                <GIDLOWPART></GIDLOWPART>
-            </GROUPID>
-        </DOCKINFO>
+            <W>816</W>
+            <H>1494</H>
+        </FRAMESIZE>
+        <DOCKINFO>
+            <STATUS>0</STATUS>
+            <ROW></ROW>
+            <COLUMN></COLUMN>
+            <DOCKBARID></DOCKBARID>
+            <PCTWIDTH></PCTWIDTH>
+            <HGT></HGT>
+            <GROUPID>
+                <GIDHIGHPART></GIDHIGHPART>
+                <GIDLOWPART></GIDLOWPART>
+            </GROUPID>
+        </DOCKINFO>
+            <SYMBOLICSWINSETTINGS EXECUTABLEPATH = "C:\Symbian\9.1\S60_3rd\EPOC32\RELEASE\WINSCW\UDEB\euser.dll" MACHINENAME = "Local Windows PC"/>
+            <SYMBOLICSWINSETTINGS EXECUTABLEPATH = "C:\Symbian\9.1\S60_3rd\EPOC32\RELEASE\WINSCW\UDEB\ekern.exe" MACHINENAME = "Local Windows PC"/>
+            <SYMBOLICSWINSETTINGS EXECUTABLEPATH = "C:\WINDOWS\system32\ntdll.dll" MACHINENAME = "Local Windows PC"/>
     </WINDOW>
     <WINDOW>
         <SESSION>-2147483648</SESSION>
         <EDOCTYPE>23</EDOCTYPE>
-        <DEFAULT>true</DEFAULT>
-        <MAXIMIZED>true</MAXIMIZED>
         <FRAMELOC>
             <X>6</X>
Index: /pjproject/trunk/pjmedia/src/pjmedia/nullsound.c
===================================================================
--- /pjproject/trunk/pjmedia/src/pjmedia/nullsound.c	(revision 1242)
+++ /pjproject/trunk/pjmedia/src/pjmedia/nullsound.c	(revision 1243)
@@ -20,4 +20,5 @@
 #include <pjmedia/errno.h>
 #include <pj/assert.h>
+#include <pj/pool.h>
 
 #if PJMEDIA_SOUND_IMPLEMENTATION==PJMEDIA_SOUND_NULL_SOUND
@@ -31,8 +32,30 @@
 };
 
+static pj_pool_factory *pool_factory;
+
+struct pjmedia_snd_stream 
+{
+	pj_pool_t		*pool;
+	pjmedia_dir 		dir;
+	int 			rec_id;
+	int 			play_id;
+	unsigned		clock_rate;
+	unsigned		channel_count;
+	unsigned		samples_per_frame;
+	unsigned		bits_per_sample;
+	pjmedia_snd_rec_cb	rec_cb;
+	pjmedia_snd_play_cb	play_cb;
+	void			*user_data;
+};
+
 
 PJ_DEF(pj_status_t) pjmedia_snd_init(pj_pool_factory *factory)
 {
-    PJ_UNUSED_ARG(factory);
+    pool_factory = factory;
+    return PJ_SUCCESS;
+}
+
+PJ_DEF(pj_status_t) pjmedia_snd_deinit(void)
+{
     return PJ_SUCCESS;
 }
@@ -58,15 +81,7 @@
 					  pjmedia_snd_stream **p_snd_strm)
 {
-    PJ_UNUSED_ARG(index);
-    PJ_UNUSED_ARG(clock_rate);
-    PJ_UNUSED_ARG(channel_count);
-    PJ_UNUSED_ARG(samples_per_frame);
-    PJ_UNUSED_ARG(bits_per_sample);
-    PJ_UNUSED_ARG(rec_cb);
-    PJ_UNUSED_ARG(user_data);
-
-    *p_snd_strm = (void*)1;
-
-    return PJ_SUCCESS;
+    return pjmedia_snd_open(index, -2, clock_rate, channel_count,
+    			    samples_per_frame, bits_per_sample,
+    			    rec_cb, NULL, user_data, p_snd_strm);
 }
 
@@ -80,15 +95,7 @@
 					pjmedia_snd_stream **p_snd_strm )
 {
-    PJ_UNUSED_ARG(index);
-    PJ_UNUSED_ARG(clock_rate);
-    PJ_UNUSED_ARG(channel_count);
-    PJ_UNUSED_ARG(samples_per_frame);
-    PJ_UNUSED_ARG(bits_per_sample);
-    PJ_UNUSED_ARG(play_cb);
-    PJ_UNUSED_ARG(user_data);
-
-    *p_snd_strm = (void*)1;
-
-    return PJ_SUCCESS;
+    return pjmedia_snd_open(-2, index, clock_rate, channel_count,
+    			    samples_per_frame, bits_per_sample,
+    			    NULL, play_cb, user_data, p_snd_strm);
 }
 
@@ -104,15 +111,33 @@
 				      pjmedia_snd_stream **p_snd_strm)
 {
-    PJ_UNUSED_ARG(rec_id);
-    PJ_UNUSED_ARG(play_id);
-    PJ_UNUSED_ARG(clock_rate);
-    PJ_UNUSED_ARG(channel_count);
-    PJ_UNUSED_ARG(samples_per_frame);
-    PJ_UNUSED_ARG(bits_per_sample);
-    PJ_UNUSED_ARG(rec_cb);
-    PJ_UNUSED_ARG(play_cb);
-    PJ_UNUSED_ARG(user_data);
+    pj_pool_t *pool;
+    pjmedia_snd_stream *snd_strm;
 
-    *p_snd_strm = (void*)1;
+    pool = pj_pool_create(pool_factory, NULL, 128, 128, NULL);
+    snd_strm = PJ_POOL_ZALLOC_T(pool, pjmedia_snd_stream);
+    
+    snd_strm->pool = pool;
+    
+    if (rec_id == -1) rec_id = 0;
+    if (play_id == -1) play_id = 0;
+    
+    if (rec_id != -2 && play_id != -2)
+    	snd_strm->dir = PJMEDIA_DIR_CAPTURE_PLAYBACK;
+    else if (rec_id != -2)
+    	snd_strm->dir = PJMEDIA_DIR_CAPTURE;
+    else if (play_id != -2)
+    	snd_strm->dir = PJMEDIA_DIR_PLAYBACK;
+    
+    snd_strm->rec_id = rec_id;
+    snd_strm->play_id = play_id;
+    snd_strm->clock_rate = clock_rate;
+    snd_strm->channel_count = channel_count;
+    snd_strm->samples_per_frame = samples_per_frame;
+    snd_strm->bits_per_sample = bits_per_sample;
+    snd_strm->rec_cb = rec_cb;
+    snd_strm->play_cb = play_cb;
+    snd_strm->user_data = user_data;
+    
+    *p_snd_strm = snd_strm;
 
     return PJ_SUCCESS;
@@ -136,6 +161,16 @@
 {
 
-    PJ_ASSERT_RETURN(strm && pi, PJ_EINVAL);
-    return PJ_EINVALIDOP;
+    pj_bzero(pi, sizeof(pjmedia_snd_stream_info));
+    pi->dir = strm->dir;
+    pi->play_id = strm->play_id;
+    pi->rec_id = strm->rec_id;
+    pi->clock_rate = strm->clock_rate;
+    pi->channel_count = strm->channel_count;
+    pi->samples_per_frame = strm->samples_per_frame;
+    pi->bits_per_sample = strm->bits_per_sample;
+    pi->rec_latency = 0;
+    pi->play_latency = 0;
+    
+    return PJ_SUCCESS;
 }
 
@@ -143,13 +178,7 @@
 PJ_DEF(pj_status_t) pjmedia_snd_stream_close(pjmedia_snd_stream *stream)
 {
-    PJ_UNUSED_ARG(stream);
+    pj_pool_release(stream->pool);
     return PJ_SUCCESS;
 }
 
-PJ_DEF(pj_status_t) pjmedia_snd_deinit(void)
-{
-    return PJ_SUCCESS;
-}
-
-
 #endif	/* PJMEDIA_SOUND_IMPLEMENTATION */
Index: /pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp
===================================================================
--- /pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp	(revision 1242)
+++ /pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp	(revision 1243)
@@ -144,4 +144,5 @@
 
 	pjsua_config_default(&cfg);
+	cfg.max_calls = 2;
 	cfg.thread_cnt = 0; // Disable threading on Symbian
 	cfg.cb.on_incoming_call = &on_incoming_call;
