El Monday 10 March 2008 10:03:00 Frank Shearar escribió:
> "Iñaki Baz Castillo" <[EMAIL PROTECTED]> wrote:
> > Hi, is there any guideline explaining the steps to create a SIP stack? I
>
> meant
>
> > something as:
> > - First create the transport layer code.
> > - Then create the transaction layer.
> > - etc...
> >
> > Or is RFC3261 the best guideline?
>
> Your mileage may vary, of course, but this is what I did:
> * Wrote parsing facilities for messages, headers, etc. (I wrote a recursive
> descent parser, because Delphi (6) doesn't come with a parser generator or
> regular expression support. I imagine that an LALR parser would allow you
> to finish this phase very quickly.)
> * Wrote the transaction layer (because it's nice and small and well-laid
> out)
> * Wrote the transport layer
> * Spent by far the majority of my time writing the transaction-user layer.
>
> RFC 3261 is definitely the best guideline, and it is intimidatingly long! I
> gave it a read-through first, trying to get a general picture of the whole
> standard in my head, and then started implementing bits chapter by chapter.
>
> I chose to start with the parser because it was something I knew I could
> easily do, just to get the ball rolling. One big difference about my
> starting point and yours is that I was already fluent in Delphi, not
> writing the stack to learn a new language. I think if I had to start
> another stack implementation for the purposes of learning a language I'd
> still follow the same process as above.
>
> One thing that helped me a great deal was mocking the layer below where I
> was working: for instance, when I started writing the transaction layer, I
> wrote a mock transport layer that just stored sent messages, and allowed
> you to "send" messages to the transport layer.

Really thanks a lot for your nice help ;)


-- 
Iñaki Baz Castillo
[EMAIL PROTECTED]

_______________________________________________
Sip-implementors mailing list
[email protected]
https://lists.cs.columbia.edu/cucslists/listinfo/sip-implementors

Reply via email to