Index: pjproject/trunk/pjlib/include/pj/config_site_sample.h
===================================================================
--- pjproject/trunk/pjlib/include/pj/config_site_sample.h	(revision 1244)
+++ pjproject/trunk/pjlib/include/pj/config_site_sample.h	(revision 1245)
@@ -49,5 +49,5 @@
 #   define PJMEDIA_HAS_SPEEX_CODEC	0
 
-#   define PJSIP_MAX_PKT_LEN		8000
+#   define PJSIP_MAX_PKT_LEN		2000
 
     /* Since we don't have threads, log buffer can use static buffer */
@@ -67,4 +67,10 @@
 #   define PJSIP_POOL_TSX_LEN		512
 #   define PJSIP_POOL_TSX_INC		128
+
+    /* Set maximum number of dialog/transaction/calls to minimum */
+#   define PJSIP_MAX_TSX_COUNT 		31
+#   define PJSIP_MAX_DIALOG_COUNT 	31
+#   define PJSUA_MAX_CALLS		31
+    
 #endif
 
Index: pjproject/trunk/pjlib/src/pj/os_core_symbian.cpp
===================================================================
--- pjproject/trunk/pjlib/src/pj/os_core_symbian.cpp	(revision 1244)
+++ pjproject/trunk/pjlib/src/pj/os_core_symbian.cpp	(revision 1245)
@@ -122,6 +122,4 @@
     timer_.After(iStatus, miliSeconds * 1000);
     SetActive();
-
-    pj_assert(iStatus==KRequestPending);
 }
 
Index: pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp
===================================================================
--- pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp	(revision 1244)
+++ pjproject/trunk/pjsip-apps/src/symbian_ua/ua.cpp	(revision 1245)
@@ -39,11 +39,24 @@
 
 #include <pjsua-lib/pjsua.h>
+#include <pjsua-lib/pjsua_internal.h>
 #include "ua.h"
 
 #define THIS_FILE	"symbian_ua.cpp"
 
+//
+// Account
+//
+#define HAS_SIP_ACCOUNT	0	// 0 to disable registration
 #define SIP_DOMAIN	"colinux"
 #define SIP_USER	"bulukucing"
 #define SIP_PASSWD	"netura"
+
+//
+// Outbound proxy for all accounts
+//
+#define SIP_PROXY	NULL
+//#define SIP_PROXY	"sip:192.168.0.1"
+
+
 
 
@@ -115,5 +128,5 @@
 static pj_status_t app_startup(char *url)
 {
-    pjsua_acc_id acc_id;
+    pjsua_acc_id acc_id = 0;
     pj_status_t status;
 
@@ -150,4 +163,9 @@
 	cfg.cb.on_call_state = &on_call_state;
 
+	if (SIP_PROXY) {
+		cfg.outbound_proxy_cnt = 1;
+		cfg.outbound_proxy[0] = pj_str(SIP_PROXY);
+	}
+	
 	pjsua_logging_config_default(&log_cfg);
 	log_cfg.console_level = 4;
@@ -157,4 +175,5 @@
 	med_cfg.thread_cnt = 0; // Disable threading on Symbian
 	med_cfg.has_ioqueue = PJ_FALSE;
+	med_cfg.clock_rate = 8000;
 	med_cfg.ec_tail_len = 0;
 	
@@ -170,8 +189,9 @@
     {
 	pjsua_transport_config cfg;
+	pjsua_transport_id tid;
 
 	pjsua_transport_config_default(&cfg);
 	cfg.port = 5060;
-	status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, NULL);
+	status = pjsua_transport_create(PJSIP_TRANSPORT_UDP, &cfg, &tid);
 	if (status != PJ_SUCCESS) {
 		pjsua_perror(THIS_FILE, "Error creating transport", status);
@@ -179,4 +199,6 @@
 		return status;
 	}
+	
+	pjsua_acc_add_local(tid, PJ_TRUE, &acc_id);
     }
 
@@ -190,5 +212,5 @@
 
     /* Register to SIP server by creating SIP account. */
-    {
+    if (HAS_SIP_ACCOUNT) {
 	pjsua_acc_config cfg;
 
@@ -279,12 +301,35 @@
 }
 
+static void PrintMenu() 
+{
+	PJ_LOG(3, (THIS_FILE, "\n\n"
+		"Menu:\n"
+		"  d    Dump states\n"
+		"  D    Dump all states (detail)\n"
+		"  P    Dump pool factory\n"
+		"  h    Hangup all calls\n"
+		"  q    Quit\n"));
+}
+
 // Implementation: called when read has completed.
 void ConsoleUI::RunL() 
 {
 	TKeyCode kc = con_->KeyCode();
-	
+
 	switch (kc) {
 	case 'q':
 		asw_->AsyncStop();
+		break;
+	case 'D':
+	case 'd':
+		pjsua_dump(kc == 'D');
+		Run();
+		break;
+	case 'P':
+		pj_pool_factory_dump(&pjsua_var.cp.factory, PJ_TRUE);
+		break;
+	case 'h':
+		pjsua_call_hangup_all();
+		Run();
 		break;
 	default:
@@ -294,4 +339,6 @@
 		break;
 	}
+
+	PrintMenu();
 }
 
@@ -302,5 +349,5 @@
 	
 	// Initialize pjsua
-	status  = app_startup("sip:192.168.0.66:5061");
+	status  = app_startup("sip:192.168.0.77");
 	if (status != PJ_SUCCESS)
 		return status;
@@ -313,4 +360,5 @@
 	con->Run();
 	
+	PrintMenu();
 	asw->Start();
 	
