Subject: voice calls on N900 working (off-line) was Re: N900 modem support in 3.18-rc1

From: [email-masked] (Pavel Machek)
Date: Thu, 20 Nov 2014 11:13:21 +0100

Hi!

> > REed pulseaudio modules that use cmtspeech will be ready sooner than later
> > (I believe in 2-3 monts from now), see on gitorious how fast we progressed
> > with -record and -music modules. Sure, -voice module is way more
> > complicated, but lots of it is already opensourced, we just need to figure
> > out a couple of DSP algorithms(drc, agc, aec, etc) related to call quality.
> > But I don't think the driver should wait for those modules to be REed, they
> > can be used as is even now, in their closed form for testing.
> 
> https://gitorious.org/pulseaudio-modules-nemo/jusas-tanuk2-mer-packaging/source/6ed34611b49c99b007f614d9dff4d58369876345:
> https://github.com/nemomobile/pulseaudio-module-cmtspeech-n9xx/commits/master
> 
> It seems there is already cmtspeech code for pulseaudio?

Yes, and it works; but see below.

> > Unfortunately all my spare time is dedicated to that PA stuff, so
> > I simply can't cleanup cmtspeech driver and send a patch for
> > upstreaming. (Pavel, what about you?)
> 
> If somebody gets audio working with your driver and documents the
> steps needed in userland I will take care of upstreaming the driver.

I got it to work.

Ok, so realtime audio does not work due to some pulseaudio problems,
but I was able to record a (silent) call and then replay it with 

pacat --rate 4000 ../../../pulseaudio2.raw

on my PC. I have yet to do some testing on the microphone side.

I'm using Debian 7 as a a base, and I suggest nfsroot.

It seems that libcmtspeechdata + pulseaudio-module-cmtspeech-n9xx is
enough to get calls to work. Now. I could not get configure on these
packages to work, so I hard-coded build scripts (mkit). You'll need to
symlink resulting .so to pulseaudio directory (see
/my/pulseaudio-module-cmtspeech-n9xx/src/cmtspeech/mkit). I leave binaries in,
since this is non-trivial to compile. Some memory allocation stuff was
missing. I faked it; it seems it is not needed in the first call.

untar in the root directory of n900. Reset n900, no need to log in
into console, connect using ssh -X root at n900.

Then go to /my/tui/ofone. Run "./run" -- that should start
pulseaudio. Run "./ofone", hit "lowlevel: online", hit "contacts",
enter phone number you want to call, hit the number, it should start
dialing.

Wait a while, hit "lowlevel: hangup".

Now you should have:

/my/pulseaudio2.raw

you can play with pacat above, and /my/pulseaudio.log.*, which
contains stuff that needs to be fixed.

I've put the archive at

http://atrey.karlin.mff.cuni.cz/~pavel/outgoing/n900-my.tgz

Have fun!

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html