Alright I found the problem but not the solution. The problem has to do with wav_playlist.c versus wav_player.c and the port definitions being different. Lets take a look at what my application does. It does this: status = pjsua_playlist_create(play_list_filenames, filecount, &port_label, PJMEDIA_FILE_NO_LOOP, &sip_data[line].wav_id); // this works. And craetes a media port using the wav_playlist.c definition. pjsua_player_get_port(sip_data[line].wav_id, &sip_data[line].wav_playback_port); // this gives the port based on id being a array index sip_data[line].wav_port = pjsua_player_get_conf_port(sip_data[line].wav_id); // no affect on this issue. status=pjmedia_wav_player_set_eof_cb(sip_data[line].wav_playback_port, &sip_data[line].line_number, on_wave_playback_eof); // ok in this function we break. This function is in wav_player.c. So the smaller port definition is used and when fport->cb is set...bam we have no handle value for the fport->fd_list[2] when we get back into wav_playlist.c Possible solutions put a set_eof_cb() function of some type in wav_playlist.c move (*cb) (port *, void *); to the first field of both structures. But what ideas does Benny and team have, as I would want any solution merged into pjsip releases going forward. But I can test any solution proposed. Thanks, David Clark At 02:29 PM 1/16/2009, you wrote: >playlist bug after the second file. The file handle is lost. >I augmented wav_playlist.c to print out some debug >statements of what the file handles and read function results >where. This is what I got: > >wav_playlist.c >pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_1.wav,handle=17964) >index = 3 >wav_playlist.c >pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_2.wav,handle=17972) >index = 2 >wav_playlist.c >pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_3.wav,handle=17976) >index = 1 >wav_playlist.c >pj_file_open(filename=C:\centurytel\SYSlib\CATlib\slot_4.wav,handle=17980) >index = 0 > >filenames and handles look acceptable for the given index values. > > resample.c resample created: high qualiy, large filter, > in/out rate=16000/8000 > resample.c resample created: high qualiy, large filter, > in/out rate=8000/16000 > playfilelist(4321): pjsua_playlist_create() > ckln_newop(1, play wave, Ready), sip_data[line].line_state=play > wave, sip_data[line].current_pjsip_operation=play wave > conference.c Port 2 (4321) transmitting to port 1 > (sip:+19722496924 at 4.68.250.148;isup-oli=62) > playfilelist(4321): pjsua_conf(connect(2, 1) >wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned >size=4000, index = 0 >wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned >size=4000, index = 0 >wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned >size=4000, index = 0 >wav_playlist.c pj_file_read(handle=17980, input_size=4000) returned >size=926, index = 0 >wav_playlist.c pj_file_read(handle=17976, input_size=3074) returned >size=3074, index = 1 >wav_playlist.c pj_file_read(handle=17976, input_size=4000) returned >size=4000, index = 1 >wav_playlist.c pj_file_read(handle=17976, input_size=4000) returned >size=4000, index = 1 >wav_playlist.c pj_file_read(handle=17976, input_size=4000) returned >size=2908, index = 1 >wav_playlist.c pj_file_read(handle=5277605, input_size=1092) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 >wav_playlist.c pj_file_read(handle=5277605, input_size=4000) >returned size=-1, index = 2 > >This actually continues until I hangup at which point the player is destroyed. > >The question is what happened to fport->fd_list[2]??? > > >At 03:24 AM 1/16/2009, you wrote: >>If I play files for the digits 4321 I only hear digits 4 and 3. >>I am using version 1.0-rc1. >> >>Anybody seen anything like this? >>I know from personal experience with prior versions like 0.5.8 this >>functionality used to work fine. >> >>Thanks, >>David Clark >> >> >>_______________________________________________ >>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 > > >_______________________________________________ >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