1 package FS::part_export::phone_sqlopensips;
3 use vars qw(@ISA @EXPORT_OK %info %options);
6 use FS::Record qw( dbh qsearch qsearchs );
11 @ISA = qw(FS::part_export);
13 tie %options, 'Tie::IxHash',
14 'datasrc' => { label=>'DBI data source ' },
15 'username' => { label=>'Database username' },
16 'password' => { label=>'Database password' },
21 'desc' => 'Export DIDs to OpenSIPs dr_rules table',
22 'options' => \%options,
23 'notes' => 'Export DIDs to OpenSIPs dr_rules table',
26 sub rebless { shift; }
29 my($self, $svc_x) = (shift, shift);
30 my $dbh = $self->opensips_connect;
31 my $sth = $dbh->prepare("insert into dr_rules ".
32 "( groupid, prefix, timerec, routeid, gwlist, description ) ".
33 " values ( ?, ?, ?, ?, ?, ? )") or die $dbh->errstr;
34 $sth->execute('0',$svc_x->phonenum,'',$svc_x->route,'',
35 $svc_x->phone_name) or die $sth->errstr;
40 sub opensips_connect {
42 DBI->connect($self->option('datasrc'),$self->option('username'),
43 $self->option('password')) or die $DBI::errstr;
47 my( $self, $new, $old ) = (shift, shift, shift);
51 if($old->route ne $new->route){
52 push @update, 'routeid = ?';
53 push @paramvalues, $new->route;
56 if($old->phone_name ne $new->phone_name) {
57 push @update, 'description = ?';
58 push @paramvalues, $new->phone_name;
62 my $update_str = join(' and ',@update);
63 my $dbh = $self->opensips_connect;
64 my $sth = $dbh->prepare("update dr_rules set $update_str " .
65 " where prefix = ? ") or die $dbh->errstr;
66 push @paramvalues, $old->phonenum;
67 $sth->execute(@paramvalues) or die $sth->errstr;
74 my( $self, $svc_phone ) = (shift, shift);
78 sub _export_unsuspend {
79 my( $self, $svc_phone ) = (shift, shift);
84 my( $self, $svc_x ) = (shift, shift);
85 my $dbh = $self->opensips_connect;
86 my $sth = $dbh->prepare("delete from dr_rules where prefix = ?")
88 $sth->execute($svc_x->phonenum) or die $sth->errstr;