by chickasaw » Wed May 02, 2012 3:27 pm
I do think that Event Triggers are causing a delay on the phone calls. That is correct, when I remove the Event Triggers there is no longer a delay on any of the phone call. And yes, I am only using the System Default URL and pointing back Event Specific URLs back to the System Default URL.
A customer calls in and a Chickasaw Electric employee answers the phone. This sends the Chickasaw Electric employees phone number and IP address to the server, thus forcing the Screenpop to kick in.
Here is what I need: 1) Somebody calls in to Chickasaw Electric. 2) Event Triggers then kick in. 3) Data is then sent to my PERL program. (BELOW IS MY CODE)
#!/usr/bin/perl
#tcpserver.pl
use IO::Socket::INET;
# flush after every write
$| = 1;
my ($socket,$client_socket);
my ($peeraddress,$peerport);
# creating object interface of IO::Socket::INET modules which internally does
# socket creation, binding and listening at the specified port address.
$socket = new IO::Socket::INET (
LocalHost => 'localhost',
LocalPort => 'port number',
Proto => 'tcp',
Listen => 15,
Reuse => 1
) or die "ERROR in Socket Creation : $!\n";
print "Server Waiting for client connection on port 7071";
while(1)
{
# waiting for new client connection.
$client_socket = $socket->accept();
# get the host and port number of newly connected client.
$peer_address = $client_socket->peerhost(),
$peer_port = $client_socket->peerport(),
print "Accepted New Client Connection From : $peeraddress, $peerport\n";
# write operation on the newly accepted client.
$data = "DATA from Server";
print $client_socket "$data\n";
# we can also send the data through IO::Socket::INET module,
$client_socket->send($data);
# read operation on the newly accepted client
$data = <$client_socket>;
# we can also read from socket through recv() in IO::Socket::INET
# $client_socket->recv($data,1024);
print "Received from Client : $data\n";
}
$socket->close();
4) The customers phone number and the Chickasaw Electric employee’s phone extension is sent from the Switchvox Event Trigger to the PERL program. 5) I will be using IF statements to link the Chickasaw Electric employees phone extension and IP address. 6) The customer’s phone number and the Chickasaw Electric employees IP address is then sent to another server port, that has the information to run the Screenpop application based on the information that was provided. 7) Screenpop then kicks in, thus allowing our program to open with the customer’s information.
My PERL Program currently creates a new port on the local host, thus allowing command prompt to be executed with the information, such as the Chickasaw Electric employee’s extension, the customer’s name, and number. Upon the completion of PERL it should execute steps 4-6, thus sending data to a certain port and allowing the Screenpop application to be executed containing the customers provided information.
I spoke with Digium Support and according to them a possible reason for my error is that no XML file is being sent back to the Swithvox server thus causing timeout error.