Thanks Dan! The problem seems to be resolved! The sound card is shared between pjsua and other applications and works fine!!! And even without asound.conf file and all those creepy asym/dmix magic! I'll check everything more carefully in the evening, i'm too excited now!!! Thanks! :))) Mon, 14 May 2012 09:36:23 +0200 ?? Dan Arrhenius <dan at keystream.se>: > Hi, > the problem with the assertion error when using alsa is caused by a bug > in alsa_dev.c. > I'm attaching a patch that solves the issue. > > Regards, > Dan > > On Thu, 2012-05-10 at 21:04 +0400, Igor Kravets wrote: > > It is 2.x release active now and the problem with "ALSA native > > support" in pjsua application still remains. > > > > While auddemo application (compiled with ALSA native support) works > > great both recording and playing sound through > > my aliased "duplex" alsa device (see asound.conf below) simultaneosly > > with other application > > > > Pjsua with same compilation option DOES NOT WORK, breaking with: > > >>> pjsua8: ../src/pjmedia/conference.c:1795: get_frame: Assertion > > `frame->size == conf->samples_per_frame * conf->bits_per_sample / 8' > > failed. > > > > > > It is worth noting that pjsua built with portaudio DOES WORK, BUT > > works unstable and sound stops playing after 10-30 seconds of > > playback! > > Using latest external libportaudio works a little bit more stable and > > sound plays a little bit longer and then also stops. > > > > > > A guy called Damir also had that problem and it seems that he could > > fix things up by asound.conf magic. > > That solution doesn't work for my hardware. I've played a lot > > with asoundrc options and aliases. Nothing helps. > > > > here's Damirs post: > > > http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2011-February/012591.html > > > > > > Some other guys recommend me using external sound mixing server, which > > doesn't suite my task very well: > > > http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2010-April/010721.html > > > > > > Problem exits. Noone yet had offered a fix, only workarounds. Maybe > > guys that created alsa_dev.c can shed some light on the problem? > > I really need help with this :( > > > > The only thing that works with ALSA and shared soundcard is still > > pjsua version 1.0.3. > > It also trends to just stop playing sound but really really rare > > (twice a week). > > > > > > == Here's how pjsua crashes after local echotest (cc 0 0): == > > > > TC421:~# ./pjsua8 > > 20:22:01.147 os_core_unix.c !pjlib 2.0.0-beta for POSIX initialized > > 20:22:01.148 sip_endpoint.c .Creating endpoint instance... > > 20:22:01.151 pjlib .select() I/O Queue created (0x81bae18) > > 20:22:01.151 sip_endpoint.c .Module "mod-msg-print" registered > > 20:22:01.151 sip_transport. .Transport manager created. > > 20:22:01.151 pjsua_core.c .PJSUA state changed: NULL --> CREATED > > 20:22:01.151 sip_endpoint.c .Module "mod-pjsua-log" registered > > 20:22:01.151 sip_endpoint.c .Module "mod-tsx-layer" registered > > 20:22:01.151 sip_endpoint.c .Module "mod-stateful-util" registered > > 20:22:01.151 sip_endpoint.c .Module "mod-ua" registered > > 20:22:01.151 sip_endpoint.c .Module "mod-100rel" registered > > 20:22:01.151 sip_endpoint.c .Module "mod-pjsua" registered > > 20:22:01.151 sip_endpoint.c .Module "mod-invite" registered > > 20:22:01.213 alsa_dev.c ..ALSA driver found 8 devices > > 20:22:01.213 alsa_dev.c ..ALSA initialized > > 20:22:01.213 pjlib ..select() I/O Queue created (0x81e94bc) > > 20:22:01.251 sip_endpoint.c .Module "mod-evsub" registered > > 20:22:01.251 sip_endpoint.c .Module "mod-presence" registered > > 20:22:01.251 sip_endpoint.c .Module "mod-mwi" registered > > 20:22:01.251 sip_endpoint.c .Module "mod-refer" registered > > 20:22:01.252 sip_endpoint.c .Module "mod-pjsua-pres" registered > > 20:22:01.252 sip_endpoint.c .Module "mod-pjsua-im" registered > > 20:22:01.252 sip_endpoint.c .Module "mod-pjsua-options" registered > > 20:22:01.252 pjsua_core.c .1 SIP worker threads created > > 20:22:01.252 pjsua_core.c .pjsua version 2.0.0-beta for > > Linux-2.6.32.9/i686/glibc-2.9 initialized > > 20:22:01.252 pjsua_core.c .PJSUA state changed: CREATED --> INIT > > 20:22:01.252 sip_endpoint.c Module "mod-default-handler" registered > > 20:22:01.252 pjsua_core.c SIP UDP socket reachable at > > 192.168.4.190:5060 > > 20:22:01.252 udp0x81f09a0 SIP UDP transport started, published > > address is 192.168.4.190:5060 > > 20:22:01.252 pjsua_acc.c Adding account: > > id=<sip:192.168.4.190:5060> > > 20:22:01.252 pjsua_acc.c .Account <sip:192.168.4.190:5060> added > > with id 0 > > 20:22:01.252 pjsua_acc.c Acc 0: setting online status to 1.. > > 20:22:01.253 tcplis:5060 SIP TCP listener ready for incoming > > connections at 192.168.4.190:5060 > > 20:22:01.253 pjsua_acc.c Adding account: > > id=<sip:192.168.4.190:5060;transport=TCP> > > 20:22:01.253 pjsua_acc.c .Account > > <sip:192.168.4.190:5060;transport=TCP> added with id 1 > > 20:22:01.253 pjsua_acc.c Acc 1: setting online status to 1.. > > 20:22:01.253 pjsua_core.c PJSUA state changed: INIT --> STARTING > > 20:22:01.253 pjsua_media.c ..NAT type detection failed: Invalid STUN > > server or server not configured (PJNATH_ESTUNINSERVER) > > 20:22:01.253 sip_endpoint.c .Module "mod-unsolicited-mwi" registered > > 20:22:01.253 pjsua_core.c .PJSUA state changed: STARTING --> > > RUNNING > > >>>> > > Account list: > > [ 0] <sip:192.168.4.190:5060>: does not register > > Online status: Online > > *[ 1] <sip:192.168.4.190:5060;transport=TCP>: does not register > > Online status: Online > > Buddy list: > > -none- > > > > > +=============================================================================+ > > | Call Commands: | Buddy, IM & Presence: | > > Account: | > > | | | > > | > > | m Make new call | +b Add new buddy .| +a Add > > new accnt | > > | M Make multiple calls | -b Delete buddy | -a Delete > > accnt. | > > | a Answer call | i Send IM | !a Modify > > accnt. | > > | h Hangup call (ha=all) | s Subscribe presence | rr > > (Re-)register | > > | H Hold call | u Unsubscribe presence | ru > > Unregister | > > | v re-inVite (release hold) | t ToGgle Online status | > Cycle > > next ac.| > > | U send UPDATE | T Set online status | < Cycle > > prev ac.| > > | ],[ Select next/prev call > > +--------------------------+-------------------+ > > | x Xfer call | Media Commands: | Status & > > Config: | > > | X Xfer with Replaces | | > > | > > | # Send RFC 2833 DTMF | cl List ports | d Dump > > status | > > | * Send DTMF with INFO | cc Connect port | dd Dump > > detailed | > > | dq Dump curr. call quality | cd Disconnect port | dc Dump > > config | > > | | V Adjust audio Volume | f Save > > config | > > | S Send arbitrary REQUEST | Cp Codec priorities | > > | > > > +-----------------------------------------------------------------------------+ > > | q QUIT L ReLoad sleep MS echo [0|1|txt] n: detect NAT > > type | > > > +=============================================================================+ > > You have 0 active call > > >>> cc 0 0 > > 20:22:08.552 pjsua_media.c Conf connect: 0 --> 0 > > 20:22:08.552 pjsua_media.c .Set sound device: capture=-1, > > playback=-2 > > 20:22:08.552 pjsua_app.c ..Turning sound device ON > > 20:22:08.552 pjsua_media.c ..Opening sound device PCM at 16000/1/20ms > > 20:22:08.565 ec0x81c4070 ...AEC created, clock_rate=16000, > > channel=1, samples per frame=320, tail length=200 ms, latency=99 ms > > 20:22:08.565 conference.c .Port 0 (duplex) transmitting to port 0 > > (duplex) > > Success > > >>> pjsua8: ../src/pjmedia/conference.c:1795: get_frame: Assertion > > `frame->size == conf->samples_per_frame * conf->bits_per_sample / 8' > > failed. > > > > > > > > > > > > == my asound.conf == > > > > pcm.dmixer { > > type dmix > > ipc_key 1024 > > slave { > > pcm "hw:0,0" > > period_time 0 > > rate 44100 > > period_size 1024 > > buffer_size 8192 > > } > > bindings { > > 0 0 > > 1 1 > > } > > } > > > > > > pcm.conv_dmixer { > > type plug > > slave.pcm "dmixer" > > } > > > > pcm.conv_record { > > type plug > > slave.pcm "hw:0,0" > > } > > > > pcm.duplex { > > type asym > > playback.pcm "conv_dmixer" > > capture.pcm "conv_record" > > > > hint { > > show on > > description "Duplex device" > > } > > > > } > > > > pcm.!default { > > type plug > > slave.pcm "duplex" > > } > > > > > > > > > > _______________________________________________ > > 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