update May 24
did not go too well
abandoned upgrade to ubu 24 after disk failure went back to ubu 20 with Asterisk 18
followed the instructions contained in this document (for the most part) with these more up to date ones
https://reintech.io/blog/setting-up-asterisk-voip-server-ubuntu-22
seemed to hit problems related to user groups and settings
The edits below -cause problems – so i have revised them in the instructions
sudo gedit /etc/default/asterisk runuser = chris ; The user to run as. rungroup = chris ; The group to run as.
sudo gedit /etc/asterisk/asterisk.conf runuser = chris ; The user to run as. rungroup = chris ; The group to run as.
update January 2022
Managed to reinstall everything on UBU 20
In general all went quite well.
Issues with screen resolution on the VGA monitor resolved
https://askubuntu.com/questions/1075157/unable-to-set-my-screen-resolution-higher.
and major issues finally resolved with mido -
install Python 2
install Pip 2 -
https://linuxize.com/post/how-to-install-pip-on-ubuntu-20.04/
install build essential (with synpatic)
rtmidi installation instructions
https://spotlightkid.github.io/python-rtmidi/installation.html#requirements
asterisk showed an error (during install)
chris@chris-UBU20:/usr/src/asterisk-16.23.0$ sudo contrib/scripts/get_mp3_source.sh
svn: E170013: Unable to connect to a repository at URL 'https://svn.digium.com/svn/thirdparty/mp3/trunk'
svn: E670003: Temporary failure in name resolution
chris@chris-UBU20:/usr/src/asterisk-16.23.0$
This may relate to issues later encountered when i forgot to install 123mpg and thus the MOH failed
Notes for the upgrade to UBU 20 in Jan 2022 as I remember them – details are in the asterisk reinstall afresh
Asterisk MOH relies on the icecast server running. The MOH config file will need updating for UBU 20
The two servers PRIMO and UBU20 use two different ports for the ice cast server- check that the various files that contain references to ports 8000 or 7000 are updated
Network – clashes occurred in NAT open ports with some open ports allocated to more than one IP – open ports for PRMO and UBU20 must not be duplicated
The right version of Python (2.7) must be installed a made default for any of the cereproc stuff to work. and Pip2 must be installed so that MIDO works.
GISS TV appeared to need to simple reset of the interface to work.
Could not figure how to install KX studio- abandoned
QJackctl – refused to allow the connection of the UMC 404 midi ports – I am not sure why then it did - Jack memory lockdown problems resolved somehow
Mido was a nightmare until Pip 2 was installed
Sox had some deprecated options
https://computingforgeeks.com/how-to-install-asterisk-16-lts-on-ubuntu-18-04-16-04-debian-9/
for undo possibility install synaptic
for efficiency install dropbox
sudo apt update && sudo apt -y upgrade
sudo reboot
sudo apt -y install git curl wget libnewt-dev libssl-dev libncurses5-dev subversion libsqlite3-dev build-essential libjansson-dev libxml2-dev uuid-dev
sudo apt policy asterisk
cd /usr/src/
sudo curl -O http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz
sudo tar xvf asterisk-16-current.tar.gz
cd asterisk-16*/
sudo contrib/scripts/get_mp3_source.sh
sudo contrib/scripts/install_prereq install
Problem with libjansson at this point
sudo ./configure --with-jansson-bundled
sudo make menuselect
sudo make
sudo make install
sudo make progdocs
sudo make samples
sudo make config
sudo ldconfig
sudo groupadd asterisk
sudo useradd -r -d /var/lib/asterisk -g asterisk asterisk
sudo usermod -aG audio,dialout chris
sudo chown -R chris.chris /etc/asterisk
sudo chown -R chris.chris /var/{lib,log,spool}/asterisk
sudo chown -R chris.chris /usr/lib/asterisk
Below is wrong
sudo gedit /etc/default/asterisk
runuser = chris ; The user to run as.
rungroup = chris ; The group to run as.
sudo gedit /etc/asterisk/asterisk.conf
runuser = chris ; The user to run as.
rungroup = chris ; The group to run as.
I believe its should be this
$ sudo gedit /etc/default/asterisk
AST_USER="asterisk"
AST_GROUP="asterisk"
$ sudo gedit /etc/asterisk/asterisk.conf
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
sudo systemctl restart asterisk
sudo systemctl enable asterisk
sudo asterisk -rvv
new terminal?
sudo ufw allow proto tcp from any to any port 5060,5061
install jack and pure data and sox through synaptic
sudo apt install python-pip
pip install mido
pip install rtmidi
(for UBU 20 all sorts of problems will occur at this point - i never resolved this)
check this out https://github.com/mido/mido/issues/145
and note this -
There are three different RtMidi packages for Python. Mido requires the one called python-rtmidi.
copy asterisk config files to new machine
/etc/asterisk/extensions.conf
/etc/asterisk/sip.conf
/etc/asterisk/musiconhold.conf
in order to install PD 50 you need
sudo apt-get install autoconf autogen
Problems occur at this point on some machines - I have no idea why
However on a more up to date machine although I accidentally installed PD in the downloads folder - will it matter it seems to work?
This is copied from the PD install instructions in the archive once expanded
Building Pd using the GNU autotools ./involves the following steps:
1. configure: detect & set library and platform options
2. make: compile Pd, associated tools, and resource files (ie. translations)
3. install: install the Pd binaries and resources onto your system
Overview:
cd path/to/pd
./autogen.sh
./configure
make
Start by opening a commandline shell and navigating to the Pd source directory:
cd path/to/pd
First generate the configure script and various build files by running:
./autogen.sh
Next configure Pd with the default options for your platform:
./configure
./configure --enable-jack
make
problems with PD Jack memory - seems to be fixed with
Set 'DefaultLimitMEMLOCK=128M' in:
/etc/systemd/system.conf
/etc/systemd/user.conf
and set
usermod -a -G audio theusername
set all files here to executable and editable by all
/home/chris/Dropbox/K6_primo/scripts
include the cereproc app tts callback
/home/chris/Dropbox/K6_primo/cerevoice_sdk/examples/python
and the cues text file
Pd extras etc in file prefrences path
/home/chris/.local/lib/pd/extra/cyclone
/user/lib/pd/extra
/user/lib/pd/extra/Gem
/home/chris/.local/lib/pd/extra
or
/usr/lib/puredata/extra
file/preferences/startup
zexy
Gem
list-abs
nilwind
ggee
cyclone
some of these don't appear to be used anymore
there was a problem with list2 object in PD resolved once all the above were preloaded
Icecast and Darkice
tried installing from synaptic (this worked out of the box with UBU 20)
it seemed ok but launching the config script
darkice -c /home/chris/Dropbox/K6/darkice/darkice3.cfg
threw an error
DarkIce: TcpSocket.cpp:251: connect error [111]
so i did
/etc/init.d/icecast2 start
and then checked the open ports on the router
Icecast and Darkice
sudo sh -c "echo deb http://download.opensuse.org/repositories/multimedia:/xiph/xUbuntu_16.04/ ./ >>/etc/apt/sources.list.d/icecast.list"
Step 2: Import the Multimedia signing key
You need to add the openSUSE OBS Multimedia signing key as a Trusted Key to your system.
There are many ways to verify this key, e.g. by a simple web search.
After downloading the key, you can run this command to verify your copy:
gpg multimedia-obs.key
sudo chmod 666 /var/log/icecast2
chmod 666 /usr/share/icecast2/web/status.xsl
change ip address to 63
(only if replaces existing system)
Problems with nautilus for dropbox - trashes connection
in grandstream control panel http://192.168.1.10/
- FXS port changed refrences from cloud to K6primo
in etc/asterisk
extensions.conf - changed all refrences to cloud to K6primo
sip conf - changed all refrences to cloud to K6primo
copied cerevoice_sdk folder to var/lib/
changed permissions in examples/basictts/ to exec for audio.voice, basictts, tts_callback, txt2wav
copied pd folder to var/lib/asterisk/
aded scripts count_poems, miditoPd, ringbash, killring, ringmido to scripts and made executable
copied sounds/chris folder to var/lib/asterisk/sounds
Basic installation now working
Started Jack and Pd -fiddle to connect all operating ok
Options changed in Sox - assuming them to be depracated code ammended to
sox /var/lib/asterisk/sounds/chris/ttsoutput.wav -t raw -r 8000 -c 1 /var/lib/asterisk/sounds/chris/render/ttsoutput.sln
the N and -s options removed
Update Jan 2022 for UBU 20 options changed again in Sox entries in dialplan - extensions.conf
exten => _.,n,System(sox /home/chris/Dropbox/K6_primo/speech_audio/misdial.wav -t raw -r 8000 /home/chris/Dropbox/K6_primo/render/tts_callback.sln)
serious isues with permissions - i think.
resolution was to change the default account for all the asterisk functions to Chris thus
sudo usermod -aG audio,dialout chris
sudo chown -R chris.chris /etc/asterisk
sudo chown -R chris.chris /var/{lib,log,spool}/asterisk
sudo chown -R chris.chris /usr/lib/asterisk
sudo gedit /etc/default/asterisk
AST_USER="chris"
AST_GROUP="chris"
sudo gedit /etc/asterisk/asterisk.conf
runuser = chris ; The user to run as.
rungroup = chris ; The group to run as.
May 2024 - had to use sudo to get to asterisk cli
sudo asterisk -vvvr
finally got to CLI
sudo usermod -aG audio,dialout asterisk
sudo chown -R asterisk.asterisk /etc/asterisk
sudo chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk
sudo chown -R asterisk.asterisk /usr/lib/asterisk
or
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
or
runuser = asterisk ; The user to run as.
rungroup = asterisk ; The group to run as.
Change default Python version to 2.7
How to switch between alternative Python Versions step by step instructions
https://linuxconfig.org/install-python-2-on-ubuntu-20-04-focal-fossa-linux
- First step is to check what python versions are available on your Ubuntu system. To do so execute the following command:$ ls /usr/bin/python* /usr/bin/python2 /usr/bin/python2.7 /usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/bin/python3.8 /usr/bin/python3-futurize /usr/bin/python3m /usr/bin/python3-pasteurize
- Next, check if you already have some python alternatives configured. To do so run:sudo update-alternatives –list python update-alternatives: error: no alternatives for python Currently the system has no python alternatives configured.
- In this step we are going to set two Python alternatives, namely it will by Python2 and Python3 alternative. Execute the following commands:$ sudo update-alternatives –install /usr/bin/python python /usr/bin/python2 1 $ sudo update-alternatives –install /usr/bin/python python /usr/bin/python3 2
- Confirm that both alternatives are ready to be used:$ sudo update-alternatives –list python /usr/bin/python2 /usr/bin/python3
- Change to alternative python version. For example to change to Python 2 execute the following command:$ sudo update-alternatives –config python There are 2 choices for the alternative python (providing /usr/bin/python). Selection Path Priority Status ———————————————————— * 0 /usr/bin/python3 2 auto mode 1 /usr/bin/python2 1 manual mode 2 /usr/bin/python3 2 manual mode Press to keep the current choice[*], or type selection number: 1 Enter selection number. In this case to switch to Python version 2 we enter the
1
selection number. - Check your python version:$ python -V Python 2.7.17 To switch to Python 3 alternative repeat Step 5 and enter the selection number appropriate to your desired python version.