[Freeswitch-users] mod_portaudio on Raspberry Pi currently broken?

Tom Lynn tom at tomlynn.com
Mon Sep 7 16:06:07 UTC 2020


Saied,
You are a very determined man!  I followed your instructions and yes, this
works when I run it from the command line as root.  Again, when launched by
systemd I come up with no reply when I run pa devlist in fs_cli.

When free time is more plentiful, I will investigate trying to run this as
a different user.  I think I just need to be in the proper group.  I will
also need to adapt this to use the 3.5mm output of the pi. Where do you see
the device names, in the alsa mixer?

---------- Forwarded message ---------
From: Tazari, Mohammad Reza <saied.tazari at gmail.com>
Date: Wed, Aug 26, 2020 at 11:01 AM
Subject: Re: [Freeswitch-users] mod_portaudio on Raspberry Pi currently
broken?
To: <freeswitch-users at lists.freeswitch.org>


Tom, other interested people,

I finally got it working on a raspberry pi-4 with buster lite, mostly
thanks to the following articles:

https://sigmdel.ca/michel/ha/rpi/bluetooth_01_en.html
https://sigmdel.ca/michel/ha/rpi/bluetooth_02_en.html
https://sigmdel.ca/michel/ha/rpi/bluetooth_n_buster_01_en.html


The exact reproducible  steps have been:

   1. Started on the basis of


   + my FreeSwitch installation based on instructions under
   https://freeswitch.org/confluence/display/FREESWITCH/Raspberry+Pi

   2.

*sudo apt-get update  &&  sudo apt-get install -y bluealsa *
   3. *sudo vi /lib/systemd/system/bluealsa.service*
   --> substituted ExecStart=/usr/bin/bluealsa with
   -->  Environment=LIBASOUND_THREAD_SAFE=0
      ExecStart=/usr/bin/bluealsa -p hfp-hf -p hsp-hs -p hfp-ag -p hsp-ag
   -p a2dp-source -p a2dp-sink

   4. *sudo vi /lib/systemd/system/bluetooth.service*
   --> Added --noplugin=sap to the end of the following line
      ExecStart=/usr/lib/bluetooth/bluetoothd

   5. *sudo vi /lib/systemd/system/bthelper at .service*
   --> Added ExecStartPre=/bin/sleep 2 in a new line after
      Type=simple

   6. Created a new file by *sudo vi /etc/asound.conf* and added the
   following as its sole content (if you know the MAC address of your
   Bluetooth device, substitute it already now; otherwise you can change it
   also later in step 9):
   pcm.btAudioIO {
           type asym
           playback.pcm {
                   type plug
                   slave.pcm {
                           type bluealsa
                           service "org.bluealsa"
                           device "00:11:09:94:14:3D"
                           profile "a2dp"
                           delay 10000
                   }
           }
           capture.pcm {
                   type plug
                   slave.pcm {
                           type bluealsa
                           service "org.bluealsa"
                           device "00:11:09:94:14:3D"
                           profile "sco"
                           delay 10000
                   }
           }
           hint {
                   show on
                   description "Bluetooth Audio Input/Output Dvice"
           }
   }

   7.
*sudo adduser freeswitch audio sudo adduser *

*freeswitch bluetooth sudo reboot *
   8. After reboot, run *sudo bluetoothctl* and then find, pair, connect
   and trust your Bluetooth device with the following control commands of this
   program:

*agent on scan on*
           <-- find the MAC address of your device in the scan outputs

* pair 50:11:2D:06:ED:2F *
*scan off *


*connect 50:11:2D:06:ED:2F trust 50:11:2D:06:ED:2F exit *--> from now on,
   your device should automatically reconnect to the pi each time after the pi
   is rebooted; if, however, this is not the case, you will have to redo this
   step after each reboot.

   9. In this example, the device that I have paired and trusted has a
   different MAC address as the one in /etc/asound.conf; therefore we must
   edit the file and set the right MAC address. If you already had the right
   MAC address, you may go to the next step without reboot; but, if you had to
   change the file /etc/asound.conf, then you will have to reboot before going
   to the next step.

   10. Test your device with the following two commands (five seconds
   recording):

*arecord -D btAudioIO -d 5 test.wav aplay *
*-D btAudioIO test.wav *
   11. Assuming that the above test is successful, you now
   - edit <FreeSwitch-Config-Home>/autoload_configs/modules.conf.xml and
   un-comment the loading of mod_portaudio
   - edit <FreeSwitch-Config-Home>/autoload_configs/portaudio.conf.xml and
   substitute the whole content with the following new content:
   <configuration name="portaudio.conf" description="Soundcard Endpoint">
     <settings>
       <param name="indev" value="btAudioIO"/>
       <param name="outdev" value="btAudioIO"/>
       <param name="ringdev" value="btAudioIO"/>
       <param name="hold-file" value="$${hold_music}"/>
       <param name="dialplan" value="XML"/>
       <param name="cid-name" value="$${outbound_caller_name}"/>
       <param name="cid-num" value="$${outbound_caller_id}"/>
       <param name="sample-rate" value="48000"/>
       <param name="codec-ms" value="20"/>
     </settings>
   </configuration>c

   12. In my case, I didn't need to do anything for dial plans because in
   my system both the in- and outbound calls are first handled by my python
   scripts; in particular, the BT handsfree device is never supposed to
   make calls but is called for making announcements or invited to a running
   call as the third leg. So far, I was using an IP telephone with
   auto-answering capability as extension 000 of my FreeSwitch for this
   purpose. To substitute that phone with the BT handsfree device, I just
   needed to update my related python script with the following command:
   *sudo sed -i 's#user/000@[0-9.]+#portaudio/auto_answer#g' dial.py*


After a reboot, after which also FreeSwitch and my application start,
everything was working for me just fine :-)

Cheers,

-- Saied


ForwardedMessage.eml

Subject:
Re: [Freeswitch-users] mod_portaudio on Raspberry Pi currently broken?

From:
Tom Lynn <tom at tomlynn.com> <tom at tomlynn.com>

Date:
27-Jul-20, 07:56

To:
FreeSWITCH Users Help <freeswitch-users at lists.freeswitch.org>
<freeswitch-users at lists.freeswitch.org>
I'm in the same boat with portaudio when it's started with systemd.  When I
disable it as a service and start it from the command line, pa devlist does
return a list of devices.  Still workingon getting a call from portaudio to
a station and vice versa.  Calling a station from portaudio device goes to
voicemail and in reverse direction I never get a ring indication, just
music on hold.

On Tue, Jun 30, 2020 at 8:21 PM saiedt <saied.tazari at gmail.com> wrote:
Lesley Pervis wrote
> Sorry for the spam, but I thought I'd mention that I can aplay no problem
> from the command line as the 'freeswitch' user, and yet when FS is running
> as that user, no luck.

Exactly seven years after your last post here, I'm there to ask if you
finally succeeded to resolve the issue?
My case:

1. Pi-4 with Raspbian buster und latest related FreeSwitch distribution,
apt-upgraded and updated just yesterday

2. aplay is working both with the audio jack and with bluetooth (although
not simultaneously: as soon as I have a bluetooth audio connection, the
audio jack stops to work, and I cannot switch back to it with "amixer cset
numid=3 1", but aplay can continue to use the bluetooth connection again
after I issue "amixer cset numid=3 65536")

3. it seems that I do not have any permission issue as both pi and
freeswitch are in the audio group and related devices under /dev/snd are in
that group

4. I have already installed alsaoss, libasound2 and libasound2-dev

5. The output of "pa rescan" in fs_cli is the following:

2020-06-19 06:55:18.803478 [INFO] mod_portaudio.c:3186 Looking for new
devices.
2020-06-19 06:55:18.803478 [INFO] mod_portaudio.c:2102 PortAudio version
number = 1246720
PortAudio version text = 'PortAudio V19.6.0-devel, revision
396fe4b6699ae929d3a685b3ef8a7e97396139a4'
2020-06-19 06:55:18.943433 [DEBUG] mod_portaudio.c:1773 global indev [-1]
2020-06-19 06:55:18.943433 [ERR] mod_portaudio.c:1777 Cannot find an input
device
2020-06-19 06:55:18.943433 [DEBUG] mod_portaudio.c:1786 global outdev [-1]
2020-06-19 06:55:18.943433 [ERR] mod_portaudio.c:1790 Cannot find an output
device
2020-06-19 06:55:18.943433 [INFO] mod_portaudio.c:2125 Number of devices = 0

Any clue, what could be wrong on my side?

Thanks!

_________________________________________________________________________

The FreeSWITCH project is sponsored by SignalWire https://signalwire.com
Enhance your FreeSWITCH install with disruptive priced SMS and PSTN
services.
Build your next product on our scalable cloud platform.

Join our online community to chat in real time https://signalwire.community

Professional FreeSWITCH Services
sales at freeswitch.com
https://freeswitch.com

Official FreeSWITCH Sites
https://freeswitch.com/oss
https://freeswitch.org/confluence
https://cluecon.com

FreeSWITCH-users mailing list
FreeSWITCH-users at lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
https://freeswitch.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20200907/ccfd9c0d/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipmekgmohbekpikl.png
Type: image/png
Size: 9299 bytes
Desc: not available
URL: <http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20200907/ccfd9c0d/attachment-0001.png>


More information about the FreeSWITCH-users mailing list