For fun I self-host Asterisk at home, but I'm using a cheap VoIP provider (VoIP.ms) to take the burden of hosting for this project. The code that I did write to pull messages is just some boring API interfacing in a simple Python script: https://gitlab.com/unixispower/after-the-beep/-/blob/main/_u...
voip.ms has been pretty good. They got DDoS'ed shortly after I signed up which soured the experience for about a week, but I haven't had an issue for the 2 years I've been using them since. I like that they have a wiki that explains how to set up ATA devices for their service -- that's what sold me on them initially.
I found them to be good for terminating Canada and US calls but the international routes sound like crap (barely intelligible) even with premium routing. I would recommend them if you’re calling numbers outside these countries.
I also don’t think they can be depended on for business. They’ve probably learnt a lot from their ddos a couple years ago but they were down for weeks as a result. As a customer you couldn’t place calls for the entire duration.
Not OP, but I recommend and use sipstation. I moved from VoIP.ms because they often had troublesome outages. Sipstation has been reliable and a good value.
Also not op, and nothing against any other provider, but callcentric is another provider that has been around probably 2 decades now and has never let me down. Basically everything is a la carte and cheap.
not wanting to take away from the ops work, but on FreeSwitch you could do the SIP side of this with the default config and a free or cheap sip provider. As default it'll provide voicemail services to offline phones, so if you add your sip provider and direct all incoming calls to (eg) extension 1000 but never connect a sip handset to that extension, everyone gets sent to voicemail and you end up with a folder of wav files. What you then do with the front end is beyond me, though at home I just have apache serving an index of that directory.
If the SIP side of it is the mystery and you're interested in it, I'd really recommend installing Asterisk or FreeSwitch and having a play. You'll be stuck writing weird INI files or XML for config and there's a lot of new terminology, but it can be cheap and fun to play with. And a terminally deep rabbit hole if you actually want to fall down it.
Personally, the only reason I still run my pbx (aside from something to faff with, and a platform for testing silliness) is the fact I can easily record phone calls. Most of the time it's only because I have a bad memory and take useless notes, but there doesn't seem to be a single modern mobile phone on market that allows me to record both sides of the audio when making a voice call.
> Personally, the only reason I still run my pbx (aside from something to faff with, and a platform for testing silliness) is the fact I can easily record phone calls.
I was running an Asterisk server in the early 2000s and recording phone calls was one of the things I did, so that I could record phone calls with friends and family and replay them decades later.
Fast forward a few years, we moved, cell phones became standard issue in daily life, the server got put in storage, and my father passed away. During an equipment purge, I took the drives out of all of my old crap and wiped them before sending them off as e-waste. It wasn't until later in the week that I realized what I had done.
You seem to know your stuff, perhaps you could suggest some direction for an offhand idea I had? I'd like to build a standalone version of something like this site for an art installation at a festival a friend is hosting. I was thinking of having an analog phone plugged into a USB modem in a Raspberry Pi that doesn't even produce a dial tone when you pick it up the handset. It'd just go directly into a voicemail prompt. I assume there's a software stack which could accomodate this but I know basically nothing of telephony.
Any suitable projects come to mind which might facilitate this?
If you want to use an actual analogue phone, then you'll probably want to connect it to something using an ATA (Analogue Telephone Adapter). Modems are expecting a powered phone line which can be worked around but I wouldn't recommend it (and haven't tried it in decades and don't remember the details).
The ATA converts analogue telephone into SIP, if you then want voicemail recorded on a Pi install FreeSwitch or Asterisk as your voicemail server. The magic you want from the ATA is "Offhook Auto-Dial"; as in, when it detects the handset being picked up (going off-hook) it automagically dials a number for you - in this case your voicemail extension on your Pi based SIP server.
Unless you're specifically trying to relive the analogue days, I'd probably go digital earlier rather than later in the chain (handset to ata, rather than handset to fake phone line, to modem coopted to do something most people aren't) as it'll make things easier and make no difference to the end user.
This might not be the most elegant way, but it's the tools I'm used to using, so :\
Out of curiosity, what's the plan for the recordings after you've made them?
username[at]gmail if you need any specific advice; this sounds weird enough I'm interested and should be easy :)
Yeah, thanks to certain big states having misguided (in my humble opinion) laws that say you can’t record a conversation you were a party to without all-party consent, I’m assuming nobody wants the liability of making that simple and automatic.
In my humble opinion it’s weird to say someone cannot augment their own memory with something, or especially, keep proof of something a corporate entity told them. so I hate the 2-party consent law.
It can definitely be annoying, but there are ways to get similar benefits: note-taking
You may not record the call, but you may certainly take notes, and you can write the whole conversation down if you want, and you can use that in court
Are you using something like asterisk or FreeSWITCH to connect to the siptrunk? If so, do you have a backend for the dialplan?
Would love to see the code if possible