Possible Change on Transfer to Parking?


#1

We are running Asterisk from RPMs on CentOS 5.5 x64. Currently running Asterisk 1.6.2.17.2.
Our attendant phone is a Linksys SPA 962 with two 932 sidecars. One of the sidecar buttons is set as a speed dial to 700 for call parking (fnc=sd;sub=700@pbxserver)

Under Asterisk 1.6.2.15 when the attendant would answer a call and press the key button for call parking it would park the call and playback the parking lot number to the attendant.

Once we upgraded to 1.6.2.17 it now transfers the call to parking, ends the call to the attendant yet in the log show it doing a playback of the parking lot number but no one hears this.

Example of using the line key to transfer call to parking.

    -- Accepting call from 'xxxxxxxxxx' to 'yyyyyyyyyy' on channel 0/1, span 1
    -- Executing [yyyyyyyyyy@incoming:1] NoOp("DAHDI/1-1", "** Check To See If Number Is Blacklisted **") in new stack
    -- Executing [yyyyyyyyyy@incoming:2] Set("DAHDI/1-1", "CDR(userfield)=yyyyyyyyyy") in new stack
    -- Executing [yyyyyyyyyy@incoming:3] GotoIf("DAHDI/1-1", "0?blacklist,1") in new stack
    -- Executing [yyyyyyyyyy@incoming:4] Set("DAHDI/1-1", "aa=1") in new stack
    -- Executing [yyyyyyyyyy@incoming:5] GotoIf("DAHDI/1-1", "1="1"?incoming-open,s,1") in new stack
    -- Goto (incoming-open,s,1)
    -- Executing [s@incoming-open:1] NoOp("DAHDI/1-1", "** In INCOMING-OPEN context **") in new stack
    -- Executing [s@incoming-open:2] Answer("DAHDI/1-1", "") in new stack
    -- Executing [s@incoming-open:3] Goto("DAHDI/1-1", "inside,200,1") in new stack
    -- Goto (inside,200,1)
    -- Executing [200@inside:1] Dial("DAHDI/1-1", "SIP/200&SIP/229&SIP/245&SIP/233,30,t") in new stack
  == Using SIP RTP CoS mark 5
    -- Called 200
  == Using SIP RTP CoS mark 5
    -- Called 229
  == Using SIP RTP CoS mark 5
  == Extension Changed 229[inside] new state Ringing for Notify User 200
  == Extension Changed 245[inside] new state Ringing for Notify User 200
    -- Called 245
  == Using SIP RTP CoS mark 5
    -- Called 233
  == Extension Changed 233[inside] new state Ringing for Notify User 200
    -- SIP/200-00000903 is ringing
    -- SIP/229-00000904 is ringing
    -- SIP/245-00000905 is ringing
    -- SIP/233-00000906 is ringing
    -- SIP/200-00000903 answered DAHDI/1-1
  == Extension Changed 233[inside] new state Idle for Notify User 200
  == Extension Changed 245[inside] new state Idle for Notify User 200
  == Extension Changed 229[inside] new state Idle for Notify User 200
    -- Started music on hold, class 'default', on DAHDI/1-1
  == Parked DAHDI/1-1 on 701 (lot default). Will timeout back to extension [inside] 200, 1 in 90 seconds
  == Spawn extension (inside, 200, 1) exited non-zero on 'Parking/DAHDI/1-1<ZOMBIE>'
    -- Added extension '701' priority 1 to parkedcalls (0xddcba40)
    -- <SIP/200-00000903> Playing 'digits/7.gsm' (language 'en')
    -- <SIP/200-00000903> Playing 'digits/0.gsm' (language 'en')
    -- <SIP/200-00000903> Playing 'digits/1.gsm' (language 'en')
    -- Channel 0/1, span 1 got hangup request, cause 16
    -- Stopped music on hold on DAHDI/1-1
  == DAHDI/1-1 got tired of being parked
    -- Hungup 'DAHDI/1-1'

If they use the #700 extension it will playback the parking lot number as it should but the attendants don’t like having to press the extra buttons when they have always simply pressed the Call Park button on the line car.
Example of the #700:

    -- Accepting call from 'xxxxxxxxxx' to 'yyyyyyyyyy' on channel 0/2, span 1
    -- Executing [yyyyyyyyyy@incoming:1] NoOp("DAHDI/2-1", "** Check To See If Number Is Blacklisted **") in new stack
    -- Executing [yyyyyyyyyy@incoming:2] Set("DAHDI/2-1", "CDR(userfield)=yyyyyyyyyy") in new stack
    -- Executing [yyyyyyyyyy@incoming:3] GotoIf("DAHDI/2-1", "0?blacklist,1") in new stack
    -- Executing [yyyyyyyyyy@incoming:4] Set("DAHDI/2-1", "aa=1") in new stack
    -- Executing [yyyyyyyyyy@incoming:5] GotoIf("DAHDI/2-1", "1="1"?incoming-open,s,1") in new stack
    -- Goto (incoming-open,s,1)
    -- Executing [s@incoming-open:1] NoOp("DAHDI/2-1", "** In INCOMING-OPEN context **") in new stack
    -- Executing [s@incoming-open:2] Answer("DAHDI/2-1", "") in new stack
    -- Executing [s@incoming-open:3] Goto("DAHDI/2-1", "inside,200,1") in new stack
    -- Goto (inside,200,1)
    -- Executing [200@inside:1] Dial("DAHDI/2-1", "SIP/200&SIP/229&SIP/245&SIP/233,30,t") in new stack
  == Using SIP RTP CoS mark 5
    -- Called 200
  == Using SIP RTP CoS mark 5
    -- Called 229
  == Using SIP RTP CoS mark 5
  == Extension Changed 229[inside] new state Ringing for Notify User 200
    -- Called 245
  == Extension Changed 245[inside] new state Ringing for Notify User 200
  == Using SIP RTP CoS mark 5
  == Extension Changed 233[inside] new state Ringing for Notify User 200
    -- Called 233
    -- SIP/200-00000910 is ringing
    -- SIP/229-00000911 is ringing
    -- SIP/233-00000913 is ringing
    -- SIP/245-00000912 is ringing
    -- SIP/200-00000910 answered DAHDI/2-1
  == Extension Changed 233[inside] new state Idle for Notify User 200
  == Extension Changed 245[inside] new state Idle for Notify User 200
  == Extension Changed 229[inside] new state Idle for Notify User 200
    -- Started music on hold, class 'default', on DAHDI/2-1
    -- <SIP/200-00000910> Playing 'pbx-transfer.gsm' (language 'en')
  == Using SIP RTP CoS mark 5
    -- Stopped music on hold on DAHDI/2-1
    -- Started music on hold, class 'default', on DAHDI/2-1
  == Parked DAHDI/2-1 on 701 (lot default). Will timeout back to extension [inside] 200, 1 in 90 seconds
    -- Added extension '701' priority 1 to parkedcalls (0xddcba40)
    -- <SIP/200-00000910> Playing 'digits/7.gsm' (language 'en')
    -- <SIP/200-00000910> Playing 'digits/0.gsm' (language 'en')
    -- <SIP/200-00000910> Playing 'digits/1.gsm' (language 'en')

The difference I see is after the line:

On the side car button we get:

While on the #700 it goes right to the call parking and playback.

Anyone else experience this? And how do we get the old functionality back where the attendant can transfer a call using the side car button and still get the playback of the parking lot number?


#2

I am still seeing this on my SPA942 phones. Any resolution or workaround? Seems like no one cares to fix this problem… Ideas?


#3

The ZOMBIE line is the result of using general case transfer code. I think that the features case is treated as a special case, even though you didn’t use the specific parking code.

Having verbose logging on would have helped, but the digits appear to be being announced to the original channel, and the transfer has been done on that channel. That means the phone is doing a blind transfer, and all phones of which I’m aware stop listening to the audio on the original channel immediately after sending the SIP REFER. If you want to hear it on the phone, you must do an attended transfer. In that case, you will see different instance ID’s for the incoming call and for the call to 700, because the phone will set up a new call to 700 and the tell Asterisk to connect the new and old calls when you complete the transfer.

Although this doesn’t seem to be a bug, no-one will fix problems in 1.6.x versions, unless they relate to security. If you want a version that is being actively fixed, you need 1.8.x.

This is a peer support forum, not a bug reporting channel.

There are no service level commitments for the open source version of Asterisk. If you want any guarantee of support or quick fixes, you need to buy a commercially supported version.

You may want to note that a large batch of bug fixes to parking have been previewed for 1.8.5+, just this week.