[asterisk-app-dev] ARI ApplicationActivated event?

Kevin Harwell kharwell at digium.com
Wed Feb 4 13:45:11 CST 2015


On Wed, Feb 4, 2015 at 10:37 AM, Joshua Colp <jcolp at digium.com> wrote:

> Kevin Harwell wrote:
>
> <snip>
>
>
>> Hmm now that I think about it, once all refs to the app goes away it
>> will be destroyed. Upon reconnect it is not 'activated' but considered a
>> new app. If we decide to put this in, my current opinion would be to
>> keep it simple and just send a notification that the app was activated
>> and whether or not it missed any messages. Then the app can retrieve any
>> current state it might need to update itself with. This puts it in a
>> position of knowing the current state which is consistent with when the
>> app reconnects but is created new.
>>
>
> Here's a scenario where you can't recover state: DTMF digits being
> received from a channel. What should the application do in that case?
>
> Ultimately this idea is formed around the assumption that all the state
> can be retrieved upon startup, so I'd scope out some use cases and see if
> that's true. Determine what state an application may need to keep and what
> can be gleamed from Asterisk. For example: do we provide a mechanism to
> know what channels are in the application, or does the application have to
> persist that themselves?
>
>
So then there are for sure cases where full state is not recoverable and a
missed message(s) playback mechanism would be ideal. I guess the questions
go back then to how useful is it and is it worth the effort?

Right now Asterisk doesn't even notify an application that it is in a
"reactivated" state.  So either applications currently built on ARI don't
care about syncing state on reconnection, or they use the current commands
available to do it (and that is sufficient).  Maybe having the proposed
extra notification would not be so useful.

However as applications become more complex the need may arise for an
application to know it is in a "reactivated" state and that things were
happening while it was away. So should we implement it at all? Are
disconnects a real problem? Do we do it now or later?

if the answer is "yes do it now!" then it becomes how do we implement it?
What kind of information is enough for the majority of application use
cases?


-- 

Kevin Harwell
Digium, Inc. | Software Developer
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at: http://digium.com & http://asterisk.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20150204/cdfbe45b/attachment.html>


More information about the asterisk-app-dev mailing list