[Home]

Summary:ASTERISK-14632: Calls parked via AMI announce to caller instead of callee
Reporter:Tom Farnham (tomfarnham)Labels:
Date Opened:2009-08-11 09:05:42Date Closed:2011-06-07 14:08:18
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_features
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:When I park a call via the asterisk management interface via asterisk-java the call is parked like normal, but the park extension is announced to the person being parked. Also when the callback finally occurs after the timeout the parked extension essentially tries to call itself back instead of dialing the person who parked them.

But when I do this ala attended transfer from a polycom phone, by pressing transfer, dialing the park queue it announces it normally to the person parking the call and then pressing transfer again, parks the call.

This may possibly be my dialplan, I am not an expert, but I don't believe it should be announcing to the caller as I have set it so in my features.conf which I'm including below.

****** ADDITIONAL INFORMATION ******

This first console log is from the attended transfer method that works correctly:
 == Using SIP RTP CoS mark 5
   -- Executing [830@administrators:1] Answer("SIP/1350-b5d19a08", "") in new stack
   -- Executing [830@administrators:2] Set("SIP/1350-b5d19a08", "row=id=1,name=830,emp_num=1894,host=dynamic,nat=no,type=friend,cancallforward=yes,canreinvite=yes,context=administrators,fromuser=1894,mailbox=1894,regexten=1894,secret=1234,disallow=all,allow=ulaw,allow=alaw,ipaddr=192.200.9.225,port=5060,regseconds=1250001917,lastms=0,username=1894,defaultuser=1894,useragent=PolycomSoundPointIP-SPIP_301-UA/3.1.3.0439,") in new stack
   -- Executing [830@administrators:3] Set("SIP/1350-b5d19a08", "emp_num=1894") in new stack
   -- Executing [830@administrators:4] Gosub("SIP/1350-b5d19a08", "stdexten,_X.,50000(1894,SIP/830,default)") in new stack
   -- Executing [_X.@stdexten:50000] NoOp("SIP/1350-b5d19a08", "Start stdexten") in new stack
   -- Executing [_X.@stdexten:50001] Set("SIP/1350-b5d19a08", "LOCAL(ext)=1894") in new stack
   -- Executing [_X.@stdexten:50002] Set("SIP/1350-b5d19a08", "LOCAL(dev)=SIP/830") in new stack
   -- Executing [_X.@stdexten:50003] Set("SIP/1350-b5d19a08", "LOCAL(cntx)=default") in new stack
   -- Executing [_X.@stdexten:50004] Set("SIP/1350-b5d19a08", "LOCAL(mbx)=1894@default") in new stack
   -- Executing [_X.@stdexten:50005] NoOp("SIP/1350-b5d19a08", "mbx") in new stack
   -- Executing [_X.@stdexten:50006] Dial("SIP/1350-b5d19a08", "SIP/830,20,tk") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 830
   -- SIP/830-09849e20 is ringing
   -- SIP/830-09849e20 answered SIP/1350-b5d19a08
   -- Started music on hold, class 'default', on SIP/1350-b5d19a08
      > Saved useragent "X-Lite release 1011b stamp 39984" for peer 1350
      > Saved useragent "X-Lite release 1011b stamp 39984" for peer 1350
 == Using SIP RTP CoS mark 5
   -- Executing [7000@administrators:1] Park("SIP/830-098b1a58", "") in new stack
 == Parked SIP/830-098b1a58 on 7001 (lot default). Will timeout back to extension [administrators] s, 1 in 45 seconds
   -- Added extension '7001' priority 1 to parkedcalls (0xb5d193a8)
   -- <SIP/830-098b1a58> Playing 'digits/7.gsm' (language 'en')
   -- <SIP/830-098b1a58> Playing 'digits/0.gsm' (language 'en')
   -- <SIP/830-098b1a58> Playing 'digits/0.gsm' (language 'en')
   -- <SIP/830-098b1a58> Playing 'digits/1.gsm' (language 'en')
   -- Started music on hold, class 'default', on SIP/830-098b1a58
 == Spawn extension (administrators, s, 1) exited non-zero on 'Parked/SIP/830-098b1a58<ZOMBIE>'
[Aug 11 09:02:23] NOTICE[26065]: chan_sip.c:19368 handle_request_subscribe: Received SIP subscribe for peer without mailbox: 1350
   -- Stopped music on hold on SIP/830-098b1a58
   -- Stopped music on hold on SIP/1350-b5d19a08
   -- Started music on hold, class 'default', on SIP/1350-b5d19a08
 == Spawn extension (stdexten, _X., 50006) exited non-zero on 'SIP/830-098b1a58<ZOMBIE>'




This is the console log after parking a call via AMI:
 == Using SIP RTP CoS mark 5
   -- Executing [830@phonies:1] Answer("SIP/1140-0a152120", "") in new stack
   -- Executing [830@phonies:2] Gosub("SIP/1140-0a152120", "stdexten,_X.,50000(,SIP/830)") in new stack
   -- Executing [_X.@stdexten:50000] NoOp("SIP/1140-0a152120", "Start stdexten") in new stack
   -- Executing [_X.@stdexten:50001] Set("SIP/1140-0a152120", "LOCAL(ext)=") in new stack
   -- Executing [_X.@stdexten:50002] Set("SIP/1140-0a152120", "LOCAL(dev)=SIP/830") in new stack
   -- Executing [_X.@stdexten:50003] Set("SIP/1140-0a152120", "LOCAL(cntx)=") in new stack
   -- Executing [_X.@stdexten:50004] Set("SIP/1140-0a152120", "LOCAL(mbx)=""""") in new stack
   -- Executing [_X.@stdexten:50005] NoOp("SIP/1140-0a152120", "mbx") in new stack
   -- Executing [_X.@stdexten:50006] Dial("SIP/1140-0a152120", "SIP/830,20,tk") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 830
   -- SIP/830-0a09c978 is ringing
   -- SIP/830-0a09c978 answered SIP/1140-0a152120
 == Parked SIP/1140-0a152120 on 7001 (lot default). Will timeout back to extension [stdexten] _X., 50006 in 45 seconds
   -- Added extension '7001' priority 1 to parkedcalls (0xa030b68)
   -- <SIP/1140-0a152120> Playing 'digits/7.gsm' (language 'en')
   -- <SIP/1140-0a152120> Playing 'digits/0.gsm' (language 'en')
   -- <SIP/1140-0a152120> Playing 'digits/0.gsm' (language 'en')
   -- <SIP/1140-0a152120> Playing 'digits/1.gsm' (language 'en')
   -- Started music on hold, class 'default', on SIP/1140-0a152120
 == Spawn extension (stdexten, _X., 50006) exited non-zero on 'Parked/SIP/1140-0a152120<ZOMBIE>'
   -- Stopped music on hold on SIP/1140-0a152120




This is my current features.conf:
;
; Sample Call Features (parking, transfer, etc) configuration
;

[general]
parkext => 7000 ; What extension to dial to park
parkpos => 7001-7020 ; What extensions to park calls on. These needs to be
; numeric, as Asterisk starts from the start position
; and increments with one for the next parked call.
context => parkedcalls
;parkinghints = no ; Add hints priorities automatically for parking slots (default is no).
;parkingtime => 45 ; Number of seconds a call can be parked for
; (default is 45 seconds)
comebacktoorigin = yes ; Whether to return to the original calling extension upon parking
; timeout or to send the call to context 'parkedcallstimeout' at
; extension 's', priority '1' (default is yes).
;courtesytone = beep ; Sound file to play to the parked caller
; when someone dials a parked call
; or the Touch Monitor is activated/deactivated.
parkedplay = callee ; Who to play the courtesy tone to when picking up a parked call
; one of: parked, caller, both  (default is caller)
parkedcalltransfers = callee   ; Enables or disables DTMF based transfers when picking up a parked call.
                               ; one of: callee, caller, both, no (default is no)
parkedcallreparking = callee   ; Enables or disables DTMF based parking when picking up a parked call.
                               ; one of: callee, caller, both, no (default is no)
;parkedcallhangup = caller      ; Enables or disables DTMF based hangups when picking up a parked call.
                               ; one of: callee, caller, both, no (default is no)
;parkedcallrecording = caller   ; Enables or disables DTMF based one-touch recording when picking up a parked call.
                               ; one of: callee, caller, both, no (default is no)
;adsipark = yes ; if you want ADSI parking announcements
;findslot => next ; Continue to the 'next' free parking space.
; Defaults to 'first' available
;parkedmusicclass=default ; This is the MOH class to use for the parked channel
; as long as the class is not set on the channel directly
; using Set(CHANNEL(musicclass)=whatever) in the dialplan

;transferdigittimeout => 3 ; Number of seconds to wait between digits when transferring a call
; (default is 3 seconds)
;xfersound = beep ; to indicate an attended transfer is complete
;xferfailsound = beeperr ; to indicate a failed transfer
;pickupexten = *8 ; Configure the pickup extension. (default is *8)
;featuredigittimeout = 1000 ; Max time (ms) between digits for
                           ; feature activation  (default is 1000 ms)
;atxfernoanswertimeout = 15 ; Timeout for answer on attended transfer default is 15 seconds.
;atxferdropcall = no        ; If someone does an attended transfer, then hangs up before the transferred
                           ; caller is connected, then by default, the system will try to call back the
                           ; person that did the transfer.  If this is set to "yes", the callback will
                           ; not be attempted and the transfer will just fail.
;atxferloopdelay = 10       ; Number of seconds to sleep between retries (if atxferdropcall = no)
;atxfercallbackretries = 2  ; Number of times to attempt to send the call back to the transferer.
                           ; By default, this is 2.

; Note that the DTMF features listed below only work when two channels have answered and are bridged together.
; They can not be used while the remote party is ringing or in progress. If you require this feature you can use
; chan_local in combination with Answer to accomplish it.

[featuremap]
;blindxfer => #1 ; Blind transfer  (default is #) -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
;disconnect => *0 ; Disconnect  (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call!
;automon => *1 ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call!
;atxfer => ASTERISK-5 ; Attended transfer  -- Make sure to set the T and/or t option in the Dial() or Queue()  app call!
;parkcall => *7        ; Park call (one step parking)  -- Make sure to set the K and/or K option in the Dial() app call!
;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call!

[applicationmap]
; Note that the DYNAMIC_FEATURES channel variable must be set to use the features
; defined here.  The value of DYNAMIC_FEATURES should be the names of the features
; to allow the channel to use separated by '#'.  For example:
;
;    Set(__DYNAMIC_FEATURES=myfeature1#myfeature2#myfeature3)
;
; (Note: The two leading underscores allow these feature settings to be set on
;  on the outbound channels, as well.  Otherwise, only the original channel
;  will have access to these features.)
;
; The syntax for declaring a dynamic feature is the following:
;
;<FeatureName> => <DTMF_sequence>,<ActivateOn>[/<ActivatedBy>],<Application>[,<AppArguments>[,MOH_Class]]
;
;  FeatureName   -> This is the name of the feature used in when setting the
;                   DYNAMIC_FEATURES variable to enable usage of this feature.
;  DTMF_sequence -> This is the key sequence used to activate this feature.
;  ActivateOn    -> This is the channel of the call that the application will be executed
;                   on. Valid values are "self" and "peer". "self" means run the
;                   application on the same channel that activated the feature. "peer"
;                   means run the application on the opposite channel from the one that
;                   has activated the feature.
;  ActivatedBy   -> This is which channel is allowed to activate this feature. Valid
;                   values are "caller", "callee", and "both". "both" is the default.
;                   The "caller" is the channel that executed the Dial application, while
;                   the "callee" is the channel called by the Dial application.
;  Application   -> This is the application to execute.
;  AppArguments  -> These are the arguments to be passed into the application.
;  MOH_Class     -> This is the music on hold class to play while the idle
;                   channel waits for the feature to complete. If left blank,
;                   no music will be played.
;
;
; IMPORTANT NOTE: The applicationmap is not intended to be used for all Asterisk
;   applications. When applications are used in extensions.conf, they are executed
;   by the PBX core. In this case, these applications are executed outside of the
;   PBX core, so it does *not* make sense to use any application which has any
;   concept of dialplan flow. Examples of this would be things like Macro, Goto,
;   Background, WaitExten, and many more.
;
; Enabling these features means that the PBX needs to stay in the media flow and
; media will not be re-directed if DTMF is sent in the media stream.
;
; Example Usage:
;
;testfeature => ASTERISK-5,peer,Playback,tt-monkeys  ;Allow both the caller and callee to play
;                                            ;tt-monkeys to the opposite channel
;
;pauseMonitor   => #1,self/callee,Pausemonitor     ;Allow the callee to pause monitoring
;                                                  ;on their channel
;unpauseMonitor => #3,self/callee,UnPauseMonitor   ;Allow the callee to unpause monitoring
;                                                  ;on their channel
;
;*** Define another parking lot
;
; You can set parkinglot with the CHANNEL dialplan function
; or by setting 'parkinglot' directly in the channel configuration file.
;
;[parkinglot_edvina]
;context => edvinapark
;parkpos => 800-850
;findslot => next

; GROUPS
;   Groups are groupings of features defined in [applicationmap]
;   that can have their own key mappings.
;
;   Groups are defined as a configuration section,
;   and can be set as part of DYNAMIC_FEATURES in
;   the same way that a normal feature can...
; etc:
;
;  Set(DYNAMIC_FEATURES=myGroupName);
;
; example:
; [myGroupName]        ; defines the group named myGroupName
; testfeature => ASTERISK-5    ; associates testfeature with the group and the keycode ASTERISK-5
; pauseMonitor         ; associates pauseMonitor with the group and the keycode
;                      ; defined in [applicationmap]

Comments:By: Tom Farnham (tomfarnham) 2009-08-12 11:29:46

I'm not certain of this issue anymore. There is definitely some wonkiness with parking calls via AMI, but I can't clearly define it at this moment.

I guess this should be closed then.

By: Leif Madsen (lmadsen) 2009-09-17 15:20:52

Closed per the reporter. If you have additional issues, the asterisk-users list may be more relevant to getting a resolution quicker. It seems to be this may be a configuration issue somewhere, but admittedly may be hard for you to find on your own.