I agree, however, it is a fairly niche app, and most users either wouldn't use it or wouldn't really know what to do with it.
Asterisk is a far more popular and relevent package, but, it is a full featured back to back user agent and handles all of the traffic, where Kamailio / SER / OpenSIPs is a SIP proxy / router only, with an RTP proxy thrown in for good measure.
In the email world, Asterisk = Exchange where as Kamailio = Sendmail
Milkfish was excellent for when it was originally concieved, and DynSIP is a cool idea. Its still good, but the code and technology has moved on.
While it is possible for us to take the current Kamailio source, the cool bits out of Milkfish and stitch together a version that works, some questions we should ask is:
Who else will benefit from the update ?
How big is this audience ?
What resources are available to make the changes ?
Will this even be approved to get into the source tree
This last question is probably the most relevant. While the source for DD and Kamailio is all there, and if you're keen enough, you, and whoever else is keen to get involved, can do it yourselves, it may not fit into the overall aims of the DD developers. They may even go as far to tell us to go "Fork" ourselves.
Given that IPSec is, most likely, a more required feature, I wouldn't hold my breath, but, if anyone does want to get Kamailio working, I'm keen to jump in and contribute what I can. I have a commercial requirement, and so I can justify my time spent, within limits. That said, I have a monsterous schedule until the end of the year, and a family, and a band, and a studio I am trying to get together, and moving from bass to guitar, (we have too many bass players now thats a first), so dont expect toooo much
Anyway, another rant posted.
Sash: do you think there should be a sticky poll on milkfish / Kamailio ?
imho voip get more importanet every day. its simply the future. so to have an easy to configure sip server/proxy is mandatory for me. but i dont think milk is the solution to go. i know we have asterisk but its far away from easy to use. so imho we should focus on an easy to administer voip solution which can be gui integrated and can be extended with mpci or pci pots/isdn cards in many of the prof systems.
but im not the voip prof atm and ill try to learn the next months what we will need.
but since we're embedded we will have some requirements:
-easy to configure
Voip-info.org is awesome. Heaps of great info, however I have found some of it to be a little out of date.
I have been working in and around VoIP for some time now, all commercial implementations of mostly open source products, while I’m not working directly in the enterprise space, I have built, and I am responsible for maintaining a network that is enterprise in size now at over 1000 handsets. This is about to double in the next three months
Anyway, some input.
There are two ways to go:
A: A full PBX solution
B: A SIP switch / router with RTP proxy
I would suggest that there needs to be the option to go either way, just maybe not at the same time.
In terms of open source PBX projects, the main one is Asterisk, which is a full "back to back user agent". It manages all of the call flow and media in one homogeneous application. It is nice in that it provides a full featured PABX in a box with extensive features for connectivity to databases, applications, and some extensive scripting features. Voicemail, auto attendant, paging, hunt groups, follow me, announcements, call recording, etc. are all included.
Current "feature locked" release is 1.8.whatever, however, many commercial implementations are still on 1.4 (as I am) or some release of 1.6. While it is feature rich, it doesn't scale well. If you start trying to convert codecs, it becomes more CPU intensive. That said, a Broadcom 450MHz CPU should easily handle 3 or 4 simultaneous calls and a voicemail without codec conversion.
Other similar applications are YATE (Yet Anther Telephony Engine), Call Weaver, SIP-X-cess, and the main open source contender to Asterisk, FreeSwitch.
FreeSwitch people are pretty passionate as to why it is better than Asterisk, and they have many compelling reasons, but I'm not going to get caught up in that one. It has good community support and is growing.
A good embedded Asterisk project is http://Astlinux.org Primarily x86 arch stuff. Good way to get started on a USB stick or CF (even SD in the new HP servers) Has some cool router stuff but the GUI is not nearly as together as DD
Also worth a mention is the Astlinux environment also has a port of FreeSwitch instead of Asterisk.
Now the other end of the spectrum are the SIP routers / Proxy engines. These are SER (SIP Express Router), Kamailio (Formally OpenSER) which have now joined forces as the SIP Router Project, and OpenSIPS.
A SIP router does not directly manage the media path, all it does is handle the SIP switching, header rewriting and other signalling. This is what Milkfish is. As there is no direct media interaction, other than the proxy, a SIP router can handle hundreds of calls at a time. In fact, Kamailio scales so well that, to quote from the user guide:
Its performance and robustness allows it to serve millions of users and accommodate needs of very large operators. With a $3000 dual-CPU PC, the SIP Express Router is able to power IP telephony services in an area as large as the Bay Area during peak hours. Even on an IPAQ PDA, the server withstands 150 calls per second (CPS)! The server has been powering our iptel.org free SIP site withstanding heavy daily load that is further increasing with the popularity of Microsoft's Windows Messenger.
Most users would probably not see a need for this sort of service, however, where it becomes relevant, is running a number of handsets behind NAT to a hosted or remote PBX service. Having a proxy fixes a number of issues with SIP and NAT, such as Aastra IP phones.
If we have multiple remote sites, it allows direct RTP audio / video connections between the remote sites while still maintaining the SIP switching through the central PBX. This significantly reduces the traffic on the PBX link.
Furthermore this can be extended to allow automatic failover to another PBX or even a simple analog adapter on the local network should the remote PBX or link go down, (similar to Cisco's SRST)
These features are things I need when providing remote and multi site IP telephony.
Kamailio is great in that it is modular and can squeeze into a small foot print such as a broadcom router.
Again, excuse the rant, but its to provide background for anyone else who stumbles across the thread.
Moving forward from here:
These are my initial thoughts
Either a SIP proxy or PBX, running two at the same time may be too much.
But, have the choice of either
For a PBX based on Asterisk, you would need
SIP trunks & DIDs
Direct IP Dialling to support ATAs (SPA3102 or similar)
Nice to haves
Some sort of Phone Book
TFTP for auto provisioning phones
Voicemail to email
Hints / BLFs
Page / Intercom
Conference Bridge – This may be asking a lot
For a SIP Proxy based on Kamailio
I'm still trying to get my head around Kamailio but if we took what Milkfish does and add the following features:
Group Aliases which would be similar to a ring group allowing multiple phones to be rung from a single alias.
External Registration to another SIP server
Proper proxying of SIP subscribe messages for BLF (Busy Lamp Fields). It never works properly for me.
Call forwarding to a direct IP / domain name allowing calling in and out via a SIP telephone adapter.
Whatever happens, there needs to be a simple web mode that works for 80% of people and an expert mode that allows direct access to the config files. Especially the openser.cfg in Kamailio and sip.conf and extensions.conf in Asterisk.
Anyway that's my initial thoughts in a few (around a thousand) words . Maybe next time I should do it with a picture.
I must admit, it was the Milkfish / OpenSER proxy that initially attracted me to DD-WRT, so any progress on this would be warmly welcomed.
ps A great source of VoIP info can be found in the VUC podcasts at http://vuc.me These have been a real eye opener for me to the technology out there, and you can join in, using your Milkfish router by programming sip:firstname.lastname@example.org as an alias, say 882 (VUC) in the aliases database. Supports g722 wideband and g711 (alaw / ulaw) Check it out every Friday at mid day Eastern Standard Time. Check the website for details.
Last edited by MrFidget on Tue Nov 22, 2011 21:30; edited 1 time in total
If I may make a suggestion - just add an effective SIP proxy to dd-wrt. I do not believe that a featured Asterisk implementation is needed, or even practical, as too many corners would need to be cut.
What attracted me to purchasing a dd-wrt router, was the alleged included milkfish SIP proxy, and I was very disappointed to find that it is, effectively, useless, obsolete, and discontinued (all the links refer to home sip, which has been discontinued, and dynsip does not allow any new registrations, thus rendering it useless).
The proposed suggestion of adding Kamailio (Formally OpenSER), or a basic SIP proxy instead (and ripping out milkfish) is something I would welcome very much.
I agree with Sash - voip is growing in importance, and it *is* the future (come LTE, all mobile voice calls will be voip) - as such, and effective SIP proxy in our home routers would be immensely practical.
I do believe that those who want to run Asterisk will do so on separate boxes, and as such a SIP proxy would just need a user friendly and easy means to interface with an existing Asterisk system.
So, add my vote to the SIP proxy request - and a 'no' vote for a featured Asterisk implementation.
Joined: 24 Oct 2008 Posts: 927 Location: Latin America
Posted: Wed Jan 11, 2012 16:53 Post subject:
I've just "stumbled across this thread" hope it's not too late to keep it open.
Same as ZinkDifferent and others, I came into dd-wrt because of milkfish, then I liked the other stuff.
I've used bcm 15508 big K26 w/o problems. Then I upgraded to 17990 to find that milkish is broken in that build. Today I found this thread, but couldn't find the build 17970 Sash reported, so I rolled back my F7D3302 to 17967-K26-big and it's working fine there. Conclusion: obviously something went wrong with milkfish from build bs-bcm-17967 to build eko-bcm-17990.
It would be nice to see some improvement with SIP in dd-wrt, Kamailio is the way? I have homework to do... _________________ Worked with: WR850Gv2, WHR-HP-G54, WRT54 G/GL/GS, f5d7231-4p, wl-520gU, WRT150N, DIR-400A1, DIR-600B1, WLI-TX4-G54HP, WHR-HP-GN, F7D3301/FD7301, F7D3302/F7D7302, WNR3500Lv2, e1000