[asterisk-dev] [design] Realtime changes
tilghman at mail.jeffandtilghman.com
Mon Jan 5 13:59:33 CST 2009
On Monday 05 January 2009 12:47:17 Dmitry Andrianov wrote:
> While I do not see anything bad with such an extension of realtime API, I
> believe that it is not the best design for voicemail ODBC. Using this
> approach you will most likely succeed with ODBC storage but I hardly
> understand how you will approach IMAP one as you plan. With IMAP storage
> you need a concept of session/transaction which realtime API does not
Actually, it does now. While the start of the session/transaction is implied
with any operation, you can do an explicit ast_unload_realtime() to close
sessions/transactions. We have cached structures in other places within
realtime that need to be purged and reloaded at certain times.
> Even for ODBC storage using realtime look a bit unnatural to me (I
> know, tastes differ).
> The voicemail application became too complex as more storages were
> supported. Now it is huge bunch of code with endless #ifdefs. To my taste,
> the only way to improve this is to create an abstraction layer to separate
> voicemail logic from the storage used. Some time ago inspired by old
> patches on Mantis I started the work of separating voicemail application
> logic from the storage it uses. Unfortunately I had no time to do any
> significant progress with it but the idea was to have a "storage driver"
> which supports all the operations voicemail needs to perform.
This was proposed with the ast_storage branch awhile back. Unfortunately,
it never got the attention that it needed. This extension of realtime is an
attempt to get the concept of this to a state where the ast_storage project
might no longer be necessary.
More information about the asterisk-dev