VIDEOCHAT  ::   FAQ  ::   Поиск  ::   Регистрация  ::   Вход

скрип для очистки памяти сим карты

Новичком считается только что прочитавший «Астериск - будущее телефонии»
http://asterisk.ru/knowledgebase/books
и пытающийся сделать большее

Модераторы: april22, Zavr2008

Alpha
Сообщения: 4
Зарегистрирован: 24 дек 2012, 20:16

скрип для очистки памяти сим карты

Сообщение Alpha »

Хочу написать скрипт для очистки памяти сим карты от смс
с помощью команды
dongle cmd datacard0 AT+CMGD=1,4
погулив написал

Код: Выделить всё

#!/usr/bin/perl
 
use warnings;
use strict;
use Asterisk::AGI;
 
my $AGI = new Asterisk::AGI;
my  %input = $AGI->ReadParse();
 
my $work_dir = "/usr/local/share/asterisk/agi-bin/";

##START
$AGI->exec("asterisk -rvv 'dongle cmd datacard0  AT+CMGD=1,4' ");

exit();
#END
запускаю ошибок нет, но скрип подвисает, видимого эффекта нет

Подскажите может я чего не правильно делаю.
Заранее спасибо
Аватара пользователя
zzuz
Сообщения: 1658
Зарегистрирован: 21 сен 2010, 13:33
Контактная информация:

Re: скрип для очистки памяти сим карты

Сообщение zzuz »

проблема в использовании строки

Код: Выделить всё

$AGI->exec("asterisk -rvv 'dongle cmd datacard0  AT+CMGD=1,4' ");
Линия24 - Системы Массового Телефонного Обслуживания
Samael28
Сообщения: 1057
Зарегистрирован: 08 янв 2011, 18:32
Откуда: Киев
Контактная информация:

Re: скрип для очистки памяти сим карты

Сообщение Samael28 »

В AGI есть функция Command. Exec - это как-то через з.... Ну и неправильные опции, да.
Мой профайл на Upwork
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: скрип для очистки памяти сим карты

Сообщение Vlad1983 »

Код: Выделить всё

$AGI->command("dongle cmd datacard0 AT+CMGD=1,4");
ЛС: @rostel
Alpha
Сообщения: 4
Зарегистрирован: 24 дек 2012, 20:16

Re: скрип для очистки памяти сим карты

Сообщение Alpha »

заменил как написал Влад, скрипт запускается, но не завершается.
теперь другой вопрос, можно ли это скрипт запускать вручную или только через диалплан в экстеншене?
И еще погуглив так и не нашел команды AGI command, подскажит учебник или справочник по Аги
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: скрип для очистки памяти сим карты

Сообщение Vlad1983 »

проморгал что вы на perl замутили

то что написал работает с php-agi (в составе есть phpagi-asmanager.php) из под cron

вот пример мониторинга регистраций

Код: Выделить всё

#!/usr/bin/php -q
<?php

date_default_timezone_set('Europe/Moscow');

require_once('/var/lib/asterisk/agi-bin/phpagi-asmanager.php');

$asm = new AGI_AsteriskManager();

if($asm->connect())
{
    $devices = $asm->command("sip show registry");
    //print_r($devices);

      foreach(explode("\n", $devices['data']) as $line)
      {
        if (preg_match("/^(\S+)\s+\S+\s+\S+\s+\S+\s{1,}(\S+)/i",$line,$match)) {
            switch($match[2]){
                case "Unregistered" : sendalarm($match[1],$match[2]); break;
                case "Rejected" : sendalarm($match[1],$match[2]); break;
                case "Timeout" : sendalarm($match[1],$match[2]); break;
                case "No" : sendalarm($match[1],$match[2]); break; //No Authentication
                case "Unknown" : sendalarm($match[1],$match[2]); break;
            }
        }
      }

    $asm->disconnect();

}

function sendalarm($peer='',$status=''){
    $message = "Peer: ".$peer." Status: ".$status."\n";
    mail("sovsem@pisem.net", "peer registry fail", $message, "From: ast@pisem.net"");
    exec("/usr/sbin/asterisk -rx 'sip reload'");
}

?>
ЛС: @rostel
pan-user
Сообщения: 128
Зарегистрирован: 24 мар 2011, 13:40

Re: скрип для очистки памяти сим карты

Сообщение pan-user »

прям все на своей волне, вместо perl - php, вместо agi - ami...
Vlad1983
Сообщения: 4251
Зарегистрирован: 09 авг 2011, 11:51

Re: скрип для очистки памяти сим карты

Сообщение Vlad1983 »

для перла есть Asterisk::AMI

кружить на AGI подобные задачи нет смысла - не для того оно
ЛС: @rostel
Alpha
Сообщения: 4
Зарегистрирован: 24 дек 2012, 20:16

Re: скрип для очистки памяти сим карты

Сообщение Alpha »

спасибо за ответ, теперь есть где копать.
Alpha
Сообщения: 4
Зарегистрирован: 24 дек 2012, 20:16

Re: скрип для очистки памяти сим карты

Сообщение Alpha »

Кому интересно, все получилось - вот код. Cpan rules!

Код: Выделить всё

#!/usr/bin/perl

use Modern::Perl;
use Data::Dumper;
use Asterisk::AMI;
use warnings;

my $astman = Asterisk::AMI->new(PeerAddr =>  'ваш ip',
                                PeerPort =>  '5038',
                                Events   =>  'on',
                                Username =>  'admin',
                                Secret   =>  'пароль'

                        );die "Unable to connect to asterisk" unless ($astman);
#print Dumper\$astman;

my $response = $astman->action({
    Action => 'Command',
    Command => 'dongle cmd datacard0 AT+CMGD=1,4'
});

Ответить
© 2008 — 2025 Asterisk.ru
Digium, Asterisk and AsteriskNOW are registered trademarks of Digium, Inc.
Design and development by PostMet-Netzwerk GmbH