Update on the matter:<br><br>I have reduced the config to one context and two peers:<br>extensions.conf:<br><br>[internal]<br>include => parkedcalls<br>exten => 2552,1,Dial(SIP/2552,,t)<br>exten => 2556,1,Dial(SIP/2556,,t)<br>
<br>sip.conf:<br>[general]<br>context=deadend<br>allowoverlap=no<br>bindport=5060<br>bindaddr=0.0.0.0<br>srvlookup=no<br><br>[2552]<br>type=friend<br>context=dialplan-1<br>host=dynamic<br>call-limit=10<br>
defaultuser=2552<br>secret=xxxxxxx<br><br>[2556]<br>type=friend<br>context=dialplan-1<br>host=dynamic<br>call-limit=10<br>defaultuser=2556<br>secret=xxxxxxx<br><br>features.conf:<br>[general]<br>parkext => 10<br>parkpos => 11-14<br>
parkingtime => 45<br><br>[featuremap]<br>blindxfer => #<br><br>That's all. I am starting to think that this must be an asterisk bug... version is 1.6.0.1.<br><br>Regards,<br>Örn<br><br><br><div class="gmail_quote">
On Thu, Feb 12, 2009 at 3:05 PM, Örn Arnarson <span dir="ltr"><<a href="mailto:orn@arnarson.net">orn@arnarson.net</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi,<br><br>I'm having problem with call parking.<br>When I park call, either via transfer to xten or park digit sequence from features.conf, I hear the parking lot number read to me and the user gets transferred.<br><br>
However, MOH stops for the caller the moment user is transferred. <br>The user can be retrieved by dialing the parked extension and voice resumes.<br>If the parked user hangs up, the channel state does not update (nor the hint) and call seems to be live still. <br>
If the timeout for the park is reached, the user is not transferred back (nothing happens actually -- he is just able to stay parked forever).<br>Even after the user hangs up, the parking lot extension exists and is callable, but when that is done (the parking extension is called), it answers and promptly hangs up and then is available for parking again.<br>
<br>Yesterday I had everything working like a charm, and I don't think I have changed anything, although that seems increasingly unlikely since things don't usually break on their own. I've restarted asterisk numerous times and tried changing things I think are relevant, but with no avail.<br>
<br>It does not matter whether the caller is coming in from a SIP trunk or a SIP peer.<br><br>The SIP messages look normal. When the caller hangs up while parked he sends a BYE to the asterisk to the callee's number, and the asterisk replies with ACK.<br>
<br>Any help would be appreciated.<br><br>My comments in asterisk CLI output below prefixed by #####<br><br>==== Configuration files ====<br><br>== features.conf ==<br>[general]<br>parkext => 10<br>parkpos => 11-14<br>
parkinghints = yes<br><br>== sip.conf ==<br>[general]<br>context=deadend<br>allowoverlap=no<br>bindport=5060<br>bindaddr=0.0.0.0<br>srvlookup=no<br>subscribecontext=parkedcalls<br>allowsubscribe=yes<br>notifyringing=yes<br>
notifyhold=yes<br>limitonpeers=yes<br>canreinvite=no<br><br>[Tal]<br>context=incoming<br>type=friend<br>host=XXX.XXX.XXX.XXX<br>canreinvite=no<br>port=5060<br>dtmfmode=rfc2833<br>disallow=all<br>allow=alaw<br><br>[smg01]<br>
type=friend<br>context=incoming<br>host=XXX.XXX.XXX.XXX<br>canreinvite=no<br>port=5060<br>dtmfmode=rfc2833<br>disallow=all<br>allow=alaw<br><br>[2552]<br>type=friend<br>context=dialplan-1<br>host=dynamic<br>call-limit=10<br>
defaultuser=2552<br>secret=xxxxxxx<br><br>[2556]<br>type=friend<br>context=dialplan-1<br>host=dynamic<br>call-limit=10<br>defaultuser=2556<br>secret=xxxxxxx<br><br>== extensions.conf ==<br>[globals]<br>CID => 5822550<br>
OCODE => 582<br>XTENS => 255X<br>DTRK => smg01 <br>CONF => 2559<br>ADALNUMER => 2550<br>ADALDIAL => SIP/2551&SIP/2552&SIP/2553&SIP/2554<br>BAKVAKT => 7712555<br><br>[general]<br>static=yes<br>
writeprotect=yes<br>clearglobalvars=no<br>userscontext=default<br><br>[dialplan-1]<br>include => conferences<br>include => ringgroups<br>include => internal<br>include => landlines<br>include => gsm<br>include => special <br>
include => international<br>include => parkedcalls<br><br>[dialplan-2]<br>include => conferences<br>include => ringgroups<br>include => internal<br>include => landlines<br>include => parkedcalls<br><br>
[dialplan-3]<br>include => conferences<br>include => ringgroups<br>include => internal<br>include => landlines<br>include => gsm<br>include => parkedcalls<br><br>[dialplan-4]<br>include => conferences<br>
include => ringgroups<br>include => internal<br>include => landlines<br>include => international<br>include => parkedcalls<br><br>[incoming]<br>exten => 4891001,1,Set(CALLERID(name)=SMG01)<br>exten => 4891001,n,Dial(${ADALDIAL})<br>
exten => ${CID},1,Macro(ringgroup,${ADALDIAL},ADALNUMER,${ADALNUMER},ringgroup)<br>exten => ${OCODE}${CONf},1,Goto(conferences,${EXTEN:3},1)<br>exten => _${OCODE}${XTENS},1,Set(CALLERID(name)=BEIN HRINGING)<br>exten => _${OCODE}${XTENS},n,Macro(internal-call,${EXTEN:3},incoming)<br>
<br>[internal]<br>exten => _${XTENS},1,Macro(internal-call,${EXTEN},internal)<br>exten => *80,1,Page(SIP/2553)<br>exten => *97,1,VoiceMailMain(${CALLERID(num)},s)<br>exten => *98,1,Playback(templokun)<br>exten => *99,1,Record(templokun.wav)<br>
exten => _9X.,1,Macro(trunkdial,Tal,${EXTEN:1},${CALLERID(num)},landline)<br><br>[landlines]<br>exten => _800XXXX,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},tollfree)<br>exten => _[4-5]XXXXXX,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},landline)<br>
exten => _177X,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},landline)<br>exten => 1817,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},landline)<br>exten => 1414,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},landline)<br>
<br>[gsm]<br>exten => _[6-8]XXXXXX,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},gsm)<br><br>[special]<br>exten => 112,1,Macro(trunkdial,${DTRK},${EXTEN},$CALLERID(num)},emergency)<br>exten => _11X,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},special)<br>
exten => _15X,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},special)<br>exten => _9XXXXXX,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},special)<br><br>[international]<br>exten => _00x.,1,Macro(trunkdial,${DTRK},${EXTEN},${CALLERID(num)},international)<br>
<br>[conferences]<br>exten => ${CONF},1,MeetMe(1,MsI)<br><br>[ringgroups]<br>exten => ${ADALNUMER},1,Macro(ringgroup,${ADALDIAL},ADALNUMER,${ADALNUMER},internal)<br><br>[forwarding]<br>exten => _X.,1,Set(CALLERID(all)=${origcid})<br>
exten => _X.,n,Set(GLOBAL(origcid)=)<br>exten => _X.,n,Goto(dialplan-1,${DB(CF/${EXTEN})},1)<br><br>[2550]<br>exten => s,1,Answer()<br>exten => s,n,Background(templokun)<br>exten => s,n,WaitExten(4)<br><br>
exten => 1,1,VoiceMail(2550)<br>exten => 2,1,Playback(bakvakt)<br>exten => 2,n,Goto(dialplan-1,${BAKVAKT},1)<br><br>[macro-ringgroup]<br>exten => s,1,Set(CDR(userfield)=${ARG4})<br>exten => s,n,Set(CALLERID(name)=${ARG2})<br>
exten => s,n,ExecIf(${DB(${ARG3}/lokad)}?Goto(${ADALNUMER},s,1))<br>exten => s,n,Dial(${ARG1})<br><br>[macro-trunkdial]<br>exten => s,1,Set(CDR(userfield)=${ARG4})<br>exten => s,n,Set(CALLERID(all)=${CID})<br>
exten => s,n,ExecIf($[${DB(CID/${ARG3})}]?Set(CALLERID(all)=${OCODE}${ARG3}))<br>exten => s,n,ExecIf($[${ARG4} = international]?Set(CALLERID(all)=+354${CALLERID(num)}))<br>exten => s,n,Dial(SIP/${ARG1}/${ARG2})<br>
exten => s,n,Goto(s-${DIALSTATUS},1)<br>exten => s-NOANSWER,1,Hangup<br>exten => s-BUSY,1,Hangup<br>exten => _s-.,1,NoOp<br><br>[macro-internal-call]<br>exten => s,1,Set(CDR(userfield)=${ARG2})<br>exten => s,n,Set(TIMEOUT=90)<br>
exten => s,n,ExecIf(${DB(CF/${ARG1})}?Set(GLOBAL(origcid)=${ARG1}))<br>exten => s,n,ExecIf(${DB(CF/${ARG1})}?Dial(local/${DB(CF/${ARG1})}@forwarding/n))<br>exten => s,n,ExecIf(${DB(VM/${ARG1})}?Set(TIMEOUT=25)<br>
exten => s,n,Dial(SIP/${ARG1},${TIMEOUT},tw)<br>exten => s,n,Goto(s-${DIALSTATUS},1)<br>exten => s-NOANSWER,1,ExecIF(${DB(VM/${ARG1})}?VoiceMail(${ARG1}))<br>exten => s-NOANSWER,n,Hangup<br>exten => s-BUSY,1,ExecIF(${DB(VM/${ARG1})}?VoiceMail(${ARG1}))<br>
exten => s-BUSY,n,Hangup<br>exten => _s-.,1,NoOp<br><br><br><br>==== Call sequence ====<br><br>2556 calls 2552. [a calls b]<br>2552 answers call [b answers]<br>2552 presses # (blind xfer) [b starts transfer]<br>2556 hears MOH [a hears MOH]<br>
2552 presses 10 (to transfer to parking lot) [b enters 10]<br>2556 stops hearing MOH [a stops hearing MOH]<br>2552 hears asterisk read 11 aloud (parking lot number) and subsequently hangs up [a hears parking lot number and hangs up]<br>
2556 is in parking lot, total silence on phone [b is in lot with no MOH, or a hissing noise if he was transferred at a certain time in MOH]<br>2556 hangs up [b hangs up]<br>2552 calls 11 (which is parking lot slot) [a calls 11]<br>
11 answers and hangs up<br><br><br>==== Asterisk console output ====<br><br> == Using SIP RTP CoS mark 5<br> -- Executing [2552@dialplan-1:1] Macro("SIP/2556-0821d078", "internal-call,2552,internal") in new stack<br>
-- Executing [s@macro-internal-call:1] Set("SIP/2556-0821d078", "CDR(userfield)=internal") in new stack<br> -- Executing [s@macro-internal-call:2] Set("SIP/2556-0821d078", "TIMEOUT=90") in new stack<br>
-- Executing [s@macro-internal-call:3] ExecIf("SIP/2556-0821d078", "?Set(GLOBAL(origcid)=2552)") in new stack<br> -- Executing [s@macro-internal-call:4] ExecIf("SIP/2556-0821d078", "?Dial(local/@forwarding/n)") in new stack<br>
-- Executing [s@macro-internal-call:5] ExecIf("SIP/2556-0821d078", "?Set(TIMEOUT=25") in new stack<br> -- Executing [s@macro-internal-call:6] Dial("SIP/2556-0821d078", "SIP/2552,90,tw") in new stack<br>
== Using SIP RTP CoS mark 5<br> -- Called 2552<br> -- SIP/2552-08242a10 is ringing<br> -- SIP/2552-08242a10 answered SIP/2556-0821d078<br> -- Started music on hold, class 'default', on SIP/2556-0821d078<br>
-- <SIP/2552-08242a10> Playing 'pbx-transfer.slin' (language 'en')<br> -- Stopped music on hold on SIP/2556-0821d078<br> -- Started music on hold, class 'default', on SIP/2556-0821d078<br>
== Parked SIP/2556-0821d078 on 11@parkedcalls. Will timeout back to extension [dialplan-1] 2552, 1 in 45 seconds<br> -- <SIP/2552-08242a10> Playing 'digits/1.slin' (language 'en')<br> -- <SIP/2552-08242a10> Playing 'digits/1.slin' (language 'en')<br>
-- Added extension '11' priority 1 to parkedcalls (0x8209928)<br> == Extension Changed 11[default] new state InUse for Notify User 2552 <br> == Spawn extension (macro-internal-call, s, 6) exited KEEPALIVE in macro 'internal-call' on 'SIP/2556-0821d078'<br>
== Spawn extension (dialplan-1, 2552, 1) exited KEEPALIVE on 'SIP/2556-0821d078'<br><br>##### at this point 2556 has hung up, but asterisk doesn't realize new status. SIP message from 2556 to * shows that 2556 sends BYE to 2552.<br>
##### However, even though channel has hung up, State of 11@parkedcalls still shows InUse.<br><br>simstod*CLI> core show hints<br>simstod*CLI> <br> -= Registered Asterisk Dial Plan Hints =-<br> 14@parkedcalls : park:14@parkedcalls State:Idle Watchers 1<br>
13@parkedcalls : park:13@parkedcalls State:Idle Watchers 1<br> 12@parkedcalls : park:12@parkedcalls State:Idle Watchers 1<br> 11@parkedcalls : park:11@parkedcalls State:InUse Watchers 1<br>
----------------<br>- 4 hints registered<br><br>##### If 2552 calls 11 at this point, it just answers and hangs up, thus putting the state back to InUse<br><br> -- Executing [11@dialplan-1:1] ParkedCall("SIP/2552-08242a10", "11") in new stack<br>
<br> == Extension Changed 11[default] new state Idle for Notify User 2552 <br> -- Channel SIP/2552-08242a10 connected to parked call 11<br> -- Stopped music on hold on SIP/2556-0821d078<br> == Spawn extension (dialplan-1, 11, 1) exited non-zero on 'SIP/2552-08242a10'<br>
<br><br><br>##### It is also worth noting that even if call reaches 45 seconds in length after transfer, it does not transfer back to 2552. It just stays in the parking lot indefinitely.<br>
</blockquote></div><br>