New asterisk 18 and FreePBX 15

Hello!
I would like to test asterisk 18 / pjsip with its new codec negotiations features using an existing FreePBX 15.0.16.75. Is it possible to just upgrade to asterisk 18 by installing the new rpm packages?
Yes, I know, that I have to edit the configuration for this to work. Are there any other things preventing this simple “change”.

No FreePBX Distro support for for Asterisk 18 yet. Ticket here:
https://issues.freepbx.org/browse/FREEPBX-21962

1 Like

Thanks!

https://www.dslreports.com/forum/r30661088-PBX-FreePBX-for-the-Raspberry-Pi now supports installing Asterisk 18 (as well as 13 - 17) with FreePBX 14 and FreePBX 15 on the Raspberry Pi (all versions) on both 32-bit and 64-bit versions of RaspiOS.

As I’m anyway building my asterisk RPM packages myself, I already directly switched to the new asterisk version. Afterwards, I patched fwconsole to not complain about an unknown asterisk version.
Seems to work fine until now (didn’t do all the tests so far).

This should be possible without hacking fwconsole by populating the field Force Asterisk Version in Advanced Settings.

Well - is this enough? I don’t think so because I had to change a few version-arrays, too (in some other scripts), to get the correct handling for this version, like the line=yes - configuration e.g.

You do have to add all your endpoints to the proper _post.conf file so you can include the four new settings in the endpoint configs. You also would have to interject any custom dialplan needed to use the new dialplan functions for this (if required). But the endpoints definitely need the config settings.

Just a separate note - a lot of the new codec work is foundational in nature (so Asterisk core changes) that is in Asterisk 18.0.0 and does not include much of the channel driver work. Hooks for PJSIP will be in a follow up Asterisk 18.x release.

Matthew Fredrickson

if (version_compare($engine_info[‘version’], “13”, “lt”) || version_compare($engine_info[‘version’], “18”, “ge”)) {

needs to be changed to

if (version_compare($engine_info[‘version’], “13”, “lt”) || version_compare($engine_info[‘version’], “19”, “ge”)) {

in

amp_conf/bin/retrieve_conf
amp_conf/htdocs/admin/libraries/Console/Reload.class.php
installlib/installcommand.class.php
install.php

a lot of the new codec work is foundational in nature (so Asterisk core changes) that is in Asterisk 18.0.0 and does not include much of the channel driver work.

So the improved codec negotiation of asterisk 18 doesn’t really work yet? Or what exactly does that mean?

It means that the functionality has not yet been exposed in PJSIP yet. The codec negotiation project itself became more complicated than expected so to meet the Asterisk 18 core freeze we wanted to focus on only the core foundational aspects - making sure those were correct - as changing those are not easy in a release branch. The PJSIP support will be coming in a later release.

This actually mirrors how a lot of things are done in Asterisk, we make a good foundation to build things on then work on building them.

3 Likes

Furthermore, once the codec negotiation work is added to PJSIP, FreePBX will need changes to reference the new PJSIP parameters. It will be a while before we see solid codec negotiation support in the FreePBX Distro.

2 Likes

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.