Skip to end of metadata
Go to start of metadata




The ARI Feature Wish-List has been setup to help collect ideas from the wider ARI community. If you're using ARI to build applications or developing an ARI framework, we're interested in your thoughts, suggestions and feedback. You can contribute by either posting a comment or by joining the conversation in the #asterisk-dev or #asterisk-ari channels over on freenode. Remember, unless you want to write the feature yourself, there's no guarantee it will be done.

On this Page

JIRA Feature Requests

Key Summary T Created Updated Due Assignee Reporter P Status Resolution

Non-JIRA Feature Requests

Don't see your Wish-List request below? Ask in #asterisk-ari on freenode.


FeatureShort DescriptionSubmittedJIRA #Status
ARI TTS/ASR SupportSee: Re: Asterisk 14 Project - ARI and generic Text To Speech14/3/2015  
HTTP Media PlaybackPlay media directly from a URL. See Asterisk 14 Project - URI Media Playback16/3/2015ASTERISK-25654Done
Media PlaylistsPlay a sequence of media resources via a single request. See Asterisk 14 Project - Media Playlists16/3/2015Done
Early bridgeBridge answered channels (inbound) and unanswered channels (outbound), passing media from outbound channels to inbound channels. Allow for unanswered outbound channels to be placed directly into an early bridge. This would allow for early media in "dial" operations in ARI.16/3/2015



Session Progress HandlingAbility for ARI to raise an event when a channel receives Session Progress (183)19/11/2015ASTERISK-25925Done
Recorded file retrievalAllow files in the StoredRecordings resource to be retrieved from the HTTP server.16/3/2015  
Channel dialplan requestAllow ARI to "request" a channel in the dialplan to be placed into a Stasis application and/or be moved to a new location in the dialplan. Similar to the AMI Redirect action.16/3/2015  
"All" subscriptionsAllow ARI to make subscriptions to all bridges/channels/endpoints. In particular, this is needed for bridges, as they are not tied explicitly to a Stasis application.16/3/2015ASTERISK-24870Done
PBX StasisInstead of having a Stasis application, have certain dialplan contexts be "owned" an an external ARI application. Channels that enter that context are immediately handed off to an application. The application would immediately be subscribed to all channels within that context. Note that this would need the 'all bridges' subscription noted above.16/3/2015  
Security eventsAllow for subscriptions to security events through the applications resource. Raise events as appropriate.16/3/2015  
Asterisk controlImprove the /asterisk resource to allow for more system control, i.e., restarts, logger manipulation, module reloading, etc.16/3/2015ASTERISK-25173Done
Endpoint injectionFor endpoints that could feasibly support it, i.e., PJSIP, allow for endpoints to be 'pushed' into memory via ARI. This would allow for endpoints to be created through the REST API.16/3/2015ASTERISK-25238Done
Config file updatesAllow any configuration file in Asterisk to be updated via ARI.16/3/2015  
Stasis dialplan result variableSet a channel variable on a channel if it can't get placed into a Stasis dialplan application.16/3/2015ASTERISK-24802Done
Increase HTTP max content lengthThe HTTP max content length is currently 4k. That limits some of the requests that can be made.16/3/2015ASTERISK-24883Done
Add/Remove SoundsAllow ARI to be used to push new sounds to asterisk storage over HTTP and also deleted16/3/2015  
ARI DebugAllow ARI debug information at console, like sip set debug, we could have: ari set debug on/off. Could show details about messages passed between application and asterisk. Could be filtered by Stasis app too, e.g. "ari set debug <appname> on"05/05/2015 Done
ari show applicationsAbility to list applications from the console. Show details like IP of application websocket endpoint, duration, missed msg's(?)01/08/2016 Done
Bridged DTMF Pass-throughExpose ability to set pass-through behavior of DTMF on bridges at bridge creation or when a channel is added to a bridge05/08/2016  
Connection without userAllow ARI requests to be initiated without requiring authentication or a user15/08/2016  
Set Presence StateThe ability to set presencestate information via ARI would be immensely helpful for those developing custom apps that need to integrate Asterisk media functionality with external chat apps, etc.15/09/2016  
Multi-Channel RecordingRecorded to multi-channel wav with a channel for each leg of a bridge. WAV format spec supports up to 18 channels. It would be greatly useful for audio analysis15/09/2016 


On Connection EndWhen a call is active and the ARI connection dies, add an option to be able to send the call to a dialplan location or be able to set it within the ARI connection JSON   
  • No labels


  1. TTS/ASR via UniMRCP is the single biggest blocker for Adhearsion to move to ARI.

  2. ARI  - Instantly stop the running music.

    There should be a feature to instantly stop a running music. This feature will be very useful in case of custom queue, when a agent is available and we want to instantly dial that extension, instead of waiting for the greeting file to be completed.

    1. That already exists. When you issue a /play operation on a bridge or channel, you are handed back the ID of the Playbacks object that represents that media operation. You can issue a DELETE to the Playback resource to stop playback of that media.

      See: Asterisk 13 Playbacks REST API#stop

  3. I have two on my wish list.

    Get multiple channel variables in one request

    I'm currently crushing my server with numerous requests to get channel variables or various SIP headers for call routing.  My current workaround is joining a group of variables I know I need in Stasis into a CSV.  An option to request a list of functions and/or channel variables would be a real great one.

    My gross workaround

    An event for incoming SIP packets

    I already see the SIP 183 request which is a definitely want for me, but I also would like to be able to see REFER among others.  The way I'm developing my application I am essentially ignoring parts of Asterisk's handling of transfers and doing my own version via ARI.  I hang up the last call leg in a bridge when the second to last one leaves.  A channel will suddenly leave a bridge (one of the channels involved in a transfer) but there will no way for that application to know at that time why.  The application must wait to see if a replacement channel shows up shortly.  My current solution is to set a half second timer and cancel it if that replacement channel shows up in that time frame.

    Allow renaming of bridges

    Trying to rename a bridge gives a "Nope, we don't have this feature yet" message.  Not changing the ID is obvious, but being able to rename the bridge name would be useful.

    1. Thanks for the feedback. The first would definitely be useful, as making a bunch of those calls stringed together takes time (and is a bit annoying to do).

      The second is interesting, as we do have some notion of what is happening via the BridgeAttendedTransfer and BridgeBlindTransfer events. Are those events not showing up, showing up too late, or do they not have the information you're looking for?

      1. They show up, but the issue is they show up AFTER everything has been "done".  The transfer events are more of a "hey, this happened!" than something you can react to.  Interestingly enough, the VARSET gives an earlier warning than the actual transfer events.  That event comes after the channels are yanked out of the bridge, but before the StasisStart of the replacement channels. 

        Having access to the SIP messages would go to great lengths to help me see what's happening with a call without having to hope that I can piece it together with the normal ARI events.  However I do understand it's a challenge since PJSIP (or chan_sip) are their own entities that operate outside of Stasis.  For example, StasisStart won't show up an 'originated' channel till that call has been answered; so clearly there won't be any events able to be sent.  

        1. As a side note, I did look into what might be required to allow you to pull back an entire INVITE from chan_sip. The question is, what's the best way to do it. Populating a variable by default i suspect would be overkill for almost any other situation, but maybe having something in __get_header in chan_sip to handle this could work. Either way, not specifically an ARI request/issue, but I agree, would be most welcome.

          1. Or it could just be a setting in one of the .conf files that says something to effect of "send SIP packets in an event".  I suppose it would be either a PJSIP/chan_sip level config or maybe ARI/AMI level.

            Actually, it would be awesome if the SIP invite would be included on the StasisStart if available.  I'm still rubbing my greedy little hands in anticipation for the SIP 183 feature mentioned in the main article.

  4. Request: Ability to change the announcement prompt for MusicOnHold.

  5. Stereo Recording

    Currently the only way to do that is with starting two snoop channels that listen to in/out audio streams and record them.  Problem is that since it requires two operations to start or stop recording, the audio becomes easily de-synchronized resulting in parties seemingly talk over each other.  The usefulness of stereo is primarily in troubleshooting customer complaints of various audio issues.  Being able to isolate incoming and outgoing audio has proved invaluable in solving these issues quickly.

    1. It would be nice if it recorded to multi-channel wav with a channel for each leg of a bridge up to 18 legs. WAV format spec supports up to 18 channels. It would be greatly useful for audio analysis in the correctional industry as we can have up to 3 legs on the call at a time, and 6 if you count the prompts that are played to each leg. splitting each into it's own channel would greatly assist in playback, audio analysis, and troubleshooting audio issues.

  6. Wishlist addition - I don't have edit permission on this page so I'll comment. The ability to set presencestate information via ARI would be immensely helpful for those developing custom apps that need to integrate Asterisk media functionality with external chat apps, etc.

  7. Rest API list pagination

  8. Even with Asterisk 18 when you create a new External Media Channel there's no way to predict which port it will use to send the rtp packets. This makes it impossible to do a negotiation via MRCP with a Nuance server which needs to know the port the packages will come from.

    I have a workaround where my application received the RTP packages from Asterisk and resends them to Nuance, but of course this generates an extra bandwidth and CPU requirements for every call. 

    If I could get/reserve the RTP port my application could then send it in the MRCP invite and then the RTP packets would flow directly from Asterisk to Nuance improving performance greatly.