projects
/
freeside.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
send countrycode with phone number
[freeside.git]
/
FS
/
FS
/
part_export
/
huawei_hlr.pm
diff --git
a/FS/FS/part_export/huawei_hlr.pm
b/FS/FS/part_export/huawei_hlr.pm
index
fb3b679
..
d231567
100644
(file)
--- a/
FS/FS/part_export/huawei_hlr.pm
+++ b/
FS/FS/part_export/huawei_hlr.pm
@@
-18,6
+18,7
@@
tie my %options, 'Tie::IxHash',
'pwd' => { label=>'Operator password' },
'tplid' => { label=>'Template number' },
'hlrsn' => { label=>'HLR serial number' },
'pwd' => { label=>'Operator password' },
'tplid' => { label=>'Template number' },
'hlrsn' => { label=>'HLR serial number' },
+ 'timeout' => { label=>'Timeout (seconds)', default => 120 },
'debug' => { label=>'Enable debugging', type=>'checkbox' },
;
'debug' => { label=>'Enable debugging', type=>'checkbox' },
;
@@
-36,13
+37,13
@@
sub _export_insert {
my( $self, $svc_phone ) = (shift, shift);
# svc_phone::check should ensure phonenum and sim_imsi are numeric
my @command = (
my( $self, $svc_phone ) = (shift, shift);
# svc_phone::check should ensure phonenum and sim_imsi are numeric
my @command = (
- 'ADD TPLSUB',
IMSI => '"'.$svc_phone->sim_imsi.'"',
IMSI => '"'.$svc_phone->sim_imsi.'"',
- ISDN => '"'.$svc_phone->phonenum.'"',
+ ISDN => '"'.$svc_phone->
countrycode.$svc_phone->
phonenum.'"',
TPLID => $self->option('tplid'),
);
unshift @command, 'HLRSN', $self->option('hlrsn')
if $self->option('hlrsn');
TPLID => $self->option('tplid'),
);
unshift @command, 'HLRSN', $self->option('hlrsn')
if $self->option('hlrsn');
+ unshift @command, 'ADD TPLSUB';
my $err_or_queue = $self->queue_command($svc_phone->svcnum, @command);
ref($err_or_queue) ? '' : $err_or_queue;
}
my $err_or_queue = $self->queue_command($svc_phone->svcnum, @command);
ref($err_or_queue) ? '' : $err_or_queue;
}
@@
-53,7
+54,7
@@
sub _export_replace {
if ( $new->sim_imsi ne $old->sim_imsi ) {
my @command = (
'MOD IMSI',
if ( $new->sim_imsi ne $old->sim_imsi ) {
my @command = (
'MOD IMSI',
- ISDN => '"'.$old->phonenum.'"',
+ ISDN => '"'.$old->
countrycode.$old->
phonenum.'"',
IMSI => '"'.$old->sim_imsi.'"',
NEWIMSI => '"'.$new->sim_imsi.'"',
);
IMSI => '"'.$old->sim_imsi.'"',
NEWIMSI => '"'.$new->sim_imsi.'"',
);
@@
-61,11
+62,12
@@
sub _export_replace {
return $err_or_queue unless ref $err_or_queue;
$depend_jobnum = $err_or_queue->jobnum;
}
return $err_or_queue unless ref $err_or_queue;
$depend_jobnum = $err_or_queue->jobnum;
}
- if ( $new->phonenum ne $old->phonenum ) {
+ if ( $new->countrycode ne $old->countrycode or
+ $new->phonenum ne $old->phonenum ) {
my @command = (
'MOD ISDN',
my @command = (
'MOD ISDN',
- ISDN => '"'.$old->phonenum.'"',
- NEWISDN => '"'.$new->phonenum.'"',
+ ISDN => '"'.$old->
countrycode.$old->
phonenum.'"',
+ NEWISDN => '"'.$new->
countrycode.$new->
phonenum.'"',
);
my $err_or_queue = $self->queue_command($new->svcnum, @command);
return $err_or_queue unless ref $err_or_queue;
);
my $err_or_queue = $self->queue_command($new->svcnum, @command);
return $err_or_queue unless ref $err_or_queue;
@@
-94,7
+96,7
@@
sub _export_lock {
my @command = (
'MOD LCK',
IMSI => '"'.$svc_phone->sim_imsi.'"',
my @command = (
'MOD LCK',
IMSI => '"'.$svc_phone->sim_imsi.'"',
- ISDN => '"'.$svc_phone->phonenum.'"',
+ ISDN => '"'.$svc_phone->
countrycode.$svc_phone->
phonenum.'"',
IC => $lockstate,
OC => $lockstate,
GPRSLOCK=> $lockstate,
IC => $lockstate,
OC => $lockstate,
GPRSLOCK=> $lockstate,
@@
-107,8
+109,8
@@
sub _export_delete {
my( $self, $svc_phone ) = (shift, shift);
my @command = (
'RMV SUB',
my( $self, $svc_phone ) = (shift, shift);
my @command = (
'RMV SUB',
- IMSI => '"'.$svc_phone->sim_imsi.'"',
- ISDN => '"'.$svc_phone->phonenum.'"',
+
#
IMSI => '"'.$svc_phone->sim_imsi.'"',
+ ISDN => '"'.$svc_phone->
countrycode.$svc_phone->
phonenum.'"',
);
my $err_or_queue = $self->queue_command($svc_phone->svcnum, @command);
ref($err_or_queue) ? '' : $err_or_queue;
);
my $err_or_queue = $self->queue_command($svc_phone->svcnum, @command);
ref($err_or_queue) ? '' : $err_or_queue;
@@
-179,15
+181,16
@@
sub command {
$string .= shift(@param) . '=' . shift(@param);
$string .= ',' if @param;
}
$string .= shift(@param) . '=' . shift(@param);
$string .= ',' if @param;
}
- $string .= "\n";
+ $string .= "\n
;
";
my @result;
eval { # timeout
local $SIG{ALRM} = sub { die "timeout\n" };
my @result;
eval { # timeout
local $SIG{ALRM} = sub { die "timeout\n" };
- alarm ($self->option('timeout') ||
3
0);
+ alarm ($self->option('timeout') ||
12
0);
warn "Sending to server:\n$string\n\n" if $DEBUG;
$socket->print($string);
warn "Received:\n";
my $line;
warn "Sending to server:\n$string\n\n" if $DEBUG;
$socket->print($string);
warn "Received:\n";
my $line;
+ local $/ = "\r\n";
do {
$line = $socket->getline();
warn $line if $DEBUG;
do {
$line = $socket->getline();
warn $line if $DEBUG;
@@
-203,11
+206,10
@@
sub command {
return { error => $@ };
} else {
#+++ HLR9820 <date> <time>\n
return { error => $@ };
} else {
#+++ HLR9820 <date> <time>\n
- # skip empty lines
my $header = shift(@result);
my $header = shift(@result);
- return { error => 'malformed response: '.$header }
-
unless $header =~ /^\+\+\+/
;
- $return{header} = $
header
;
+ $header =~ /(\+\+\+.*)/
+
or return { error => 'malformed response: '.$header }
;
+ $return{header} = $
1
;
#SMU #<serial number>\n
$return{smu} = shift(@result);
#%%<command string>%%\n
#SMU #<serial number>\n
$return{smu} = shift(@result);
#%%<command string>%%\n