Audio problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi David,

The missing "Turning sound device ON" in your app log may mean that the 
device is already on. When running pjsua the device may have been off 
when you issued the "cc 1 0" command. I've browsed your logs and I can't 
see any obvious reason why your app doesn't play sound. I would try to 
verify that the sound device is generating callbacks and 
conference::get_frame is being called. Perhaps turn on CONF_DEBUG in 
conference.c.

Bill

On 12/4/2014 8:12 AM, David Desopper wrote:
> Hello again,
>
> I wanted to give an update. When I use the pjsua executable located in 
> pjproject/pjsip-apps/bin I can play an audio file using the commands:
> ./pjsua --clock-rate=48000 --play-file=[file.wav]
> Then I issue the command
> cc 1 0
> And I hear the sound file playing. However I noticed this as output:
> pjsua_app.c  ..Turning sound device ON
> This is something I don't notice in my own application, there the only 
> output I see is
> 13:08:30.726    pjsua_aud.c !Creating file player: Noise.wav..
> 13:08:30.728   wav_player.c  .File player 'Noise.wav' created: 
> samp.rate=48000, ch=1, bufsize=4KB, filesize=135KB
> 13:08:30.729    pjsua_aud.c  .Player created, id=0, slot=1
> 13:08:30.730    pjsua_aud.c  Conf connect: 1 --> 0
> 13:08:30.731    pjsua_aud.c  .Set sound device: capture=-1, playback=-2
> 13:08:30.732    pjsua_aud.c  ..Opening sound device PCM at 48000/1/20ms
> 13:08:30.747     ec0x9d88d0  ...Echo suppressor created, 
> clock_rate=48000, channel=1, samples per frame=960, tail length=200 
> ms, latency=100 ms
> 13:08:30.753   conference.c  .Port 1 (Noise.wav) transmitting to port 
> 0 (Logitech Wireless Headset: USB Audio (hw:0,0) (48KHz))
>
> Do I need to enable the sound device in my C++ code? If so, how?
>
> On 2014-12-03 15:22, David Desopper wrote:
>> Hello everyone,
>>
>> I am trying to write a C++ application using pjsua2 that will run on 
>> the Raspberry Pi (armv6 architecture). I used a cross compiler to 
>> compile pjproject on my laptop (normal intel 64-bit architecture).
>>
>> The initialisation of the endpoint and library go just fine, my test 
>> sip account appears online to other accounts. But when I try to make 
>> a call, nothing goes trough and I don't hear any sound. I expect that 
>> you should hear a ring when trying to make a call, please correct me 
>> if I'm wrong. So I suspect that it is a audiodevice problem.
>>
>> In my C++ code I tried to play a normal .wav file, and that also 
>> fails. The program seems to think that everything is fine, but I 
>> don't hear anything. I checked if the program is using the right 
>> device and indeed it is. When I try "./pjsua --play-file THEFILE.WAV" 
>> like found in the sound-problem page of pjsip, I do hear the sound. 
>> So it has nothing to do with the pjsip libraries, but something else.
>>
>> So my device is definitly working properly, the pjsip executable is 
>> working, so that are all not the problem. So next I will copy the 
>> program output and the way I initialize pjsua and play the audiofile.
>>
>> The device I am using is Logitech Wireless Headset: USB Audio and I 
>> am compiling with the flags:
>> -DPJMEDIA_AUDIO_DEV_HAS_ALSA=1
>> -DPJMEDIA_AUDIO_DEV_HAS_PORTAUDIO=0
>>
>> Any help/corrections will be greatly appreciated.
>>
>> *** Initialization ***
>> ep.libCreate();
>>
>>     ep_cfg.logConfig.level = 4;
>>     ep_cfg.logConfig.consoleLevel = 4;
>>
>>     ep_cfg.uaConfig.userAgent = "Pjsua2 Debian Wheezy (wackytalky)";
>>     pj::StringVector stun_servers;
>>     stun_servers.push_back("stun.pjsip.org");
>>     ep_cfg.uaConfig.stunServer = stun_servers;
>>
>>
>>     ep_cfg.medConfig.sndClockRate = 48000;
>>     ep_cfg.medConfig.ecTailLen = 0;
>>
>>     ep.libInit( ep_cfg );
>>
>>     // Create SIP transport. Error handling sample is shown
>>     tcfg.port = 5060;
>>     try {
>>     ep.transportCreate(PJSIP_TRANSPORT_UDP, tcfg);
>>     } catch (pj::Error &err) {
>>     std::cout << err.info() << std::endl;
>>     return;
>>     }
>>
>>     // Configure an AccountConfig
>>     acfg.idUri = "sip:wackytalky_rasp at sip.linphone.org";
>>     acfg.regConfig.registrarUri = "sip:sip.linphone.org";
>>     acfg.natConfig.iceEnabled = true;
>>     pj::AuthCredInfo cred("digest", "*", "wackytalky_rasp", 0, 
>> "k56ska");
>>     acfg.sipConfig.authCreds.push_back( cred );
>>     acfg.callConfig.timerMinSESec = 90;
>>     acfg.callConfig.timerSessExpiresSec = 90;
>>
>>     // Create the account
>>     acc = new MyAccount;
>>     acc->create(acfg);
>>
>>     // Start the library (worker threads etc)
>>     ep.libStart();
>>     std::cout << "*** PJSUA2 STARTED ***" << std::endl;
>> -------------------------------------------------------------------------------------------------------- 
>>
>>
>> *** Playing the file ***
>> std::cout << "***************** PLAYING AUDIO *****************" << 
>> std::endl;
>>     pj::AudioMediaPlayer player;
>>     pj::AudioMedia& play_med = ep.audDevManager().getPlaybackDevMedia();
>>     std::cout << "Portinfo.name: " << play_med.getPortInfo().name << 
>> std::endl;
>>     try {
>>     player.createPlayer(wavFile, PJMEDIA_FILE_NO_LOOP);
>>     player.startTransmit(play_med);
>>     } catch(pj::Error& err) {
>>     std::cout << "Error playing file\n" << err.reason << std::endl;
>>     }
>>     std::cout << "***************** END PLAY AUDIO *****************" 
>> << std::endl;
>> --------------------------------------------------------------------------------------------------------------- 
>>
>>
>>
>> *** Output with loglevel 4 ***
>> 14:01:11.786 os_core_unix.c !pjlib 2.3 for POSIX initialized
>> 14:01:11.793 sip_endpoint.c  .Creating endpoint instance...
>> 14:01:11.796          pjlib  .select() I/O Queue created (0xfaef60)
>> 14:01:11.798 sip_endpoint.c  .Module "mod-msg-print" registered
>> 14:01:11.799 sip_transport.  .Transport manager created.
>> 14:01:11.801   pjsua_core.c  .PJSUA state changed: NULL --> CREATED
>> 14:01:11.802 sip_endpoint.c  .Module "mod-pjsua-log" registered
>> 14:01:11.803 sip_endpoint.c  .Module "mod-tsx-layer" registered
>> 14:01:11.804 sip_endpoint.c  .Module "mod-stateful-util" registered
>> 14:01:11.806 sip_endpoint.c  .Module "mod-ua" registered
>> 14:01:11.807 sip_endpoint.c  .Module "mod-100rel" registered
>> 14:01:11.809 sip_endpoint.c  .Module "mod-pjsua" registered
>> 14:01:11.810 sip_endpoint.c  .Module "mod-invite" registered
>> 14:01:11.811   pjsua_core.c  .Trying STUN server stun.pjsip.org (1 of 
>> 1)..
>> 14:01:12.379       pa_dev.c  ..PortAudio sound library initialized, 
>> status=0
>> 14:01:12.381       pa_dev.c  ..PortAudio host api count=1
>> 14:01:12.382       pa_dev.c  ..Sound device count=10
>> 14:01:12.384          pjlib  ..select() I/O Queue created (0xfdcd54)
>> 14:01:12.447 sip_endpoint.c  .Module "mod-evsub" registered
>> 14:01:12.448 sip_endpoint.c  .Module "mod-presence" registered
>> 14:01:12.449 sip_endpoint.c  .Module "mod-mwi" registered
>> 14:01:12.450 sip_endpoint.c  .Module "mod-refer" registered
>> 14:01:12.451 sip_endpoint.c  .Module "mod-pjsua-pres" registered
>> 14:01:12.452 sip_endpoint.c  .Module "mod-pjsua-im" registered
>> 14:01:12.453 sip_endpoint.c  .Module "mod-pjsua-options" registered
>> 14:01:12.454   pjsua_core.c  .1 SIP worker threads created
>> 14:01:12.456   pjsua_core.c  .pjsua version 2.3 for 
>> Linux-3.12.28/armv6l/glibc-2.13 initialized
>> 14:01:12.457   pjsua_core.c  .PJSUA state changed: CREATED --> INIT
>> 14:01:12.459    stunresolve !.STUN mapped address found/changed: 
>> 81.11.170.171:61951
>> 14:01:12.462   pjsua_core.c  .STUN resolution success, using 
>> stun.pjsip.org, address is 208.109.222.137:3478
>> 14:01:12.699   pjsua_core.c !SIP UDP socket reachable at 
>> 81.11.170.171:43401
>> 14:01:12.700    udp0xfe8718  SIP UDP transport started, published 
>> address is 81.11.170.171:43401
>> 14:01:12.702    pjsua_acc.c  Adding account: 
>> id=sip:wackytalky_rasp at sip.linphone.org
>> 14:01:12.703    pjsua_acc.c  .Account 
>> sip:wackytalky_rasp at sip.linphone.org added with id 0
>> 14:01:12.705    pjsua_acc.c  .Acc 0: setting registration..
>> 14:01:12.931   pjsua_core.c  ...TX 587 bytes Request msg 
>> REGISTER/cseq=26221 (tdta0xfeceb0) to UDP 91.121.209.194:5060:
>> REGISTER sip:sip.linphone.org SIP/2.0
>> Via: SIP/2.0/UDP 
>> 81.11.170.171:43401;rport;branch=z9hG4bKPjnr-JeP0GtBXtgx0jnEA4Rj17xo6UNNmj
>> Max-Forwards: 70
>> From: 
>> <sip:wackytalky_rasp at sip.linphone.org>;tag=WBKGxmaoLkNufobpr.UIIT2ygMr6thrB
>> To: <sip:wackytalky_rasp at sip.linphone.org>
>> Call-ID: ueFaLQ-58TSf3LFkhuiJwif5zyxvOJB-
>> CSeq: 26221 REGISTER
>> User-Agent: Pjsua2 Debian Wheezy (wackytalky)
>> Contact: <sip:wackytalky_rasp at 81.11.170.171:43401;ob>;+sip.ice
>> Expires: 300
>> Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, 
>> NOTIFY, REFER, MESSAGE, OPTIONS
>> Content-Length:  0
>>
>>
>> --end msg--
>> 14:01:12.934    pjsua_acc.c  ..Acc 0: Registration sent
>> 14:01:12.935   pjsua_core.c  PJSUA state changed: INIT --> STARTING
>> 14:01:12.937 sip_endpoint.c  .Module "mod-unsolicited-mwi" registered
>> 14:01:12.938   pjsua_core.c  .PJSUA state changed: STARTING --> RUNNING
>> *** PJSUA2 STARTED ***
>> ***************** LISTING AUDIO DEVICES *****************
>> Index: 0Name: Logitech Wireless Headset: USB Audio (hw:0,0) Driver: 
>> PA defaultSamplesPerSec: 48000
>> Index: 1Name: bcm2835 ALSA: bcm2835 ALSA (hw:1,0) Driver: PA 
>> defaultSamplesPerSec: 44100
>> Index: 2Name: bcm2835 ALSA: bcm2835 IEC958/HDMI (hw:1,1) Driver: PA 
>> defaultSamplesPerSec: 44100
>> Index: 3Name: sysdefault Driver: PA defaultSamplesPerSec: 44100
>> Index: 4Name: front Driver: PA defaultSamplesPerSec: 48000
>> Index: 5Name: surround40 Driver: PA defaultSamplesPerSec: 48000
>> Index: 6Name: iec958 Driver: PA defaultSamplesPerSec: 48000
>> Index: 7Name: spdif Driver: PA defaultSamplesPerSec: 48000
>> Index: 8Name: default Driver: PA defaultSamplesPerSec: 44100
>> Index: 9Name: dmix Driver: PA defaultSamplesPerSec: 48000
>> 14:01:12.950    pjsua_acc.c  Acc 0: setting online status to 1..
>> command: 14:01:12.995   pjsua_core.c !.RX 539 bytes Response msg 
>> 401/REGISTER/cseq=26221 (rdata0xfe9d4c) from UDP 91.121.209.194:5060:
>> SIP/2.0 401 Unauthorized
>> Via: SIP/2.0/UDP 
>> 81.11.170.171:43401;rport=37004;branch=z9hG4bKPjnr-JeP0GtBXtgx0jnEA4Rj17xo6UNNmj
>> From: 
>> <sip:wackytalky_rasp at sip.linphone.org>;tag=WBKGxmaoLkNufobpr.UIIT2ygMr6thrB
>> To: <sip:wackytalky_rasp at sip.linphone.org>;tag=Z6jFrU1r5rppF
>> Call-ID: ueFaLQ-58TSf3LFkhuiJwif5zyxvOJB-
>> CSeq: 26221 REGISTER
>> Server: Flexisip/0.8.0 (sofia-sip-nta/2.0)
>> WWW-Authenticate: Digest realm="sip.linphone.org", 
>> nonce="fpcp2AAAAADwjHH8AAAeZH6nzAMAAAAA", opaque="+GNywA==", 
>> algorithm=MD5, qop="auth"
>> Content-Length: 0
>>
>>
>> --end msg--
>> 14:01:12.997    pjsua_acc.c  ....IP address change detected for 
>> account 0 (81.11.170.171:43401 --> 81.11.170.171:37004). Updating 
>> registration (using method 4)
>> 14:01:12.999   pjsua_core.c  ....TX 878 bytes Request msg 
>> REGISTER/cseq=26222 (tdta0xfeceb0) to UDP 91.121.209.194:5060:
>> REGISTER sip:sip.linphone.org SIP/2.0
>> Via: SIP/2.0/UDP 
>> 81.11.170.171:37004;rport;branch=z9hG4bKPjtOLt4IZpb.flD56Mh19Dx.7zrw8JSnVG
>> Max-Forwards: 70
>> From: 
>> <sip:wackytalky_rasp at sip.linphone.org>;tag=WBKGxmaoLkNufobpr.UIIT2ygMr6thrB
>> To: <sip:wackytalky_rasp at sip.linphone.org>
>> Call-ID: ueFaLQ-58TSf3LFkhuiJwif5zyxvOJB-
>> CSeq: 26222 REGISTER
>> User-Agent: Pjsua2 Debian Wheezy (wackytalky)
>> Contact: <sip:wackytalky_rasp at 81.11.170.171:37004;ob>;+sip.ice
>> Expires: 300
>> Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, 
>> NOTIFY, REFER, MESSAGE, OPTIONS
>> Authorization: Digest username="wackytalky_rasp", 
>> realm="sip.linphone.org", nonce="fpcp2AAAAADwjHH8AAAeZH6nzAMAAAAA", 
>> uri="sip:sip.linphone.org", 
>> response="2746a476da3e6dfaded742501519feaf", algorithm=MD5, 
>> cnonce="bTC-fBmk10HddeNJr0zzxIRFbBJDfJay", opaque="+GNywA==", 
>> qop=auth, nc=00000001
>> Content-Length:  0
>>
>>
>> --end msg--
>> 14:01:13.075   pjsua_core.c  .RX 485 bytes Response msg 
>> 200/REGISTER/cseq=26222 (rdata0xfe9d4c) from UDP 91.121.209.194:5060:
>> SIP/2.0 200 Registration successful
>> Via: SIP/2.0/UDP 
>> 81.11.170.171:37004;rport=37004;branch=z9hG4bKPjtOLt4IZpb.flD56Mh19Dx.7zrw8JSnVG
>> From: 
>> <sip:wackytalky_rasp at sip.linphone.org>;tag=WBKGxmaoLkNufobpr.UIIT2ygMr6thrB
>> To: <sip:wackytalky_rasp at sip.linphone.org>;tag=7eXN6K8me08Bc
>> Call-ID: ueFaLQ-58TSf3LFkhuiJwif5zyxvOJB-
>> CSeq: 26222 REGISTER
>> Contact: <sip:wackytalky_rasp at 81.11.170.171:37004;ob>;expires=300;q=0.00
>> Server: Flexisip/0.8.0 (sofia-sip-nta/2.0)
>> Content-Length: 0
>>
>>
>> --end msg--
>> 14:01:13.076    pjsua_acc.c  ....SIP outbound status for acc 0 is not 
>> active
>> 14:01:13.078    pjsua_acc.c ....sip:wackytalky_rasp at sip.linphone.org: 
>> registration success, status=200 (Registration successful), will 
>> re-register in 300 seconds
>> 14:01:13.079    pjsua_acc.c  ....Keep-alive timer started for acc 0, 
>> destination:91.121.209.194:5060, interval:15s
>> *** Register: code=200
>> play
>> ***************** PLAYING AUDIO *****************
>> Portinfo.name: Master/sound
>> 14:01:15.114    pjsua_aud.c !Creating file player: Noise.wav..
>> 14:01:15.116   wav_player.c  .File player 'Noise.wav' created: 
>> samp.rate=48000, ch=1, bufsize=4KB, filesize=135KB
>> 14:01:15.117    pjsua_aud.c  .Player created, id=0, slot=1
>> 14:01:15.118    pjsua_aud.c  Conf connect: 1 --> 0
>> 14:01:15.119    pjsua_aud.c  .Set sound device: capture=-1, playback=-2
>> 14:01:15.121    pjsua_aud.c  ..Opening sound device PCM at 48000/1/20ms
>> 14:01:15.140   conference.c  .Port 1 (Noise.wav) transmitting to port 
>> 0 (Logitech Wireless Headset: USB Audio (hw:0,0) (48KHz))
>> ***************** END PLAY AUDIO *****************
>> 14:01:15.143    pjsua_aud.c  Destroying player 0..
>> command: 14:01:15.183 os_core_unix.c !Info: possibly re-registering 
>> existing thread
>> 14:01:16.143    pjsua_aud.c !Closing sound device after idle for 1 
>> second(s)
>> 14:01:16.144    pjsua_aud.c  .Closing Logitech Wireless Headset: USB 
>> Audio (hw:0,0) sound playback device and Logitech Wireless Headset: 
>> USB Audio (hw:0,0) sound capture device
>>
>>
>> _______________________________________________
>> 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




[Index of Archives]     [Asterisk Users]     [Asterisk App Development]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [Linux API]
  Powered by Linux