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-0600 | Date Closed: | 2012-02-23 13:52:19.000-0600 |
Priority: | Minor | Regression? | No |
Status: | Closed/Complete | Components: | Features/Parking |
Versions: | SVN | Frequency of Occurrence | Constant |
Related Issues: | |||
Environment: | Asterisk 1.8.9 SVN. SIP blind transfer | Attachments: | |
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 |