As a result of my migration from a noisy, overheating mid-tower server to a near-silent Mac mini Core Duo with a DAT Optic 4-bay FireWire enclosure, I could no longer use the
Digium X100P clone FXO internal PCI card. Therefore, I needed an external device with an FXO port to which to connect the incoming phone line from the building lobby (please see
this earlier article for more context).
I was also hoping to replace or at least complement the
Digium S101i IAXy analog telephone adapter (ATA), which is not reliable enough for everyday residential use because it frequently goes into an inconsistent state and gives a busy signal instead of a dial tone.
Fortunately, the
Linksys/Sipura SPA-3102 is exactly what I needed. It is a SIP-based ATA with both an FXS port, which provides a dial tone to my existing apartment phones, and an FXO port, which receives calls from the building lobby. Surprisingly, at about $75, it is cheaper than the IAXy. As long as you don't need support for the IAX protocol, you're probably much better off with this rock-solid device. It also has a web interface and supports numerous features that I am actually using, such as distinctive ring.
I connected mine to my existing Asterisk server following some of
these instructions and the device's manual. I configured the following dial plan for the PSTN line to transfer incoming calls immediately to the given extension:
S0<:sipura-fxo-incoming>In Asterisk, I can then receive calls on this extension like so,
[sipura-fxo] exten => sipura-fxo-incoming,1,Goto(intercom,s,1)using the context I specified in the ATA's SIP registration shown here. (The authentication settings in the ATA configuration has to be consistent with Asterisk's SIP configuration.)
[sipura-fxo] context=sipura-fxo type=friend host=dynamic username=sipura-fxo secret=******disallow=all allow=ulaw canreinvite=no qualify=yes insecure=port,invite nat=no[sipura-fxs] context=sipura-fxs type=friend host=dynamic username=sipura-fxs secret=****** disallow=all allow=ulaw canreinvite=no qualify=yes insecure=port,invite nat=no