Again, I was using digest mode so thread continuity is broken... :( >> I thought transport and socket code would be in one place but it appears in >> the PJLIB, PJSIP and PJMEDIA libraries. I'm thinking I should start with >> the socket handling code in PJLIB if I want to call the SCTP libraries. Is >> this the best place to approach the task? All comments appreciated. >> > >Your observation is correct. The socket abstraction in PJLIB is >necessary to have a portable socket API across platforms, while the >transport code in PJSIP and PJMEDIA should be platform independent. > >Further in PJLIB, there are few socket abstractions. The lowest layer >is BSD API abstraction (pj/sock.h), then there is select() API >abstraction (pj/sock_select.h), and finally asynchronous I/O >abstraction (pj/ioqueue.h). The ioqueue may or may not use the >select() abstraction (for example, it uses IoCompletionPort on WinNT). >You can even develop an ioqueue that doesn't need socket stack (for >example, works directly on top of hardware and runs in the context of >interrupt). > >The current transports in PJSIP and PJMEDIA uses the ioqueue >abstraction, since it needs non-blocking I/O. So here the transports >are platform independent, just like the rest of PJSIP and PJMEDIA. > >For SCTP implementation, I suggest you start by creating the SCTP SIP >and media transport, in PJSIP/PJMEDIA. You don't need to use PJLIB >socket abstraction or ioqueue if you don't want to, and in fact, for >initial implementation, I would suggest to use the SCTP API directly >to make it simpler to implement. You may use worker thread in your >transport if that makes the implementation simpler. > >Once you're done and everything runs okay, we can move forward to >optimize it, removing worker thread if present, and perhaps making it >more integrated with the rest of the libraries, somehow. But for the >start, I suggest we focus on adding the SCTP functionality in >PJSIP/PJMEDIA first. Benny, thanks for such a prompt and detailed reply! Now that I know where I am on the map, I just need to follow your directions above to make the important first steps. Regards, Net Dabbler -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20080125/fb31f2d3/attachment.html