[erlang-questions] [ANN] NkSIP Erlang SIP Application Server

Carlos González Florido carlosj.gf@REDACTED
Thu Jul 11 12:08:54 CEST 2013

Hi Motiejus

Thank you!

Of course there will be a company backing and supporting the project, but
my priority right now is to see how useful it is in the real life, test it
by as much people as possible, find and correct all important bugs and add
the most demanded missing features (As you know, writing a reliable 100%
compliant SIP server is quite a complex thing, even with Erlang).

My idea with Riak Core (and a lot of code is already written) is to achieve
something similar to what Riak database does:

   - You can start with a single node, it receives SIP requests, reply, etc.
   - You add a second node at any moment, and "magically" half of the work
   is now processed at each of the nodes. You add a third, node, and one third
   is processed at each one.
   - You can remove a node at any time. If one of the nodes fails, the rest
   of the nodes take care of its load while it is down, all of it

In the current version, NkSIP starts by default 8 queues. Using a
consistent hash over the Call-ID, each request is sent to one of these
queues (the same Call-ID always goes to the same queue). Each queue decides
to start a brand new Erlang process to manage the request or wait (if a
previous request with the same Call-ID is active, think in INVITE+ACK+BYE).

With the Riak Core version, I will use vnodes instead of the queues. Riak
Core takes care of the distribution of vnodes among all active nodes, so
every request will be sent to the same vnode, depending on its Call-ID.
When nodes are added or removed, Riak Core moves the vnode to another
physical node.

In respect to the question about the directory structure, you are right.
The reason was having a samples directory with sample applications, but it
is probably a good idea to move the sample applications out into a
different repository (much like any real application made with NkSIP)

On Wed, Jul 10, 2013 at 9:10 PM, Motiejus Jakštys <desired.mta@REDACTED>wrote:

> On Wed, Jul 10, 2013 at 6:49 PM, Carlos González Florido
> <carlosj.gf@REDACTED> wrote:
> > Hello,
> >
> > I'm happy to announce the first open source release[1] of NkSIP, an
> Erlang
> > framework to ease the building of SIP applications. SIP is a very
> powerful,
> > flexible and complex protocol, and NkSIP tries to facilitate the
> development
> > of any SIP application, including proxies and B2BUAs, allowing the
> developer
> > to focus on the application logic.
> >
> Hi Carlos,
> this is very interesting and certainly a lot of work. Can you tell us
> more where this project is going? Is there (will be there) a company
> backing this? In my perspective, VoIP world certainly needs something
> better than Asterisk... So this is a certainly a great job, but what
> next?
> Also, how exactly do you plan to add distribution using riak_core?
> Which parts of it are you planning to reuse and how?
> That aside, why is the main applicaiton behind "nksip" folder? Why not
> plainly "src", "test" in top-level folder? I did not look at the
> codebase/tests yet (I will!), but want to ask this early. :-)
> --
> Motiejus Jakštys
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20130711/6cac920a/attachment.htm>

More information about the erlang-questions mailing list