Simon Sun writes:
> By default, the port 5060 is for SIP use.  If two instances of one SIP 
> proxy were started up, the latter one should fail since the default port 
> has been occupied by the first instance. Same thing will happen to the 
> two different proxies. It has nothing do with the library underneath. 
> For this case, we just want to put back the library into SFW gate at 
> this moment.

I'm aware of what you're asking.  I'm not sure what users will be told
through the documentation.

> > (I'm guessing the answers are that things may break, and, since it's
> > just an "option," we don't really care.  Is that right?)
> >  
> It's incorrect. We do care the user's feeling.
> 
> Actually there's no dependency between libsip and libosip2. All the 
> interfaces and implementation are quite different from each other. There 
> is almost certainly no sane reason to use both at once since it will 
> definitely increase the complexity of the program.

I'm not asking about what someone may do intentionally, but rather
what may *happen*.  Accidentally having incompatible libraries loaded
at the same time is unfortunately quite common -- it happens because
libraries themselves have dependencies, as do plug-in modules.

I looked at the source code for both, and it appears there's no
symbol overlap, so the chance of failure seems pretty low.

> > The short answer is that OpenSolaris is supposed to be a coherent
> > system, not just a random assemblage of parts.
> >
> >   
> Yes, absolutely. Since we've provided SIP support in Solaris, by adding 
> another one which is more commonly used by OpenSource community, we can 
> attract more user who is based on oSIP to Solars and lose nothing. Later 
> on, we can port other application based on oSIP on other platform into 
> Solaris.

The policy I cited from PSARC 2009/147 said that the preferred
implementation needs to be pointed out to users so that when there are
duplicates, users know what they're getting.

Please indicate which one of these two will be "preferred" and what
the documentation will say.

In particular: when future projects come to the ARC and propose to be
dependent on libosip2, should we tell them that they need to use
libsip instead?

> It's similar to the libusb. Even through in Solaris we provide the 
> USBA,  we still put back libusb into Solaris to provide the end user 
> another choice.

I don't think this situation is similar at all.  USBA provides kernel
interfaces to allow you to write a native driver for a USB device.
libusb(3LIB) provides a way to write a user-space driver for USB.

In contrast, what we're talking about are two user-space libraries
with substantially the same functionality and just different names.

Let's stick to SIP.  Analogies like this to other cases tend to break
down in the details.

> > Or just architectural confusion.  It's unclear which we get.
> >   
> They are two different implementations which are compliant with the RFC 
> 3261.  The user can choose the one he/she is more familiar with.

That part is not true, and that's the problem I'm trying to get at.

The idea of having a coherent system architecture is immiscible with
the notion of allowing users to pick and choose random internal
components to construct the system.  We don't allow (for instance)
users to pick and choose between Sun's libc and GNU's glibc.  It's not
that users don't want that kind of choice -- undoubtedly some do want
it -- we don't do it because allowing this sort of choice for
developers would lead to chaos for end users.  The two libraries are
not just plug-in replacements for each other.

Allowing users to pick and choose among foundational libraries such as
SIP is similarly suspicious.  It causes at _best_ a fork in the road,
where some common features and bug fixes are available with some
applications but not with others, and all seemingly at random,
depending only on the whim of the developer.  Worse, it causes
confusion for future projects because we're left without an actual
system architecture of record.

In this case, you're not really talking about "users," because real
users neither know nor care about libraries.  They're not runnable,
and users don't actually get to "choose" in any meaningful sense.
You're talking instead about _developers_, and that leads inevitably
to the question of applications and about system architecture.

So, did we err by letting in PSARC 2006/402 and the follow-on cases?
The assertions of the developers in that project were that
applications would *not* need libosip2, and that Sun's libsip would
provide the necessary SIP functionality, and that it would be ported
to other platforms.  Has that changed?

> > Is there any _application_ that will be using it?
> >
> >   
> partysip: A Linux SIP proxy based on osip2 (LGPL)
> http://www.nongnu.org/partysip/partysip.html
> 
> SFLphone: A multiplatform, open source SIP user agent. It is based on 
> several libraries: cc++, ccRTP, osip2+eXosip:
> http://www.sflphone.org/
> 
> GNU SIP Witch - call and registration server for the SIP protocol
> GNU Bayonne - telephony server
> http://www.gnu.org/software/gnucomm/

Are these being delivered by this or by some other project?  And do
any of them work with the existing libsip?

(One of the assertions of the libsip project team was that they'd work
with application providers to make sure that those applications were
ported and worked on Solaris.)

-- 
James Carlson, Solaris Networking              <james.d.carlson at sun.com>
Sun Microsystems / 35 Network Drive        71.232W   Vox +1 781 442 2084
MS UBUR02-212 / Burlington MA 01803-2757   42.496N   Fax +1 781 442 1677

Reply via email to