I have many years experience of CTI on the likes of Avaya, Mitel, Cisco etc, but I’m totally new to Asterisk.

I’m looking for advice on where to start with a CTI requirement.

I have a core requirement to programmatically send DTMF digits down a connected, external call (connected to a handset) from a server process when it recieves a trigger/event. The phone system is a Digium (it’s pretty new, but I don’t have the version number to hand). Preferably our server process would be written in .net, but we can use C++ or Java if we have to.The reason for this requirement is to comminicate (occassionally) with an existing line-side process listening for DTMF on the trunk.

Having read some of the available Asterisk documentation I think our best option might be to make use of the SendDTMF command of the Asterisk Manager Interface. It looks like the AMI already has a .net wrapper (AMIConnector) so we don’t have to use the raw TCP/IP stream.

So …

  1. Is the AMI Connector the best option for programmatically sending DTMF down a connected call from a third-party (not first-party) CTI application?
  2. Will this work on a Digium system, or might the interface be locked down etc?
  3. Assuming AMI is the best solution option, are there any costs (e.g. license costs) or restrictions associated with using AMI or AMIConnector in a commercial product?
  4. Again, assuming AMI is the best solution, can anyone recommend the best developer’s guide to programming and configuring AMI?

Many thanks.