I tried different combinations of 2.5.1, the current svn, and asterisk 1.4 and 1.6. All had the same problem. As soon as I recorded my own recordings and switched the ring group to point to them it started working.
This is a custom built ubuntu system. I spent a whole day trying to debug this problem. I checked and rechecked permissions since problems with Linux are almost always permissions After turning on debugging I noticed this in the log…
[Apr 3 10:34:59] DEBUG[17927] app_macro.c: Oooh, got something to jump out with (‘1’)!
[Apr 3 10:34:59] DEBUG[17927] app_dial.c: Macro exited with status 49
[Apr 3 10:34:59] DEBUG[17927] channel.c: Hanging up channel ‘Local/xxxxxxx@from-internal-d163;1’
[Apr 3 10:34:59] DEBUG[17931] channel.c: Didn’t get a frame from channel: Local/xxxxxxx@from-internal-d163;2
[Apr 3 10:34:59] DEBUG[17931] channel.c: Bridge stops bridging channels Local/xxxxxxx@from-internal-d163;2 and SIP/vitel-outbound-08632ed8
[A
So I thought it might be a reinvite problem so I set canreinvite on my outbound and inbound trunk to yes. That didn’t solve the problem. Then I read http://is.gd/r06i where someone was having the same issue as myself. So I tried recording my own and it worked like a champ. Only thing I can think of is maybe it’s a Vitelity problem?
Are you sure this is a bug with Asterisk or is it something they have changed in newer releases? Does Asterisk allow you to have both a confirm extension and a macro-confirm extension? If not then it would make sense that they have changed the usage of the Background command.
I doubt it is a feature change and it also seems like there are enough variables with all the different testing to question what really got things working.
The last option to Background is appropriately “macro-confirm” and not “confirm”. This is the context that the background command should look for the digit being pressed.
It’s very possible that it started working because putting in a bogus context that does not exist (confirm) made the entire Background command fail and skip to the Read() command. However the Read() command would not work had you had a multi-part recording (made of multiple components) which is why the Background is used and the only reason that the Read() is used instead of the WaitExten() is because there is no ‘context’ option for WaitExten. (And this whole issue gets much more complex if you dig in, with the roots being that the Background() command can not normally be used within a macro because it will otherwise try to look for the pressed digits in the context where the macro was called, in this case, thus the reason for the context command at the end.)
There is a proposed Asterisk fix for this, if you are having this issue it would be great to try and test out the patch. You can find it here, and feedback on the Digium bug system would be great, or if you can’t, at least report back here.
The proper place to ask about patching asterisk is over in the asterisk forums and/or your distro provider and not here as we assume that you already have a installed and functioning copy of asterisk.
Please also realize that the patch is a patch to the base C code for asterisk and if you are like one of the many who are using a distro built system you need to consult with your distro builder/provider as some will provide what you need while others will require you to load other items before you can. So it’s almost impossible do what you ask as we know NOTHING about your setup.
I’m seeing this problem again. Not sure yet if it’s failing the same way. Just wanted to ping folks to see if anyone else is running into this with * v1.4.25.1