libminisip design (move key agreement to logic)
Mikael Magnusson
mikma264 at gmail.com
Mon Dec 11 20:16:19 CET 2006
Erik Eliasson wrote:
> In order to make the different parts of minisip more separate, we should
> move SDP usage and the key exchange mechanism from the media part to the
> signalling. We should not do the "setSdpOffer(...)" and "setSdpAnswer"
> method call from the SIP logic to the media session. By doing this, we
> can make all interaction between "sip" and "media" go via the message
> router.
>
> Pro:
> - Easier to understand / more clearly separated parts
> - Easier to test the different parts individually
> - Easier to know when objects can be accessed by multiple
> threads (have a thread-unsafe MRef in the media part that is
> guaranteed to run only one thread - see
> http://lists.minisip.org/pipermail/minisip-devel/2006-April/003473.html)
> - In the long run you can make "subsystems" plugins (much easier
> if the MessageRouters call to "handleCommand" is the only
> way we interact with it) that are only loaded once they are
> used (for example, why do we have the media system in memory
> when we are not in a call; same for policies; if someone wants
> to push for really low memory consumption, we could probably
> unload "sip" much of the time).
>
I think SDP is more closed coupled to the media layer than to the
signaling layer. The SDP negotiator needs codecs, media receiver ip
addresses and ports from the media layer.
But I guess "setSdpOffer" and "setSdpAnswer" could be changed to
messages between "sip" and "media", sending the SDP as a string.
Mikael
More information about the Minisip-devel
mailing list