Hi everybody,
also related to the new MI topic - as previously posted, there already
an implementation for FIFO interface (FIFO <-> MI translation) - see
http://openser.org/docs/modules/1.2.x/mi_fifo.html .
There are two hot topics I would like to address:
1) backward compatibility with all fifo implementation. The new fifo
syntax is a bit simplify and changed in order to allow to be mapped over
an "name = value" approach - see
http://openser.org/docs/modules/1.2.x/mi_fifo.html#AEN40
The big difference is when it comes to values spreading across multiple
lines (as the FIFO syntax is line orientated). In old implementation the
line order was known by the functions implementing the external
commands- lines with a single dot were used as end-markers for sets of
line that should be interpreted as a single value.
The MI interface is just doing translation (is not functionality aware)
so a more coherent definition was needed - for multiple line value,
quoted strings are used.
This will break compatibility for functions using multiple line values
like t_uac_dlg(). There are just a few functions, but they are.
2) for how long should we keep in parallel the two FIFO / UNIXSOCK
implementations before dropping the old ones? I am a fan of a fast
transition I would drop the old impls as soon as the new one offer the
same functioanlity - this will accelerate the testing and migration process.
So the questions are - when to drop the old impls and how to deal with
backward compatibilities (as MI will not be 100% compat with SEMS for
example)
One solution (based on my opinions) - drop as soon as possible and use
for backward compatibility a FIFO proxy to do translation between
versions (for people interested in).
any other solutions are welcome for debate.
Regards,
Bogdan