int main ( int argc, char *argv[] ) { int i, port = 5060; osip_trace_initialize_func(END_TRACE_LEVEL, &android_trace_func); i=eXosip_init(); if (i!=0) return -1; i = eXosip_listen_addr (IPPROTO_UDP, NULL, port, AF_INET, 0); if (i!=0) { eXosip_quit(); __android_log_print(ANDROID_LOG_ERROR, LOG_TAG, "%s", "could not initialize transport layer\n"); return -1; } eXosip_event_t *je; for (;;) { je = eXosip_event_wait (0, 24*60*60*1000); eXosip_lock(); eXosip_automatic_action (); eXosip_unlock(); if (je == NULL) break; if (je->type == EXOSIP_CALL_INVITE) { __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, "%s", "incoming call\n"); std::cout << "incoming call" << std::endl; } } return 0; } // ---------- end of function main ----------
OWPL_RESULT owplInit ( const int asyncCallbackMode, short udpPort, short tcpPort, short tlsPort, const char* szBindToAddr, const int bUserSequentialPorts ) { int return_code; short useUdp = (udpPort == -1 ? 0 : 1); short useTcp = (tcpPort == -1 ? 0 : 1); short useTls = (tlsPort == -1 ? 0 : 1); const char* ptime; return_code = owplAdapterInitialize(); if (return_code != 0) { owplLogError("owplAdapterInitialize failed"); return OWPL_RESULT_FAILURE; } return_code = owplAdapterNortelInitialize("nortel"); if (return_code != 0) { owplLogError("owplAdapterNortelInitialize failed"); return OWPL_RESULT_FAILURE; } phcb = (phCallbacks_t * ) malloc(sizeof(phCallbacks_t)); memset(phcb, 0, sizeof(phCallbacks_t)); phcfg.asyncmode = asyncCallbackMode; return_code = owplInitOwsl(useUdp, useTcp, useTls); if (return_code != 0) { owplLogError("owplInitOwsl failed"); return OWPL_RESULT_FAILURE; } osip_trace_initialize_func(OSIP_INFO3, owplOsipLogFunction); return_code = eXosip_init(0, 0, udpPort, tcpPort, tlsPort); if (return_code != 0) { owplLogError("eXosip_init failed"); return OWPL_RESULT_FAILURE; } { const char version[] = stringize(VOXOXVERSION);//VOXOX - CJC - 2009.06.27 // VOXOX CHANGE by ASV 06-27-2009: modified the code to be compatible with GCC char ua[50] = "VoxOx "; // We need to define he size to make sure strcat has enough space to copy version in ua strcat(ua, version);//VOXOX - CJC - 2009.06.27 // VOXOX CHANGE by ASV - end eXosip_set_user_agent(ua); } ph_avcodec_init(); ph_calls_init(); #ifdef FORCE_VAD /* HACK for test */ #ifdef EMBED phcfg.vad = VAD_VALID_MASK | (500 & VAD_THRESHOLD_MASK); #else phcfg.vad = VAD_VALID_MASK | (1000 & VAD_THRESHOLD_MASK); #endif #endif #ifdef FORCE_CNG /* HACK for test */ phcfg.cng = 1; #endif ph_media_init(phcfg.plugin_path); ph_vlines_init(); ph_payloads_init(); if (!phcfg.audio_dev || phcfg.audio_dev[0] == '\0') { // Set default audio device if no one has been set before owplAudioSetConfigString(0); } #if 0 ptime = getenv("EXOSIP_FORCE_PTIME"); if (!ptime || !*ptime) { putenv("EXOSIP_FORCE_PTIME=20"); } #endif /* register callbacks? */ eXosip_set_mode(EVENT_MODE); if (!phcfg.asyncmode) { phWaitTimeout = 1; } else { phWaitTimeout = 500; } if (phcfg.asyncmode) { osip_thread_create(20000, ph_api_thread, 0); } pthread_mutex_init(&ph_media_stop_mutex, NULL); phIsInitialized = 1; owplLogDebug("owplInit finished"); return OWPL_RESULT_SUCCESS; }