[Home]

Summary:ASTERISK-15569: Attended transfers get incorrect voicemail.
Reporter:Herb (herb)Labels:
Date Opened:2010-02-02 22:00:25.000-0600Date Closed:2011-06-07 14:08:02
Priority:MinorRegression?No
Status:Closed/CompleteComponents:Resources/res_features
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) debug.txt
Description:Callers who get automated transferred but fail to get answered end up getting the voicemail of the transferer and not the callee.

Person A calls Person B
Person B xfers Person A to Person C
Person C does not answer.
Person A gets voicemail of Person B.

This is version 1.6.1.13.  Fresh install/compile.  Using my current config files.

Blind transfers work correct.  If you blind transfer the person will get the correct voicemail.

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

This is the same issue I reported here: ASTERISK-1516347
Comments:By: Herb (herb) 2010-02-02 22:10:49.000-0600

I meant attended transfers not automated.

By: Leif Madsen (lmadsen) 2010-02-03 09:32:38.000-0600

Additional information required:

* Which kind of attended transfer? Is this internal using features.conf and DTMF, or is this done via the transfer button the phone? (chan_sip?)

* Please provide a console output showing this problem, with debug level logging

* If this is a chan_sip issue (i.e. using attended transfers from the phone) please include the SIP trace from the console, along with SIP history, enabled from sip.conf.

By: Herb (herb) 2010-02-03 17:19:33.000-0600

Aloha,

We are using the attended transfer function on our phones.  Cisco 7940s/7960s with SIP firmware 8.11.  I have the attended transfer feature code enabled but it does not work for us.

Both the blind transfer function on the phones, and the feature code works fine.

I have attached a debug output and here is a trace:

   -- Accepting overlap call from 'XXXXXXXXXX' to 'XXXX143' on channel 0/1, span 1
   -- Starting simple switch on 'DAHDI/1-1'
   -- Executing [XXXX143@default:1] Macro("DAHDI/1-1", "vm,143") in new stack
   -- Executing [s@macro-vm:1] Dial("DAHDI/1-1", "SIP/143,15,tTkK") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 143
   -- SIP/143-0000012d is ringing
   -- SIP/143-0000012d answered DAHDI/1-1
   -- Started music on hold, class 'default', on DAHDI/1-1
 == Using SIP RTP CoS mark 5
   -- Executing [178@default:1] Macro("SIP/143-0000012e", "vm,178") in new stack
   -- Executing [s@macro-vm:1] Dial("SIP/143-0000012e", "SIP/178,15,tTkK") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 178
   -- SIP/178-0000012f is ringing
   -- Stopped music on hold on DAHDI/1-1
 == Spawn extension (macro-vm, s, 1) exited non-zero on 'SIP/143-0000012e<ZOMBIE>' in macro 'vm'
 == Spawn extension (default, XXXX143, 1) exited non-zero on 'SIP/143-0000012e<ZOMBIE>'
   -- Nobody picked up in 15000 ms
   -- Executing [s@macro-vm:2] Goto("DAHDI/1-1", "s-NOANSWER,1") in new stack
   -- Goto (macro-vm,s-NOANSWER,1)
   -- Executing [s-NOANSWER@macro-vm:1] VoiceMail("DAHDI/1-1", "143,su") in new stack
   -- <DAHDI/1-1> Playing '/var/spool/asterisk/voicemail/default/143/unavail.slin' (language 'en')
   -- Channel 0/1, span 1 got hangup request, cause 16
 == Spawn extension (macro-vm, s-NOANSWER, 1) exited non-zero on 'DAHDI/1-1' in macro 'vm'
 == Spawn extension (default, 178, 1) exited non-zero on 'DAHDI/1-1'
   -- Hungup 'DAHDI/1-1'

Here is our voicemail macro:
[macro-vm]
include => default
exten => s,1,Dial(SIP/${ARG1},15,tTkK)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,VoiceMail(${ARG1},su)
exten => s-NOANSWER,n,Goto(default,s,1)
exten => s-BUSY,1,VoiceMail(${ARG1},sb)
exten => s-BUSY,n,Goto(default,s,1)
exten => _s-.,1,Goto(s-NOANSWER,1)

By: Herb (herb) 2010-02-03 17:38:00.000-0600

Looking at the debug statement I noticed this messages:

[Feb  3 13:05:30] DEBUG[8044] channel.c: Not copying variable MACRO_DEPTH.
[Feb  3 13:05:30] DEBUG[8044] channel.c: Not copying variable ARG1.
[Feb  3 13:05:30] DEBUG[8044] channel.c: Not copying variable MACRO_PRIORITY.
[Feb  3 13:05:30] DEBUG[8044] channel.c: Not copying variable MACRO_CONTEXT.
[Feb  3 13:05:30] DEBUG[8044] channel.c: Not copying variable MACRO_EXTEN.

And thinking this is related to our issue.  Is this something I did or can correct? Or is Asterisk just not passing these variables anymore?

Thanks,
Herb

By: Leif Madsen (lmadsen) 2010-02-03 18:42:44.000-0600

Hmmm, I think that is normal.

However, there have been several transfer regression bugs in 1.6.1.13 (and thus 1.6.1.14 which is a security release based on 1.6.1.13) which have since been fixed post 1.6.1.13 release.

Could you try updating to the latest 1.6.1 branch and see if that resolves the issue? If not, then we'll try to further track down the issue, but there is no point in doing that if it's already been fixed as part of the transfer issues. Thanks!

By: Herb (herb) 2010-02-03 18:49:28.000-0600

I will try the latest 1.6.1 branch tonight and see what happens.

Thanks,
Herb

By: Herb (herb) 2010-02-03 21:36:41.000-0600

Ok,

I downloaded the most recent branch via SVN and still getting the same transfer/voicemail problem.

svn checkout http://svn.digium.com/svn/asterisk/branches/1.6.1 asterisk-1.6.1

Checked out external at revision 234.
Checked out revision 696.
Checked out revision 244686.

#asterisk -r
Connected to Asterisk SVN-branch-1.6.1-r244553

trace:
Connected to Asterisk SVN-branch-1.6.1-r244553 currently running on kelepona (pid = 29157)
kelepona*CLI> core set verbose 10
Verbosity was 0 and is now 10
   -- Channel 0/15, span 1 got hangup request, cause 16
 == Spawn extension (closed, s, 1) exited non-zero on 'DAHDI/15-1'
   -- Hungup 'DAHDI/15-1'
   -- Accepting overlap call from 'XXXXXXXXXX' to 'XXXX143' on channel 0/16, span 1
   -- Starting simple switch on 'DAHDI/16-1'
   -- Executing [XXXX143@default:1] Macro("DAHDI/16-1", "vm,143") in new stack
   -- Executing [s@macro-vm:1] Dial("DAHDI/16-1", "SIP/143,15,tTkK") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 143
   -- SIP/143-00000003 is ringing
   -- SIP/143-00000003 answered DAHDI/16-1
   -- Started music on hold, class 'default', on DAHDI/16-1
   -- Stopped music on hold on DAHDI/16-1
 == Using SIP RTP CoS mark 5
   -- Executing [178@default:1] Macro("SIP/143-00000004", "vm,178") in new stack
   -- Executing [s@macro-vm:1] Dial("SIP/143-00000004", "SIP/178,15,tTkK") in new stack
 == Using SIP RTP CoS mark 5
   -- Called 178
   -- SIP/178-00000005 is ringing
 == Spawn extension (macro-vm, s, 1) exited non-zero on 'SIP/143-00000004<ZOMBIE>' in macro 'vm'
 == Spawn extension (default, XXXX143, 1) exited non-zero on 'SIP/143-00000004<ZOMBIE>'
   -- Nobody picked up in 15000 ms
   -- Executing [s@macro-vm:2] Goto("DAHDI/16-1", "s-NOANSWER,1") in new stack
   -- Goto (macro-vm,s-NOANSWER,1)
   -- Executing [s-NOANSWER@macro-vm:1] VoiceMail("DAHDI/16-1", "143,su") in new stack
   -- <DAHDI/16-1> Playing '/var/spool/asterisk/voicemail/default/143/unavail.slin' (language 'en')
   -- Channel 0/16, span 1 got hangup request, cause 16
 == Spawn extension (macro-vm, s-NOANSWER, 1) exited non-zero on 'DAHDI/16-1' in macro 'vm'
 == Spawn extension (default, 178, 1) exited non-zero on 'DAHDI/16-1'
   -- Hungup 'DAHDI/16-1'

I am going through my config files and trying to update syntax/code where I can.  Maybe it's my old macros?

Thanks again for the help.

By: Leif Madsen (lmadsen) 2010-02-04 14:21:10.000-0600

It's a bit hard to see what is going on there -- can you attach the relevant parts of your dialplan?

By: Herb (herb) 2010-02-04 14:56:09.000-0600

Direct Dial to my extension:

exten => XXXX143,1,Macro(vm,143)

[macro-vm]
include => default
exten => s,1,Dial(SIP/${ARG1},15,tTkK)
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s-NOANSWER,1,VoiceMail(${ARG1},su)
exten => s-NOANSWER,n,Goto(default,s,1)
exten => s-BUSY,1,VoiceMail(${ARG1},sb)
exten => s-BUSY,n,Goto(default,s,1)
exten => _s-.,1,Goto(s-NOANSWER,1)

If anyone could help me out with what it should look like using GoSub() I would greatly appreciate it.  I tried using it and I didn't have the syntax right, as it wasn't working so I reverted back to Macro().

Thanks!

By: Leif Madsen (lmadsen) 2010-02-04 15:01:04.000-0600

Something like this should work (note that 'sub' is not required -- I just add it for personal use. Also, I changed 's' to 'start' as that is my personal preference)

exten => XXXX143,1,GoSub(sub-vm,start,1(vm,143))

[sub-vm]
include => default
exten => start,1,Dial(SIP/${ARG1},15,tTkK)
exten => start,n,Goto(start-${DIALSTATUS},1)
exten => start-NOANSWER,1,VoiceMail(${ARG1},su)
exten => start-NOANSWER,n,Goto(default,s,1)
exten => start-BUSY,1,VoiceMail(${ARG1},sb)
exten => start-BUSY,n,Goto(default,s,1)
exten => _start-.,1,Goto(start-NOANSWER,1)

By: Leif Madsen (lmadsen) 2010-02-04 15:01:27.000-0600

Well, I don't see any reason why this shouldn't work really... so I'm out of suggestions at the moment.

By: Leif Madsen (lmadsen) 2010-03-23 10:53:28

Suspending this issue as I don't believe there is anything that needs to be changed here.