VoIP32 Progress
by Ben on Jul.16, 2010, under Projects, VoIP Server
Over the last couple of weeks, I’ve spent some time working on the TCP/IP stack used by VoIP32 to handle all its network connections. It only recently gained the ability to properly manage a relatively large number of concurrent connections, limited by available RAM. The firmware is currently set to allow 10 simultaneous connections. The PIC32MX340F512H has 32kB of RAM, which should be enough to support some 25 simultaneous clients. The ~380kBps of available bandwidth is shared among all connections.
The total available bandwidth is a bit lower than expected, but is still nearly 60% higher than the available bandwidth on VoIP8. As I write this, I am downloading a file from VoIP32 at a sustained rate of 375kB/s. When compared with large commercial Web servers, this isn’t impressive at all; however, we must keep in mind that this server is running on an 80MHz processor with limited RAM instead of a quad-core Intel chip with gigabytes of memory.
Other tweaks added recently (but not yet fully debugged) are case corrections in filenames to support non-standard Microsoft extensions (this mostly works) and automatic TCP packet retransmission (this still needs some work).
The next steps planned are to start working on a Telnet UI for administrative purposes, a pushbutton-and-LCD-based local UI, and possibly integration with services like Pandora and Twitter.
Other things that I would eventually like to add include a bootloader for remote programming, a Unix-like Telnet or SSH interface, and the ability to execute small programs from the SD card.