Great! You are right I forgot add these lines. Now I can go on, but I get a crash. And 2 warnings when I execute pjmedia_aud_register_factory. These are the 2 warnings: 10-11 18:11:30.530: WARN/libOpenSLES(22878): class Engine interface 0 requested but unavailable MPH=6 10-11 18:11:30.530: WARN/libOpenSLES(22878): class Engine interface 1 requested but unavailable MPH=8 But it returning 0 so everything could be allright. And below is the crash: 10-11 18:11:30.648: INFO/DEBUG(22079): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 10-11 18:11:30.648: INFO/DEBUG(22079): Build fingerprint: 'samsung/GT-I9000/GT-I9000:2.3.4/GINGERBREAD/XXJVR:user/release-keys' 10-11 18:11:30.648: INFO/DEBUG(22079): pid: 22878, tid: 22878 >>> com.csipsimple <<< 10-11 18:11:30.648: INFO/DEBUG(22079): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000 10-11 18:11:30.648: INFO/DEBUG(22079): r0 00000000 r1 00001f40 r2 b77706d8 r3 b77706d8 10-11 18:11:30.648: INFO/DEBUG(22079): r4 0043fd7c r5 bea96f34 r6 81324204 r7 0043fd18 10-11 18:11:30.648: INFO/DEBUG(22079): r8 002b0714 r9 00000268 10 00000140 fp 8127e161 10-11 18:11:30.648: INFO/DEBUG(22079): ip ffffff1c sp bea96e08 lr 81248aa5 pc 8123e70e cpsr 60000030 10-11 18:11:30.648: INFO/DEBUG(22079): d0 6172662f73656c61 d1 68632031202c656e 10-11 18:11:30.648: INFO/DEBUG(22079): d2 4320207070632e6e d3 7473206574616565 10-11 18:11:30.648: INFO/DEBUG(22079): d4 38203a206d616572 d5 706d617320303030 10-11 18:11:30.648: INFO/DEBUG(22079): d6 2c6365732f73656c d7 6d61732030363120 10-11 18:11:30.648: INFO/DEBUG(22079): d8 0000000000000000 d9 0000000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d10 0000000000000000 d11 0000000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d12 0000000000000000 d13 0000000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d14 0000000000000000 d15 0000000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d16 4177518808000000 d17 3fe0000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d18 3feff985c46d85eb d19 3f49e8ee49e85400 10-11 18:11:30.648: INFO/DEBUG(22079): d20 3c87000000000000 d21 3f1145b88564c411 10-11 18:11:30.648: INFO/DEBUG(22079): d22 3e21ee94a0c6d216 d23 bda8fae9be8838d4 10-11 18:11:30.648: INFO/DEBUG(22079): d24 0000000000000000 d25 0000000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d26 0000000000000000 d27 0000000000000000 10-11 18:11:30.648: INFO/DEBUG(22079): d28 0002aaa80002aaa8 d29 0002aaa80002aaa8 10-11 18:11:30.648: INFO/DEBUG(22079): d30 0001000000010000 d31 0001000000010000 10-11 18:11:30.648: INFO/DEBUG(22079): scr 20000012 10-11 18:11:30.760: INFO/StatusBarPolicy(407): onSignalStrengthsChanged 10-11 18:11:30.838: INFO/DEBUG(22079): #00 pc 0003e70e /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.838: INFO/DEBUG(22079): #01 pc 00048aa0 /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.838: INFO/DEBUG(22079): #02 pc 0008681a /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.838: INFO/DEBUG(22079): #03 pc 0007df94 /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.838: INFO/DEBUG(22079): #04 pc 0007e250 /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.840: INFO/DEBUG(22079): #05 pc 00048258 /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.840: INFO/DEBUG(22079): #06 pc 00044396 /data/data/com.csipsimple/lib/libpjsipjni.so 10-11 18:11:30.844: INFO/DEBUG(22079): #07 pc 00017e74 /system/lib/libdvm.so 10-11 18:11:30.844: INFO/DEBUG(22079): #08 pc 00049720 /system/lib/libdvm.so 10-11 18:11:30.844: INFO/DEBUG(22079): #09 pc 0001d074 /system/lib/libdvm.so 10-11 18:11:30.844: INFO/DEBUG(22079): #10 pc 00022124 /system/lib/libdvm.so 10-11 18:11:30.844: INFO/DEBUG(22079): #11 pc 0002101c /system/lib/libdvm.so 10-11 18:11:30.846: INFO/DEBUG(22079): #12 pc 0005fe1e /system/lib/libdvm.so 10-11 18:11:30.846: INFO/DEBUG(22079): #13 pc 00067bea /system/lib/libdvm.so 10-11 18:11:30.846: INFO/DEBUG(22079): #14 pc 0001d074 /system/lib/libdvm.so 10-11 18:11:30.846: INFO/DEBUG(22079): #15 pc 00022124 /system/lib/libdvm.so 10-11 18:11:30.846: INFO/DEBUG(22079): #16 pc 0002101c /system/lib/libdvm.so 10-11 18:11:30.846: INFO/DEBUG(22079): #17 pc 0005fc80 /system/lib/libdvm.so 10-11 18:11:30.848: INFO/DEBUG(22079): #18 pc 0004c166 /system/lib/libdvm.so 10-11 18:11:30.850: INFO/DEBUG(22079): #19 pc 00038c26 /system/lib/libandroid_runtime.so 10-11 18:11:30.850: INFO/DEBUG(22079): #20 pc 0003a612 /system/lib/libandroid_runtime.so 10-11 18:11:30.852: INFO/DEBUG(22079): #21 pc 00008cca /system/bin/app_process 10-11 18:11:30.856: INFO/DEBUG(22079): #22 pc 00014bb2 /system/lib/libc.so 10-11 18:11:30.856: INFO/DEBUG(22079): code around pc: 10-11 18:11:30.856: INFO/DEBUG(22079): 8123e6ec 48044601 4478b510 68036800 47986d1b 10-11 18:11:30.856: INFO/DEBUG(22079): 8123e6fc bf00bd10 000e947a 48044601 4478b510 10-11 18:11:30.856: INFO/DEBUG(22079): 8123e70c 68036800 47986ddb bf00bd10 000e9462 10-11 18:11:30.856: INFO/DEBUG(22079): 8123e71c b5104803 68004478 6e1b6803 bd104798 10-11 18:11:30.858: INFO/DEBUG(22079): 8123e72c 000e944c b5104803 68004478 6e5b6803 10-11 18:11:30.858: INFO/DEBUG(22079): code around lr: 10-11 18:11:30.858: INFO/DEBUG(22079): 81248a84 f8c4a0a0 68a00090 faecf05a 00a4f8c4 10-11 18:11:30.858: INFO/DEBUG(22079): 81248a94 ffacf055 f3002802 68e88087 fe30f7f5 10-11 18:11:30.858: INFO/DEBUG(22079): 81248aa4 f6464602 f2c000a9 2a000006 4be4d12e 10-11 18:11:30.858: INFO/DEBUG(22079): 81248ab4 0b80f10d 0c02f04f c024f8cd f04f447b 10-11 18:11:30.858: INFO/DEBUG(22079): 81248ac4 f1030a04 c9030170 0003e88b 910a6929 10-11 18:11:30.858: INFO/DEBUG(22079): stack: 10-11 18:11:30.858: INFO/DEBUG(22079): bea96dc8 00000002 10-11 18:11:30.858: INFO/DEBUG(22079): bea96dcc b77706d8 ( ... ) I paste the code below that retrieve the crash: PJ_DECL(pj_bool_t) CreateStream( const char *remoteAddress, const char *codec ) { const pjmedia_codec_info *codec_info; pjmedia_codec_param codec_param; char *codec_id = NULL; pj_status_t status; pj_sockaddr_in remote_addr; if ( _stream_started ) return NO; char *remote_addr_str = (char *) remoteAddress; if ( codec != NULL ) { codec_id = (char *) codec; } // Find which codec to use. if ( codec_id ) { unsigned count = 1; pj_str_t str_codec_id = pj_str( codec_id ); pjmedia_codec_mgr *codec_mgr = pjmedia_endpt_get_codec_mgr(_med_endpt); status = pjmedia_codec_mgr_find_codecs_by_id( codec_mgr, &str_codec_id, &count, &codec_info, NULL); if ( status != PJ_SUCCESS ) { LOGI( "[MediaManager startStream] - Error: unable to find codec %s\n", codec_id ); return status; } } else { // Default to pcmu pjmedia_codec_mgr_get_codec_info( pjmedia_endpt_get_codec_mgr(_med_endpt), 0, &codec_info); } // set remote address pj_bzero(&remote_addr, sizeof(remote_addr)); pj_str_t ip = pj_str( strtok(remote_addr_str, ":") ); pj_uint16_t port = (pj_uint16_t) atoi(strtok(NULL, ":")); status = pj_sockaddr_in_init(&remote_addr, &ip, port); if (status != PJ_SUCCESS) { LOGE( "[MediaManager startStream] - Invalid remote address" ); return status; } // Get codec default param for info status = pjmedia_codec_mgr_get_default_param( pjmedia_endpt_get_codec_mgr(_med_endpt), codec_info, &codec_param ); // Disable VAD capabilities codec_param.setting.vad = 0; status = pjmedia_codec_mgr_set_default_param( pjmedia_endpt_get_codec_mgr(_med_endpt), codec_info, &codec_param ); // create stream based on program arguments status = create_stream(_pool, _med_endpt, codec_info, _dir, _localPort, &remote_addr, &_stream); if (status != PJ_SUCCESS) { DestroyStream(); return status; } // Should be ok, as create_stream() above succeeded pj_assert(status == PJ_SUCCESS); // Get the port interface of the stream status = pjmedia_stream_get_port( _stream, &_stream_port ); PJ_ASSERT_RETURN(status == PJ_SUCCESS, 1); // Create sound device port. if ( _dir == PJMEDIA_DIR_ENCODING_DECODING ) { status = pjmedia_snd_port_create(_pool, -1, -1, _stream_port->info.clock_rate, _stream_port->info.channel_count, _stream_port->info.samples_per_frame, _stream_port->info.bits_per_sample, 0, &_snd_port); } else if ( _dir == PJMEDIA_DIR_ENCODING ) { status = pjmedia_snd_port_create_rec(_pool, -1, _stream_port->info.clock_rate, _stream_port->info.channel_count, _stream_port->info.samples_per_frame, _stream_port->info.bits_per_sample, 0, &_snd_port); } else { status = pjmedia_snd_port_create_player(_pool, -1, _stream_port->info.clock_rate, _stream_port->info.channel_count, _stream_port->info.samples_per_frame, _stream_port->info.bits_per_sample, 0, &_snd_port); } if ( status != PJ_SUCCESS ) { LOGE( "[MediaManager startStream] - Unable to create sound port, erroCode = %i",status ); DestroyStream(); return status; } _stream_started = YES; return status; } Again many many thanks. Best regards, Isidoro. 2011/10/11 R?gis Montoya <r3gis.3r at gmail.com> > Ok, > > So as you have your own entry point different from csipsimple's one, maybe > you forgot to report these lines : > > http://code.google.com/p/**csipsimple/source/browse/** > trunk/pjsip_android/apps/**pjsip/project/jni/src/pjsua_**jni_addons.c#435<http://code.google.com/p/csipsimple/source/browse/trunk/pjsip_android/apps/pjsip/project/jni/src/pjsua_jni_addons.c#435> > > In your case it is this one : > > pjmedia_aud_register_factory(&**pjmedia_opensl_factory); > > (Even if I'd advise you to add both lines with the define tests around). > With this done, pjsip will find the valid aud factory when trying to > retrieve an audio device factory for current device. > > > > Le mar. 11 oct. 2011 16:48:16 CEST, Isidoro Castell Egea a ?crit : > >> >> Hi R?gis, >> >> First of all thanks for your quickly reply. I'm building the library >> from CSipSimple project as you say I use pjsip_android subfolder. >> >> I try to compile with 2.3 compatibility instead 1.5 but I get the same >> error code (420006). I can't use CSipSimple directly because I don't >> use sip part, so I make some native functions in c that do the hard work. >> >> Do you have any idea about I'm doing bad? >> >> I paste my Application.mk below: >> >> APP_PROJECT_PATH := $(call my-dir)/../../../CSipSimple >> #APP_PROJECT_PATH := $(call my-dir)/project >> APP_BUILD_SCRIPT= := $(call my-dir)/project/build/Android.**mk >> #APP_OPTIM := debug >> APP_OPTIM := release >> APP_ABI := armeabi armeabi-v7a >> #APP_ABI := armeabi-v7a >> #APP_ABI := armv4t >> APP_STL := stlport_static >> >> >> MY_USE_G729 := 1 >> MY_USE_ILBC := 0 >> MY_USE_G722 := 1 >> MY_USE_G7221 := 0 >> MY_USE_SPEEX := 1 >> MY_USE_GSM := 1 >> MY_USE_SILK := 1 >> MY_USE_CODEC2 := 0 >> MY_USE_TLS := 0 >> MY_USE_WEBRTC := 0 >> >> MY_ANDROID_DEV := 2 >> >> BASE_PJSIP_FLAGS := -DPJ_ANDROID=1 >> -DPJMEDIA_HAS_G729_CODEC=$(MY_**USE_G729) \ >> -DPJMEDIA_HAS_ILBC_CODEC=$(MY_**USE_ILBC) >> -DPJMEDIA_HAS_G722_CODEC=$(MY_**USE_G722) \ >> -DPJMEDIA_HAS_SPEEX_CODEC=$(**MY_USE_SPEEX) >> -DPJMEDIA_HAS_GSM_CODEC=$(MY_**USE_GSM) \ >> -DPJMEDIA_HAS_SILK_CODEC=$(MY_**USE_SILK) >> -DPJMEDIA_HAS_CODEC2_CODEC=$(**MY_USE_CODEC2) \ >> -DPJMEDIA_HAS_G7221_CODEC=$(**MY_USE_G7221) >> -DPJMEDIA_HAS_WEBRTC_CODEC=$(**MY_USE_WEBRTC) \ >> -DPJ_HAS_SSL_SOCK=$(MY_USE_**TLS) -DPJMEDIA_HAS_ZRTP=$(MY_USE_**TLS) \ >> -DPJ_ANDROID_DEVICE=$(MY_**ANDROID_DEV) >> >> I don't use Webrtc so I desactivated it. >> >> You said "pjsip_android sub project also includes other specific glues >> for android." What are this includes? And where I can find this file? >> >> Many thanks! >> >> BR, >> Isidoro. >> >> 2011/10/11 R?gis Montoya <r3gis.3r at gmail.com <mailto:r3gis.3r at gmail.com>> >> >> >> Hi Isidorio, >> >> Did you try to build the library from CSipSimple project or a >> direct build of pjsip from trunk? >> >> If you use pjsip from trunk, keep in mind that Android is not yet >> support by pjsip trunk. >> So, obviously the glue with android audio device is not included >> in pjsip, and as consequence it's absolutely normal that it does >> not find the android device, and that your lib cries about the >> fact it does not find any glue for this audio device. >> >> You should have a look to csipsimple/pjsip_android sub project. It >> includes two implementation of the audio device for android. One >> works from android 1.5 and is based on the android java API (it >> requires to add something in your glue, but if you reuse >> pjsip_android project, everything is included), another is based >> on the new OpenSL-ES API introduced in android 2.3 (and is >> available only from android 2.3 and upper). >> >> pjsip_android sub project also includes other specific glues for >> android. I'm currently finishing the port of the timer >> implementation so that it will use android alarms instead of a >> running thread that consume a lot of CPU. >> >> Regards, >> R?gis >> >> >> On 11/10/2011 15:07, Isidoro Castell Egea wrote: >> >>> >>> Hi all, >>> >>> I'm developing an android app wich integrate pjmedia in order to >>> transfer audio each devices. I can initialize media manager, but >>> when I try to create a stream I get "Unable to find default audio >>> device" (PJMEDIA_EAUD_NODEFDEV = 420006) from lookup_dev() call >>> in audiodev.c. And I cannot continue with the stream creation. >>> >>> Anyone knows why I get 420006 return code when I call >>> lookup_dev()? Could be privileges matters? >>> >>> Many many thanks in advance! >>> >>> BR, >>> Isidoro. >>> >>> >>> >>> ______________________________**_________________ >>> Visit our blog:http://blog.pjsip.org >>> >>> pjsip mailing list >>> pjsip at lists.pjsip.org <mailto:pjsip at lists.pjsip.org> >>> http://lists.pjsip.org/**mailman/listinfo/pjsip_lists.**pjsip.org<http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org> >>> >> >> >> >> ______________________________**_________________ >> Visit our blog: http://blog.pjsip.org >> >> pjsip mailing list >> pjsip at lists.pjsip.org <mailto:pjsip at lists.pjsip.org> >> >> http://lists.pjsip.org/**mailman/listinfo/pjsip_lists.**pjsip.org<http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org> >> >> >> >> >> -- >> Isidoro Castell >> Android developer >> >> >> >> ______________________________**_________________ >> Visit our blog: http://blog.pjsip.org >> >> pjsip mailing list >> pjsip at lists.pjsip.org >> http://lists.pjsip.org/**mailman/listinfo/pjsip_lists.**pjsip.org<http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org> >> > > > > ______________________________**_________________ > Visit our blog: http://blog.pjsip.org > > pjsip mailing list > pjsip at lists.pjsip.org > http://lists.pjsip.org/**mailman/listinfo/pjsip_lists.**pjsip.org<http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org> > -- Isidoro Castell Android developer -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20111011/75870ac8/attachment-0001.html>