Poor voice quality and codec selection with pjsua_wince

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

 



> > Hi,
> >
> > I am trying to make a (decent) VoIP call using the following setup:
> > - Asterix PBX (latest version) running on Trixbox
> > - pjsua (command line tool) on a Windows XP host PC
> > - Cellphone (O2) running Windows Mobile 5 and pjsua_wince application
> >
>
> FYI PocketPJ is the new (and better) app sample for WM

I was not aware of its existence.
However, I've tried it and the symptoms are pretty much the same -
codec PCMU, echo, "silence" noise (which seems to be generated by the
echo suppressor)

>
> >
> > - LAN is connected using a LinkSys WRT54L (PC connected with cable and
> > phone connected with WiFi)
> >
> >
> First thing first, which pjsip version are you using on both sides of the
> call?

latest svn trunk

>
> > I manage to make a phone between the O2 and the PC, however the quality is
> > very poor, with echo and disruptions of the voice.
> >
>
> This probably is a known problem. We use echo suppressor on WM and it's
> performance is quite poor. If anyone can suggest better alternatives then
> that will be great.

Yeah, I've noticed that the echo suppressor is quite poor. Will speex
make things better, or it's a completely different issue?

>
> > Also, I periodically (~1 sec interval) get "silence noises" when there is
> > no talk.
> >
> >
> I suppose that's the VAD and keep-alive in action. This is also a known
> issue: http://trac.pjsip.org/repos/ticket/490
>
>
> > dq dump from pjsua:
> >  [CONFIRMED] To: "801" <sip:801 at 10.0.0.151 <sip%3A801 at 10.0.0.151>
> > >;tag=as18eb6d76
> >    Call time: 00h:01m:12s, 1st res in 0 ms, conn in 0ms
> >    SRTP status: Not active Crypto-suite: (null)
> >    #0 PCMU @8KHz, sendrecv, peer=10.0.0.151:10406
> >       RX pt=0, stat last update: 00h:00m:02.781s ago
> >          total 3.5Kpkt 570.8KB (713.6KB +IP hdr) @avg=63.1Kbps/78.8Kbps
> >          pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
> >                (msec)    min     avg     max     last    dev
> >          loss period:   0.000   0.000   0.000   0.000   0.000
> >          jitter     :   0.000   3.517  21.375   4.000   2.393
> >       TX pt=0, ptime=20ms, stat last update: 00h:00m:02.375s ago
> >          total 3.5Kpkt 575.4KB (719.3KB +IP hdr) @avg 63.6Kbps/79.5Kbps
> >          pkt loss=0 (0.0%), dup=0 (0.0%), reorder=0 (0.0%)
> >                (msec)    min     avg     max     last    dev
> >          loss period:   0.000   0.000   0.000   0.000   0.000
> >          jitter     :  18.875  21.696  24.375  22.375   1.661
> >      RTT msec       :   2.014   5.922  11.016   5.020   2.840
> >
> >
> > I have the following questions:
> > 1. Why is the PCMU codec selected and not Speex (I have set Speex to be in
> > the highest priority on both sides)? How can I make it choose something else
> > other than PCMU?
> > When I tries setting all Codecs priorities except Speex to zero, I couldn't
> > establish a conversation.
> >
> >
> Did you put/enable Speex in the build?
>
on the WM side I didn't change anything this round - so I guess it is
included there by default.
on the Desktop side speex is there (seeing it by typing Cp)

Is there another way to confirm they both have it?
do I need to specify something in the PocketPJ build?

> > 2. I set --no-vad in the pjsua console on the PC and set:
> > #   define PJMEDIA_CODEC_MAX_SILENCE_PERIOD    -1
> > before deploying the file to the mobile device.
> > This should have disabled the 'silence noises' but it doesn't. Am I missing
> > something?
> >
> >
> Disabling the vad with --no-vad should be sufficient. Of course you'd need
> to do the same in the WM side as well.
>
>
done that...has no effect.

>
> > 3. Although I use non-routable IPs, I have the entire system on a LAN. Why
> > does it think I'm behind a NAT and tunnels everything through the Asterix?
> > Is there a way to tell the software to contact directly?
> > I've set the following in pjsua_wince.cpp:
> >     // Use this to disable STUN
> > #   define STUN_DOMAIN    NULL
> > #   define STUN_SERVER    NULL
> > And it does not seem to have any effect.
> >
> >
> If you're calling an Asterisk number (or otherwise calling via Asterisk),
> then it's up to your Asterisk configuration whether to tunnel the audio or
> not, no?
>

I thought so too. I guess that since the entire network is behind NAT
and uses non-routable IPs it thinks that
it should tunnel everything through the Asterix.

>
> > 4. Was anyone able to succesfully deploy such (or similar) enviorment? Can
> > you provide some hints?
> >
> > 5. It seems that the changes I make have very little or no effect on the
> > overall quality. For example, I set:
> > #   define PJMEDIA_SOUND_BUFFER_COUNT        20
> > and expected to have a very long delay, but it had no effect.
> > Am I doing something wrong?
> >
> >
> With the latest (0.9) pjsip, that setting has less effect now as the buffer
> count will be calculated dynamically.

I see.

>
> Cheers
>  Benny



[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