<div dir="ltr">On Thu, Dec 19, 2013 at 12:54 PM, Paul Belanger <span dir="ltr"><<a href="mailto:paul.belanger@polybeacon.com" target="_blank">paul.belanger@polybeacon.com</a>></span> wrote:<br><div class="gmail_extra">
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="HOEnZb"><div class="h5">On Thu, Dec 19, 2013 at 1:42 PM, Paul Belanger<br>
<<a href="mailto:paul.belanger@polybeacon.com">paul.belanger@polybeacon.com</a>> wrote:<br>
> On Wed, Dec 18, 2013 at 5:25 PM, Jonathan Rose <<a href="mailto:jrose@digium.com">jrose@digium.com</a>> wrote:<br>
>> ARI Mailboxes resource<br>
>><br>
>> I'm currently starting on some basic implementation of the mailboxes<br>
>> resource described at<br>
>> <a href="https://wiki.asterisk.org/wiki/display/AST/Blinky+Lights+API" target="_blank">https://wiki.asterisk.org/wiki/display/AST/Blinky+Lights+API</a><br>
>><br>
>> Data Model:<br>
>><br>
>> name: string        name of the mailbox<br>
>> new_messages: int   count of messages that have not been marked as old<br>
>> old_messages: int   count of messages that have been marked as old<br>
>><br>
>> As such, I'm currently writing stub functions for the following commands<br>
>><br>
>> Method   URL                        Return type<br>
>> GET      /mailboxes                 list(mailbox)<br>
>> POST     /mailboxes                 mailbox<br>
>> GET      /mailboxes/{mailboxName}   void<br>
>> PUT      /mailboxes/{mailboxName}   void<br>
>> DELETE   /mailboxes/{mailboxName}   void<br>
>><br>
>> GET /mailboxes<br>
>> List all mailboxes in Asterisk<br>
>><br>
>> POST /mailboxes<br>
>> Create an empty mailbox<br>
>> query parameters:<br>
>>   mailboxName - name for the mailbox<br>
>><br>
>> GET /mailboxes/{mailboxName}<br>
>> Get the current state of a mailbox<br>
>> path parameters:<br>
>>   mailboxName - name of the mailbox<br>
>> error responses:<br>
>>   404 - Mailbox not found<br>
>><br>
>> PUT /mailboxes/{mailboxName}<br>
>> Change the state of a mailbox<br>
>> path parameters:<br>
>>   mailboxName - name of the mailbox to be modified<br>
>> query parameters:<br>
>>   new_messages - count of new messages in the mailbox<br>
>>   old_messages - count of old messages in the mailbox<br>
>> error responses:<br>
>>   404 - Mailbox not found<br>
>>   409 - Mailbox not in a stasis application<br>
>><br>
>> DELETE /mailboxes/{mailboxName}<br>
>> Delete an existing mailbox<br>
>> path parameters:<br>
>>   mailboxName -name of the mailbox to be deleted<br>
>> error responses:<br>
>>   404 - Mailbox not found<br>
>>   409 - Mailbox not in a stasis application<br>
>><br>
>> Events:<br>
>> MailboxStateChanged<br>
>>   The contents of a mailbox have changed<br>
>>   mailbox - name of the mailbox that was changed<br>
>><br>
>> MailboxUpdateRequested<br>
>>   When Asterisk starts, it has no mailbox state from the external<br>
>>     application. This event requests that the external voicemail<br>
>>     application put the current mailbox state back into Asterisk.<br>
>>   mailbox - name of the mailbox Asterisk<br>
>><br>
>> I'm still a little hazy on some details, such as whether or not<br>
>> mailbox data will be persisted. There was something of a debate<br>
>> over the topic that I couldn't quite tell whether it reached a<br>
>> concensus and the wiki proposal contained conflicting information.<br>
>> I'm unsure how that will affect the ARI work.<br>
>><br>
>> If anyone has any input into this, I'd appreciate hearing it before<br>
>> getting too deep into the coding of it.<br>
>><br>
>> Also, it's worth noting that the Mailboxes resource will not be<br>
>> released with Asterisk 12.0, and will likely be a new feature<br>
>> slightly down the road (targeting 12.1).<br>
>><br>
>> If all of this seems appropriate, I'll go ahead and start trimming<br>
>> the more generic topics proposal and getting the details fleshed<br>
>> out on the wiki page.<br>
>><br>
> So, I had a list of replies I was going to type out, but the more I<br>
> did, the more I asked why are mailboxes in ARI, opposed to an ARI<br>
> application.  I think I am not seeing the big picture, however when I<br>
> envision mailboxes, I see an application, like app_voicemail.<br>
><br>
> In fact, after we get our ARI queue application working, the next one<br>
> on the list was a app_voicemail replacement on ARI.<br>
><br>
> Would'nt this be a perfect example of building a mailbox ARI<br>
> application on top of Asterisk, then using the exposed MWI to notify<br>
> phones of a new message? This would all the information to truely live<br>
> outside of asterisk and if asterisk was to disappear not take away all<br>
> the information at the same time.<br>
><br>
</div></div>Okay, my reply was also flawed.  I guess we are talking about the<br>
actually notification mechanism not voicemail boxes.<br>
<br>
Is the correct?<br>
<div class="HOEnZb"><div class="h5"><br>
--<br>
Paul Belanger | PolyBeacon, Inc.<br>
Jabber: <a href="mailto:paul.belanger@polybeacon.com">paul.belanger@polybeacon.com</a> | IRC: pabelanger (Freenode)<br>
Github: <a href="https://github.com/pabelanger" target="_blank">https://github.com/pabelanger</a> | Twitter: <a href="https://twitter.com/pabelanger" target="_blank">https://twitter.com/pabelanger</a><br>
<br>
_______________________________________________<br>
asterisk-app-dev mailing list<br>
<a href="mailto:asterisk-app-dev@lists.digium.com">asterisk-app-dev@lists.digium.com</a><br>
<a href="http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev" target="_blank">http://lists.digium.com/cgi-bin/mailman/listinfo/asterisk-app-dev</a><br>
</div></div></blockquote></div><br>Correct. The ARI mailbox object doesn't actually have anything to do with the storage of messages. It</div><div class="gmail_extra">simply manages an topic which is responsible for relaying information to subscribers about the state of</div>
<div class="gmail_extra">the mailbox. Specifically, it relays counts of old/new (read/unread) messages. Phones generally subscribe</div><div class="gmail_extra">to the mailboxes so that they can do things like toggle notification lamps when new messages come in or</div>
<div class="gmail_extra">just provide this basic information about the mailbox themselves.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Formerly, this would all be handled by app_voicemail, but Richard is currently working on an external MWI</div>
<div class="gmail_extra">API which will allow an external application to directly set mailboxes and values (which a phone could then</div><div class="gmail_extra">subscribe to instead of using an app_voicemail configured mailbox). The purpose of this resource is to</div>
<div class="gmail_extra">provide ARI a way to hook into that system so that it can be used to control the notifications.</div><div class="gmail_extra"><div><br></div>-- <br><div dir="ltr">Jonathan R. Rose<br>Digium, Inc. | Software Engineer<br>
445 Jan Davis Drive NW - Huntsville, AL 35806 - US<br>direct +1 256 428 6139 <br><br>Check us out at: <a href="http://digium.com" target="_blank">http://digium.com</a> & <a href="http://asterisk.org" target="_blank">http://asterisk.org</a><br>
<br></div>
</div></div>