[Home]

Summary:ASTERISK-19322: Polycom blind SIP transfer to park extension plays parking orbit number prompt to caller extension after transfer.
Reporter:David Brillert (aragon)Labels:
Date Opened:2012-02-09 12:44:54.000-0600Date Closed:2012-02-23 13:52:19.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Features/Parking
Versions:SVN Frequency of
Occurrence
Constant
Related
Issues:
Environment:Asterisk 1.8.9 SVN. SIP blind transferAttachments:
Description:I dial from Polycom IP650 ext 6002 to IP450 ext 6003.
6003 answers and presses transfer key then blind and dials 7000 (park extension).
There is some delay and then parking extension is played back to caller extension 6002.

The same things happens with Snom phones since I think they do a blind transfer whenever the transfer key is used before placing a call on hold.

Reproducible 100% of the time.

Since this is a blind transfer the parking extension audio should probably not be played back to either extension (suppressed).
Comments:By: David Brillert (aragon) 2012-02-09 12:45:38.264-0600

[2012-02-09 13:37:41]     -- Executing [6003@default-super:1] Set("SIP/6002-00000033", "LOCAL_EXTEN=6003") in new stack
[2012-02-09 13:37:41]     -- Executing [6003@default-super:2] Gosub("SIP/6002-00000033", "all-local-extension,s,1") in new stack
[2012-02-09 13:37:41]     -- Executing [s@all-local-extension:1] Set("SIP/6002-00000033", "__PICKUPMARK=6003") in new stack
[2012-02-09 13:37:41]     -- Executing [s@all-local-extension:2] GotoIf("SIP/6002-00000033", "0?4") in new stack
[2012-02-09 13:37:41]     -- Executing [s@all-local-extension:3] Set("SIP/6002-00000033", "GROUP(OUTGOING)=6002") in new stack
[2012-02-09 13:37:41]     -- Executing [s@all-local-extension:4] Set("SIP/6002-00000033", "OUTBOUND_GROUP_ONCE=6003@INCOMING") in new stack
[2012-02-09 13:37:41]     -- Executing [s@all-local-extension:5] GotoIf("SIP/6002-00000033", "1?8") in new stack
[2012-02-09 13:37:41]     -- Goto (all-local-extension,s,8)
[2012-02-09 13:37:41]     -- Executing [s@all-local-extension:8] Return("SIP/6002-00000033", "") in new stack
[2012-02-09 13:37:41]     -- Executing [6003@default-super:3] Set("SIP/6002-00000033", "SCOPSERV_DBPUT(default/wrapup/6002/lastcall)=1328812661.116") in new stack
[2012-02-09 13:37:41]     -- Executing [6003@default-super:4] Set("SIP/6002-00000033", "SCOPSERV_DBPUT(default/wrapup/6003/lastcall)=1328812661.116") in new stack
[2012-02-09 13:37:41]     -- Executing [6003@default-super:5] Set("SIP/6002-00000033", "__HANGUPSIDE=CALLER") in new stack
[2012-02-09 13:37:41]     -- Executing [6003@default-super:6] Macro("SIP/6002-00000033", "default-dial,SIP/6003,6003,default,20,en,u6003@default,tkKg,,g722,,Local/s@default-aa-operator-6003,disa") in new stack
[2012-02-09 13:37:41]     -- Executing [s@macro-default-dial:1] NoOp("SIP/6002-00000033", ""CALL TO LOCAL EXTENSION FROM 6002(Reception 6002)"") in new stack
[2012-02-09 13:37:41]     -- Executing [s@macro-default-dial:2] Set("SIP/6002-00000033", "__PICKUPMARK=6003") in new stack
[2012-02-09 13:37:41]     -- Executing [s@macro-default-dial:3] AGI("SIP/6002-00000033", "agi://127.0.0.1:4573/dial") in new stack
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG1' result is SIP/6003
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG2' result is 6003
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG3' result is default
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG4' result is 20
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG5' result is en
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG6' result is u6003@default
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG7' result is tkKg
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG8' result is
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG9' result is g722
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG10' result is
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG11' result is Local/s@default-aa-operator-6003
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'ARG12' result is disa
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'EXT_ACCODE' result is not defined!!!
[2012-02-09 13:37:41]   == Extension Changed 6002[default-local] new state InUse for Notify User 6002
[2012-02-09 13:37:41]   == Extension Changed 6002[default-local] new state InUse for Notify User 6010
[2012-02-09 13:37:41]   == Extension Changed 6002[default-local] new state InUse for Notify User 6001
[2012-02-09 13:37:41]   == Extension Changed 6002[default-local] new state InUse for Notify User 6333
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'MACRO_PRIORITY' result is 6
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'CALLBACK_ON_HANGUP' result is not defined!!!
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'CLID_BLOCK' result is not defined!!!
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'INCOMINGLINE' result is not defined!!!
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'MONITOR_OPTION' result is wWxX
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'AUTO_RECORDING' result is 6002
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'FORCE_RECORDING' result is not defined!!!
[2012-02-09 13:37:41]     -- AGI Script Executing Application: (MixMonitor) Options: (default-super_1328812661.116.WAV,b)
[2012-02-09 13:37:41]   == Begin MixMonitor Recording SIP/6002-00000033
[2012-02-09 13:37:41]  agi://127.0.0.1:4573/dial: Variable 'LIMIT_IN_DEFAULT_6003' result is not defined!!!
[2012-02-09 13:37:41]     -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
[2012-02-09 13:37:41]     -- AGI Script Executing Application: (Dial) Options: (SIP/6003,20,tkKgTF(all-hangup,s,1)wWxX,)
[2012-02-09 13:37:41]   == Using SIP RTP TOS bits 184
[2012-02-09 13:37:41]   == Using SIP RTP CoS mark 5
[2012-02-09 13:37:41]     -- Called SIP/6003
[2012-02-09 13:37:41]   == Extension Changed 6003[default-local] new state Ringing for Notify User 6010
[2012-02-09 13:37:41]   == Extension Changed 6003[default-local] new state Ringing for Notify User 6002
[2012-02-09 13:37:41]   == Extension Changed 6003[default-local] new state Ringing for Notify User 6001
[2012-02-09 13:37:41]   == Extension Changed 6003[default-local] new state Ringing for Notify User 6333
[2012-02-09 13:37:41]     -- SIP/6003-00000034 is ringing
[2012-02-09 13:37:42]     -- SIP/6003-00000034 answered SIP/6002-00000033
[2012-02-09 13:37:42]   == Extension Changed 6003[default-local] new state InUse for Notify User 6010
[2012-02-09 13:37:42]   == Extension Changed 6003[default-local] new state InUse for Notify User 6002
[2012-02-09 13:37:42]   == Extension Changed 6003[default-local] new state InUse for Notify User 6001
[2012-02-09 13:37:42]   == Extension Changed 6003[default-local] new state InUse for Notify User 6333
[2012-02-09 13:37:44]     -- Started music on hold, class 'g722', on SIP/6002-00000033
[2012-02-09 13:37:44]   == Extension Changed 6003[default-local] new state Hold for Notify User 6010
[2012-02-09 13:37:44]   == Extension Changed 6003[default-local] new state Hold for Notify User 6002
[2012-02-09 13:37:44]   == Extension Changed 6003[default-local] new state Hold for Notify User 6001
[2012-02-09 13:37:44]   == Extension Changed 6003[default-local] new state Hold for Notify User 6333
[2012-02-09 13:37:46]     -- Stopped music on hold on SIP/6002-00000033
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:1] Set("SIP/6003-00000034", "CDR(hangupside)=CALLER") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:2] Set("SIP/6003-00000034", "CDR(hangupcause)=16") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:3] Set("SIP/6003-00000034", "CDR(codec1)=g722") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:4] Set("SIP/6003-00000034", "CDR(codec2)=g722") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:5] Set("SIP/6003-00000034", "CDR(peerip)=192.168.30.150") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:6] Set("SIP/6003-00000034", "CDR(recvip)=192.168.30.150") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:7] Set("SIP/6003-00000034", "CDR(fromchan)=") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:8] Set("SIP/6003-00000034", "CDR(uri)=sip:6003@192.168.30.150:5060") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:9] Set("SIP/6003-00000034", "CDR(useragent)=PolycomSoundPointIP-SPIP_450-UA/3.2.6.0314") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:10] Set("SIP/6003-00000034", "CDR(llp)=0.000000") in new stack
[2012-02-09 13:37:46] NOTICE[2147]: chan_sip.c:20320 handle_response_notify: Got OK on REFER Notify message
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:11] Set("SIP/6003-00000034", "CDR(rlp)=0.000000") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:12] Set("SIP/6003-00000034", "CDR(ljitt)=0.001428") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:13] Set("SIP/6003-00000034", "CDR(rjitt)=0.000000") in new stack
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:14] GotoIf("SIP/6003-00000034", "0?all-faxnotify,s,1:15") in new stack
[2012-02-09 13:37:46]     -- Goto (all-hangup,s,15)
[2012-02-09 13:37:46]     -- Executing [s@all-hangup:15] ResetCDR("SIP/6003-00000034", "w") in new stack
[2012-02-09 13:37:46]   == Extension Changed 6003[default-local] new state Idle for Notify User 6010
[2012-02-09 13:37:46]   == Extension Changed 6003[default-local] new state Idle for Notify User 6002
[2012-02-09 13:37:46]   == Extension Changed 6003[default-local] new state Idle for Notify User 6001
[2012-02-09 13:37:46]   == Extension Changed 6003[default-local] new state Idle for Notify User 6333
[2012-02-09 13:37:48]  agi://127.0.0.1:4573/dial: Variable 'DIALSTATUS' result is GUP
[2012-02-09 13:37:48]  agi://127.0.0.1:4573/dial: 200 ANSWER
[2012-02-09 13:37:48]  agi://127.0.0.1:4573/dial: Variable 'HANGUPCAUSE' result is 16
[2012-02-09 13:37:48]     -- AGI Script Executing Application: (NoOp) Options: (DIALSTATUS:)
[2012-02-09 13:37:48]     -- AGI Script Executing Application: (NoOp) Options: (HANGUPCAUSE:)
[2012-02-09 13:37:50]     -- <SIP/6002-00000033>AGI Script agi://127.0.0.1:4573/dial completed, returning 4
[2012-02-09 13:37:50]   == Spawn extension (default-super, 7000, 1) exited non-zero on 'SIP/6002-00000033' in macro 'default-dial'
[2012-02-09 13:37:50]   == Spawn extension (default-super, 7000, 1) exited non-zero on 'SIP/6002-00000033'
[2012-02-09 13:37:50]     -- Executing [7000@default-super:1] Set("SIP/6002-00000033", "PARKINGLOT=parkinglot_default") in new stack
[2012-02-09 13:37:50]     -- Executing [7000@default-super:2] Park("SIP/6002-00000033", "") in new stack
[2012-02-09 13:37:50]   == Parked SIP/6002-00000033 on 7001 (lot parkinglot_default). Will timeout back to extension [default-super] s, 1 in 15 seconds
[2012-02-09 13:37:50]     -- Added extension '7001' priority 1 to parkedcalls_default
[2012-02-09 13:37:50]     -- <SIP/6002-00000033> Playing 'digits/7.g722' (language 'en')
[2012-02-09 13:37:50]   == Extension Changed 7001[default-local] new state InUse for Notify User 6002
[2012-02-09 13:37:50]   == Extension Changed 7001[default-local] new state InUse for Notify User 6007
[2012-02-09 13:37:50]   == Extension Changed 7001[default-local] new state InUse for Notify User 6006
[2012-02-09 13:37:50]   == Extension Changed 7001[default-local] new state InUse for Notify User 6001
[2012-02-09 13:37:50]   == Extension Changed 7001[default-local] new state InUse for Notify User 6333
[2012-02-09 13:37:50]     -- <SIP/6002-00000033> Playing 'digits/0.g722' (language 'en')
[2012-02-09 13:37:51]     -- <SIP/6002-00000033> Playing 'digits/0.g722' (language 'en')
[2012-02-09 13:37:52]     -- <SIP/6002-00000033> Playing 'digits/1.g722' (language 'en')
[2012-02-09 13:37:53]     -- Started music on hold, class 'g722', on SIP/6002-00000033
[2012-02-09 13:37:53]   == Spawn extension (default-super, s, 1) exited non-zero on 'Parked/SIP/6002-00000033<ZOMBIE>'


By: Richard Mudgett (rmudgett) 2012-02-09 19:14:41.178-0600

See reviewboard link for patch:
https://reviewboard.asterisk.org/r/1730/

By: Richard Mudgett (rmudgett) 2012-02-09 19:20:21.101-0600

You might want to look into using this option if you have multiple parking lots:

{noformat}
;parkext_exclusive=yes          ; Specify that the parkext created for this parking lot
                               ; will only access this parking lot. (default is no)
{noformat}

Also special parking lot functionality is available if the parking extension has Park as the first priority.  DTMF blind transfers are able to announce the parking spot.

By: David Brillert (aragon) 2012-02-10 08:08:29.760-0600

Hi Richard,

I tested parkext_exclusive=yes in features.conf general section.
Then tried some calls:
A call from 6002 to 6003 and if 6003 answers and does a SIP blind transfer the parking lot audio is suppressed.
However if 6002 calls to 6003 and 6003 answers and if 6002 does a SIP blind transfer then the parking lot audio is announced to 6003.
This is slightly better behavior then the reported problem but the audio still has a chance to get played back to the wrong extension.  Easily reproduced since both 6002 6003 are local extensions.
I'm looking forward to the reviewboard patch and if you cannot reproduce the problems after trying to duplicate the issue I am comfortable with you committing the patch and closing this ticket.

Here is my features.conf park info from these tests:

[general]
parkext         => 7000
parkext_exclusive=yes
parkpos         => 7001-7009
parkingtime     => 15
context         => parkedcalls
parkedcalltransfers =  both
parkedcallreparking =  both
parkedcallhangup =  both
parkedcallrecording =  both
courtesytone    => beep
transferdigittimeout => 3
atxfernoanswertimeout => 15
pickupexten     =  *71
featuredigittimeout =  1000


[parkinglot_default]
parkext         => 7000
parkpos         => 7001-7009
parkingtime     => 15
context         => parkedcalls_default

By: Richard Mudgett (rmudgett) 2012-02-10 09:48:11.962-0600

The parkext_exclusive option just sets the new Park parameter to the parking lot in the automatically generated parking access extensions.  See "core show application Park" output for details.

I also note in your trace that your dialplan park application did not have Park as the first priority.

The case where 6002 calls 6003 and then 6002 parks the call is fixed by the patch.

By: David Brillert (aragon) 2012-02-10 10:20:02.148-0600

Do you need me to test the review board patch or will you be committing when submitted and closing my ticket?

By: Richard Mudgett (rmudgett) 2012-02-10 10:50:23.791-0600

Testing is useful for further confirmation.
Your ticket will be closed when the reviewboard patch is submitted.


By: David Brillert (aragon) 2012-02-10 10:53:18.100-0600

Thanks as always.
I'll wait until SVN commit to test.

By: David Brillert (aragon) 2012-02-17 10:47:40.370-0600

Ping