[Tfug] VoIP/PSTN bridges (?)

Bexley Hall bexley401 at yahoo.com
Thu Aug 30 09:18:41 MST 2012


Hi John,

--- On Thu, 8/30/12, John Gruenenfelder <jetpackjohn at gmail.com> wrote:

> If I understand your requirements correctly, I believe what you need,
> at least for the first machine, is a Private Branch eXchange (PBX).
> In the open source world, the go to software is called Asterisk.
>
> It is not a small piece of software, but it is both free and
> extremely capable with both a large number of users as well as a
> sizable number of commercial vendors offering service and
> addons/extensions.
>
> Asterisk is also very modular which is very handy in that you only
> need to load (and learn about) the pieces you actually need.  There
> are modules for various protocols, codecs, database backends, and
> additional features.

Yes, I'm aware of it and had considered using it (or parts of it)
for my purposes.

But, I am more interested in the sorts of *hardware* that I will
need "on the fringe" to interface to the PSTN and existing
"analog station sets (phones)".

I know I can purchase PCI (etc) cards to interface to Ma Bell.
And, similarly, to interface to analog phones.  Turning a "PC"
into, essentially, a digital PBX -- where it implements all the
routing of voice between "extensions" and/or the PSTN, implements
attendant features, voicemail, etc.
 
> While I was living in Massachusetts I wanted to get a home phone and
> spend as little as possible.  Somebody here on the TFUG list suggested
> the company "Teliax" who offered just what I needed for an amazingly
> low price.  They ran their entire phone company using Asterisk and in
> my apartment I also ran Asterisk on my server, so connecting the two
> was quite easy, though Asterisk by no means requires that Asterisk
> must be running on the remote end.

So, your home phone connected to the rest of the world via a broadband
connection, through Teliax's service?
 
> My needs were relatively simple, though, and I just used Asterisk for
> basic PBX service, connectivity, and to run my voicemail locally.

I'm trying to address several different concerns -- and, do so in
"independent bites" so I don't have to take on too much at once.
Iwant to be able to do things like:

- if incoming call has caller ID blocked, don't answer
- if caller ID not recognized, *quiz* the caller before passing
  the call through ("If you are a human, what is 2 plus 5?"
  "If you are someone special, enter your ID code")
- learn from those interactions ("That caller ID number seems to 
  be a robodialer.  Add it to the blacklist.")
- for whitelisted numbers, you might want to implement a distinctive
  ring.  Or, route it to a particular "destination" ("If Bob calls,
  play the 1812 overture."  "If Joe calls, give him this special
  message and allow him to leave a reply via voicemail")
- actually implement the voicemail referenced above
- implement incoming/outgoing FAX service
- handle outgoing calls (e.g., "Call Bob and let me know when his
  phone is actually ringing")
- perform authentication using in-band signaling (e.g., "Please give
  me any messages left on *my* voicemail"  "Please disable the
  irrigation system for the next 24 hours as rain is in the forecast")
- allow the automation to deliver messages to remote locations via
  the PSTN ("Call me at this number if a water pipe bursts")
- combinations of the above ("Call Bob at this number.  When he
  authenticates himself to you, give him this message...")

I.e., I want a glorified attendant/secretary that handles *all*
communication (even "electronic") via the PSTN.

> I also had a small interface device (called an "Iaxy") that had an
> Ethernet port and also an RJ11 port.  With this and a small
> provisioning program I could then interface my corded desk
> phone with Asterisk.

Ah, OK.  That should give me the *second* part of the equation
(assuming your "corded desk phone" was a traditional ANALOG
phone).  I want to be able to ring and interface to a cordless
handset when I'm not inside the house (neighbors', garage, yard,
etc.)

I had pondered using a VoIP-capable cable modem or DSL modem
"backwards" to give me that sort of capability.  But, figure
there must be something that is actually designed to do this
"correctly".

> Some of the features that I never needed include SIP support, data/fax
> abilities, Bluetooth connectivity, non-standard codecs, text-to-speech

I am hoping to replace most of the phones/handsets here with BT
earpieces -- though handsets would still be needed for the use of
"houseguests" ("Can I borrow your phone?"  "Sure, stick this in
your ear..."  "Ick!").  The earpieces are already necessary for
interacting with the automation so adding phone capabilities
seems a no-brainer...

> (via espeak or flite), and other forms of telephony connectivity.  For
> that last item, there used to be some hardware devices you could get,
> expansion cards I believe, called Zaptel, that you could use to have
> your computer and Asterisk talk to the PSTN.  The devices and software
> are now under the name DAHDI.  The Debian repository has all the
> various packages as well as some for the DAHDI hardware, including
> utilities, kernel module source, and the non-free firmware.

"Non-free firmware"?  Are these "updates"?  Or, "slushware" that
is loaded at IPL?

> I think Asterisk will cover a lot of what you are looking
> for.  At least the first machine, perhaps even more.

I think the biggest problem I might face will be in the API
by which it interfaces with other "clients".  I.e., when it
isn't being asked to perform some predefined/scripted operation
but, instead, is intended to be "used as a service".

In particular, if the automation wants to place a call, it
should be able to initiate the connection and monitor call
progress via some sort of API.  Then, *while* the connection
is established, it should be able to use the services available
to interact with the party on the other end (e.g., start
recording the conversation; generate/decode DTMF; "speak";
etc.).

For example, it should be possible to write a little script
that dials an 800 number, waits for the call to be answered
and then *interacts* with an automated attendant on the
other end of the line.

Dunno.  I've started wading through the documentation but it's
written more like a "reference manual" than a "user's guide"  :<
(having written much in the "reference manual" style, I now
see how ineffective this is for new users!  :< )

Thanks for the pointers on the hardware, as well!  I'll chase
them down.

--don




More information about the tfug mailing list