[asterisk-users] Monitor and SIP transfers (SIP REFER)

Mark Michelson mmichelson at digium.com
Fri Feb 6 09:47:49 CST 2009


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



More information about the asterisk-users mailing list