From 3d5dfee8ad79256ed558c7c46ebde8849321c3ae Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Wed, 2 May 2007 23:06:11 +0000 Subject: More Symbian fixes git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@1245 74dad513-b988-da41-8d7b-12977e46ad98 --- pjlib/include/pj/config_site_sample.h | 8 ++++- pjlib/src/pj/os_core_symbian.cpp | 2 -- pjsip-apps/src/symbian_ua/ua.cpp | 58 ++++++++++++++++++++++++++++++++--- 3 files changed, 60 insertions(+), 8 deletions(-) diff --git a/pjlib/include/pj/config_site_sample.h b/pjlib/include/pj/config_site_sample.h index 439d3512..41ce6725 100644 --- a/pjlib/include/pj/config_site_sample.h +++ b/pjlib/include/pj/config_site_sample.h @@ -48,7 +48,7 @@ # define PJMEDIA_HAS_ILBC_CODEC 0 # 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 */ # define PJ_LOG_USE_STACK_BUFFER 0 @@ -66,6 +66,12 @@ # define PJSIP_POOL_TSX_LAYER_INC 256 # 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 diff --git a/pjlib/src/pj/os_core_symbian.cpp b/pjlib/src/pj/os_core_symbian.cpp index fbc30233..d0bbb157 100644 --- a/pjlib/src/pj/os_core_symbian.cpp +++ b/pjlib/src/pj/os_core_symbian.cpp @@ -121,8 +121,6 @@ void CPjTimeoutTimer::StartTimer(TUint miliSeconds) hasTimedOut_ = PJ_FALSE; timer_.After(iStatus, miliSeconds * 1000); SetActive(); - - pj_assert(iStatus==KRequestPending); } bool CPjTimeoutTimer::HasTimedOut() const diff --git a/pjsip-apps/src/symbian_ua/ua.cpp b/pjsip-apps/src/symbian_ua/ua.cpp index cc224563..64482036 100644 --- a/pjsip-apps/src/symbian_ua/ua.cpp +++ b/pjsip-apps/src/symbian_ua/ua.cpp @@ -38,14 +38,27 @@ */ #include +#include #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" + + + /* Callback called by the library upon receiving incoming call */ static void on_incoming_call(pjsua_acc_id acc_id, pjsua_call_id call_id, @@ -114,7 +127,7 @@ static void log_writer(int level, const char *buf, unsigned len) */ static pj_status_t app_startup(char *url) { - pjsua_acc_id acc_id; + pjsua_acc_id acc_id = 0; pj_status_t status; /* Redirect log before pjsua_init() */ @@ -149,6 +162,11 @@ static pj_status_t app_startup(char *url) cfg.cb.on_call_media_state = &on_call_media_state; 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; log_cfg.cb = &log_writer; @@ -156,6 +174,7 @@ static pj_status_t app_startup(char *url) pjsua_media_config_default(&med_cfg); 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; status = pjsua_init(&cfg, &log_cfg, &med_cfg); @@ -169,15 +188,18 @@ static pj_status_t app_startup(char *url) /* Add UDP transport. */ { 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); pjsua_destroy(); return status; } + + pjsua_acc_add_local(tid, PJ_TRUE, &acc_id); } /* Initialization is done, now start pjsua */ @@ -189,7 +211,7 @@ static pj_status_t app_startup(char *url) } /* Register to SIP server by creating SIP account. */ - { + if (HAS_SIP_ACCOUNT) { pjsua_acc_config cfg; pjsua_acc_config_default(&cfg); @@ -278,21 +300,46 @@ void ConsoleUI::DoCancel() con_->ReadCancel(); } +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: PJ_LOG(3,(THIS_FILE, "Keycode '%c' (%d) is pressed", kc, kc)); Run(); break; } + + PrintMenu(); } //////////////////////////////////////////////////////////////////////////// @@ -301,7 +348,7 @@ int ua_main() pj_status_t status; // 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; @@ -312,6 +359,7 @@ int ua_main() con->Run(); + PrintMenu(); asw->Start(); delete con; -- cgit v1.2.3