Problems with Outgoing calls (errors w/ PSTN and dialing 1)

So far, my asterisk roll out had been going pretty well. I have four sites, each with servers that are IAX linked to forward extensions between them. So for internal company calls, the system is working great.

My biggest problem right now, is that for two of my locations, but not the other two, when an outgoing call is dialed one of the following will happen.

  1. The phone call will work (~25% of time)
  2. The phone company (Verizon/USA) will answer the call indicating that I need to dial a 1 (~50% of time)
    or
  3. The phone company will answer and ask if I would like the rate to make this call to hold on or press 0 for operator assistance (~25% of time).

Sometimes, just redialing immediately after getting the error will go through just fine.

The problem is not with the line, because a landline plugged directly into the phone line works just fine, as it did before the asterisk switchover.

I cannot figure out a difference in my extensions.conf file between the systems that work every time, and the ones that don’t. The ones that work are asterisk 1.2.13 on a TDM422B card. The ones that don’t, one is asterisk 1.2.13 also with a TDM422B card, the other is asterisk 1.4.0 with a Sangoma A20402D card.

The inconsistency is what really drives me crazy. I have included the relevant part of my extensions.conf file below in the hopes that one of you may see where my error could be corrected. Many thanks in advance.

The SayDigits lines were just added to make sure that we were dialing the number we thought we were dialing, and we are, at least according to both the SayDigits and the Master.csv log file.

The intent of this dialplan is that
dialing a leading ‘9’ will work, but is not required.
The 1 for a long distance call will be added if not dialed by the user (much like a cell phone).
We have 10 digit dialing here, so if the area code is left off, I want asterisk to add it.

Any help is appreciated, thanks.

  • Alex

[company-out]

;emergency calls
exten => 911,1,Dial(Zap/g2/911,60,r)
exten => 9911,1,Dial(Zap/g2/911,60,r)

; Local Calls
exten => _NXXXXXX,1,Dial(Zap/g2/301${EXTEN},60,r)
exten => _9NXXXXXX,1,Dial(Zap/g2/301${EXTEN:1},60,r)

; 10 digit and Long Distance Calls
; Because local 301 is also 10 digit dialing, but not all
; 301’a are local, I will not automatically append the ‘1’
; CORRECTION 3/21/2007 - For some reason, some calls are diverted to
; a verizon message asking if we want rate information, or are sent
; to the you need to dial one message, even when 1 is dialed.
; For now, I am going to make all 10 digit calls have the 1 added.

;exten => _NXXNXXXXXX,1,Dial(Zap/g2/${EXTEN},60,r)
;exten => _9NXXNXXXXXX,1,Dial(Zap/g2/${EXTEN:1},60,r)
;exten => _1NXXNXXXXXX,1,Dial(Zap/g2/${EXTEN},60,r)
;exten => _91NXXNXXXXXX,1,Dial(Zap/g2/${EXTEN:1},60,r)

exten => _NXXNXXXXXX,1,SayDigits(1${EXTEN})
exten => _NXXNXXXXXX,2,Dial(Zap/g2/1${EXTEN},60,r)
exten => _9NXXNXXXXXX,1,SayDigits(1${EXTEN:1})
exten => _9NXXNXXXXXX,2,Dial(Zap/g2/1${EXTEN:1},60,r)
exten => _1NXXNXXXXXX,1,SayDigits(${EXTEN})
exten => _1NXXNXXXXXX,2,Dial(Zap/g2/${EXTEN},60,r)
exten => _91NXXNXXXXXX,1,SayDigits(${EXTEN:1})
exten => _91NXXNXXXXXX,2,Dial(Zap/g2/${EXTEN:1},60,r)

; International Calls
exten => _011.,1,Dial(Zap/g2/${EXTEN},60,r)
exten => _9011.,1,Dial(Zap/g2/${EXTEN:1},60,r)

You may want to clarify: a) are good and bad sites using the same dial plan, b) are good and bad sites using the same telco; c) I can understand “need to dial 1” message, but how do you invoke “rate info” message? Any pattern in number to get that message? Can you get that with regular phone device?

Is it possible that a flaky card omit first digit occasionally? Since you have FXS ports, you can loop them with FXO to further confirm that all digits are sent at all times.

One thought about your original dial plan (last part)

[quote=“biostarpbx”]; 10 digit and Long Distance Calls
; Because local 301 is also 10 digit dialing, but not all
; 301’a are local, I will not automatically append the ‘1’[/quote]

Since only 301 has this duality, you should consider omitting 1 for only _301NXXXXXX.

Thanks for looking at my problem.
I have been checking the log, and I cannot detect a pattern between the calls that go through and those that do not. I cannot predictable force a call to get to the error messages, it happens most the time, but not every time. I don’t think it’s a hardware problem because I have the problem on two different boards (a Digium and a Sangoma). The systems that work have identical dialplans (at least as far as outgoing calls go).

I might try the loop back, that didn’t occur to me. However, since that connection would go through each time, how would I best verify the number I thought that I dialed. I guess just be the attempted extension from the originating FXS line?!

[quote=“valley”]You may want to clarify: a) are good and bad sites using the same dial plan, b) are good and bad sites using the same telco; c) I can understand “need to dial 1” message, but how do you invoke “rate info” message? Any pattern in number to get that message? Can you get that with regular phone device?

Is it possible that a flaky card omit first digit occasionally? Since you have FXS ports, you can loop them with FXO to further confirm that all digits are sent at all times.

As with your comment below, I originally did omit the automatic addition of the ‘1’ to a ‘301’ number (although some 301 numbers sill do require a 1 and no numbers are harmed by dialing it).

Any more thoughts? Thanks,

  • Alex

One thought about your original dial plan (last part)

[quote=“biostarpbx”]; 10 digit and Long Distance Calls
; Because local 301 is also 10 digit dialing, but not all
; 301’a are local, I will not automatically append the ‘1’[/quote]

Since only 301 has this duality, you should consider omitting 1 for only _301NXXXXXX.[/quote]

(An FXO originates a call.) The FXS will intercept all dialed digits as DTMF. So you can set up a test context like this:

exten => s,1,NoOp(Test digits from FXO) exten => s,n,Answer() exten => _X,1,NoOp(FXO called ${EXTEN}) exten => _X,n,Hangup()

If you really prefer, you can still add SayDigits() to hear them. Hope this helps.