From 21c3ee38fc44a1ff55f1dc1755ab13ffde82de16 Mon Sep 17 00:00:00 2001 From: Mark Wells Date: Sun, 24 Feb 2013 20:42:03 -0800 Subject: [PATCH] protocol fixes, #20836 --- FS/FS/part_export/huawei_hlr.pm | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/FS/FS/part_export/huawei_hlr.pm b/FS/FS/part_export/huawei_hlr.pm index fb3b6790a..5a6a98352 100644 --- 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' }, + 'timeout' => { label=>'Timeout (seconds)', default => 120 }, '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 = ( - 'ADD TPLSUB', IMSI => '"'.$svc_phone->sim_imsi.'"', ISDN => '"'.$svc_phone->phonenum.'"', 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; } @@ -107,7 +108,7 @@ sub _export_delete { my( $self, $svc_phone ) = (shift, shift); my @command = ( 'RMV SUB', - IMSI => '"'.$svc_phone->sim_imsi.'"', + #IMSI => '"'.$svc_phone->sim_imsi.'"', ISDN => '"'.$svc_phone->phonenum.'"', ); my $err_or_queue = $self->queue_command($svc_phone->svcnum, @command); @@ -179,15 +180,16 @@ sub command { $string .= shift(@param) . '=' . shift(@param); $string .= ',' if @param; } - $string .= "\n"; + $string .= "\n;"; my @result; eval { # timeout local $SIG{ALRM} = sub { die "timeout\n" }; - alarm ($self->option('timeout') || 30); + alarm ($self->option('timeout') || 120); 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; @@ -203,11 +205,10 @@ sub command { return { error => $@ }; } else { #+++ HLR9820