Gunnar Schaller
2009-Feb-06 09:15 UTC
[asterisk-users] Monitor and SIP transfers (SIP REFER)
Hello list, I need to record all calls. So I'm using application Monitor. Works good until someone transfers a callee to another internal extension. Example: A calls B A set B on hold A calls C A transfers B to C with SIP transfer (SIP REFER - with phone funktions and not Asterisk attended transfer). I found http://bugs.digium.com/view.php?id=0013538 . "corruptor" asked about this problem, but it seems there is no solution. Now I want to know how anyone deals with this problem. How to record those transfered calls? Any solution with manager commands or some source-code hacking (enabling Monitor for all calls so no Monitor is needed in dialplan). I'm working with Snom phones here - so there is the possibility to work with action url's. Thank you, Gunnar
Mark Michelson
2009-Feb-06 15:47 UTC
[asterisk-users] Monitor and SIP transfers (SIP REFER)
Gunnar Schaller wrote:> Hello list, > I need to record all calls. So I'm using application Monitor. Works > good until someone transfers a callee to another internal extension. > Example: > A calls B > A set B on hold > A calls C > A transfers B to C with SIP transfer (SIP REFER - with phone funktions > and not Asterisk attended transfer). > I found http://bugs.digium.com/view.php?id=0013538 . "corruptor" asked > about this problem, but it seems there is no solution. > Now I want to know how anyone deals with this problem. How to record > those transfered calls? Any solution with manager commands or some > source-code hacking (enabling Monitor for all calls so no Monitor is > needed in dialplan). I'm working with Snom phones here - so there is > the possibility to work with action url's. > > Thank you, > Gunnar >The problem in this particular case is that the actual monitor object is on A's channel. When A is no longer involved in the call, the monitor is gone, and so the call cannot be recorded further. One possible solution is to run the Monitor application on B's channel instead. This can be done by using the M option in the Dial application. The M option allows you to run a macro on the *called* channel's party when he answers. If you start the Monitor application from this macro, you should find that things will work as you expect. Note that the issue you linked was about MixMonitor, not Monitor. They are completely different beasts when it comes to how they operate. In fact, MixMonitor recordings can be set to survive a transfer if you are using Asterisk 1.4.23 and make use of the AUDIOHOOK_INHERIT function. For more information on its use, you can issue the command "core show function AUDIOHOOK_INHERIT" from the Asterisk CLI. Mark Michelson