Page 1 of 1

Monitor Remote Agent Outbound Calls

PostPosted: Tue Jul 02, 2024 9:26 pm
by egorky
Hi, Guys,

I'm using Vicidial for some time and altough is a beast in terms of features and capabilities, I sill think there are some modes of operation that are not contemplated yet. For example, I need to run an Inbound and Manual campaign but I don't need the agents to be in conference all the time just when they receive or make a call. But I still want them to be monitored from the Real Time Monitoring page and be present in all of the reports.
I have tried the classic On-hook phone which works great for inbound, but the problem is that to make the manual outbound calls, the agent needs to click the Ring Link which slows down the efficency of the agents. The next thing I tried was the remote agents feature, and is closer to what I am looking for:
Image
I have modified the vdremote.php and made it in a way that the agent can alter their status in order to take calls and also have the webphone in an iframe next as you can see in the picture. This is working fine, and the Real-Time Report shows those agents when in call. But , when the agent makes outbound calls, those are not showing in the report. I know is because they are not in a conference, but , is there a way to resolve that?

By the way, I am using the fantastic Browserphone https://github.com/InnovateAsterisk/Browser-Phone instead of Viciphone, I just modified to work with Vicidial. Keep up the good work.

VERSION: 2.14-919a
BUILD: 240617-0833
Rocky Linux 9.4 in AWS
Asterisk 18.18.1

Re: Monitor Remote Agent Outbound Calls

PostPosted: Tue Jul 02, 2024 9:57 pm
by mflorell
I'm sure it could be done with some programming changes(having manual dialed, non-conferenced agent calls show up in the Real-Time Report), but those changes might take a while, and it would require a lot of testing to make sure nothing else breaks because of it. It would also probably require a separate set of dialplan entries since a new AGI will probably be required to get the right database entries in place for the Real-Time Report.

Re: Monitor Remote Agent Outbound Calls

PostPosted: Tue Jul 02, 2024 11:26 pm
by egorky
Oh, so there is no way to monitor the activity of regular phones (not agents, I mean)? Maybe something like the Flash Operator Panel https://www.fop2.com/. I know that if the phone context is defaultlog the activity will be recorded so what is lacking is the monitoring of actives extensions or phones in real time.

Well, thanks a lot for your quick response, Matt. I will think about it and maybe I can adapt something to achieve it and shall report back if I make it.

mflorell wrote:I'm sure it could be done with some programming changes(having manual dialed, non-conferenced agent calls show up in the Real-Time Report), but those changes might take a while, and it would require a lot of testing to make sure nothing else breaks because of it. It would also probably require a separate set of dialplan entries since a new AGI will probably be required to get the right database entries in place for the Real-Time Report.

Re: Monitor Remote Agent Outbound Calls

PostPosted: Sat Jul 06, 2024 5:05 pm
by williamconley
If you have the agents use manual dialing within their Agent Interface rather than dialing outbound directly from their phone you can have monitoring. If you're using a web phone in the first place, they are sitting at a computer. If they are modifying a value to be available vs not available, they could just as easily be logged in but paused.

That being said: The coding necessary to view the status of a phone that is not in a vicidial session, in an old-fashioned dialout requires some odd asterisk calisthenics. It requires turning on "hints" among other things.

Oddly, I built an interface for this using X-Lite a decade ago. X-lite has a mandatory advertising panel that used to pop up when you started the soft phone app. But that ad was at a location I could hijack via DNS and substitute our inter-office extension list with (yep, hints were required) status visible so we could know who was on a call or ringing (it even shows phones as offline if they're flat-out missing/unregistered).

To accomplish this originally FOP had hints active and a constantly running script to take the hint information and store it in a text file which the FOP used as a data source.

All of which could be accomplished with Vicidial as well, since Vicidial still runs on asterisk.

Re: Monitor Remote Agent Outbound Calls

PostPosted: Sun Jul 07, 2024 1:25 pm
by egorky
Thanks, Wiliam,
Because what I wanted was for the agents to take and make calls (INBOUND_MAN) without constantly being on a conference, what I did was to make the agent On-Hook, so Vicidial calls them when a call arrives. For the outbound call I made a change in the agc/vicidial.php script. I added this code:
Code: Select all
<?php
echo "<script>
    document.addEventListener('DOMContentLoaded', (event) => {
        const formulario = document.getElementById('vicidial_form');
        const onHookAgent = " . json_encode($on_hook_agent) . ";

        formulario.addEventListener('keydown', (event) => {
            if (event.key === 'Enter') {
                event.preventDefault();  // Prevenir el comportamiento por defecto de la tecla ENTER
                NeWManuaLDiaLCalL('FAST','','','','','YES','YES');
                    // Ejecutar NoneInSessionCalL solo si onHookAgent es 'Y'
                if (onHookAgent === 'Y') {
                        NoneInSessionCalL();
                }
                console.log(onHookAgent);
                return false;  // Retornar false para prevenir cualquier comportamiento por defecto adicional
            }
        });
    });
</script>";
?>


I inserted it just before the last </body> around line 24.940. I know this is not upgrade proof and that I am not taking into account a lot of other possible configurations but is working fine for my needs. Now, my agents just have to enter the phone number and phone code and press ENTER (no mouse click necessary). The system will call the agent and the client at the same time without any additional action need it. Everything is monitored and reported. The only thing I have not tackled yet is the fact that the hangup button does not hangs the call to the agent only the customer's. Any ideas on this?

Regards,

Re: Monitor Remote Agent Outbound Calls

PostPosted: Mon Jul 15, 2024 12:33 pm
by williamconley
The hangup call button initiates a javascript AJAX call which sends a signal to the server to process the end of the agent present prospect's call by kicking THEM out of the meetme room. You can modify the javascript to send a fresh request that completely resets the agent's session (log out and back in again as an on-hook agent again). Either as a chain of events from the agent page OR as a new function in the php code on the server. Or both/combination, lol.

Re: Monitor Remote Agent Outbound Calls

PostPosted: Fri Aug 02, 2024 11:51 am
by egorky
Will do that, William, thanks again.