VMWare - Vicidial

Any and all non-support discussions

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

VMWare - Vicidial

Postby roundqube » Mon Mar 08, 2010 4:14 pm

I am trying to VMWare Vicidial (just the scripts and web server portion). I have the following setup:

CentOS machine running MySQL and Asterisk (both working). I then setup a separate hardware with VMWare-Server running so I can have multiple instances of vicidial scripts running (different call centers) without interferring with each other. I need this so I can give full admin access to the various call center admins.

I have both servers up and running with two call centers. I even spaced out the vicidial conferences for example: call center 1 = 8600051 - 8600075, call center 2 = 86000076 ... etc...

However, when it comes to the /etc/astguiclient.conf on each VM instance, what does the Server IP need to be? The asterisk server or my VM machine IP? I'm not really understanding this portion although the DB related stuff is setup and working.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby roundqube » Mon Mar 08, 2010 4:14 pm

VERSION: 2.0.5-173
BUILD: 90320-0424
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Mon Mar 08, 2010 9:32 pm

Better idea: do not try to "share the script server". Share the MYSQL server (which can even be a CLUSTER). And name each database separately. (It is not a requirement to name it asterisk.) This keeps your data completely separate and seriously reduces the load on each box.

then you don't even have to go "VM", you can just use a powerful MYSQL box to "administer" the databases. Apache/PHP/Scripts share many things (for instance: the "Screens" that run on each machine, including the central web server, and those control scripts that run).

You could spend a long time trying to combine those and yet fail. Set it up so each box is its own web server, and set your users up to log in on a central server and "bounce" to the real server AFTER they log in.

For one thing, it will stop "login" attacks from touching your real servers (only logged in users will be referred to them ...). And then you no longer need to "combine" the different servers.
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Mon Mar 08, 2010 10:25 pm

I am not sharing the script server... here's how I have it setup.

10.253.8.21 server - MySQL and Asterisk. There are two MySQL DB's on here, dialer_fl-td01_db and dialer_fl-pr01_db, for the two instances of Vicidial I have on the other server

10.253.8.22 server - Centos running VMWare (host machine)
---10.253.8.23 - first vm guest running vicidial using dialer_fl-td01_db
---10.253.8.24 - second vm guest running vicidial using dialer_fl-pr01_db

My main question is, on the 10.253.8.23 and 10.253.8.24 servers, I have the VARDB_Server setup to point to my 10.253.8.21 (master MySQL DB server), but for the varserver_IP, what should this be in /etc/astguiclient.conf on each respective web server running vicidial? Should they all point to my Asterisk server? Reason I ask is that the comment above it says "# IP of this machine", but the scripts I looked through appear to access it as if its supposed to point to the DB server... kinda confused.

Basically, does the server IP in /etc/astguiclient.conf need to point to my master MySQL DB or the actual VM IP of that machine (in this case 10.253.8.23 for one and 10.253.8.24 for the other) ?
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Mon Mar 08, 2010 11:27 pm

in astguiclient.conf the serverip is for THAT server. the server upon which astguiclient.conf resides. so it know who "it" is and can then respond when it is commanded to accomplish a task.

you will probably NOT enjoy attempting any load (above one agent) with any vicidial scripts running inside VMWare. You've been warned. :) You're better off running everything on each individual server ... except mysql. (Can you say "Unstable and unreliable"?). But I WANT to hear how this experience goes. PLEASE post your results!
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 10:10 am

I put my server IP, 10.253.8.23, into the /etc/astguiclient.conf but this doesn't appear to be right because when I look at code in /usr/share/astguiclient/AST_conf_update.pl:

$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';";

It appears to be selecting telnet info from a database based on the server IP which is wrong because my server running apache/perl only is not the same as the one hosting the database (10.253.8.21). When I put my actual server IP (10.253.8.23) into /etc/astguiclient.conf, things break.

Again to recap:
10.253.8.21 is my DB
10.253.8.22 is my Centos VMWare host running 10.253.8.23 VM which is my instance of Vicidial I am trying to get working. In the /etc/astguiclient.conf of 10.253.8.23 I have server IP set to 10.253.8.23 but it doesn't work since the code appears to reference DB via that IP but it will never get there since DB is hosted on a separate system. I have a centralized DB server (10.253.8.21) hosting all my DB's for my various vicidials.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby roundqube » Tue Mar 09, 2010 10:22 am

Also, my root user gets emails about errors because it cannot telnet to the host specificied in /etc/astguiclient.conf because as you recall, my DB and Asterisk server are @ 10.253.8.21 whereas my apache/perl/astguiclient are on 10.253.8.23 (VM) running on 10.253.8.22.

unknown remote host: at /usr/share/astguiclient/AST_conf_update.pl line 238
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 10:24 am

the variable in the perl script is dynamic ... it is based on the purpose of THAT script and it told to run on a server where it is needed.

have you clustered these servers properly according to instructions or are you just trying to "fake cluster" them?

with single server setups, you cannot share a machine which needs "screens" running. nor can you share the perl scripts.

with CLUSTERED servers you can share any or all services, but that requires some setup. if you are simply trying to build a system with sep apache/php server from the dialer/mysql ... that's still a cluster (albeit a small one).
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 11:25 am

What do you mean by "THAT script"? In this particular AST_conf_update.pl, it is not running properly because it is referencing the wrong IP since I have my actual server running Vicidial IP in the /etc/astguiclient.conf file.

Yes, I am trying to setup a small cluster. One machine running apache/perl/vicidial/php scripts and another server running MySQL + Asterisk. Not sure why this is not working.

I think my /etc/astguiclient.conf needs to point to 10.253.8.21 which is the Asterisk server IP. For example, in AST_conf_update.pl it says:

# Customized Variables
$server_ip = $VARserver_ip; # Asterisk server IP

This shows that when it pulls VARserver_ip from /etc/astguiclient.conf it will be wrong and I need to put my Asterisk server IP in /etc/astguiclient.conf instead of my actual server IP running Vicidial. See my confusion based on what you are saying and what the code shows?
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 12:27 pm

roundqube wrote:What do you mean by "THAT script"? In this particular AST_conf_update.pl, it is not running properly because it is referencing the wrong IP since I have my actual server running Vicidial IP in the /etc/astguiclient.conf file.

See my confusion based on what you are saying and what the code shows?
In a cluster, each machine runs all the scripts (except one, which only runs on the master). The master tells each machine what to do, and when to do it. have you set up the cluster properly? (there are specific instructions which MUST be followed to set up a vicidial cluster)

when i say "THAT script" remember that ALL the scripts reside on ALL the servers. but they must be run in the CPU of the machine that requires that particular process to run. then the script will execute commands given to it by the master (if the cluster is set up properly). each astguiclient.conf file will have the ip of the server upon which it resides to identify itself to the Master and so it knows to respond when a command is issued to that IP (without that, it would not know the command was for "it")
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 3:39 pm

William, why do these DB related select statements appear in code such as AST_conf_update.pl if the IP is supposed to be dynamic?

Code: Select all
$stmtA = "SELECT telnet_host,telnet_port,ASTmgrUSERNAME,ASTmgrSECRET,ASTmgrUSERNAMEupdate,ASTmgrUSERNAMElisten,ASTmgrUSERNAMEsend,max_vicidial_trunks,answer_transfer_agent,local_gmt,ext_context FROM servers where server_ip = '$server_ip';";


In the above code, its reference server_ip which is set to VARserver_ip further up the perl script and so this is my single point of confusion. If I have my DB on a separate system, this statement will not execute and its spitting out errors in my root email.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 3:51 pm

the ip is dynamic to the MASTER server. each individual server uses only its own ip address. but the MASTER will determine that commands must be run on whichever servers they need to run on to perform the task.

then each server performs the assigned task and reports back to the master by altering the mysql database.

you will note that the IP address is not hard coded. it is a variable. the variable for the MASTER to issue a command is stored in vicidial_servers. the variable for each box to know its identity is stored in astguiclient.conf

have you set up the CLUSTER, which is required for multiple machines to be involved in any vicidial operations (other than mysql, which can be run from anywhere)?
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 3:56 pm

I dont have the paid version of the manual so I do not know how to setup the Cluster properly. I'll have to invest in that.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 4:06 pm

And when you do, get your first cluster going in "live machines" and then duplicate your efforts via VM. Tends to work better ... even though that sounds backwards from the purpose of VM. LOL
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 5:00 pm

So basically what I'm trying to do is possible right?

Have one VM vicidial/webserver box pointing to DB/Asterisk on a different box and have them interoperate? Or am I missing something in this equation?
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 5:03 pm

The instructions for clustering a vicidial setup are published already (purchasing the manager's manual is a cool thing). once you have that running, you have to beceme the VM guru and dupe it.

will it work? not necessarily. you'll find out when you try to dupe the physical boxes into a VM solution. if the VM version never works (can't hold ANY load over 1 call), but the physical version works fine ... you'll have your answer. Vicidial is not designed for VM, but there are those who have ... virtualized pieces here and there. but not many, and not for long.
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 5:06 pm

To elaborate on my last post, let's say without wanting to do any more... I want to have One instance of Vicidial/Web server running on one server and connect it to a DB/Asterisk running on another server.

Am I missing anything? I have my /etc/astguiclient.conf setup for VARServer_IP set to my actual server and DB pointed to the other server. However, when I load up the astguiclient web interface, I can login but no calls originate. How is this so different than having everything on one box? I'd assume it should be the same, except its communicating over the network.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 5:20 pm

you would assume that, but then you'd not be speaking vicidial. that is a cluster (two machines, one vicidial). you have to go through the cluster setup unless the MySQL is the only piece you move to another box.

you say "it's just communicating over the network", but .. how will an asterisk channel variable be available to a script running on the Apache server? (and that's just ONE example)

Cluster. :)
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Tue Mar 09, 2010 5:22 pm

I just paid for the $100 manager manual and I do not see any cluster instructions in there. I do not see them in the installation files either.

Where can I find this?

Also, I appreciate all the help you've provided over the last few days...thank you very much!
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby roundqube » Tue Mar 09, 2010 5:24 pm

So lets say I run it like this:

BOX1: MySQL/Apache/Vicidial/Astguiclient
BOX2: Asterisk

I can then avoid clustering?
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Tue Mar 09, 2010 5:33 pm

williamconley wrote:you have to go through the cluster setup unless the MySQL is the only piece you move to another box.

how will an asterisk channel variable be available to a script running on the Apache server?

If the call is not on the box with apache/php, the scripts that run do not have access to the channel variables. this creates a problem as the entire system is scripted.

it's not in the manual? whoa. i thought it was! but a quick search on google for "Vicidial Multi Server Ubuntu" produced this:

http://www.vicidial.org/VICIDIALforum/v ... 3918bf6669
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Wed Mar 10, 2010 8:45 am

Last set of questions regarding this topic:

1) If I have MySQL/Vicidial/Apache/PHP on one server and tell it to connect to Asterisk on another server, do I need to cluster? Essentially, the one piece (MySQL) I can move easily back to the first server and only run Asterisk on my 2nd server for multiple instances of Vicidial to connect to.

2) I cannot find decent Cluster documentation anywhere. The Ubuntu you pointed me to isnt exactly what I need because they are running Vicidial on the Asterisk server itself, whereas I want to have SERVER1 - MySQL/Vicidial/Apache/PHP and SERVER2 - Asterisk.

Am I going about this wrong? What do you recommend for better implementation? The reason I'm trying to seperate all this out is because we have several call centers (5) and each has only 3-4 agents, so instead of dedicating hardware to each one, I want to run all the scripts/web stuff in VM (maybe even DB since it wont be hit hard) and have it make calls through a dedicated hardware server running Asterisk only.

3) I've heard people say not to run Vicidial in VM but not sure why because its only perl scrips. I'm not running Asterisk in VM, that is on dedicated hardware with dahdi-compliant timing device. Can anyone elaborate on why it "doesnt run well"?
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Thu Mar 18, 2010 7:18 pm

vicidial isn't just scripts. it is scripts and processes that must continually run. the asterisk server must have vicidial screens (launched and managed by vicidial scripts).

so you must have "vicidial" on all "asterisk" servers.

you must also have "vicidial" on the web server, since vicidial also interacts with the "agent" web client (i'm actually a little unclear on this portion since i've never had a need to "alter" this part, but this is how i understand it).

mysql may be moved around anywhere you like.

vicidial is processor intense and relies on hi-resolution timing to allow processes enough time to "timely" accomplish tasks without loss of ... time. remember that vicidial's goal is to quickly connect an inbound or outbound call with an agent waiting patiently in a conference.

to maintain hi-res, each tic of the processor is required, shared processor MISS ticks, it simply cannot be avoided (for long, under ANY load). so a test scenario may work fine, but as soon as a load is applied all the setup/test time becomes a waste of time. this has frustrated many professionals, especially Virtualization professionals.

but if YOU can do it, you'll make people very happy. feel free to ask questions when you have problems, but remember that aside from "oops" moments from not understanding your configuration, anything else could easily turn out to be "not gonna work ... it's virtual and will be unreliable, sorry".
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Thu Mar 18, 2010 7:25 pm

William,

We are running Vicidial on all Asterisk servers and our plan is to have 3-4 VM's per host machine and only run those 3-4 dialers (separate Vicidial VM's) per host machine. This way, we can have each call center manager mange their own Vicidial dialer. We have had it running for 2 weeks and is running fine with about 30 agents, which is what we expected.

Asterisk / MySQL is running on the hardware host and also we have a Sangoma usb adapter for the timing mechanism.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Thu Mar 18, 2010 7:27 pm

you are running Asterisk with Vicidial inside a single VM with 30 agents?
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby williamconley » Thu Mar 18, 2010 7:36 pm

because i'm confused with the "Asterisk MySQL with usb adapter" later mentioned ... since that obviously doesn't work inside a VM ...?
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Thu Mar 18, 2010 7:46 pm

Nope, setup like this.

Host: Running CentOS 5.4 with VMWare Server, Vicidial, Asterisk and MySQL
VM1 thru VM4: Running Vicidial / Apache

Sangoma is running on the hardware.
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Thu Mar 18, 2010 7:48 pm

now you've confused me. you have no asterisks inside the VMware? without asterisk .. you haven't virtualized anything worth virtualizing ... ?
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

Postby roundqube » Thu Mar 18, 2010 7:53 pm

Well in our environment, all we wanted to do was run multiple Vicidial's within one server and so that is what all the 4 VM's do for us. We want to keep Asterisk on the hardware especially since timing is critical. Running one vicidial per hardware server was a huge limitation for us so we separated our the Vicidial's into their own contained VM's that all access Asterisk and MySQL on the host machine. Makes more use of the hardware...
roundqube
 
Posts: 173
Joined: Fri Nov 06, 2009 9:58 am

Postby williamconley » Thu Mar 18, 2010 9:04 pm

waitwaitwaitwait

"multiple vicidials" ... "asterisk and mysql on the" ... you mean ... you have more than one "vicidial" but they are all attached to ONE asterisk server?

I guess that's something ... but ... with one asterisk, cannot the users of "vicidial1" listen in on the "conferences" (ie phone calls) of "vicidial2" simply by dialing the conference number?
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)

I love VMWare to test stuff

Postby livehelp4us » Tue Mar 23, 2010 3:17 am

hi roundqube, great to know that their are end-users also building vicidial in vmware platform

Im currently testing VicidialNow with upgraded ViciDial 2.2.0 installed on a VMWare everything works fine, now Im stepping up the configuration to run more ViciDialNow on VMware.

my objective is to have an IP PBX asterisk based system that is more flexible in terms of hardware upgrades in the future so all I have to do is copy vmware vicidial installed files to a newly build hardware.



roundqube wrote:Well in our environment, all we wanted to do was run multiple Vicidial's within one server and so that is what all the 4 VM's do for us. We want to keep Asterisk on the hardware especially since timing is critical. Running one vicidial per hardware server was a huge limitation for us so we separated our the Vicidial's into their own contained VM's that all access Asterisk and MySQL on the host machine. Makes more use of the hardware...
livehelp4us
 
Posts: 8
Joined: Mon Mar 22, 2010 4:47 pm

Postby williamconley » Tue Mar 23, 2010 10:08 am

how many simultaneous phone calls will your present installation support?
Vicidial Installation and Repair, plus Hosting and Colocation
Newest Product: Vicidial Agent Only Beep - Beta
http://www.PoundTeam.com # 352-269-0000 # +44(203) 769-2294
williamconley
 
Posts: 20019
Joined: Wed Oct 31, 2007 4:17 pm
Location: Davenport, FL (By Disney!)


Return to General Discussion

Who is online

Users browsing this forum: No registered users and 218 guests