After recently spending some hours configuring my new Cisco SPA3102 Voice Gateway with a Betamax SIP provider (voipbuster / voipstunt / voipcheap / and so forth, see for a full list of all Betamax providers) and the Dutch PSTN system, I thought I’d try and make your life easier by documenting the most important of the settings.

With this box you can stick it to the man!

The SPA3102 is connected to an existing router, so I have the Lan Setup set to Bridge, and have configured the Internet port (on the Router | Wan tab) with a suitable static IP. To be clear, in this configuration, one only connects up the Internet port and NOT the Ethernet port.

Voice | Regional

For the Voice | Regional tab I found the following Call Progress Tone settings on a voxilla forum page by users PJH and edokter:

Dial Tone: 425@-10;20(*/0/1)
Second Dial Tone: 425@-10;20(*/0/1)
Outside Dial Tone: 350@-19;440@-19;20(*/0/1+2)
Busy Tone: 425@-10;10(.5/.5/1)
Reorder Tone: 425@-10;10(.25/.25/1)
Off Hook Warning Tone: 1000@0;*(0/9.5/0,.1/.1/1,.1/.1/1,.1/0/1)
Ring Back Tone: 440@-19,480@-19;*(2/4/1+2)
Confirm Tone: 425@-10;1(.1/.1/1)
SIT1 Tone: 950@-19,1400@-19,1800@-19;30(.333/0/1,.333/0/2,.333/1/3)
MWI Dial Tone: 425@-10;1(.1/.1/1);20(*/0/1)
Cfwd Dial Tone: 425@-10;20(.5/.05/1)

On the same tab and from the same forum page, the following Distinctive Ring Patterns and Distinctive Call Waiting Tone Patterns:

Ring1 Cadence: 90(1/4)
Ring2 Cadence: 90(.3/.4,.3/4)
CWT1 Cadence: 60(.5/9.5)
CWT Frequency: 425@-16

To get caller ID working, I made the following changes (still on the Voice | Regional tab):

Caller ID Method: ETSI FSK
Caller ID FSK Standard: bell 202

Finally on this tab, set:

FXS Port Impedance: 270+750||150nF

(according to the Cisco admin manual, this is the standard for The Netherlands)

Voice | Line 1

This is the tab where you get to do most of the SIP configuration.

I have my primary betamax provider ( setup under Proxy and Registration and Subscriber Information:

Proxy: name of your sip server e.g.
Display name: 0031xxxxxxxxx (number that you have verified and configured as callerid with the voipbuster software)
User ID: 0031xxxxxxxxx (same as above)
Password: hard to figure this one out 🙂
Use Auth ID: yes
Auth ID: your betamax (voipbuster etc.) username

My dialplan looks as follows:


Here is the commented version for your edification:

(112S0<:@gw0>| # emergency number goes through PSTN
0800x.<:@gw0>| # 0800 numbers go through PSTN
090x.<:@gw0>| # 090x numbers go through PSTN
<#9:>xx.<:@gw0>| # prefix number with #9 to force dialing through PSTN
<1601:>xx.| # throw away 1601 preselect still in some handset phonebooks. you won't need this.
<0:0031>[1-7]xxxxxxxxS0| # numbers without 0031 country code will get it added
xx.| # all other numbers
*xx) # linksys codes

You can find more info on dialplans here and here. You can use other betamax providers in the Gateway Accounts and integrate them in your dialplan. The betamax providers don’t require registration.

Voice | PSTN Line

In order for your SPA3102 to realise that the call has been ended, you need to setup PSTN Disconnect Detection correctly:

Detect CPC: yes
Detect Polarity Reversal: no
Detect Disconnect Tone: yes
Disconnect Tone: 425@-30,425@-30; 2(0.5/0.5/1+2)

When I had “Detect Polarity Reversal” set to yes, I’d get immediate disconnects on incoming calls with my new Ziggo cable PSTN connection.

On the same tab, make sure your FXO Port Impedance is also set to 270+750||150nF (the Dutch standard).

Later I discovered that if we took longer than 10 seconds to answer the phone, the call would be lost. To fix this, set the “PSTN Answer Delay” to 60 seconds or something reasonable.


Please let me know in the comments if this worked for you, or if you have any questions on the instructions above!


  • June 17, 2014: Fixed typesetting of the code examples.
  • September 30, 2012: Removed 13 digit S0 shortcut from dialplan, this could interfere with calls to international numbers with more digits. Added two links explaining dialplans.