Summary:ASTERISK-14036: Multiple parking lots don't work
Reporter:Jared Smith (jsmith)Labels:
Date Opened:2009-04-29 14:45:11Date Closed:2011-06-07 14:07:21
Versions:Frequency of
Environment:Attachments:( 0) features.conf
Description:I'm trying to document the "multiple parking lots" feature of Asterisk 1.6.1, and I can't get it to work.  No matter what I try, calls get parked in the default parking lot.

****** STEPS TO REPRODUCE ******

Use the following dialplan to test:

include => edvinapark

exten => 1,1,Answer()
exten => 1,2,Echo()
exten => 1,3,Playback(vm-goodbye)
exten => 1,4,Hangup()

exten => 2,1,Verbose(2,Parking lot is current set to ${CHANNEL(parkinglot)})
exten => 2,n,Set(CHANNEL(parkinglot)=edvinapark)
exten => 2,n,Set(__PARKINGLOT=edvinapark)
exten => 2,n,Answer()
exten => 2,n,Milliwatt()
exten => 2,n,Playback(vm-goodbye)
exten => 2,n,Hangup()

; park in a specific parking space
exten => 3,1,Set(PARKINGEXTEN=703)
exten => 3,2,Park()

; attempt to park in a specific parking space in a specific parking lot
exten => 4,1,Set(PARKINGEXTEN=803)
exten => 4,n,Set(PARKINGLOT=edvinapark)
exten => 4,n,Verbose(2,Parking lot is current set to ${CHANNEL(parkinglot)})
exten => 4,n,Park()

; same as 4 above, but setting the parking lot via the CHANNEL function first
exten => 5,1,Set(PARKINGEXTEN=803)
exten => 5,n,Set(PARKINGLOT=edvinapark)
exten => 5,n,Set(CHANNEL(parkinglot)=edvinapark)
exten => 5,n,Verbose(2,Parking lot is current set to ${CHANNEL(parkinglot)})
exten => 5,n,Park()

Now, call either extension 1 or extension 2, and then try transferring to extension 700, 3, 4, and 5.  In no case does the call get parked in the "edvinapark" parking lot.  Instead, it always gets parked in the "default" parking lot.

(And, as an aside, I wonder if we should really allow people to park calls in spots not specified in features.conf... but that's another topic for another day.)


As an example, I called extension 2, transferred to extension 700 (default parking extension):

  -- Executing [2@parktest:1] Verbose("SIP/linksys-01186d18", "2,Parking lot is current set to ") in new stack
 == Parking lot is current set to
   -- Executing [2@parktest:2] Set("SIP/linksys-01186d18", "CHANNEL(parkinglot)=edvinapark") in new stack
   -- Executing [2@parktest:3] Set("SIP/linksys-01186d18", "__PARKINGLOT=edvinapark") in new stack
   -- Executing [2@parktest:4] Answer("SIP/linksys-01186d18", "") in new stack
   -- Executing [2@parktest:5] Milliwatt("SIP/linksys-01186d18", "") in new stack
 == Using SIP RTP CoS mark 5
 == Using SIP VRTP CoS mark 6
   -- Executing [700@parktest:1] Park("SIP/linksys-01190288", "") in new stack
 == Parked SIP/linksys-01190288 on 701 (lot default). Will timeout back to extension [parktest] s, 1 in 45 seconds
   -- Added extension '701' priority 1 to parkedcalls (0x11b3d20)
   -- <SIP/linksys-01190288> Playing 'digits/7.gsm' (language 'en')
   -- <SIP/linksys-01190288> Playing 'digits/0.gsm' (language 'en')
   -- <SIP/linksys-01190288> Playing 'digits/1.gsm' (language 'en')
   -- Started music on hold, class 'default', on SIP/linksys-01190288
Comments:By: Jared Smith (jsmith) 2009-04-29 17:07:29

It turns out that I should have been using the parking context name (parkinglot_edvina) instead of the parking lot context (edvinapark).  After changing that, I can choose the parking lot by either setting the PARKINGLOT variable or by using the CHANNEL function.

By: Jared Smith (jsmith) 2009-04-29 17:08:03

Closed, as it's not really a bug.