[asterisk-app-dev] MWI/Mailboxes ARI specifications

Paul Belanger paul.belanger at polybeacon.com
Thu Dec 19 12:42:41 CST 2013


On Wed, Dec 18, 2013 at 5:25 PM, Jonathan Rose <jrose at digium.com> wrote:
> ARI Mailboxes resource
>
> I'm currently starting on some basic implementation of the mailboxes
> resource described at
> https://wiki.asterisk.org/wiki/display/AST/Blinky+Lights+API
>
> Data Model:
>
> name: string        name of the mailbox
> new_messages: int   count of messages that have not been marked as old
> old_messages: int   count of messages that have been marked as old
>
> As such, I'm currently writing stub functions for the following commands
>
> Method   URL                        Return type
> GET      /mailboxes                 list(mailbox)
> POST     /mailboxes                 mailbox
> GET      /mailboxes/{mailboxName}   void
> PUT      /mailboxes/{mailboxName}   void
> DELETE   /mailboxes/{mailboxName}   void
>
> GET /mailboxes
> List all mailboxes in Asterisk
>
> POST /mailboxes
> Create an empty mailbox
> query parameters:
>   mailboxName - name for the mailbox
>
> GET /mailboxes/{mailboxName}
> Get the current state of a mailbox
> path parameters:
>   mailboxName - name of the mailbox
> error responses:
>   404 - Mailbox not found
>
> PUT /mailboxes/{mailboxName}
> Change the state of a mailbox
> path parameters:
>   mailboxName - name of the mailbox to be modified
> query parameters:
>   new_messages - count of new messages in the mailbox
>   old_messages - count of old messages in the mailbox
> error responses:
>   404 - Mailbox not found
>   409 - Mailbox not in a stasis application
>
> DELETE /mailboxes/{mailboxName}
> Delete an existing mailbox
> path parameters:
>   mailboxName -name of the mailbox to be deleted
> error responses:
>   404 - Mailbox not found
>   409 - Mailbox not in a stasis application
>
> Events:
> MailboxStateChanged
>   The contents of a mailbox have changed
>   mailbox - name of the mailbox that was changed
>
> MailboxUpdateRequested
>   When Asterisk starts, it has no mailbox state from the external
>     application. This event requests that the external voicemail
>     application put the current mailbox state back into Asterisk.
>   mailbox - name of the mailbox Asterisk
>
> I'm still a little hazy on some details, such as whether or not
> mailbox data will be persisted. There was something of a debate
> over the topic that I couldn't quite tell whether it reached a
> concensus and the wiki proposal contained conflicting information.
> I'm unsure how that will affect the ARI work.
>
> If anyone has any input into this, I'd appreciate hearing it before
> getting too deep into the coding of it.
>
> Also, it's worth noting that the Mailboxes resource will not be
> released with Asterisk 12.0, and will likely be a new feature
> slightly down the road (targeting 12.1).
>
> If all of this seems appropriate, I'll go ahead and start trimming
> the more generic topics proposal and getting the details fleshed
> out on the wiki page.
>
So, I had a list of replies I was going to type out, but the more I
did, the more I asked why are mailboxes in ARI, opposed to an ARI
application.  I think I am not seeing the big picture, however when I
envision mailboxes, I see an application, like app_voicemail.

In fact, after we get our ARI queue application working, the next one
on the list was a app_voicemail replacement on ARI.

Would'nt this be a perfect example of building a mailbox ARI
application on top of Asterisk, then using the exposed MWI to notify
phones of a new message? This would all the information to truely live
outside of asterisk and if asterisk was to disappear not take away all
the information at the same time.

-- 
Paul Belanger | PolyBeacon, Inc.
Jabber: paul.belanger at polybeacon.com | IRC: pabelanger (Freenode)
Github: https://github.com/pabelanger | Twitter: https://twitter.com/pabelanger



More information about the asterisk-app-dev mailing list