My customer who'd ordered a SIP trunk to replace their copper telephone lines, had an older Meridian Telephone System. This system didn't support the configuration of a SIP trunk directly. My solution was to use a SPA-8000, an 8-port IP Telephony Gateway from Cisco/Linksys.
![]() |
Front of a SPA-8000 |
![]() |
Rear of a SPA-8000 |
With the latest firmware, 6.1.11, you can configure a SPA-8000 to handle up to 4 SIP trunks with multiple port groups or configure up to 8 individual SIP lines which are handed off as an analog lines to your phone system.
I'll cover setting up the SIP Trunk and Firmware updates in separate posts, but once we had the SIP trunk configured, we were able to successful place calls. The only issue was, it took up to 15 seconds for a local call to be placed after the last digit was dialed, long distance numbers would connect in 3 seconds.
Now some delay is to be expected. The phone system can't anticipate the number you are going to dial. So there is always a delay as the system waits to see if you are going to dial another number. Imagine if you were dialing the phone, you hit digits 7-0-5-7-8-9 and then you had forgotten what the next digit was. If there wasn't a delay, the system would immediately dial "705789" and the call would fail. 15 seconds on the other hand, is a lifetime in the telephone world.
The SPA-8000 (and other similar analog telephone adapters - ATAs) use what is called a "dial plan" to recognize the numbers you are dialing to determine when to attempt to connect the call. Below is a screenshot of the dial plan which is setup by default for the SIP trunk.
This is a generic dial plan and allows any combination of numbers. Removing the dial plan will prevent the SPA-8000 from connecting any number. Now my first mistake was to adjust the dial plan at the trunk level (noted by the "T1" tab at the top). No matter what I adjusted the dial plan too, it made no difference to the connect time.
After some testing, I noted that each individual analog line (the copper ports on the rear and L1-L8 in the web interface) each have their own dial plans. I discovered that you need to adjust the dial plan at each individual line in order to make a difference. Below is the default dial plan for a line configured on a SPA-8000.
Now it's time to explain how the dial plan works. First let's look at the actual dial plan (due to the column width of my blog this may spill over to another line):
(*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
The first thing to note, is dial plan is contained in "(" ")". The brackets are necessary in order for the dial plan to be read by the SPA-8000. Now the "|" separates the rules the SPA-8000 is using to match what you are dialing. So the first rule is "*xx". The second rule is "[3469]11", the thirds is "0", the fourth is "00", the fifth is "[2-9]xxxxxx" and so on... (I highlighted each in a separate colour to make it easier to distinguish.)
Now an "x" in a dial plan means "any number". So if you are dialing "*69", the SPA-8000 looks at its dialing plan and see it matches the first rule "*xx".
(*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
Now as I stated earlier, when I was dialing a ten digit local number, I would experience a 15 second delay. This was due to a combination of my fifth and my last rule.
(*xx|[3469]11|0|00|[2-9]xxxxxx|1xxx[2-9]xxxxxxS0|xxxxxxxxxxxx.)
When I was dialing a local number, the first number I'd dial would be a "7". The fifth rule was matching the first character with the "[2-9]" which states any number between 2-9. However, when I would continue dialing the full 10 digits, it no longer matched that rule, as the rule by default was only looking for 7 digits. The SPA-8000 would continue along is dial plan and see that the next potential match was my last rule, the "xxxxxxxxxxxx.". The dialing of my 10 digit number started to match this rule, but the SPA-8000 was waiting for me to enter the extra 2+ digits in order to match the rule, hence the extra delay before attempting the call.
To resolve the issue, I needed to adjust the dialing plan. Here is my new updated dialing plan.
(*xx|[3469]11|0|00|[2-9]xxxxxxxxxS0|1xxx[2-9]xxxxxxS0|011xxxxxxxxx.)
Where I live, we have 10 digit local phone numbers. I adjusted my fifth rule to account for 10 digits and not just 7. I also added a "S0" which tells the SPA-8000 that once a dial number matches this rule, dial it immediately (the default is 3 seconds - hence S0 means zero seconds). I also adjusted the last rule to better determine when you are attempting an international call and prevent any conflict between this rule and my local calling rule. This immediately resolved the issue (hooray!) and calls were now being placed within an acceptable 3 seconds from the last digit being dialed.
There is a lot more you can do with a dial plan, like preventing a line from dialing 1-800 numbers, auto calling a specific number and more. I'll try and cover this more in a later post, but there are many excellent articles that explain the difference in the codes, such as this one.
One last thing, don't forget to copy your new dial plan to every line on the SPA-8000 as each line is handled individually!
HI! I think major problem for customer can you make it easy i read it i appreciate. really your blog is fantastic keep it up i think you should be more work hard.
ReplyDeleteUseful links-Linksys Router Setup