Dan Littlejohn
2006-Jan-11 08:59 UTC
[Asterisk-Users] Asterisk Manager API and ZapBarge or ChanSpy
Am trying to monitor and record an in-process phone call using a remote computer and the Asterisk Manager API. Have something that is working, but the call recording volume is to low to be usable. dialplan exten => 8159,1,ZapBarge(Zap/1) remote application with Asterisk Manager API $telnet->print("Action: Originate\nChannel: Local/8159\@default\nApplication: ChanSpy\nData: |q\nPriority: 1\n\n"); $telnet->waitfor('/Response: Success/'); # get all the local channels and look for the extension in use $telnet->print("Action: Command\nCommand: Local Show Channels\n\n"); $telnet->waitfor('/Response: Follows/'); while (($line = $telnet->getline) && ($line !~ /END COMMAND/i)) { push(@channels,$line); } # start the monitor while ($line = pop(@channels)) { $pattern = "Local\/" . $exten; if ($line =~ m/$pattern/i) { print $line; # start monitor $recording = $timestamp . "-" . $uniqueid; print $recording; $telnet->print("Action: Monitor\nMix: 1\nFormat: wav49\nChannel: " . $currentChannel ."\nFile: " . $recording . "\n\n"); $telnet->waitfor('/Response: Success/'); } } What I think is happening is that a call is originated for the 8159 extension, which then executes the dialplan zapbarge on in process zap channel call, then the chanspy listens in. This barely works, but the call volume is just not usable. I am pretty sure I need to get rid of the zapbarge or chanspy, but I am not sure how to go about originating the call so it will work. Any advice would be appreciated. Thanks; Dan