diff --git a/scripts/sipsetup b/scripts/sipsetup new file mode 100755 index 0000000000..aae898b3ad --- /dev/null +++ b/scripts/sipsetup @@ -0,0 +1,170 @@ +#!/usr/bin/perl +# +# FreeSWITCH SIP Setup Assistant v1.0 +# Brian K. West +# +# + +use Data::Dumper; +use File::Copy; + + +my $PREFIX = "/usr/local/freeswitch"; + +my $providers = { + "1" => "FWD", + "2" => "SP", + "3" => "IS", + "4" => "AL", + "5" => "SB" + }; + + +my $FWD = { + "type" => "network", + "register" => "true", + "fields" => [number, password, extension], + "domain" => "pulver.com", + "dialprefix" => "1-393" + }; + +my $SP = { + "type" => "network", + "register" => "true", + "fields" => [username, password, extension], + "domain" => "sipphone.com", + "dialprefix" => "1-747, 1-222" + }; + +my $IS = { + "type" => "network", + "register" => "true", + "fields" => [username, password, extension], + "domain" => "ideasip.com", + "dialprefix" => "1-101" + }; + +my $AL = { + "type" => "pstn", + "register" => "true", + "fields" => [username, password, extension], + "domain" => "asterlink.com", + }; + +my $SB = { + "type" => "peer", + "domain" => "sipbroker.com", + "dialprefix" => "*XXX" + }; + +my $TEMPLATES = { + "FWD" => $FWD, + "SP" => $SP, + "IS" => $IS, + "AL" => $AL, + "SB" => $SB + }; + +print "\n" x 60; +&welcome; + +sub welcome { + print <; + chomp($i); + if ($i =~ m/X|x/) { + print "Thanks you!\n"; exit; + } elsif ($i > 5) { + print "Invalid Choice\n"; &welcome; + } else { + if (exists($providers->{$i})) { + configure_sip_provider($providers->{$i}); + } + }; + &welcome; +} + +sub configure_sip_provider($) { + my $provider = shift; + my $template = $TEMPLATES->{$provider}; + my $config; + my $check = 1; + foreach $field (@{$template->{fields}}) { + print "\nPlease your $template->{domain} $field: "; + $tmp = "$provider" . uc($field); + $i = ; + chomp($i); + $config->{$tmp} = $i; + } + + while($check) { + $check = &are_you_sure; + }; + + if ($template->{type} eq "network") { + do_config($provider, $config); + } + if ($template->{dialprefix}) { + enable_extension($provider, $config); + } + print "\n\n\nConfiguration Complete!!!\n\n\n\n\n"; + sleep(2); + &welcome; +} + +sub enable_extension($$) { + my $provider = shift; + my $config = shift; + + my $todo = $TEMPLATES->{$provider}; + + copy("$PREFIX/conf/dialplan/extensions/$todo->{domain}.noload", "$PREFIX/conf/dialplan/extensions/$todo->{domain}.xml"); + print "\nExtension prefix $todo->{dialprefix} enabled for dialing $todo->{domain}...\n"; +} + +sub do_config($$) { + my $provider = shift; + my $config = shift; + my $todo = $TEMPLATES->{$provider}; + + open(TEMPLATE, "<$PREFIX/conf/directory/default/$todo->{domain}.noload"); + @lines =