Migrating from Asterisk 16 → Asterisk 21 – challenges, changes, and precautions

I’m planning to upgrade several servers from Asterisk 16 to Asterisk 21 and I want to gather advice from those who have done this before. My current setup includes:

  • Many custom and standard modules

  • Heavy use of AMI and AGI scripts

  • Reporting relying on cdr, queue_log, and cel databases

I’d like to understand what challenges I should anticipate and how to handle them.

Specific questions:

  1. What are the major changes in Asterisk 21 compared to Asterisk 16? For example, SIP stack changes, channel driver updates, deprecated features, dialplan changes, or logging/DB structure changes.

  2. For my AMI and AGI integrations, are there known differences that could break scripts or require modifications?

  3. Regarding cdr, queue_log, and cel databases: are there schema changes, new fields, or changes in how events/logs are stored that could affect reporting?

  4. What are the common gotchas or pitfalls when upgrading from 16 → 21, especially in environments with many modules, custom scripts, and heavy call volume?

  5. What precautionary steps should I take before upgrading? For example: test servers, backup strategies, module compatibility checks, verifying AMI/AGI scripts, and ensuring reporting works after the upgrade.

If you have already performed this upgrade, I’d greatly appreciate it if you could share your experience: which challenges surprised you, how you solved them, and any recommendations for a smooth migration.

Thanks in advance for your help

21 is Security Fix Only

[1] Asterisk Versions - Asterisk Documentation