Quang Minh Phan wrote:

Hi Vadim,

The main goals of refactoring phapi are:

1. To make it even easier to use.
Great goal,

But i don't really understand the new system of error codes and new API methods....
I'm affraid with your current approach you are missing this goal

2. To make it more extendable (Easier to add new functionalities with a new
Plugin system. Able to handle all kind of communication sessions (File
transfer, VNC, etc.), not only voice and video.

This is WRONG, WRONG, WRONG.
For the moment there is only 2 sets of RFCs for SIP, which covers VOIP and IM, It is simply loss of time to try to implement things as file transfer or VNC session establishement
using INVITE/200/ACK sequences before there is some standard way to do it.
The best approch is to simply use SIP MESSAGE with an XML payload describing the session.... and all this stuff should be handled by application itself and not by phApi....
So there is no reason to extend phApi  with plugins in that direction.



Please see more comments inline.


1)  Simplicty to design a softphone using the api
     Methods to achieve:
         -  Only one include file
         -  Very strightforward API with 8 entry points (well at least
initially)

The new APIs are designed to make it even easier to design a softphone. For
example, the old phapi required developer to fill the phcfg global variable
with data before calling phinit. This variable contained many fields that
are not easy to guess. In the new API, we will make this phcfg create setter
and getter functions to modify the values in a much more clearer way, with
error checking, etc.

This is good.

2)  Portability
      Methods to achieve:
         -  Using only C ant not C++
         -  Separation of   HW and OS dependent stuff

3)  Possibility to run in embedded  environement
       Methods to achieve:
         - choice of oSip eXosip and oRTP  -- which gives very low
memeory footprint around 400k

The portability of the code will not be sacrificed.


I believe that i've more or less achieved these goals

I do agree with you.


Of course the with time  phApi evolved and in some way drifted from
these intial goals
and  additional goals appeared and at least partially reached with the
help of Wengo team and community:
   4)  video support:
            Methods to achive
            developement of libwebcam, pixertool and useage of ffmpeg

   5)  Extensibility with respect to codecs:
           Methods to achieve:
               developpement of codec plugin framwork

Agree.


I see following additional goals for  phApi

   5) Support for SRTP and ZRTP
         Methods to achieve:
            rewamp TUNNEL_XXX  set of macros into a notion of stackable
transports for oRTP
            so we'll be able to stack one transport on another

We have implemented srtp with phapi. We had to do that by patching eXosip
and oRtp. A goal of the refactoring process is to be able to implement this
kind of feature in the future just by adding a plugin to phAPI. We can
discuss more about this.


   6) Extensibility with respect to audio/video devices
         Methods to achieve:
            developpement of audio/video  device plugin  framework


    7) Simplifying conference API  and allowing more than 3 memebers in
the conf call



   8)  Removing dependencies on C++ when possible:
         Methods to achieve:
            redesigning  libwebcam  in C


Effectively, these are also what we would like to have after the refactoring
process.

Another point, wifo should be factored out in separate tree and no to be part of wengophone....



Best regards,

Minh


Thanks
Vadim
_______________________________________________
Wengophone-devel mailing list
[email protected]
http://dev.openwengo.com/mailman/listinfo/wengophone-devel

Reply via email to