[Home]

Summary:ASTERISK-07248: recursive forward leads asterisk to lock channels
Reporter:caspy (caspy)Labels:
Date Opened:2006-06-29 04:28:08Date Closed:2006-09-18 11:13:04
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) asterisk_bt_20060629_1.txt
Description:in extentions.conf i have such group call:

exten => 1276,1,Goto(6276|1)
exten => 6276,1,Macro(groupcall|SIP/1473&SIP/1474&SIP/1475)


where 'groupcall' macro is rather simple thing:

[macro-groupcall]
exten => s,1,NoOp(Dialing ${ARG1})
exten => s,n,Set(CALLERID(name)= ** ${CALLERID(name)})
exten => s,n,GotoIf($["${ivr}" != ""]?dial)
exten => s,n,Set(DIALOPT=TW)
exten => s,n(dial),Dial(${ARG1}|${LTIMEOUT}|tw${DIALOPT}L(${DUR_INT}))
exten => s,n,Answer
exten => s,n,Playtones(Busy)
exten => s,n,Wait(${ERRTIMEOUT})
exten => s,n,Hangup



One of my peoples setuped a forward on 1473 hardphone to 1276 number, thus creating a loop. But Asterisk got a lock(?) in channels.

In attached backtrace you can see threads 8 and 9 in strange state. This is a result of calling to 6276 extention (2 call -> 2 treads).

Issuing 'show channels' i see 2 excess call in "active calls" counter, and warning messages about locks:
Jun 29 13:21:00 WARNING[1513]: channel.c:787 channel_find_locked: Avoided deadlock for '0x82b99d0', 10 retries!
Comments:By: Serge Vecher (serge-v) 2006-06-29 08:51:06

There are unfortunately many creative ways you could lock asterisk up via the dialplan. Not sure if this is 'major' or specific to chan_sip.

By: caspy (caspy) 2006-06-29 08:58:07

vechers,

it is not a dialplan lock, it is user-speciefic lock. any user can setup looped forward from his\her phone.

anyway, lock in threads is not a good idea. in case of zap-originated call we will get locked zap channel, and then 'Ring requested...' problem (like in 6997) with fully unavailalbe E1 span.

By: Olle Johansson (oej) 2006-08-07 10:17:41

How did the phone instruct asterisk to do call forward?

By: jogi (jogi) 2006-08-07 12:25:15

I am facing exactly the same problem. If the user redirect the calls on his phone to a group in which his phone belongs too, than * loops forever. Is it possible to turn off the redirect option in the dial-command?

By: caspy (caspy) 2006-08-15 10:11:14

$ grep -B1 1473 extensions.conf
exten => 7276,1,Goto(6276|1)
exten => 6276,1,Macro(groupcall|SIP/1473&SIP/1474&SIP/1475)

sip debug for 1473, while calling to 1276 from 1441:


We're at 10.15.1.2 port 15342
Video is at 10.15.1.2 port 12390
Adding codec 0x4 (ulaw) to SDP
Adding codec 0x8 (alaw) to SDP
Adding codec 0x2 (gsm) to SDP
Adding codec 0x80000 (h263) to SDP
Adding non-codec 0x1 (telephone-event) to SDP
13 headers, 14 lines
Reliably Transmitting (NAT) to 10.15.7.251:5060:
INVITE sip:1473@10.15.7.251:5060;user=phone;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.15.1.2:5060;branch=z9hG4bK0ebf529d;rport
From: " ** name" <sip:1441@masterhost.ru>;tag=as75496f2c
To: <sip:1473@10.15.7.251:5060;user=phone;transport=udp>
Contact: <sip:1441@10.15.1.2>
Call-ID: 64dce77a4457dd726510f76d605616be@masterhost.ru
CSeq: 102 INVITE
User-Agent: Asterisk PBX
Max-Forwards: 70
Date: Tue, 15 Aug 2006 14:59:56 GMT
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Content-Type: application/sdp
Content-Length: 305

v=0
o=root 9008 9008 IN IP4 10.15.1.2
s=session
c=IN IP4 10.15.1.2
t=0 0
m=audio 15342 RTP/AVP 0 8 3 101
a=rtpmap:0 PCMU/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:3 GSM/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=silenceSupp:off - - - -
m=video 12390 RTP/AVP 34
a=rtpmap:34 H263/90000

---
<-- SIP read from 10.15.7.251:5060:
SIP/2.0 302 Moved Temporarily
Via: SIP/2.0/UDP 10.15.1.2:5060;branch=z9hG4bK0ebf529d;rport
From: " ** name" <sip:1441@masterhost.ru>;tag=as75496f2c
To: <sip:1473@10.15.7.251:5060;user=phone;transport=udp>;tag=0015c6ff66af06f310f3f0fc-12dd7c78
Call-ID: 64dce77a4457dd726510f76d605616be@masterhost.ru
Date: Tue, 15 Aug 2006 14:59:56 GMT
CSeq: 102 INVITE
Server: Cisco-CP7940G/8.0
Contact: <sip:1276@10.15.1.2:5060>
Diversion: "1473" <sip:1473@10.15.7.251>;reason=unconditional;privacy=off;screen=yes
Allow: ACK,BYE,CANCEL,INVITE,NOTIFY,OPTIONS,REFER,REGISTER,UPDATE
Content-Length: 0


--- (12 headers 0 lines)---
Transmitting (NAT) to 10.15.7.251:5060:
ACK sip:1473@10.15.7.251:5060;user=phone;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.15.1.2:5060;branch=z9hG4bK0ebf529d;rport
From: " ** name" <sip:1441@masterhost.ru>;tag=as75496f2c
To: <sip:1473@10.15.7.251:5060;user=phone;transport=udp>;tag=0015c6ff66af06f310f3f0fc-12dd7c78
Contact: <sip:1441@10.15.1.2>
Call-ID: 64dce77a4457dd726510f76d605616be@masterhost.ru
CSeq: 102 ACK
User-Agent: Asterisk PBX
Max-Forwards: 70
Content-Length: 0


---

Destroying call '64dce77a4457dd726510f76d605616be@masterhost.ru'


and so on, looping..

By: Serge Vecher (serge-v) 2006-08-25 11:29:09

caspy: is this still an issue in 1.2.11? Also, please answer oej's question in note 0049929.

By: Serge Vecher (serge-v) 2006-09-18 11:13:03

no response from original poster.