summaryrefslogtreecommitdiff
path: root/FS/FS/part_export/indosoft.pm
diff options
context:
space:
mode:
Diffstat (limited to 'FS/FS/part_export/indosoft.pm')
-rw-r--r--FS/FS/part_export/indosoft.pm219
1 files changed, 0 insertions, 219 deletions
diff --git a/FS/FS/part_export/indosoft.pm b/FS/FS/part_export/indosoft.pm
deleted file mode 100644
index b573401..0000000
--- a/FS/FS/part_export/indosoft.pm
+++ /dev/null
@@ -1,219 +0,0 @@
-package FS::part_export::indosoft;
-
-use vars qw(@ISA %info $insert_hack);
-use Tie::IxHash;
-use Date::Format;
-use FS::part_export;
-
-@ISA = qw(FS::part_export);
-
-tie my %options, 'Tie::IxHash',
- 'url' => { label => 'Voicebridge API URL' },
- 'account_id' => { label => 'Voicebridge Account ID' },
-;
-
-%info = (
- 'svc' => 'svc_phone', #svc_bridge? svc_confbridge?
- 'desc' =>
- 'Export conferences to the Indosoft Conference Bridge',
- 'options' => \%options,
- 'notes' => <<'END'
-Export conferences to the Indosoft conference bridge.
-Net::Indosoft::Voicebridge is required.
-END
-);
-
-$insert_hack = 0;
-
-sub rebless { shift; }
-
-sub _export_insert {
- my($self, $svc_phone) = (shift, shift);
-
- my $cust_main = $svc_phone->cust_svc->cust_pkg->cust_main;
-
- my $address = $cust_main->address1;
- $address .= ' '.$cust_main->address2 if $cust_main->address2;
-
- my $phone = $cust_main->daytime || $cust_main->night;
-
- my @email = $cust_main->invoicing_list_emailonly;
-
- #svc_phone->location_hash stuff? well that was for e911.. this shouldn't
- # even be svc_phone
-
- #add client
- my $client_return = eval {
- indosoft_runcommand( 'addClient',
- 'account_id' => $self->option('account_id'),
-
- 'client_contact_name' => $cust_main->name, #or just first last?
- 'client_contact_password' => $svc_phone->sip_password, # ?
-
- 'client_contact_addr' => $address,
- 'client_contact_city' => $cust_main->city,
- 'client_contact_state' => $cust_main->state,
- 'client_contact_country' => $cust_main->country,
- 'client_contact_zip' => $cust_main->zip,
-
- 'client_contact_phone' => $phone,
- 'client_contact_fax' => $cust_main->fax,
- 'client_contact_email' => $email[0],
- );
- };
- return $@ if $@;
-
- my $client_id = $client_return->{client_id};
-
- #add conference
- my $conf_return = eval {
- indosoft_runcommand( 'addConference',
- 'client_id' => $client_id,
- 'conference_name' => $cust_main->name,
- 'conference_desc' => $svc_phone->svcnum. ' for '. $cust_main->name,
- 'start_time' => time2str('%Y-%d-$m %T', time), #now, right?? '2010-20-04 16:20:00',
- #'moderated_flag' => 0,
- #'entry_ann_flag' => 0
- #'record_flag' => 0
- #'moh_flag' => 0
- #'talk_detect_flag' => 0
- #'play_user_cnt_flag' => 0
- #'wait_for_admin' => 0
- #'stop_on_admin_exit' => 0
- #'second_pin' => 0
- #'secondary_pin' => 0,
- #'allow_sub-conf' => 0,
- #'duration' => 0,
- #'conference_type' => 'reservation', #'reservationless',
- );
- };
- return $@ if $@;
-
- my $conference_id = $conf_return->{conference_id};
-
- #put conference_id in svc_phone.phonenum (and client_id in... phone_name???)
- local($insert_hack) = 1;
- $svc_phone->phonenum($conference_id);
- $svc_phone->phone_name($client_id);
- #my $error = $svc_phone->replace;
- #return $error if $error;
- $svc_phone->replace;
-
-}
-
-sub _export_replace {
- my( $self, $new, $old ) = (shift, shift, shift);
- return "can't change phone number as conference_id with indosoft"
- if $old->phonenum ne $new->phonenum && ! $insert_hack;
- return '';
-
- #change anything?
-}
-
-sub _export_delete {
- my( $self, $svc_phone ) = (shift, shift);
-
- #delete conference
- my $conf_return = eval {
- indosoft_runcommand( 'deleteConference',
- 'conference_id' => $svc_phone->phonenum,
- );
- };
- return $@ if $@;
-
- #delete client
- my $client_return = eval {
- indosoft_runcommand( 'deleteClient',
- 'client_id' => $svc_phone->phone_name,
- )
- };
- return $@ if $@;
-
- '';
-
-}
-
-# #these three are optional
-# # fallback for svc_acct will change and restore password
-# sub _export_suspend {
-# my( $self, $svc_phone ) = (shift, shift);
-# $err_or_queue = $self->indosoft_queue( $svc_phone->svcnum,
-# 'suspend', $svc_phone->username );
-# ref($err_or_queue) ? '' : $err_or_queue;
-# }
-#
-# sub _export_unsuspend {
-# my( $self, $svc_phone ) = (shift, shift);
-# $err_or_queue = $self->indosoft_queue( $svc_phone->svcnum,
-# 'unsuspend', $svc_phone->username );
-# ref($err_or_queue) ? '' : $err_or_queue;
-# }
-#
-# sub export_links {
-# my($self, $svc_phone, $arrayref) = (shift, shift, shift);
-# #push @$arrayref, qq!<A HREF="http://example.com/~!. $svc_phone->username.
-# # qq!">!. $svc_phone->username. qq!</A>!;
-# '';
-# }
-
-###
-
-sub indosoft_runcommand {
- my( $self, $method ) = (shift, shift);
-
- indosoft_command(
- $self->option('url'),
- $method,
- @_,
- );
-
-}
-
-sub indosoft_command {
- my( $url, $method, @args ) = @_;
-
- eval 'use Net::Indosoft::Voicebridge;';
- die $@ if $@;
-
- my $vb = new Net::Indosoft::Voicebridge( 'url' => $url );
-
- my $return = $vb->$method( @args );
-
- die "Indosoft error: ". $return->{'error'} if $return->{'error'};
-
- $return;
-
-}
-
-
-# #a good idea to queue anything that could fail or take any time
-# sub indosoft_queue {
-# my( $self, $svcnum, $method ) = (shift, shift, shift);
-# my $queue = new FS::queue {
-# 'svcnum' => $svcnum,
-# 'job' => "FS::part_export::indosoft::indosoft_$method",
-# };
-# $queue->insert( @_ ) or $queue;
-# }
-#
-# sub indosoft_insert { #subroutine, not method
-# my( $username, $password ) = @_;
-# #do things with $username and $password
-# }
-#
-# sub indosoft_replace { #subroutine, not method
-# }
-#
-# sub indosoft_delete { #subroutine, not method
-# my( $username ) = @_;
-# #do things with $username
-# }
-#
-# sub indosoft_suspend { #subroutine, not method
-# }
-#
-# sub indosoft_unsuspend { #subroutine, not method
-# }
-
-
-1;