<div dir="ltr">Hi Motiejus<div><br></div><div>Thank you!</div><div><br></div><div>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).</div>

<div><br></div><div>My idea with Riak Core (and a lot of code is already written) is to achieve something similar to what Riak database does: </div><div><ul><li>You can start with a single node, it receives SIP requests, reply, etc.</li>

<li>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.</li><li>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 automatically.</li>

</ul><div>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).</div>

</div><div><br></div><div>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.</div>

<div><br></div><div>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)</div>

<div><br></div><div><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jul 10, 2013 at 9:10 PM, Motiejus Jakštys <span dir="ltr"><<a href="mailto:desired.mta@gmail.com" target="_blank">desired.mta@gmail.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On Wed, Jul 10, 2013 at 6:49 PM, Carlos González Florido<br>
<<a href="mailto:carlosj.gf@gmail.com">carlosj.gf@gmail.com</a>> wrote:<br>
> Hello,<br>
><br>
> I'm happy to announce the first open source release[1] of NkSIP, an Erlang<br>
> framework to ease the building of SIP applications. SIP is a very powerful,<br>
> flexible and complex protocol, and NkSIP tries to facilitate the development<br>
> of any SIP application, including proxies and B2BUAs, allowing the developer<br>
> to focus on the application logic.<br>
><br>
<br>
</div>Hi Carlos,<br>
<br>
this is very interesting and certainly a lot of work. Can you tell us<br>
more where this project is going? Is there (will be there) a company<br>
backing this? In my perspective, VoIP world certainly needs something<br>
better than Asterisk... So this is a certainly a great job, but what<br>
next?<br>
<br>
Also, how exactly do you plan to add distribution using riak_core?<br>
Which parts of it are you planning to reuse and how?<br>
<br>
That aside, why is the main applicaiton behind "nksip" folder? Why not<br>
plainly "src", "test" in top-level folder? I did not look at the<br>
codebase/tests yet (I will!), but want to ask this early. :-)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Motiejus Jakštys<br>
</font></span></blockquote></div><br></div></div>