Writing a CTI application

Planning to write a CTI application for Windows, what is the best interface to choose, the old and trusted AMI or should I begin with the “new” rest api that asterisk supports? Can asterisk through ARI feed my client with data from the server like extensions states but without sending an actual channel to a specific stasis function.

It depends on what you want the application to do. For an explanation of the API differences, check out the overview of ARI here:


The best summary of the philosophical differences is this quote:

ARI is not about telling a channel to execute the VoiceMail dialplan application or redirecting a channel in the dialplan to VoiceMail.

It is about letting you build your own VoiceMail application.

If what you want is something that views the execution of channels in the Asterisk dialplan, AMI is probably your tool. If what you want is something to replace an application in the Asterisk dialplan, ARI is probably your tool.