On Tue, 20 Nov 2001, Serge Matveev wrote:

>
>     Я заметил, хотя у меня оно не работает:

Так это я протормозил вчера, и когда патч, переделывающий help-систему
слал, забыл удалить оттуда help по команде sms, хотя саму команду не
включил как неработоспособную. Заработало оно где-то с час назад.
Закидываю patch (против текущей
devel-версии) в список, благо маленький. Думаю, что завтрашняя версия
будет уже содержать версию из коробки. Автор оперативен.

С этим патчем посылка sms-ок работает. Вот reply на sms-ки пока
не работает. Это, к сожалению, стоит 5 центов за тестовый прогон.
Так что придется долго читать код прежде чем начинать тестировать.

Да, это нигде не написано (что видимо бага) но номер следует вводить
как 7xxxyyyyyyy где 7 - код страны (Росссия), xxx- код оператора
yyyyyyy - номер телефона. Т.е. плюсик в начале не нужен.



-- 
Victor Wagner                   [EMAIL PROTECTED]
Chief Technical Officer         Office:7-(095)-748-53-88
Communiware.Net                 Home: 7-(095)-135-46-61
http://www.communiware.net      http://www.ice.ru/~vitus
--- vicq.orig   Mon Nov 19 21:20:13 2001
+++ vicq        Tue Nov 20 16:36:52 2001
@@ -1796,6 +1796,38 @@
                                log_event($uin,"Send message to $nick\n$msg\n");
                                return "You send instant message to $nick";
                        },
+       'sms' => sub {
+                               my @args = @_;
+                               my $target = '';
+                               my $msg = '';
+                               my ($details);
+                               if($args[0]=~/\//)
+                               {
+                                       my $line = join '',@args;
+                                       if($line =~ /^([+0-9]+)\/(.*)$/)
+                                       {
+                                               $msg = $2;
+                                               $target = $1;
+                                               if(!$target) { return "invalid 
number"; }
+                                       }
+                               } else
+                               {
+                               $target = $args[0];
+                                       if($target !~ /^[+0-9]+$/) { return 
"invalid number"; }
+                                       print "Composing message to 
$args[0]:\n";
+                                       $msg = read_message();
+                               }
+                               $last_message_to = $uin;
+                               my %details = ( SMS_Dest_Number  => $target,
+                                                               MessageType => 
'SMS',
+                                                               text =>  
encode($msg),
+                                                               
delivery_receipt=>'Yes'                                                         
+                                                               
+                               );
+                               $icq->Send_Command("Cmd_Srv_Message", 
\%details);
+                                log_event($target,"Send SMS to 
$target\n$msg\n");
+                               return "You send SMS message to $target\n";
+                       },
        'a' => sub {
                                my @args = @_;
                                my $uin = $last_message_to;
@@ -2147,7 +2179,8 @@
        print CONF "[options]\n";
        foreach (keys %config)
        {
-               print CONF "$_=$config{$_}\n" unless $_ eq 'password';
+               print CONF "$_=$config{$_}\n" 
+                   unless $_ eq 'password' && !$save_password; 
        }
        if (@ExternalHooks) {
          print CONF "[events]\n";
@@ -2203,6 +2236,9 @@
                {
                        ($name,$value) = split /=/;
                        $config{$name} = $value;
+                       if ($name eq 'password') {
+                          $save_password=1;
+                      }   
                }
                elsif($section eq 'contacts')
                {
@@ -2242,7 +2278,6 @@
                       
                    }   
                } elsif ($section eq 'aliases') {
-                  print STDERR "Found alias line $_\n";
                    if (/([^ \t=]+)\s*=\s*([^ \t=]+)/) {
                      my $new =$1;
                      my $old = $2;
@@ -2251,7 +2286,6 @@
                        if ! exists $_command_handlers{$old};
                      $helps{$new} = $helps{$old};              
                      $_command_handlers{$new} = $_command_handlers{$old};
-                     print STDERR "$new is now alias to $old\n";
                  } else {
                     die "Invalid alias syntax\n"; 
                 }   
@@ -2259,6 +2293,7 @@
                   die "Invalid section in config file: $section\n";
               }   
        }
+       print "Done\n";
        if(!$config{colors})
        {
                $config{separator_color} = '';
@@ -2480,6 +2515,7 @@
                $last_message_from = $details->{Sender};
                $details->{URL} = color_message(decode($details->{URL}));
                $details->{Description} = 
color_message(decode($details->{Description}));
+               $last_message_url = $details->{URL};
                print "URL message from $name\nURL : 
$details->{URL}\nDescription:\n$details->{Description}\n"; 
                log_event($last_message_from, "URL message from $name\nURL : 
$details->{URL}\nDescription:\n$details->{Description}\n");
     }
@@ -2494,6 +2530,10 @@
         #$details->{message_id}       - The ID given to the SMS message
         #$details->{messages_left}    - Messages left to send (I always get 
0..)
         #$details->{TaggedDataString} - The non decoded data string, log it if 
the message isn't deliverable, since it contains the error message (which isn't 
collected very verll otherwise..)
+       print "Response from SMS 
server:\ndeliberable:$details->{deliverable}\n",
+       "network: $details->{network}\nmessage_id: $details->{message_id}\n";
+       log_event("SMSC","Response from SMS server:\ndeliberable: 
$details->{deliverable}\n". 
+       "network: $details->{network}\nmessage_id: $details->{message_id}\n");
     }
        
invoke_hook($details->{MessageType},$details->{sender},$details->{text});
        separator();

Ответить