AMI version numbers loosely follow the semantic versioning guidelines with a few alterations. AMI maintains the usual convention of MAJOR.MINOR.PATCH for numbering, but with the following definition differencesare formatted as MAJOR.BREAKING.NON-BREAKING:
- MAJOR – changes when a new major version of Asterisk is released
- MINOR BREAKING – changes when an incompatible API modification is made
- PATCH NON-BREAKING – changes when backwards compatible updates are made (new additions or bug fixes)
Any time a new major version of Asterisk is released the AMI version number is modified to reflect that. This is done by taking the major AMI number of the last major release of Asterisk, increasing it by one, and then resetting the other numbers to zero. From there the minor and patch version breaking and non-breaking versions are increased by one when a change (incompatible and compatible respectively) has been made to AMI.