[Home]

Summary:ASTERISK-13396: Revision 169154 One Touch Park cannot be more than once per call
Reporter:David Brillert (aragon)Labels:
Date Opened:2009-01-19 08:41:30.000-0600Date Closed:2009-01-30 18:04:25.000-0600
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Applications/app_parkandannounce
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) fix_feature_inheritence.diff.txt
( 1) ngreprepeatonetouchparkasterisk.txt
( 2) repeatonetouchparkasteriskcli.txt
Description:A calls B
B parks A with one touch park feature
Caller A is parked
B retrieves parked call and tries park again with one touch park feature
B cannot park this caller again

I recommend that otherwiseguy be assigned to this ticket since it was his revisions which fixed most parking issues in Asterisk 1.4 SVN.

Revision 168981 - Directory Listing
Modified Fri Jan 16 22:59:41 2009 UTC (19 hours, 25 minutes ago) by twilson

Merged revisions 168941 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r168941 | twilson | 2009-01-16 16:16:23 -0600 (Fri, 16 Jan 2009) | 19 lines

Merged revisions 168716 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r168716 | twilson | 2009-01-15 12:22:49 -0600 (Thu, 15 Jan 2009) | 12 lines
 
 Convert call to park_call_full to masq_park_call_announce
 
 Since we removed the AST_PBX_KEEPALIVE return value, we need to use masqueraded
 parking, otherwise we will try to call ast_hangup() in __pbx_run() and in
 do_parking_thread() and then promptly crash.
 (closes issue ASTERISK-13342)
    Reported by: waverly360  
    Tested by: otherwiseguy
 (closes issue ASTERISK-13355)
    Reported by: kobaz
    Tested by: otherwiseguy

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

I have enabled DTMF in logger.conf so it can be seen that phone is sending correct DTMF but Asterisk ignores the DTMF to activate one touch park.
*74 is used in this dial plan to activate one touch park.

one touch dtmf timing can get fickle in Asterisk if not using PFK

Here is the complete output from start to finish (sometimes I have to dial *74 many times to park success first call; second attempt never completes)

[Jan 18 15:03:30] NOTICE[25085]: chan_sip.c:16479 sip_poke_noanswer: Peer '230' is now UNREACHABLE! Last qualify: 0
 -- Executing [233@commzilla-super:1] GotoIf("SIP/222-08ad0648", "0?3") in new stack
 -- Executing [233@commzilla-super:2] Set("SIP/222-08ad0648", "GROUP(OUTGOING)=222") in new stack
 -- Executing [233@commzilla-super:3] Set("SIP/222-08ad0648", "OUTBOUND_GROUP_ONCE=233@INCOMING") in new stack
 -- Executing [233@commzilla-super:4] Set("SIP/222-08ad0648", "GROUPCOUNT=0") in new stack
 -- Executing [233@commzilla-super:5] Set("SIP/222-08ad0648", "GROUPCOUNT2=0") in new stack
 -- Executing [233@commzilla-super:6] Set("SIP/222-08ad0648", "DB(commzilla/wrapup/233/lastcall)=1232309028.0") in new stack
 -- Executing [233@commzilla-super:7] Macro("SIP/222-08ad0648", "commzilla-dial|SIP/233|233|commzilla|40|en||tkKM(all-tapi^1232309028.0)||default|||vm") in new stack
 -- Executing [s@macro-commzilla-dial:1] NoOp("SIP/222-08ad0648", ""CALL TO LOCAL EXTENSION FROM 222(WiFi)"") in new stack
 -- Executing [s@macro-commzilla-dial:2] UserEvent("SIP/222-08ad0648", "TAPI|TAPIEVENT: LINE_NEWCALL commzilla") in new stack
 -- Executing [s@macro-commzilla-dial:3] UserEvent("SIP/222-08ad0648", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_OFFERING") in new stack
 -- Executing [s@macro-commzilla-dial:4] UserEvent("SIP/222-08ad0648", "TAPI|TAPIEVENT: SET CALLERID ") in new stack
 -- Executing [s@macro-commzilla-dial:5] UserEvent("SIP/222-08ad0648", "TAPI|TAPIEVENT: LINE_CALLINFO LINECALLINFOSTATE_CALLERID") in new stack
 -- Executing [s@macro-commzilla-dial:6] AGI("SIP/222-08ad0648", "/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
 -- Launched AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
== /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension '233' to extension map.
 -- AGI Script Executing Application: (SetMusicOnHold) Options: (default)
 -- AGI Script Executing Application: (MixMonitor) Options: (222_1232309028.0.WAV|b)
== Parsing '/etc/asterisk/manager.conf': Found
== Begin MixMonitor Recording SIP/222-08ad0648
== /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '233' is '0'.
 -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
== /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
== /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
== /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '222'
== /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/233/CallTrace to 222
== /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/233|40|tkKM(all-tapi^1232309028.0)T|.
 -- AGI Script Executing Application: (Dial) Options: (SIP/233|40|tkKM(all-tapi^1232309028.0)T|)
 -- Called 233
 -- SIP/233-08cc31b8 is ringing
 -- SIP/233-08cc31b8 is ringing
 -- SIP/233-08cc31b8 answered SIP/222-08ad0648
 -- Executing [s@macro-all-tapi:1] UserEvent("SIP/233-08cc31b8", "TAPI|TAPIEVENT [~1232309028.0] LINE_CALLSTATE LINECALLSTATE_CONNECTED") in new stack
 -- Registered IAX2 'commzilla' (AUTHENTICATED) at 216.235.8.130:49215
[Jan 18 15:03:53] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08cc31b8, duration 140 ms
[Jan 18 15:03:53] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2264 __ast_read: DTMF end passthrough '*' on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:03:53] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2257 __ast_read: DTMF end '7' has duration 60 but want minimum 80, emulating on SIP/233-08cc31b8
[Jan 18 15:03:53] DTMF[25420]: channel.c:2312 __ast_read: DTMF end emulation of '7' queued on SIP/233-08cc31b8
[Jan 18 15:03:54] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '4' received on SIP/233-08cc31b8
[Jan 18 15:03:54] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '4' on SIP/233-08cc31b8
[Jan 18 15:03:54] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:03:54] DTMF[25435]: channel.c:2248 __ast_read: DTMF end accepted with begin '4' on SIP/233-08cc31b8
[Jan 18 15:03:54] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08cc31b8
[Jan 18 15:03:54] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:03:54] DTMF[25420]: channel.c:2237 __ast_read: DTMF begin emulation of '4' with duration 80 queued on SIP/233-08cc31b8
[Jan 18 15:03:54] DTMF[25420]: channel.c:2349 __ast_read: DTMF end emulation of '4' queued on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:04:02] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2257 __ast_read: DTMF end '*' has duration 60 but want minimum 80, emulating on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2312 __ast_read: DTMF end emulation of '*' queued on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08cc31b8
[Jan 18 15:04:02] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:03] DTMF[25435]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '7' on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25435]: channel.c:2279 __ast_read: DTMF begin '4' received on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25435]: channel.c:2283 __ast_read: DTMF begin ignored '4' on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:04:03] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:03] DTMF[25420]: channel.c:2237 __ast_read: DTMF begin emulation of '7' with duration 80 queued on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25420]: channel.c:2312 __ast_read: DTMF end emulation of '7' queued on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:03] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:03] DTMF[25420]: channel.c:2237 __ast_read: DTMF begin emulation of '4' with duration 80 queued on SIP/233-08cc31b8
[Jan 18 15:04:03] DTMF[25420]: channel.c:2349 __ast_read: DTMF end emulation of '4' queued on SIP/233-08cc31b8
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager.conf': Found
== Parsing '/etc/asterisk/manager.conf': Found
[Jan 18 15:04:09] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:04:09] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2257 __ast_read: DTMF end '*' has duration 60 but want minimum 80, emulating on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2312 __ast_read: DTMF end emulation of '*' queued on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:09] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2264 __ast_read: DTMF end passthrough '7' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '2' received on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '2' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '2' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:04:09] DTMF[25435]: channel.c:2248 __ast_read: DTMF end accepted with begin '2' on SIP/233-08cc31b8
[Jan 18 15:04:09] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '2' on SIP/233-08cc31b8
[Jan 18 15:04:10] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '2' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:10] DTMF[25420]: channel.c:2237 __ast_read: DTMF begin emulation of '2' with duration 80 queued on SIP/233-08cc31b8
[Jan 18 15:04:10] DTMF[25420]: channel.c:2349 __ast_read: DTMF end emulation of '2' queued on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08cc31b8, duration 80 ms
[Jan 18 15:04:15] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2264 __ast_read: DTMF end passthrough '*' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08cc31b8, duration 60 ms
[Jan 18 15:04:15] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2257 __ast_read: DTMF end '7' has duration 60 but want minimum 80, emulating on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2312 __ast_read: DTMF end emulation of '7' queued on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2279 __ast_read: DTMF begin '4' received on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2289 __ast_read: DTMF begin passthrough '4' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08cc31b8, duration 140 ms
[Jan 18 15:04:15] DTMF[25420]: channel.c:2248 __ast_read: DTMF end accepted with begin '4' on SIP/233-08cc31b8
[Jan 18 15:04:15] DTMF[25420]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08cc31b8
 -- Started music on hold, class 'default', on SIP/222-08ad0648
== Parked SIP/222-08ad0648 on 701@parkedcalls. Will timeout back to extension [macro-commzilla-dial] s, 6 in 45 seconds
 -- Added extension '701' priority 1 to parkedcalls
 -- <SIP/233-08cc31b8> Playing 'digits/7' (language 'en')
 -- <SIP/233-08cc31b8> Playing 'digits/0' (language 'en')
 -- <SIP/233-08cc31b8> Playing 'digits/1' (language 'en')
 -- Executing [h@macro-commzilla-dial:1] ResetCDR("Parked/SIP/222-08ad0648<ZOMBIE>", "w") in new stack
 -- Executing [h@macro-commzilla-dial:2] NoCDR("Parked/SIP/222-08ad0648<ZOMBIE>", "") in new stack
 -- Executing [h@macro-commzilla-dial:3] UserEvent("Parked/SIP/222-08ad0648<ZOMBIE>", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_IDLE") in new stack
 -- Executing [h@macro-commzilla-dial:4] System("Parked/SIP/222-08ad0648<ZOMBIE>", "�[1;  35;40m/var/www/scopserv/telephony/scripts/billing/cdr.sh 1232309028.0") in new stack
 -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php completed, returning 0
== End MixMonitor Recording SIP/222-08ad0648
 -- Executing [701@commzilla-super:1] ParkedCall("SIP/233-08ae59e8", "701") in new stack
 -- Stopped music on hold on SIP/222-08ad0648
 -- Channel SIP/233-08ae59e8 connected to parked call 701
[Jan 18 15:04:27] DTMF[26032]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:27] DTMF[26032]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2264 __ast_read: DTMF end passthrough '*' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:27] DTMF[26032]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[26032]: channel.c:2264 __ast_read: DTMF end passthrough '7' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[25435]: channel.c:2279 __ast_read: DTMF begin '4' received on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[25435]: channel.c:2283 __ast_read: DTMF begin ignored '4' on SIP/233-08ae59e8
[Jan 18 15:04:27] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:27] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08ae59e8
[Jan 18 15:04:28] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:28] DTMF[26032]: channel.c:2237 __ast_read: DTMF begin emulation of '4' with duration 80 queued on SIP/233-08ae59e8
[Jan 18 15:04:28] DTMF[26032]: channel.c:2349 __ast_read: DTMF end emulation of '4' queued on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:34] DTMF[26032]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2264 __ast_read: DTMF end passthrough '*' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:34] DTMF[26032]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2264 __ast_read: DTMF end passthrough '7' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[25435]: channel.c:2279 __ast_read: DTMF begin '4' received on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[25435]: channel.c:2283 __ast_read: DTMF begin ignored '4' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08ae59e8, duration 60 ms
[Jan 18 15:04:34] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08ae59e8
[Jan 18 15:04:34] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08ae59e8, duration 80 ms
[Jan 18 15:04:34] DTMF[26032]: channel.c:2237 __ast_read: DTMF begin emulation of '4' with duration 80 queued on SIP/233-08ae59e8
[Jan 18 15:04:35] DTMF[26032]: channel.c:2349 __ast_read: DTMF end emulation of '4' queued on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2279 __ast_read: DTMF begin '*' received on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2289 __ast_read: DTMF begin passthrough '*' on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '*' received on SIP/233-08ae59e8, duration 60 ms
[Jan 18 15:04:39] DTMF[26032]: channel.c:2248 __ast_read: DTMF end accepted with begin '*' on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2257 __ast_read: DTMF end '*' has duration 60 but want minimum 80, emulating on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2312 __ast_read: DTMF end emulation of '*' queued on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2279 __ast_read: DTMF begin '7' received on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2289 __ast_read: DTMF begin passthrough '7' on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '7' received on SIP/233-08ae59e8, duration 60 ms
[Jan 18 15:04:39] DTMF[26032]: channel.c:2248 __ast_read: DTMF end accepted with begin '7' on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2257 __ast_read: DTMF end '7' has duration 60 but want minimum 80, emulating on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2312 __ast_read: DTMF end emulation of '7' queued on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[25435]: channel.c:2279 __ast_read: DTMF begin '4' received on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[25435]: channel.c:2283 __ast_read: DTMF begin ignored '4' on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[25435]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08ae59e8, duration 140 ms
[Jan 18 15:04:39] DTMF[25435]: channel.c:2264 __ast_read: DTMF end passthrough '4' on SIP/233-08ae59e8
[Jan 18 15:04:39] DTMF[26032]: channel.c:2211 __ast_read: DTMF end '4' received on SIP/233-08ae59e8, duration 140 ms
[Jan 18 15:04:39] DTMF[26032]: channel.c:2237 __ast_read: DTMF begin emulation of '4' with duration 140 queued on SIP/233-08ae59e8
[Jan 18 15:04:40] DTMF[26032]: channel.c:2349 __ast_read: DTMF end emulation of '4' queued on SIP/233-08ae59e8
== Spawn extension (commzilla-super, 701, 1) exited non-zero on 'SIP/233-08ae59e8'


Comments:By: David Brillert (aragon) 2009-01-22 15:28:42.000-0600

It didn't seem helpful to post a failure on one touch park with only asterisk cli output.

I have uploaded a fresh set of asterisk cli and an ngrep SIP trace.
Pure SIP environment
The call sequence is 6010 dials 6002
6002 dials # 72 to one touch park to extension 7001
call is parked
6002 dials 7001 to retrieve parked call and success
6002 dial # 72 again to park caller 6010 again only this time the call is not parked and there is no sign of failure in Asterisk CLI.
Hopefully the ngrep trace will show the cause.

Testing was done on Asterisk 1.4.23 official release



By: Terry Wilson (twilson) 2009-01-22 15:34:57.000-0600

I'm working on this and understand the issue, it is just going to take a bit of time to fix correctly.  Basically, there is no way to fix it within the current structure of doing call-based feature permissions.  When I'm done there will probably be a global option for all bridge features like the parkedtransfers feature in features.conf, as well as a dialplan variable that can be added to channel config files via the setvar option that will allow features to be controlled per-device (in addition to the setting of features via Dial()).  The problem with call pickup is that it doesn't involve a dial(), so no features are set and we can't just inherit what the original parker had, because it is being picked up by a completely different channel.

In addition to this, I've found several cases where features are being incorrectly inherited/lost when a parking timeout occurs.  Hopefully, in the next day or two I can get a fix for all (or at least most) of the cases.

By: Terry Wilson (twilson) 2009-01-28 17:06:47.000-0600

aragon: Ok, I have attached fix_feature_inheritence.diff.txt which should fix this and a host of other problems I came across with feature inheritance in both parking and builtin attended transfers.  To solve the specific problem that you are experiencing there are now two ways to solve this.

First, there is now a global option in features.conf similar to the parkedcalltransfers option for transfers for all builtin features (parkedcallparking, parkedcallhangup, and parkedcallrecording) that will give permissions to the Pickup() caller for that particular feature.  You can see the options for them in the features.conf.sample after applying the patch.  2) You can also now set the BRIDGE_FEATURES dialplan variable (most likely via the setvar option in sip.conf, etc.) with any combination of 'T', 'K', 'W', and 'H' (which match the dial options--for transfer, park, monitor, and hangup) which will give those features to the channel the variable is set on.  For example in sip.conf:
[phone]
type=friend
host=dyanmic
secret=1234
context=default
setvar=BRIDGE_FEATURES=tk

would give SIP/phone the ability to transfer or one-touch park (if those features are defined in features.conf) for the life of that channel, regardless of whether or not Dial() is used; if Pickup() is called via a parked call, for example.

There are quite a few code changes as far as feature inheritance is concerned, so if you could thoroughly test things, I'd appreciate it!

By: David Brillert (aragon) 2009-01-28 18:18:30.000-0600

Doh

I cannot test on 1.6
I guess you consider this a new feature and wont plan to commit to 1.4 ?

By: Terry Wilson (twilson) 2009-01-28 18:21:55.000-0600

No, this is an actual bug in 1.4 and was reported as such, so the patch is against 1.4.  If the patch checks out, then I will go through the trouble of merging to to trunk and 1.6.x

By: David Brillert (aragon) 2009-01-28 18:24:12.000-0600

OK

I will give this a good testing

Hopefully tomorrow afternoon after some morning meetings; but if not then probably Friday

By: David Brillert (aragon) 2009-01-28 18:33:40.000-0600

otherwiseguy:

Do you think this patch will also solve my other bug?
http://bugs.digium.com/view.php?id=14356

By: David Brillert (aragon) 2009-01-28 19:53:51.000-0600

otherwiseguy:
I was able to test this much earlier than expected ;)

Firstly my other ticket 14356 is definitely related to this ticket since most behavior is fixed by your patch.

One touch parking definitely appears to be fixed and I don't think you introduced any new issues to attended or blind or SIP transfers to park extension.

I found some minor issues:

1. Problem is when I do native asterisk blind transfer and call returns to original ext and I try to re-transfer the call using attended native transfer
The attended transfer will fail when transferred to the same extension

To reproduce this you need 3 phones:
I'll include the cli from this reproduction.
I initiate a call from sip 222 to 233
233 native blind transfers to ext 220
220 has a call forward no answer rule to dest 233
220 ignores call and call forwards back to 233
233 answers and then does an attended native transfer to 220
Asterisk returns error "invalid extension"

CLI

Extension Changed 222[commzilla-local] new state InUse for Notify User 300
   -- Executing [233@commzilla-super:1] GotoIf("SIP/222-094a5780", "0?3") in new stack
   -- Executing [233@commzilla-super:2] Set("SIP/222-094a5780", "GROUP(OUTGOING)=222") in new stack
   -- Executing [233@commzilla-super:3] Set("SIP/222-094a5780", "OUTBOUND_GROUP_ONCE=233@INCOMING") in new stack
   -- Executing [233@commzilla-super:4] Set("SIP/222-094a5780", "GROUPCOUNT=0") in new stack
   -- Executing [233@commzilla-super:5] Set("SIP/222-094a5780", "GROUPCOUNT2=0") in new stack
   -- Executing [233@commzilla-super:6] Set("SIP/222-094a5780", "DB(commzilla/wrapup/233/lastcall)=1233193857.52") in new stack
   -- Executing [233@commzilla-super:7] Macro("SIP/222-094a5780", "commzilla-dial|SIP/233|233|commzilla|40|en||tkKM(all-tapi^1233193857.52)||default|||vm") in new stack
   -- Executing [s@macro-commzilla-dial:1] NoOp("SIP/222-094a5780", ""CALL TO LOCAL EXTENSION FROM 222(WiFi)"") in new stack
   -- Executing [s@macro-commzilla-dial:2] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_NEWCALL commzilla") in new stack
   -- Executing [s@macro-commzilla-dial:3] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_OFFERING") in new stack
   -- Executing [s@macro-commzilla-dial:4] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: SET CALLERID ") in new stack
   -- Executing [s@macro-commzilla-dial:5] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_CALLINFO LINECALLINFOSTATE_CALLERID") in new stack
   -- Executing [s@macro-commzilla-dial:6] AGI("SIP/222-094a5780", "/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
   -- Launched AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension '233' to extension map.
   -- AGI Script Executing Application: (SetMusicOnHold) Options: (default)
   -- AGI Script Executing Application: (MixMonitor) Options: (222_1233193857.52.WAV|b)
 == Begin MixMonitor Recording SIP/222-094a5780
 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '233' is '0'.
   -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '222'
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/233/CallTrace to 222
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/233|40|tkKM(all-tapi^1233193857.52)T|.
   -- AGI Script Executing Application: (Dial) Options: (SIP/233|40|tkKM(all-tapi^1233193857.52)T|)
Extension Changed 233[commzilla-local] new state Ringing for Notify User 300
   -- Called 233
   -- SIP/233-094a97f0 is ringing
   -- SIP/233-094a97f0 is ringing
Extension Changed 233[commzilla-local] new state InUse for Notify User 300
   -- SIP/233-094a97f0 answered SIP/222-094a5780
   -- Executing [s@macro-all-tapi:1] UserEvent("SIP/233-094a97f0", "TAPI|TAPIEVENT [~1233193857.52] LINE_CALLSTATE LINECALLSTATE_CONNECTED") in new stack
   -- Started music on hold, class 'default', on SIP/222-094a5780
   -- <SIP/233-094a97f0> Playing 'pbx-transfer' (language 'en')
   -- Stopped music on hold on SIP/222-094a5780
Extension Changed 233[commzilla-local] new state Idle for Notify User 300
   -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php completed, returning 0
 == Channel 'SIP/222-094a5780' jumping out of macro 'commzilla-dial'
   -- Executing [220@commzilla-super:1] GotoIf("SIP/222-094a5780", "0?3") in new stack
   -- Executing [220@commzilla-super:2] Set("SIP/222-094a5780", "GROUP(OUTGOING)=222") in new stack
   -- Executing [220@commzilla-super:3] Set("SIP/222-094a5780", "OUTBOUND_GROUP_ONCE=220@INCOMING") in new stack
   -- Executing [220@commzilla-super:4] Set("SIP/222-094a5780", "DB(commzilla/wrapup/220/lastcall)=1233193857.52") in new stack
   -- Executing [220@commzilla-super:5] Macro("SIP/222-094a5780", "commzilla-dial|SIP/220|220|commzilla|20|en||tkKM(all-tapi^1233193857.52)||default|||vm") in new stack
   -- Executing [s@macro-commzilla-dial:1] NoOp("SIP/222-094a5780", ""CALL TO LOCAL EXTENSION FROM 222(WiFi)"") in new stack
   -- Executing [s@macro-commzilla-dial:2] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_NEWCALL commzilla") in new stack
   -- Executing [s@macro-commzilla-dial:3] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_OFFERING") in new stack
   -- Executing [s@macro-commzilla-dial:4] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: SET CALLERID ") in new stack
   -- Executing [s@macro-commzilla-dial:5] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_CALLINFO LINECALLINFOSTATE_CALLERID") in new stack
   -- Executing [s@macro-commzilla-dial:6] AGI("SIP/222-094a5780", "/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
   -- Launched AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension '220' to extension map.
   -- AGI Script Executing Application: (SetMusicOnHold) Options: (default)
   -- AGI Script Executing Application: (MixMonitor) Options: (222_1233193857.52.WAV|b)
 == Begin MixMonitor Recording SIP/222-094a5780
 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '220' is '0'.
   -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '222'
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/220/CallTrace to 222
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/220|20|tkKM(all-tapi^1233193857.52)T|.
   -- AGI Script Executing Application: (Dial) Options: (SIP/220|20|tkKM(all-tapi^1233193857.52)T|)
Extension Changed 220[commzilla-local] new state Ringing for Notify User 230
Extension Changed 220[commzilla-local] new state Ringing for Notify User 233
   -- Called 220
   -- SIP/220-094aae30 is ringing
 == Parsing '/etc/asterisk/manager.conf': Found
 == Parsing '/etc/asterisk/manager.conf': Found
 == Parsing '/etc/asterisk/manager.conf': Found
   -- Nobody picked up in 20000 ms
Extension Changed 220[commzilla-local] new state Idle for Notify User 230 (queued)
Extension Changed 220[commzilla-local] new state Idle for Notify User 233
 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '220' is '0'.
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action forward


 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension Hint for '233' is 'SIP/233'.
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '222'
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/220/CallTrace to 222
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/233|20|tkKM(all-tapi^1233193857.52)T|.
   -- AGI Script Executing Application: (Dial) Options: (SIP/233|20|tkKM(all-tapi^1233193857.52)T|)
   -- Called 233
Extension Changed 233[commzilla-local] new state Ringing for Notify User 300
   -- SIP/233-092a9b40 is ringing
   -- SIP/233-092a9b40 is ringing
Extension Changed 233[commzilla-local] new state InUse for Notify User 300
   -- SIP/233-092a9b40 answered SIP/222-094a5780
   -- Executing [s@macro-all-tapi:1] UserEvent("SIP/233-092a9b40", "TAPI|TAPIEVENT [~1233193857.52] LINE_CALLSTATE LINECALLSTATE_CONNECTED") in new stack
   -- Started music on hold, class 'default', on SIP/222-094a5780
   -- <SIP/233-092a9b40> Playing 'pbx-transfer' (language 'en')
   -- Executing [220@commzilla-super:1] GotoIf("Local/220@commzilla-super-a906,2", "0?3") in new stack
   -- Executing [220@commzilla-super:2] Set("Local/220@commzilla-super-a906,2", "GROUP(OUTGOING)=220") in new stack
   -- Executing [220@commzilla-super:3] Set("Local/220@commzilla-super-a906,2", "OUTBOUND_GROUP_ONCE=220@INCOMING") in new stack
   -- Executing [220@commzilla-super:4] Set("Local/220@commzilla-super-a906,2", "DB(commzilla/wrapup/220/lastcall)=1233193891.57") in new stack
   -- Executing [220@commzilla-super:5] Macro("Local/220@commzilla-super-a906,2", "commzilla-dial|SIP/220|220|commzilla|20|en||tkKM(all-tapi^1233193891.57)||default|||vm") in new stack
   -- Executing [s@macro-commzilla-dial:1] NoOp("Local/220@commzilla-super-a906,2", ""CALL TO LOCAL EXTENSION FROM 220()"") in new stack
   -- Executing [s@macro-commzilla-dial:2] UserEvent("Local/220@commzilla-super-a906,2", "TAPI|TAPIEVENT: LINE_NEWCALL commzilla") in new stack
   -- Executing [s@macro-commzilla-dial:3] UserEvent("Local/220@commzilla-super-a906,2", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_OFFERING") in new stack
   -- Executing [s@macro-commzilla-dial:4] UserEvent("Local/220@commzilla-super-a906,2", "TAPI|TAPIEVENT: SET CALLERID ") in new stack
   -- Executing [s@macro-commzilla-dial:5] UserEvent("Local/220@commzilla-super-a906,2", "TAPI|TAPIEVENT: LINE_CALLINFO LINECALLINFOSTATE_CALLERID") in new stack
   -- Executing [s@macro-commzilla-dial:6] AGI("Local/220@commzilla-super-a906,2", "/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
   -- Launched AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension '220' to extension map.
   -- AGI Script Executing Application: (SetMusicOnHold) Options: (default)
   -- AGI Script Executing Application: (MixMonitor) Options: (1233193891.57.WAV|b)
 == Begin MixMonitor Recording Local/220@commzilla-super-a906,2
 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '220' is '0'.
   -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '220'
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/220/CallTrace to 220
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/220|20|tkKM(all-tapi^1233193891.57)T|.
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Possible Loop detected! Going to voicemail
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action voicemail
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action busy
   -- AGI Script Executing Application: (Playtones) Options: (busy)
[Jan 28 20:51:31] WARNING[20348]: translate.c:175 framein: no samples for ulawtolin
   -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php completed, returning 0
   -- Executing [220@commzilla-super:6] GotoIf("Local/220@commzilla-super-a906,2", "0?7:8") in new stack
   -- Goto (commzilla-super,220,8)
   -- Timeout on Local/220@commzilla-super-a906,2
 == CDR updated on Local/220@commzilla-super-a906,2
   -- Executing [t@commzilla-super:1] Hangup("Local/220@commzilla-super-a906,2", "") in new stack
 == Spawn extension (commzilla-super, t, 1) exited non-zero on 'Local/220@commzilla-super-a906,2'
   -- Stopped music on hold on SIP/222-094a5780
   -- <SIP/233-092a9b40> Playing 'pbx-invalid' (language 'en')
 == End MixMonitor Recording Local/220@commzilla-super-a906,2
   -- Executing [h@macro-commzilla-dial:1] ResetCDR("SIP/222-094a5780", "w") in new stack
   -- Executing [h@macro-commzilla-dial:2] NoCDR("SIP/222-094a5780", "") in new stack
   -- Executing [h@macro-commzilla-dial:3] UserEvent("SIP/222-094a5780", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_IDLE") in new stack
   -- Executing [h@macro-commzilla-dial:4] System("SIP/222-094a5780", "/var/www/scopserv/telephony/scripts/billing/cdr.sh 1233193857.52") in new stack
Extension Changed 233[commzilla-local] new state Idle for Notify User 300
   -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php completed, returning 0
   -- Executing [220@commzilla-super:6] GotoIf("SIP/222-094a5780", "1?7:8") in new stack
   -- Goto (commzilla-super,220,7)
   -- Executing [220@commzilla-super:7] Hangup("SIP/222-094a5780", "") in new stack
 == Spawn extension (commzilla-super, 220, 7) exited non-zero on 'SIP/222-094a5780'
 == End MixMonitor Recording SIP/222-094a5780
 == End MixMonitor Recording SIP/222-094a5780
Extension Changed 222[commzilla-local] new state Idle for Notify User 300
sip*CLI>
Disconnected from Asterisk server
Executing last minute cleanups




2. Attended native transfer returns the call after forward no answer to original extension but the original set is immediately bridged/auto answer (phone does not ring first).

To reproduce this
I initiate a call from sip 222 to 233
233 native attended transfers to ext 220
220 has a call forward no answer rule to dest 233
220 ignores call and call forwards back to 233
233 is bridged to 222 without first a callback

CLI

[Jan 28 21:12:18] NOTICE[1204]: chan_sip.c:12857 handle_response_peerpoke: Peer '222' is now Reachable. (29ms / 2000ms)
Extension Changed 222[commzilla-local] new state Idle for Notify User 300
Extension Changed 222[commzilla-local] new state InUse for Notify User 300
   -- Executing [233@commzilla-super:1] GotoIf("SIP/222-094b09b8", "0?3") in new stack
   -- Executing [233@commzilla-super:2] Set("SIP/222-094b09b8", "GROUP(OUTGOING)=222") in new stack
   -- Executing [233@commzilla-super:3] Set("SIP/222-094b09b8", "OUTBOUND_GROUP_ONCE=233@INCOMING") in new stack
   -- Executing [233@commzilla-super:4] Set("SIP/222-094b09b8", "GROUPCOUNT=0") in new stack
   -- Executing [233@commzilla-super:5] Set("SIP/222-094b09b8", "GROUPCOUNT2=0") in new stack
   -- Executing [233@commzilla-super:6] Set("SIP/222-094b09b8", "DB(commzilla/wrapup/233/lastcall)=1233195139.68") in new stack
   -- Executing [233@commzilla-super:7] Macro("SIP/222-094b09b8", "commzilla-dial|SIP/233|233|commzilla|40|en||tkKM(all-tapi^1233195139.68)||default|||vm") in new stack
   -- Executing [s@macro-commzilla-dial:1] NoOp("SIP/222-094b09b8", ""CALL TO LOCAL EXTENSION FROM 222(WiFi)"") in new stack
   -- Executing [s@macro-commzilla-dial:2] UserEvent("SIP/222-094b09b8", "TAPI|TAPIEVENT: LINE_NEWCALL commzilla") in new stack
   -- Executing [s@macro-commzilla-dial:3] UserEvent("SIP/222-094b09b8", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_OFFERING") in new stack
   -- Executing [s@macro-commzilla-dial:4] UserEvent("SIP/222-094b09b8", "TAPI|TAPIEVENT: SET CALLERID ") in new stack
   -- Executing [s@macro-commzilla-dial:5] UserEvent("SIP/222-094b09b8", "TAPI|TAPIEVENT: LINE_CALLINFO LINECALLINFOSTATE_CALLERID") in new stack
   -- Executing [s@macro-commzilla-dial:6] AGI("SIP/222-094b09b8", "/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
   -- Launched AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension '233' to extension map.
   -- AGI Script Executing Application: (SetMusicOnHold) Options: (default)
   -- AGI Script Executing Application: (MixMonitor) Options: (222_1233195139.68.WAV|b)
 == Begin MixMonitor Recording SIP/222-094b09b8
 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '233' is '0'.
   -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '222'
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/233/CallTrace to 222
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/233|40|tkKM(all-tapi^1233195139.68)T|.
   -- AGI Script Executing Application: (Dial) Options: (SIP/233|40|tkKM(all-tapi^1233195139.68)T|)
Extension Changed 233[commzilla-local] new state Ringing for Notify User 300
   -- Called 233
   -- SIP/233-094b9a48 is ringing
   -- SIP/233-094b9a48 is ringing
   -- SIP/233-094b9a48 is ringing
Extension Changed 233[commzilla-local] new state InUse for Notify User 300
   -- SIP/233-094b9a48 answered SIP/222-094b09b8
   -- Executing [s@macro-all-tapi:1] UserEvent("SIP/233-094b9a48", "TAPI|TAPIEVENT [~1233195139.68] LINE_CALLSTATE LINECALLSTATE_CONNECTED") in new stack
   -- Started music on hold, class 'default', on SIP/222-094b09b8
   -- <SIP/233-094b9a48> Playing 'pbx-transfer' (language 'en')
   -- Executing [220@commzilla-super:1] GotoIf("Local/220@commzilla-super-eb0e,2", "0?3") in new stack
   -- Executing [220@commzilla-super:2] Set("Local/220@commzilla-super-eb0e,2", "GROUP(OUTGOING)=233") in new stack
   -- Executing [220@commzilla-super:3] Set("Local/220@commzilla-super-eb0e,2", "OUTBOUND_GROUP_ONCE=220@INCOMING") in new stack
   -- Executing [220@commzilla-super:4] Set("Local/220@commzilla-super-eb0e,2", "DB(commzilla/wrapup/220/lastcall)=1233195145.71") in new stack
   -- Executing [220@commzilla-super:5] Macro("Local/220@commzilla-super-eb0e,2", "commzilla-dial|SIP/220|220|commzilla|20|en||tkKM(all-tapi^1233195145.71)||default|||vm") in new stack
   -- Executing [s@macro-commzilla-dial:1] NoOp("Local/220@commzilla-super-eb0e,2", ""CALL TO LOCAL EXTENSION FROM 233()"") in new stack
   -- Executing [s@macro-commzilla-dial:2] UserEvent("Local/220@commzilla-super-eb0e,2", "TAPI|TAPIEVENT: LINE_NEWCALL commzilla") in new stack
   -- Executing [s@macro-commzilla-dial:3] UserEvent("Local/220@commzilla-super-eb0e,2", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_OFFERING") in new stack
   -- Executing [s@macro-commzilla-dial:4] UserEvent("Local/220@commzilla-super-eb0e,2", "TAPI|TAPIEVENT: SET CALLERID ") in new stack
   -- Executing [s@macro-commzilla-dial:5] UserEvent("Local/220@commzilla-super-eb0e,2", "TAPI|TAPIEVENT: LINE_CALLINFO LINECALLINFOSTATE_CALLERID") in new stack
   -- Executing [s@macro-commzilla-dial:6] AGI("Local/220@commzilla-super-eb0e,2", "/var/www/scopserv/telephony/scripts/agi/dial.php") in new stack
   -- Launched AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Added extension '220' to extension map.
   -- AGI Script Executing Application: (SetMusicOnHold) Options: (default)
   -- AGI Script Executing Application: (MixMonitor) Options: (1233195145.71.WAV|b)
 == Begin MixMonitor Recording Local/220@commzilla-super-eb0e,2
 == Parsing '/etc/asterisk/manager.conf': Found
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Extension State for '220' is '0'.
   -- AGI Script Executing Application: (NoOp) Options: (STATUS:)
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: -------------------------------------------------------------------------------
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Doing the action dial
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Caller ID number is '233'
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: DbSet commzilla/220/CallTrace to 233
 ==  /var/www/scopserv/telephony/scripts/agi/dial.php: Dial string is SIP/220|20|tkKM(all-tapi^1233195145.71)T|.
   -- AGI Script Executing Application: (Dial) Options: (SIP/220|20|tkKM(all-tapi^1233195145.71)T|)
   -- Called 220
Extension Changed 220[commzilla-local] new state Ringing for Notify User 230
Extension Changed 220[commzilla-local] new state Ringing for Notify User 233
   -- SIP/220-094ce070 is ringing
   -- Local/220@commzilla-super-eb0e,1 is ringing
[Jan 28 21:12:40] NOTICE[6005]: res_features.c:1311 ast_feature_request_and_dial: We exceeded our AT-timeout
   -- Stopped music on hold on SIP/222-094b09b8
 == Spawn extension (macro-commzilla-dial, s, 6) exited non-zero on 'Local/220@commzilla-super-eb0e,2' in macro 'commzilla-dial'
 == Spawn extension (commzilla-super, 220, 5) exited non-zero on 'Local/220@commzilla-super-eb0e,2'
Extension Changed 220[commzilla-local] new state Idle for Notify User 230 (queued)
Extension Changed 220[commzilla-local] new state Idle for Notify User 233
 == End MixMonitor Recording Local/220@commzilla-super-eb0e,2
   -- Executing [h@macro-commzilla-dial:1] ResetCDR("SIP/222-094b09b8", "w") in new stack
   -- Executing [h@macro-commzilla-dial:2] NoCDR("SIP/222-094b09b8", "") in new stack
   -- Executing [h@macro-commzilla-dial:3] UserEvent("SIP/222-094b09b8", "TAPI|TAPIEVENT: LINE_CALLSTATE LINECALLSTATE_IDLE") in new stack
   -- Executing [h@macro-commzilla-dial:4] System("SIP/222-094b09b8", "/var/www/scopserv/telephony/scripts/billing/cdr.sh 1233195139.68") in new stack
Extension Changed 233[commzilla-local] new state Idle for Notify User 300
   -- AGI Script /var/www/scopserv/telephony/scripts/agi/dial.php completed, returning 0
   -- Executing [233@commzilla-super:8] GotoIf("SIP/222-094b09b8", "1?9:10") in new stack
   -- Goto (commzilla-super,233,9)
   -- Executing [233@commzilla-super:9] Hangup("SIP/222-094b09b8", "") in new stack
 == Spawn extension (commzilla-super, 233, 9) exited non-zero on 'SIP/222-094b09b8'
 == End MixMonitor Recording SIP/222-094b09b8
Extension Changed 222[commzilla-local] new state Idle for Notify User 300



By: Terry Wilson (twilson) 2009-01-29 00:35:11.000-0600

There is no easy way for me to debug any of this with all of the AGIs, GotoIFs, etc. when I don't have access to them or the dialplan contents.  Unless this can be duplicated on a dialplan that is actually postable/legible I have no idea what is really going on.

I will try to reproduce with a simple dialplan and throw in a phone that sends a 302 Moved Temporarily (which is what I'm assuming the Polycom sends).  But I can tell you that I think calling a SIP phone that forwards the call back to the original caller with a 302 is silly--essentially telling the phone to call itself.  I am very confused about this setup and its purpose.

By: Terry Wilson (twilson) 2009-01-29 00:37:19.000-0600

Also, since the info you posted here has nothing to do with one-touch parking, it shouldn't be posted on this bug.  If you agree that things appear fixed as far as one-touch parking is concerned, and that the other issue you reported isn't a result of this patch, then we should probably commit the fix, close this bug, and continue the rest in your other bug.



By: Leif Madsen (lmadsen) 2009-01-29 08:03:26.000-0600

I agree. If this issue is fixed, close it, and resolve the other issue in a separate bug. Thanks!

By: Joel Vandal (jvandal) 2009-01-29 08:10:11.000-0600

I will check with araron in order to have a stipped down dialplan without any AGI, etc.

By: David Brillert (aragon) 2009-01-29 08:21:33.000-0600

I agree the dial plan and CLI output is confusing but to simplify I can just break this down into basic parts so it can be more easily reproduced and tested:
-Polycom cannot blind SIP transfer any calls after patch
-Polycom can attended SIP transfer OK
-Asterisk *1 native blind transfer works ok
-Asterisk *2 attended transfer has some weirdness because it can return the call to the originator without first providing ringback to the phone (tested on Snom pnone)

IMHO *2 attended transfer needs a lot of testing with this patch.

As silly as it sounds a customer does use the call forward method to do some receptionist coverage, and this is why I was forced to open bug 14356
The extension does not really transfer to itself. It first completes the transfer before the other extension call forward no answers back. A core show channels after the call is transferred confirms this (I think...)

One touch park is fixed.

Close this ticket and lets move the discussion to
http://bugs.digium.com/view.php?id=14356

By: Digium Subversion (svnbot) 2009-01-30 11:46:51.000-0600

Repository: asterisk
Revision: 172517

U   branches/1.4/CHANGES
U   branches/1.4/apps/app_dial.c
U   branches/1.4/configs/features.conf.sample
U   branches/1.4/doc/channelvariables.txt
U   branches/1.4/include/asterisk/global_datastores.h
U   branches/1.4/main/global_datastores.c
U   branches/1.4/res/res_features.c

------------------------------------------------------------------------
r172517 | twilson | 2009-01-30 11:46:50 -0600 (Fri, 30 Jan 2009) | 37 lines

Fix feature inheritance with builtin features

When using builtin features like parking and transfers, the AST_FEATURE_* flags
would not be set correctly for all instances when either performing a builtin
attended transfer, or parking a call and getting the timeout callback.  Also,
there was no way on a per-call basis to specify what features someone should
have on picking up a parked call (since that doesn't involve the Dial() command).
There was a global option for setting whether or not all users who pickup a
parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT,
AUTOMON, or PARKCALL.

This patch:
1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the
dialplan or with setvar in channels that support it.  This variable can be set
to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the
equivalent dial options), to set what features should be activated on this
channel.  The patch moves the setting of the features datastores into the
bridging code instead of app_dial to help facilitate this.

2) adds global options parkedcallparking, parkedcallhangup, and
parkedcallrecording to be similar to the parkedcalltransfers option for
globally setting features.

3) has builtin_atxfer call builtin_parkcall if being transfered to the parking
extension since tracking everything through multiple masquerades, etc. is
difficult and error-prone

4) attempts to fix all cases of return calls from parking and completed builtin
transfers not having the correct permissions
(closes issue ASTERISK-13396)
Reported by: aragon
Patches:
     fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396)
Tested by: aragon, otherwiseguy

Review http://reviewboard.digium.com/r/138/

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=172517

By: Digium Subversion (svnbot) 2009-01-30 15:28:36.000-0600

Repository: asterisk
Revision: 172580

U   trunk/CHANGES
U   trunk/apps/app_dial.c
U   trunk/configs/features.conf.sample
U   trunk/include/asterisk/global_datastores.h
U   trunk/main/features.c
U   trunk/main/global_datastores.c

------------------------------------------------------------------------
r172580 | twilson | 2009-01-30 15:28:36 -0600 (Fri, 30 Jan 2009) | 44 lines

Merged revisions 172517 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r172517 | twilson | 2009-01-30 11:47:41 -0600 (Fri, 30 Jan 2009) | 37 lines
 
 Fix feature inheritance with builtin features
 
 When using builtin features like parking and transfers, the AST_FEATURE_* flags
 would not be set correctly for all instances when either performing a builtin
 attended transfer, or parking a call and getting the timeout callback.  Also,
 there was no way on a per-call basis to specify what features someone should
 have on picking up a parked call (since that doesn't involve the Dial() command).
 There was a global option for setting whether or not all users who pickup a
 parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT,
 AUTOMON, or PARKCALL.
 
 This patch:
 1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the
 dialplan or with setvar in channels that support it.  This variable can be set
 to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the
 equivalent dial options), to set what features should be activated on this
 channel.  The patch moves the setting of the features datastores into the
 bridging code instead of app_dial to help facilitate this.
 
 2) adds global options parkedcallparking, parkedcallhangup, and
 parkedcallrecording to be similar to the parkedcalltransfers option for
 globally setting features.
 
 3) has builtin_atxfer call builtin_parkcall if being transfered to the parking
 extension since tracking everything through multiple masquerades, etc. is
 difficult and error-prone
 
 4) attempts to fix all cases of return calls from parking and completed builtin
 transfers not having the correct permissions
 (closes issue ASTERISK-13396)
 Reported by: aragon
 Patches:
       fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396)
 Tested by: aragon, otherwiseguy
 
 Review http://reviewboard.digium.com/r/138/
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=172580

By: Digium Subversion (svnbot) 2009-01-30 17:57:38.000-0600

Repository: asterisk
Revision: 172635

_U  branches/1.6.0/
U   branches/1.6.0/CHANGES
U   branches/1.6.0/apps/app_dial.c
U   branches/1.6.0/configs/features.conf.sample
U   branches/1.6.0/include/asterisk/global_datastores.h
U   branches/1.6.0/main/features.c
U   branches/1.6.0/main/global_datastores.c

------------------------------------------------------------------------
r172635 | twilson | 2009-01-30 17:57:38 -0600 (Fri, 30 Jan 2009) | 51 lines

Merged revisions 172580 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r172580 | twilson | 2009-01-30 15:29:12 -0600 (Fri, 30 Jan 2009) | 44 lines
 
 Merged revisions 172517 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r172517 | twilson | 2009-01-30 11:47:41 -0600 (Fri, 30 Jan 2009) | 37 lines
   
   Fix feature inheritance with builtin features
   
   When using builtin features like parking and transfers, the AST_FEATURE_* flags
   would not be set correctly for all instances when either performing a builtin
   attended transfer, or parking a call and getting the timeout callback.  Also,
   there was no way on a per-call basis to specify what features someone should
   have on picking up a parked call (since that doesn't involve the Dial() command).
   There was a global option for setting whether or not all users who pickup a
   parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT,
   AUTOMON, or PARKCALL.
   
   This patch:
   1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the
   dialplan or with setvar in channels that support it.  This variable can be set
   to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the
   equivalent dial options), to set what features should be activated on this
   channel.  The patch moves the setting of the features datastores into the
   bridging code instead of app_dial to help facilitate this.
   
   2) adds global options parkedcallparking, parkedcallhangup, and
   parkedcallrecording to be similar to the parkedcalltransfers option for
   globally setting features.
   
   3) has builtin_atxfer call builtin_parkcall if being transfered to the parking
   extension since tracking everything through multiple masquerades, etc. is
   difficult and error-prone
   
   4) attempts to fix all cases of return calls from parking and completed builtin
   transfers not having the correct permissions
   (closes issue ASTERISK-13396)
   Reported by: aragon
   Patches:
         fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396)
   Tested by: aragon, otherwiseguy
   
   Review http://reviewboard.digium.com/r/138/
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=172635

By: Digium Subversion (svnbot) 2009-01-30 18:04:24.000-0600

Repository: asterisk
Revision: 172636

_U  branches/1.6.1/
U   branches/1.6.1/CHANGES
U   branches/1.6.1/apps/app_dial.c
U   branches/1.6.1/configs/features.conf.sample
U   branches/1.6.1/include/asterisk/global_datastores.h
U   branches/1.6.1/main/features.c
U   branches/1.6.1/main/global_datastores.c

------------------------------------------------------------------------
r172636 | twilson | 2009-01-30 18:04:24 -0600 (Fri, 30 Jan 2009) | 51 lines

Merged revisions 172580 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r172580 | twilson | 2009-01-30 15:29:12 -0600 (Fri, 30 Jan 2009) | 44 lines
 
 Merged revisions 172517 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r172517 | twilson | 2009-01-30 11:47:41 -0600 (Fri, 30 Jan 2009) | 37 lines
   
   Fix feature inheritance with builtin features
   
   When using builtin features like parking and transfers, the AST_FEATURE_* flags
   would not be set correctly for all instances when either performing a builtin
   attended transfer, or parking a call and getting the timeout callback.  Also,
   there was no way on a per-call basis to specify what features someone should
   have on picking up a parked call (since that doesn't involve the Dial() command).
   There was a global option for setting whether or not all users who pickup a
   parked call should have AST_FEATURE_REDIRECT set, but nothing for DISCONNECT,
   AUTOMON, or PARKCALL.
   
   This patch:
   1) adds the BRIDGE_FEATURES dialplan variable which can be set either in the
   dialplan or with setvar in channels that support it.  This variable can be set
   to any combination of 't', 'k', 'w', and 'h' (case insensitive matching of the
   equivalent dial options), to set what features should be activated on this
   channel.  The patch moves the setting of the features datastores into the
   bridging code instead of app_dial to help facilitate this.
   
   2) adds global options parkedcallparking, parkedcallhangup, and
   parkedcallrecording to be similar to the parkedcalltransfers option for
   globally setting features.
   
   3) has builtin_atxfer call builtin_parkcall if being transfered to the parking
   extension since tracking everything through multiple masquerades, etc. is
   difficult and error-prone
   
   4) attempts to fix all cases of return calls from parking and completed builtin
   transfers not having the correct permissions
   (closes issue ASTERISK-13396)
   Reported by: aragon
   Patches:
         fix_feature_inheritence.diff.txt uploaded by otherwiseguy (license 396)
   Tested by: aragon, otherwiseguy
   
   Review http://reviewboard.digium.com/r/138/
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=172636