circuit-busy

JamesWaite's picture

Since the most recent module update for 2.3 beta-1 my Teliax trunk fails outbound.

I've tried both SIP & IAX with the same result, other outbound SIP & H323 trunks work. And the Teliax account works fine in Idefisk. I get a "is circuit-busy" Inbound calls to the trunk seem to be fine.

Any thoughts or where else to look?

It seems to see the peer...

asterisk1*CLI> iax2 show peer Teliax
asterisk1*CLI>

  * Name       : Teliax
  Secret       : 
  Context      : default
  Mailbox      :
  Dynamic      : No
  Callerid     : "" <>
  Expire       : -1
  ACL          : No
  Addr->IP     : 216.89.79.2 Port 4569
  Defaddr->IP  : 0.0.0.0 Port 0
  Username     : REMOVED
  Codecs       : 0xfd00 (g729|ilbc)
  Codec Order  : (ilbc|g729)
  Status       : OK (138 ms)
 Qualify        : every 60000ms when OK, every 10000ms when UNREACHABLE (sample smoothing Off)

But outbound calls die...

    -- Starting simple switch on 'Zap/1-1'
    -- Executing Macro("Zap/1-1", "dialout-trunk|1|00191676726676||") in new stack
    -- Executing Set("Zap/1-1", "DIAL_TRUNK=1") in new stack
    -- Executing Set("Zap/1-1", "DIAL_NUMBER=00191676726676") in new stack
    -- Executing Set("Zap/1-1", "ROUTE_PASSWD=") in new stack
    -- Executing GotoIf("Zap/1-1", "1?noauth") in new stack
    -- Goto (macro-dialout-trunk,s,6)
    -- Executing GotoIf("Zap/1-1", "0?disabletrunk|1") in new stack
    -- Executing Set("Zap/1-1", "_NODEST=") in new stack
    -- Executing Set("Zap/1-1", "DIAL_TRUNK_OPTIONS=tr") in new stack
    -- Executing Set("Zap/1-1", "GROUP()=OUT_1") in new stack
    -- Executing Macro("Zap/1-1", "user-callerid|SKIPTTL") in new stack
    -- Executing NoOp("Zap/1-1", "user-callerid: device 4500") in new stack
    -- Executing Set("Zap/1-1", "AMPUSER=4500") in new stack
    -- Executing GotoIf("Zap/1-1", "0?report") in new stack
    -- Executing GotoIf("Zap/1-1", "0?start") in new stack
    -- Executing Set("Zap/1-1", "REALCALLERIDNUM=4500") in new stack
    -- Executing NoOp("Zap/1-1", "REALCALLERIDNUM is 4500") in new stack
    -- Executing Set("Zap/1-1", "AMPUSER=4500") in new stack
    -- Executing Set("Zap/1-1", "AMPUSERCIDNAME=House Phone") in new stack
    -- Executing GotoIf("Zap/1-1", "0?report") in new stack
    -- Executing Set("Zap/1-1", "AMPUSERCID=4500") in new stack
    -- Executing Set("Zap/1-1", "CALLERID(all)=House Phone <4500>") in new stack
    -- Executing Set("Zap/1-1", "REALCALLERIDNUM=4500") in new stack
    -- Executing NoOp("Zap/1-1", "TTL:  ARG1: SKIPTTL") in new stack
    -- Executing GotoIf("Zap/1-1", "1?continue") in new stack
    -- Goto (macro-user-callerid,s,23)
    -- Executing NoOp("Zap/1-1", "Using CallerID "House Phone" <4500>") in new stack
    -- Executing Macro("Zap/1-1", "record-enable|4500|OUT") in new stack
    -- Executing GotoIf("Zap/1-1", "0?2:4") in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing DeadAGI("Zap/1-1", "recordingcheck|20070701-135012|1183294203.24") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
  recordingcheck|20070701-135012|1183294203.24: Outbound recording not enabled
    -- AGI Script recordingcheck completed, returning 0
    -- Executing NoOp("Zap/1-1", "No recording needed") in new stack
    -- Executing GotoIf("Zap/1-1", "0?skipoutcid") in new stack
    -- Executing Set("Zap/1-1", "DIAL_TRUNK_OPTIONS=W") in new stack
    -- Executing Macro("Zap/1-1", "outbound-callerid|1") in new stack
    -- Executing GotoIf("Zap/1-1", "1?start") in new stack
    -- Goto (macro-outbound-callerid,s,3)
    -- Executing NoOp("Zap/1-1", "REALCALLERIDNUM is 4500") in new stack
    -- Executing GotoIf("Zap/1-1", "1?normcid") in new stack
    -- Goto (macro-outbound-callerid,s,9)
    -- Executing Set("Zap/1-1", "USEROUTCID=") in new stack
    -- Executing Set("Zap/1-1", "EMERGENCYCID=") in new stack
    -- Executing Set("Zap/1-1", "TRUNKOUTCID="Waite & Hartmann" <916 555 1212>") in new stack
    -- Executing GotoIf("Zap/1-1", "1?trunkcid") in new stack
    -- Goto (macro-outbound-callerid,s,16)
    -- Executing GotoIf("Zap/1-1", "0?usercid") in new stack
    -- Executing Set("Zap/1-1", "CALLERID(all)="Waite & Hartmann" <916 555 1212>") in new stack
    -- Executing GotoIf("Zap/1-1", "1?report") in new stack
    -- Goto (macro-outbound-callerid,s,22)
    -- Executing NoOp("Zap/1-1", "CallerID set to "Waite & Hartmann" <9165551212>") in new stack
    -- Executing GotoIf("Zap/1-1", "0?nomax") in new stack
    -- Executing GotoIf("Zap/1-1", "0?chanfull") in new stack
    -- Executing AGI("Zap/1-1", "fixlocalprefix") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/fixlocalprefix
    -- AGI Script fixlocalprefix completed, returning 0
    -- Executing Set("Zap/1-1", "OUTNUM=00191676726676") in new stack
    -- Executing Set("Zap/1-1", "custom=IAX2/Teliax") in new stack
    -- Executing GotoIf("Zap/1-1", "1?gocall") in new stack
    -- Goto (macro-dialout-trunk,s,22)
    -- Executing GotoIf("Zap/1-1", "0?customtrunk") in new stack
    -- Executing Dial("Zap/1-1", "IAX2/Teliax/00191676726676|300|W") in new stack
    -- Called Teliax/00191676726676
    -- IAX2/Teliax-3 is circuit-busy
    -- Hungup 'IAX2/Teliax-3'
  == Everyone is busy/congested at this time (1:0/1/0)
    -- Executing Goto("Zap/1-1", "s-CONGESTION|1") in new stack
    -- Goto (macro-dialout-trunk,s-CONGESTION,1)
    -- Executing GotoIf("Zap/1-1", "1?noreport") in new stack
    -- Goto (macro-dialout-trunk,s-CONGESTION,3)
    -- Executing NoOp("Zap/1-1", "TRUNK Dial failed due to CONGESTION - failing through to other trunks") in new stack
    -- Executing Macro("Zap/1-1", "outisbusy|") in new stack
    -- Executing Playback("Zap/1-1", "all-circuits-busy-now|noanswer") in new stack
    -- Playing 'all-circuits-busy-now' (language 'en')
    -- Executing Playback("Zap/1-1", "pls-try-call-later|noanswer") in new stack
    -- Playing 'pls-try-call-later' (language 'en')
  == Spawn extension (macro-outisbusy, s, 2) exited non-zero on 'Zap/1-1' in macro 'outisbusy'
  == Spawn extension (macro-outisbusy, s, 2) exited non-zero on 'Zap/1-1'
    -- Hungup 'Zap/1-1'

__________________


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

circuit-busy

p_lindheimer's picture

hmm, there *shouldn't* have been anything that changed that effected turnks or this part of the code. It does look like it is dialing correctly:

    -- Executing Dial("Zap/1-1", "IAX2/Teliax/00191676726676|300|W") in new stack
    -- Called Teliax/00191676726676 

And if other trunks are working fine?

Have you checked to make sure it is properly registerd? (iax2 show registery).

Have you checked the log to see if it has any more clues?

Have you turned on 'iax2 debug' to see if it shows anything more?


__________________

Philippe Lindheimer - FreePBX Project Leader
FreePBX Training Opportunities - Click Here
Get Official Paid Support - Click Here


circuit-busy

JamesWaite's picture

I have...

asterisk1*CLI> iax2 show registry
Host                  Username    Perceived             Refresh  State
216.89.79.2:4569      REMOVED  88.151.24.161:4569         60  Registered
asterisk1*CLI>

and I'd think the inbound calls on the trunk wouldn't work if it wasn't registering correctly...

I think I've found it...though I'm not entire sure why I'd get a 'No such context/extension' message now, or what context/extension they're expecting or which field this corrosponds to in the trunk config...

Tx-Frame Retry[000] -- OSeqno: 000 ISeqno: 000 Type: IAX     Subclass: NEW
   Timestamp: 00008ms  SCall: 00003  DCall: 00000 [216.89.79.2:4569]
   VERSION         : 2
   CALLED NUMBER   : 0019167672676
   CODEC_PREFS     : (ilbc|g729)
   CALLING NUMBER  : 9165551212
   CALLING PRESNTN : 0
   CALLING TYPEOFN : 0
   CALLING TRANSIT : 0
   CALLING NAME    : Waite & Hartmann
   LANGUAGE        : en
   USERNAME        : REMOVED
   FORMAT          : 256
   CAPABILITY      : 64768
   ADSICPE         : 2
   DATE TIME       : 2007-07-01  15:09:40

    -- Called Teliax/0019167672676
Rx-Frame Retry[ No] -- OSeqno: 000 ISeqno: 001 Type: IAX     Subclass: AUTHREQ
   Timestamp: 00015ms  SCall: 00074  DCall: 00003 [216.89.79.2:4569]
   AUTHMETHODS     : 2
   CHALLENGE       : 33825161
   USERNAME        : REMOVED
asterisk1*CLI>
Tx-Frame Retry[000] -- OSeqno: 001 ISeqno: 001 Type: IAX     Subclass: AUTHREP
   Timestamp: 00112ms  SCall: 00003  DCall: 00074 [216.89.79.2:4569]
   MD5 RESULT      : 54049884eebd162b67ae9ed9b740610d

Rx-Frame Retry[ No] -- OSeqno: 001 ISeqno: 002 Type: IAX     Subclass: REJECT
   Timestamp: 00117ms  SCall: 00074  DCall: 00003 [216.89.79.2:4569]
   CAUSE           : No such context/extension
   CAUSE CODE      : 3

    -- IAX2/Teliax-3 is circuit-busy
Tx-Frame Retry[-01] -- OSeqno: 002 ISeqno: 002 Type: IAX     Subclass: ACK
   Timestamp: 00117ms  SCall: 00003  DCall: 00074 [216.89.79.2:4569]
    -- Hungup 'IAX2/Teliax-3'

circuit-busy

p_lindheimer's picture

that would be a problem, the reject. Note, it shouldn't be related, but the last core update broke fixlocalprefix which deals with trunk dial patterns. I just fixed that so in case that was related you may want to pull that. (and in either case you DO want to pull that fix).


__________________

Philippe Lindheimer - FreePBX Project Leader
FreePBX Training Opportunities - Click Here
Get Official Paid Support - Click Here


circuit-busy

JamesWaite's picture

Thanks.

It was a dial string issue.

I'm in IE but Teliax expects NANP dial stings, so to make it transparent with the other trunks, in my dial 9 outbound route I've:

9|001. - to drop the 9 and pass the rest

and on the Teliax trunk

00|1. - for the NANP string Teliax expects.

The 2.3.0beta1.5 Core module seems to have resolved the problem.

A minor usability issue...

The trunk configuration screen doesn't prevent you from entering a 'Trunk Name' that's the same as the 'USER Context' but doing so prevents the peer from registering.

James


Circuit Busy

gdlcolorado's picture

If you ever have problems with Teliax you can reach the support line at 888-270-3688. It looks like you figured this one out.


circuit-busy

p_lindheimer's picture

James,

post a bug, and please spell out specific 'repro' steps of an example trunk configuration that results in this issue. Thanks.


__________________

Philippe Lindheimer - FreePBX Project Leader
FreePBX Training Opportunities - Click Here
Get Official Paid Support - Click Here


circuit-busy

JamesWaite's picture

Will do.

Now if i could just get my conference button issue figured out.


circuit-busy

p_lindheimer's picture

conference button?


__________________

Philippe Lindheimer - FreePBX Project Leader
FreePBX Training Opportunities - Click Here
Get Official Paid Support - Click Here


circuit-busy

JamesWaite's picture

Yes.

But I just found the answer.

I posted it here http://www.freepbx.org/forums/viewtopic.php?p=5289#5289


circuit-busy

dnltosa's picture

I am having kinda the same problem. Can you guys hep me out?
Thank you
Postby dnltosa » Wed Jan 25, 2012 12:21 am
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Executing [0000000000@from-trunk:1] Set("SIP/vitel-inbound-00000006", "__FROM_DID=000000000") in new stack
-- Executing [0000000000@from-trunk:2] ExecIf("SIP/vitel-inbound-00000006", "0 ?Set(CALLERID(name)=00000000)") in new stack
-- Executing [0000000000@from-trunk:3] Set("SIP/vitel-inbound-00000006", "__CALLINGPRES_SV=allowed_not_screened") in new stack
-- Executing [0000000000@from-trunk:4] Set("SIP/vitel-inbound-00000006", "CALLERPRES()=allowed_not_screened") in new stack
-- Executing [0000000000@from-trunk:5] Goto("SIP/vitel-inbound-00000006", "ext-trunk,1,1") in new stack
-- Goto (ext-trunk,1,1)
-- Executing [1@ext-trunk:1] Set("SIP/vitel-inbound-00000006", "TDIAL_STRING=SIP/vitel-inbound") in new stack
-- Executing [1@ext-trunk:2] Set("SIP/vitel-inbound-00000006", "DIAL_TRUNK=1") in new stack
-- Executing [1@ext-trunk:3] Goto("SIP/vitel-inbound-00000006", "ext-trunk,tdial,1") in new stack
-- Goto (ext-trunk,tdial,1)
-- Executing [tdial@ext-trunk:1] Set("SIP/vitel-inbound-00000006", "OUTBOUND_GROUP=OUT_1") in new stack
-- Executing [tdial@ext-trunk:2] GotoIf("SIP/vitel-inbound-00000006", "1?nomax") in new stack
-- Goto (ext-trunk,tdial,4)
-- Executing [tdial@ext-trunk:4] ExecIf("SIP/vitel-inbound-00000006", "1?Set(CALLERPRES()=allowed_not_screened)") in new stack
-- Executing [tdial@ext-trunk:5] Set("SIP/vitel-inbound-00000006", "DIAL_NUMBER=6027530644") in new stack
-- Executing [tdial@ext-trunk:6] GosubIf("SIP/vitel-inbound-00000006", "0?sub-flp-1,s,1") in new stack
-- Executing [tdial@ext-trunk:7] Dial("SIP/vitel-inbound-00000006", "SIP/vitel-inbound/,300,") in new stack
== Using SIP RTP TOS bits 184
== Using SIP RTP CoS mark 5
-- Called SIP/vitel-inbound/
-- SIP/vitel-inbound-00000007 is circuit-busy
== Everyone is busy/congested at this time (1:0/1/0)
-- Executing [tdial@ext-trunk:8] Hangup("SIP/vitel-inbound-00000006", "") in new stack
== Spawn extension (ext-trunk, tdial, 8) exited non-zero on 'SIP/vitel-inbound-00000006'
inbound
username=xxxxxx
type=friend
dtmfmode=auto
secret=xxxxxx
insecure=port,invite
host=inbound16.vitelity.net
allow=all
context=from-trunk
canreinvite=no
outbound
type=friend
dtmfmode=auto
host=outbound.vitelity.net
username=xxxxxx
fromuser=xxxxxx
secret=xxxxxxx
trustrpid=yes
sendrpid=yes
allow=all
canreinvite=no