I have to admit that, coming from a non-telephony dev background, there was a bit of a learning curve.
Looking forward to watching this when time allows.
I have to admit that, coming from a non-telephony dev background, there was a bit of a learning curve.
Looking forward to watching this when time allows.
I've been trying to figure out Asterisk since I was a teenager, but never found a great resource. They used to call themselves Apache for telephone around that time, but since then, I've become a full-stack dev and I still don't understand Asterisk. I suppose It's probably because I haven't been giving it enough time, myself.
Bascially the best way to get started is to just install it and use asterisk.conf from the sample directory to get started (not the other files).
You'll probably be running SIP to both your phones and your uplink so create a new sip.conf. Read the corresponding wiki page at voip-info.org for syntax, and look at the sample file for reference (it's way too complicated to use as-is).
Then write a dialplan in extensions.conf. That's the description of how calls should be processed (something like "when a local phone dials 3xx, call a local phone by that name", "when a local phone dials a longer string, place an outgoing call"). Again, check the wiki and sample files for examples. Don't be put off by the language, which uses line numbers for code.
That's enough to get started. The O'Reilly book is really, really good should you wish to invest in it. There are one-click installers and web interfaces available too, I haven't used those but they're probably better should you wish to have something more product-like. There's not as much small scale consulting work in the PBX space as it used to be since mobile phones took over. Most work is around call centers but it can still be challenging and fun.
On the uplink side, I push all my calls through voip.ms. I pay per minute inbound and outbound (I think it's about $0.01/min, which seems expensive, but then there's no crazy $30/mo crap). DIDs (aka inbound phone numbers) cost $2-4 month, depending if you need e911. Calls are handed off via Asterisk's IAX2 protocol, although SIP works too.
We use Polycom phone hardware, which has been really solid for over 10 years, and which has great call quality, given Polycom's experience in conference room phones.
If you want to get hardcore with digital lines from your telco, you can use a used cisco device as a media gateway for under $2k.
My PBX is just a VM on our infrastructure like any other.
What you need is an FXO device (sometimes called a channel bank). That is a device that emulates a phone device, and which consumes dial tone. Many devices sold as FXO gateways are expensive. If you have a real server, you can get an FXO PCI card from Digium for some hundreds of dollars, but that's expensive too.
Some cheap FXS devices can also operate in FXO mode. The cheapest one appears to be the Grandtream HT813 for $89: https://www.voipsupply.com/grandtream-ht813-gateway-ata
For example, inbound queues (+QueueMetrics for monitoring) are very useful to share work on the basis of "what" instead of "who", even if you have a just a few people on the system.
AGI scripts + Google TTS are a no-brainer to use and get you nice voice messages.
Voicemail to e-mail is simple to set up and you can add transcription as well.
There is a lot you can hack on and everything can be set up as needed.