Author: brian Date: Fri Jan 4 13:24:00 2008 New Revision: 7082 Added: freeswitch/trunk/scripts/scenario/ freeswitch/trunk/scripts/scenario/attended_transfer.button freeswitch/trunk/scripts/scenario/blind_transfer.button freeswitch/trunk/scripts/scenario/offhook.button freeswitch/trunk/scripts/scenario/phones.cfg freeswitch/trunk/scripts/scenario/runscenario.pl (contents, props changed) Log: These are used to run test scenarios against snom phones for automated testing Added: freeswitch/trunk/scripts/scenario/attended_transfer.button ============================================================================== --- (empty file) +++ freeswitch/trunk/scripts/scenario/attended_transfer.button Fri Jan 4 13:24:00 2008 @@ -0,0 +1,14 @@ +Snom_300,key,CANCEL +Snom_360,key,CANCEL +Snom_370,key,CANCEL +Snom_300,key,ONHOOK +Snom_360,key,ONHOOK +Snom_370,key,ONHOOK,1 +Snom_300,number,1006,1 +Snom_360,key,OFFHOOK, 1 +Snom_360,key,F_HOLD, 1 +Snom_360,number,1007,2 +Snom_370,key,OFFHOOK,1 +Snom_360,key,F_TRANSFER,2 +Snom_360,key,ONHOOK + Added: freeswitch/trunk/scripts/scenario/blind_transfer.button ============================================================================== --- (empty file) +++ freeswitch/trunk/scripts/scenario/blind_transfer.button Fri Jan 4 13:24:00 2008 @@ -0,0 +1,11 @@ +Snom_300,key,CANCEL +Snom_360,key,CANCEL +Snom_370,key,CANCEL +Snom_300,key,ONHOOK +Snom_360,key,ONHOOK +Snom_370,key,ONHOOK,1 +Snom_300,number,1006,1 +Snom_360,key,OFFHOOK,1 +Snom_360,key,F_TRANSFER,1 +Snom_360,number,1007,2 +Snom_370,key,OFFHOOK,1 Added: freeswitch/trunk/scripts/scenario/offhook.button ============================================================================== --- (empty file) +++ freeswitch/trunk/scripts/scenario/offhook.button Fri Jan 4 13:24:00 2008 @@ -0,0 +1,8 @@ +Snom_300,key,OFFHOOK +Snom_320,key,OFFHOOK +Snom_360,key,OFFHOOK +Snom_370,key,OFFHOOK +Snom_300,key,ONHOOK +Snom_320,key,ONHOOK +Snom_360,key,ONHOOK +Snom_370,key,ONHOOK Added: freeswitch/trunk/scripts/scenario/phones.cfg ============================================================================== --- (empty file) +++ freeswitch/trunk/scripts/scenario/phones.cfg Fri Jan 4 13:24:00 2008 @@ -0,0 +1,4 @@ +Snom_300,10.0.1.241,1000 +Snom_320,10.0.1.242,1002 +Snom_360,10.0.1.243,1006 +Snom_370,10.0.1.244,1007 Added: freeswitch/trunk/scripts/scenario/runscenario.pl ============================================================================== --- (empty file) +++ freeswitch/trunk/scripts/scenario/runscenario.pl Fri Jan 4 13:24:00 2008 @@ -0,0 +1,59 @@ +#!/usr/bin/perl +# +# Scenario Test Execution. +# +use LWP::UserAgent; +use Data::Dumper; + +$| =1; + +our $ua = LWP::UserAgent->new; +my $phone = load_config(); + +if(-f $ARGV[0]) { + run_scenario($ARGV[0]); +} else { + print "No Scenario File?\n"; + exit; +} + +sub run_scenario($$) { + $file = shift; + open(SCENARIO,"<$file"); + @commands = <SCENARIO>; + print Dumper $info; + foreach $command (@commands) { + chomp $command; + my($target, $type, $button, $delay) = split(",",$command); + &push_button($phone->{$target}, "$type", "$button", $delay); + + } +} + +sub push_button ($$$) { + $info = shift; + $type = shift; + $button = shift; + $delay = shift; + + if($delay) { + sleep($delay); + } else { + $delay = 0; + } + print "$info->{name} -> $type => $button with delay $delay\n"; + + $request = HTTP::Request->new("GET", "http://$info->{ip}/command.htm?$type=$button"); + $return = $ua->request($request); +} + +sub load_config { + open(CFG,"<phones.cfg"); + @phones = <CFG>; + foreach $line (@phones) { + chomp $line; + my($name,$ip,$extension) = split(",", $line); + $phone->{$name} = {name => $name, ip => $ip, extension => $extension} + } + return $phone; +}