Upgrading Asterisk - options for massive version span

I was formerly a user/provider of technical services supporting Asterisk, and am coming back to the fold. The motivator for this is an upgrade scenario challenge and I’ll appreciate any pointers.

I’m aware of a migration strategy when moving Asterisk to a new machine, involving copying config/content files and a database dump/restore. The challenge here is multifold:

  • the source system is extremely old (testament to Asterisk stability and “if it isn’t broke” reliability). Late Enterprise Linux 6.x, which is long unsupported.
  • the target/destination system must be supportable, so the target OS selection is RHEL 9 preferred, RHEL 8 acceptable.
  • The running Asterisk system is 13.11.2, and current is of course 22.3.0 (as of when I pulled the source bundle).

Is there any 1- or 2-hop upgrade path that anyone has experienced, where 22.3.0 is deployed and then configs/files/database from the 13.11.2 system is moved/copied to the new system?

My expectations of a solution of this sort is low, so you can’t disappoint me by saying it doesn’t exist. I’ll appreciate any pointers that anyone in the community might have. Thanks!

Is the old installation still using chan_sip? I had a similar scenario and most of the old configs just worked. The largest part of the move was the conversion of the old chan_sip configs to chan_pjsip.

In general you would like to make sure that all modules available to the old installation are compiled into the new installation as well. make menuconfig on the old machine would show you what was compiled in back in the day. make sure to have everything in the new one as well.

another thing to make sure is to check if there were any AGI scripts or custom sound prompts in the old installation. You will need to check and move them too.

In general watching the startup messages in Asterisk and setting “core set verbose 100” on the console can give you good hints on things that don’t work.

Good luck!

For module deprecation/removal there is a docs page which lists the modules and when they were removed[1]. The ChangeLogs directly also has changelogs in modern versions which include upgrade notes, though in older versions before Github that would be at the top level instead.

[1] Asterisk Module Deprecations - Asterisk Documentation

@wonder and @jcolp, thank you very much for sharing your insights/pointers! This is why I’m really stoked to be getting myself back to Asterisk! :wink:

It might be as long as a week from now, but will follow up here with any gotcha/pothole items I hit while applying your collective wisdom…

1 Like

Honestly except for a few cases (chan_sip → chan_pjsip, Macro → GoSub) unless you’re being extremely clever and going off the beaten path as it were, upgrading is fairly uneventful.