I only have one sip phone but am getting a “Loop Detected” error. Can anybody give me any ideas on how this can happen? Please?
Original post with gory details:
I am trying to set up an Asterisk system for our small office. I have one channel of a TDM03B card connected to a POTS line right now. I have one Grandstream GXP-2000 sip phone connected to the network. It is registered according to its LCD and “sip show registry”. It is the only sip phone.
When I dial in from the outside, Asterisk answers with a voice prompt. I type 4 to jump to the 406 extension that the sip phone is set up as. In the CLI I see these messages:
-- Starting simple switch on 'Zap/2-1'
Jul 12 08:13:40 NOTICE[12182]: chan_zap.c:5759 ss_thread: Got event 2 (Ring/Answered)...
-- Executing Answer("Zap/2-1", "") in new stack
-- Executing NoOp("Zap/2-1", "") in new stack
-- Executing BackGround("Zap/2-1", "dir-intro-fn") in new stack
-- Playing 'dir-intro-fn' (language 'en')
== CDR updated on Zap/2-1
-- Executing Dial("Zap/2-1", "SIP/406") in new stack
-- Called 406
-- Got SIP response 482 "Loop Detected" back from 10.1.1.201
-- Now forwarding Zap/2-1 to 'Local/406@incoming' (thanks to SIP/406-4e3a)
Jul 12 08:13:42 NOTICE[12182]: chan_local.c:442 local_alloc: No such extension/context 406@incoming creating local channel
Jul 12 08:13:42 NOTICE[12182]: app_dial.c:364 wait_for_answer: Unable to create local channel for call forward to 'Local/406@incoming' (cause = 0)
== Everyone is busy/congested at this time (1:0/0/1)
== Auto fallthrough, channel 'Zap/2-1' status is 'CHANUNAVAIL'
-- Hungup 'Zap/2-1'
There is no voice mail setup on that extension, so I understand the crashes that occur after the loop is detected. I am concentrating on fixing this loop it thinks it has.
I have a zap and a sip. There is only one sip. How can there possibly be a loop?
-Kyle
extensions.conf:
[code][default]
exten => 406,1,Answer
;test setup:
[incoming]
exten => s,1,Answer()
exten => s,2,NoOp(${CALLERID})
exten => s,3,Background(dir-intro-fn)
exten => s,4,Hangup()
exten => 1,1,Playback(vm-goodbye)
exten => 1,2,Goto(incoming,s,1)
exten => 4,1,Dial(SIP/406)
[internal]
exten => _1XXX,1,Dial(SIP/${EXTEN})
[outgoing]
ignorepat => 9
exten => _9ZXXXXXXXXX,1,Dial(${TRUNK}/${EXTEN:1})
exten => _9ZXXXXXXXXX,2,Playback(invalid)
exten => _9ZXXXXXXXXX,3,Hangup
[/code]zapata.conf:signalling=fxs_ks
echocancel=yes ; You can set this to 32, 64, or 128, tweak to your needs.
echocancelwhenbridged=yes
echotraining=400 ; Asterisk trains to the beginning of the call, number is in milliseconds
callerid=asreceived
group=1
context=incoming ; Points to the default context of your extensions.conf
channel => 2-4 ; Again X is the number of FXO modules you have
sip.conf[406]
type=friend
;context=from-sip ; Where to start in the dialplan when this phone calls
context=incoming
callerid=Kyle <406> ; Full caller ID, to override the phones config
;host=192.168.0.23 ; we have a static but private IP address
host=dynamic
; No registration allowed
nat=no ; there is not NAT between phone and Asterisk
canreinvite=yes ; allow RTP voice traffic to bypass Asterisk
dtmfmode=info ; either RFC2833 or INFO for the BudgeTone
incominglimit=1 ; permit only 1 outgoing call at a time
; from the phone to asterisk
mailbox=<removed for post>
disallow=all ; need to disallow=all before we can use allow=
allow=ulaw ; Note: In user sections the order of codecs
; listed with allow= does NOT matter!
allow=alaw
allow=g723.1 ; Asterisk only supports g723.1 pass-thru!
allow=g729 ; Pass-thru only unless g729 license obtained