Configure Cisco/Linksys SPA3102 for Trixbox or FreePBX FXS and FXO
Well, today I was cleaning up and found an old Linksys SPA-3102 device that I purchased 3-4 years ago. I originally purchased this device to connect my Trixbox (Asterisk) PBX to my land line at my house.
The SPA-3102 is a device manufactured by Linksys/Cisco that provides one FXS terminal, and one FXO terminal. This device can connect your PSTN phone line to your VoIP PBX, and it can also allow you to connect a standard phone to your VoIP PBX as an extension, all at the same time.
While I wasn’t to happy with performance of the solution, nonetheless I figured it out and got it running. I decided to write up a little blog post as a How-To get the SPA-3102 working with Trixbox. This solution is mostly just a bunch of config, so excuse the lack of How-To and the bulk of config dumps:
Update (2017): This also works on new versions of FreePBX Asterisk Linux Distro. I can confirm T.38 faxing works on the FXO line, but have not been able to get it working on the FXS PSTN line (fails to re-negotiate).
1) Configure the Asterisk extension (this configures the line you hook up to a phone on the SPA-3102):
Create a extension inside of Trixbox or FreePBX. Leave everything default except:
Display Name: Fax Machine (change this to whatever you want)
secret: password (choose you password)
2) Configure the Asterisk Trunk for the SPA-3102
Go to the Trunk Menu inside of Trixbox or FreePBX PBX configuration. Add a new SIP Trunk. Leave settings default except:
Outbound Caller ID: 1234567890 (Change the number to your PSTN line, if the number doesn’t match, it could break things)
Trunk Name: spa3102
secret=P4SSw0rdz (replace with your password)
3) Configure Outbound and Inbound Routes
The configuration for the Outbound route is normal and doesn’t require any special configuration other than the normal outbound route you’d normally create for a trunk. However, the Inbound route does require special attention. When creating the Inbound route, make sure that the DID Number value exactly matches the 10 digit number you configure for the PSTN. This is how it will recognize this and categorize the incoming call under that specific inbound route.
4) Now for the SPA-3102 Configuration
There’s no way I’m writing all the config out for the SPA-3102, so instead I took screenshots for each tab that requires configuration.
You now have your SPA-3102 configured to both act as an extension and a gateway to the PSTN. If anyone has any better configuration please write a comment, I’d love to update this article, and I’d like to get this working better than it currently is of possible. One additional note: When the SPA3102 is factory reset, it’s default settings are optimized for the North America region.
Good Morning Stephen!
I’m very new to Trixbox, started to play wit 2 days ago, after Callcentric has gone fro excellent free service to useless free( and also pay) service. I have several Spa3102 planted in EU and one here in the US.
I would like to ask your help if doesn’t take up much of your time. I’ve tried to make as less changes on the setting form Callcentric to Trixbox, just in case I need to convert back.
I was able to register all Spas to my box, but I’m getting one way or no audio on some of them. I see that you’re not using NAT on your settings… Do you think that could be part of my issue?
I also have pst line plugged into Spa in EU. The settings on Spa allowing me to dial into this Spa from remote location and utilize the EU land line. It also forward via pstn dial plan all incoming PSTN call to the Spa in US. But I experience disconnection (or just no audio after 15-20 sec.)
I’d like to setup simultaneous ringing on some extensions…
can I forward call via sip uri to my US land line provider?
I’m not sure if you’re familiar wit IPkall, but I’d like to utilize that option too…
So I’m not trying any fancy stuff, pretty much just some basic features and I’d like to ask for your help.
We could use remote login, if that helps…
Thanx for your time!
Thanks for the compliment on the site! Feedback is always appreciate!
First off, I have to apologize, I’m not firmiliar with Callcentric. And secondly, I’ll be honest, I’m not really a fan of the SPA devices, so I have to admit my knowledge is somewhat limited when it comes to these.
However, it does sound like you issues are related to some type of network communication. First, I would make sure that Callcentric is only using UDP for SIP. I’m not sure if it does use TCP, but I’ve seen some other VoIP PBX software do this…
In my history, I’ve noticed that all issues that relate to one-way audio, or calls not being connected properly are usually always associated with one of these 3 things:
1) RTP – As far as I understand, this is what handles the voice data packets… If for some reason these ports aren’t allowed (either through the VoIP PBX software, or the firewall itself), it can cause issues with connections, one-way audio, or even one-way calls.
2) Firewall/NAT – You need to make sure that all devices are aware that they are behind a firewall (only if they are). Keep in mind, if all these devices are behind the same NAT, then you shouldn’t have these issues… I would try testing without NAT to see if this resolves the issue. Unfortunately I know nothing about NAT configuration on CallCentric.
3) Codec misconfiguration – If by chance there is misconfiguration in the codec usage, this could cause issues with calls being dropped after 10-15 seconds since it can’t negotiate a proper codec. Also, sometimes it results in one-way calling since only 1 device can successfully negotiate the codec to be used.
As for IPkall, I’m totally unfamiliar with… If Callcentric is anything like Trixbox, you should be able to have it simultaneously ring all SPA’s by creating a ring group. On any incomming calls, it would just ring that ring group, which would ring all SPAs. Like I said this is easily done on trixbox, but I’m lost with Callcentric.
I hope this helps 🙂
thanx for your quick respond….. I’m sorry for being unclear with my issue/request. I’m trying to get away from CC and want to register the devices to the hostname (myname.dyndns.org) of the Trixbox. The registration of all Spas went OK, I can see they all registering.
The calls are going out and I’m able to dial in to the remote SPA in EU and to get the dial tone from the local PST line.
So may biggest issue is the one way or no audio. If I could manage that, I think I can somehow figure out the simultaneous ringing.
Oh ok! 🙂
So with the SPA’s do you get full audio if one end initiates the call, and one-way audio if the other side initiates? I need more information on the behavior.
Callcentric finally took care of the’re issues and I think I”ll put this Trixbox project on hold. It’s too complex for me and hard to find settings on forums…but I want to learn it because would be great to have it as a backup and I really like the features.
Thanx again for your time!
hey i am using trisbox but i have and openvox a400p and i jus can’t seem to get to configure it, i don’t even know if the drivers are loaded…am really new to this, so can someone help me please
I was wondering if I could directly register a cisco ip phone to the spa3102. Could you please help me on that?
Hello there, you know if the device can handle incoming calls simultaneously? both analog and ip while
Congratulations for your guidance, I tried to set up one spa 3102 and a switchboard elastix everything works properly. I have a problem when I receive incoming calls do not I see the calling number but I see the name of the trunk can help me Thanks
Came across this old post. Use /admin/spacfg.xml to dump the config on thei SPA series units. Sadly, I’m stuck between an XPEnology issue and and ALSA/Pulse/RTP/USB-Audio/Raspbian issue.. but perused VoIP along the way.
I am aware this is an old thread but I was wondering if you could publish the call progress tones details for the SPA settings for the UK, as I have been made aware that these details are different and will result in it not working when in use in the UK.
Are you available for some guidance with the spa3102?