Задать вопрос
  • Почему скрипт запуска виртуальной машины перестал работать?

    @dimone73 Автор вопроса
    PowerShell -WindowStyle hidden
    выключает и красные ошибки, проблема решена.
    Скрипт какие куски нашел, такие и соединил, давно это было, до ИИ вообще - два года назад. И вообще под Win я не писатель, тем более PowerShell. Хотел было сейчас у ИИ спросить, но неплохо бы подписку на него иметь да и тут народ отзывчивый.
    Скрипт делает свое дело и ладно, на чем угодно пусть написан - сейчас вспыхивает и схлопывается окно скрипта, потом окно для ввода даты, потом окно запуска VBox, закрвается само после запуска виртуалки. Проблема ушла.
    @set @x=0; /*
    @echo off
    ver |>NUL find /v "5." && if "%~1"=="" cscript.exe //nologo //e:jscript "%~f0"& exit /b
    
    @Findstr -bv ;@ "%~f0" | powershell -WindowStyle hidden -noprofile -command - & goto:eof
    # All except ;@ is a powershell script!
    [Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding("utf-8")
    # Config parameters #
    # Path of the VBoxManage executable.
    $VB_MANAGE ="C:\Program Files\Oracle\VirtualBox\VBoxManage"
    
    # Name or uuid of the virtualbox to start.
    $vmname ='Kirisun-DS5800-server'
    
    # Default BIOS time dd/mm/yyyy
    $BIOStime = '08/01/2023'
    
    function CustomInputBox([string] $title, [string] $message, [string] $defaultText) {
      [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing")
      [void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
    
     $userForm = New-Object System.Windows.Forms.Form
      $userForm.Text = "$title"
      $userForm.Size = New-Object System.Drawing.Size(400,150)
      $userForm.StartPosition = "CenterScreen"
          $userForm.AutoSize = $False
          $userForm.MinimizeBox = $False
          $userForm.MaximizeBox = $False
          $userForm.SizeGripStyle= "Hide"
          $userForm.WindowState = "Normal"
          $userForm.FormBorderStyle="Fixed3D"  
          $userForm.ShowInTaskBar = $False
         
      $OKButton = New-Object System.Windows.Forms.Button
      $OKButton.Location = New-Object System.Drawing.Size(115,80)
      $OKButton.Size = New-Object System.Drawing.Size(75,23)
      $OKButton.Text = "OK"
      $OKButton.DialogResult = [System.Windows.Forms.DialogResult]::OK
      $userForm.AcceptButton = $OKButton
      $userForm.Controls.Add($OKButton)
      $OKButton.tabindex = 1
    
     $CancelButton = New-Object System.Windows.Forms.Button
      $CancelButton.Location = New-Object System.Drawing.Size(195,80)
      $CancelButton.Size = New-Object System.Drawing.Size(75,23)
      $CancelButton.Text = "Cancel"
      $CancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel
      $userForm.CancelButton = $CancelButton
      $userForm.Controls.Add($CancelButton)
      $CancelButton.tabindex = 2
    
     $userLabel = New-Object System.Windows.Forms.Label
      $userLabel.Location = New-Object System.Drawing.Size(20,20)
      $userLabel.Size = New-Object System.Drawing.Size(400,20)
      $userLabel.Text = "$message"
      $userForm.Controls.Add($userLabel) 
    
     $objTextBox = New-Object System.Windows.Forms.TextBox
      $objTextBox.Location = New-Object System.Drawing.Size(150,45)
      $objTextBox.Size = New-Object System.Drawing.Size(100,40)
      $objTextBox.Text="$defaultText"
      $userForm.Controls.Add($objTextBox) 
      $objTextBox.tabindex = 0
    
     $userForm.Topmost = $True
      $userForm.Opacity = 1
      $userForm.ShowIcon = $False
    
     $userForm.Add_Shown({$userForm.Activate(); $objTextBox.Focus()})
     $dialogResult = $userForm.ShowDialog()
     if ($dialogResult -eq [System.Windows.Forms.DialogResult]::OK) { $objTextBox.Text } 
     $userForm.dispose() }
    
    do {
    $title = "Input BIOS date for VM $vmname"
    $msg   = "Enter new BIOS date in the format of dd/mm/yyyy:"
    $reply = CustomInputBox $title $msg $BIOStime
    if($reply.Length -eq 0) { exit }
    $date = ($reply + " " + [datetime]::Now.ToShortTimeString()) -as [datetime]
    if (!$date) { $shell = new-object -comobject "WScript.Shell"
    $shell.popup("Date is not in a valid format",0,"Syntax error",0+48+4096) }
    } while ($date -isnot [datetime])
    
    start-process $VB_MANAGE setextradata, $vmname, 'VBoxInternal/Devices/VMMDev/0/Config/GetHostTimeDisabled 1' -NoNewWindow 
    
    $timeoffset_milliseconds='{0:0}' -f ([datetime]$date - [datetime]::Now).TotalMilliseconds
    
    $shell = new-object -comobject "WScript.Shell"
    $date2 = Get-Date($date) -UFormat "%d/%m/%Y"
    $result = $shell.popup("Do you want to set the BIOS time of $vmname to dd/mm/yyyy where is $date2 wich equals an offset of $timeoffset_milliseconds msec from current time and start the virtual machine?",0,"Verify action for VM $vmname",4+32+4096)
    # $result will be 6 for yes, 7 for no.
    if ($result -eq 7) { exit }
    
    start-process $VB_MANAGE modifyvm, $vmname, '--biossystemtimeoffset', $timeoffset_milliseconds -NoNewWindow 
    
    echo "Starting virtual machine $vmname"
    start-process $VB_MANAGE startvm, $vmname
    
    pause
    exit /B
     
    :: Эту строку не трогать. Ниже ничего не писать!!!
    */new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);
  • Почему скрипт запуска виртуальной машины перестал работать?

    @dimone73 Автор вопроса
    rPman, Во-первых потому что их не вытащить, во-вторых потому что ошибки не касались запуска VBox
    67b0fa56031b4254744607.jpeg
    Ошибка запуска виртуалки с текущей даты пожалуй решилась тем, что убрал кавычки

    start-process $VB_MANAGE 'modifyvm'

    А вот куча красным ошибок не понятна вообще
  • Почему скрипт запуска виртуальной машины перестал работать?

    @dimone73 Автор вопроса
    возможно из-за кавычек в параметре запуска процесса VBox?
    start-process $VB_MANAGE 'modifyvm'
  • Какой выбрать Linux совместимый ноутбук на базе процессоров ARM?

    @dimone73
    aleks-th, вообще любой нестандартный специфический редкий вариант подразумевает пользователя-профессионала, который не задаёт подобных вопросов. Если такой вопрос возник, то пользователь пусть сам и разбирается, либо он сам не знает чего хочет и зачем.
    Написано
  • Почему не могу установить ни один дистрибутив Linux?

    @dimone73
    aleks-th, xubuntu или lxde замечательный рабочий стол
    Написано
  • Внешний ip перенаправляет на роутер, как убрать?

    @dimone73
    да нужен простой тест на русский язык при регистрации
    Написано
  • Как нужно настроить сетевые мосты чтобы подключаться по ssh, из одной гостевой Virtual Box машины к другой?

    @dimone73
    да ладно, можно обе виртуальных сетевых карты подключить к одной виртуальной сети, можно мостом к виртуальному интерфейсу (чтобы еще и реальная машина с ними взаимодействовала по сети)
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    Решилось без AMI.
    Перед забором из парковки в плане нумерации работает скрипт AGI, который перенаправляет непосредственно в parcedcalls, в нем объявил наследованную переменную с меткой времени, наследованную переменную кто забирает с парковки, наследованную переменную с какого парковочного места забирают.
    Прикрутил в диалплан контекст parcedcalls с extensions 'h' - он стал виден и заработал после окончания парковки. В нем скрипт AGI который забирает эту метку времени и по ней считает сколько длился разговор после парковки, ну и запись в журнал.
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    Да подключился, подключился я к AMI, посл еснятия с парковки почти ничего не показывает. Эта справка пожалуй на устаревшие версии, поскольку в 11 версии и модуля то такого res_features.so нету.
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    Получилось узнать номер парковочного места и засунуть в журнал событие о парковке на такое-то место. Теперь новый анекдот при снятии с парковки: контекст parcedcalls опять-таки встроен в ядро (хотя вот постановка на паркинг удалась в рукописном контексте, например в моем случае parked через Park), и чтобы сделать запись в журнал об обращении к парковочному месту нужно это делать в плане нумерации ДО перехода на extensions в parcedcalls. Непонятно теперь, как считать время разговора (да и вообще, удалось ли забрать с парковки, или это просто был набор парковочного номера) - из контекста практически ничего не забрать и не добавить.
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    Путь такой. Перед тем, как сделать Park() через AGI спрашиваем какой сейчас у нас ${CHANNEL}, потом, после Park() через SYSTEM спрашиваем ASTERISK
    asterisk -x 'parkedcalls show'
    будет таблица с номером парковочным, потом номер канала Астериска, который туда припаркован, потом еще что-то
    и парсим выхлоп по ${CHANNEL}
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    Дмитрий Шицков, спасибо, да, хорошо, взгляну. Однако справки все по новым Asterisk AMI, чуть ли не 22, а в 11 он какой-то куцый.
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    Дмитрий Шицков, занести в журнал "вызов припаркован на номер 7XXX"
    А потом мол "вызов забран с парковочного места 7XX" (с этим то проблем не вижу) , а то в целом такие финты паркинг-забрать уходят в темноту по журналу.
    С АМI плохо знаком, только с AGI
    Написано
  • Ядра ЦП в vmware равны ли физическим ядрам?

    @dimone73
    Можно запустить хоть 10 виртуальных машин, и каждой в таком случае дать по 8 ядер. Но это просто будет означать, что каждая виртуальная машина будет пользоваться всеми ядрами реальной.
    Написано
  • Возвращает ли Asterisk какие-либо переменные с номером парковочного места?

    @dimone73 Автор вопроса
    а как потом не нарваться на повтор, генерировать её, или глобальной объявить, а потом инкриминировать....
    Написано
  • Как перенести или обновить Астериск?

    @dimone73
    Вот читаю UPGRADE.txt вижу из существенного

    библиотека разработки libxml2 теперь является обязательной зависимостью для Asterisk - а то я раньше всегда при сборке конфигурировал перед сборкой без libxml2, что-то типа --disable-xmldoc
    SetMusicOnHold:

    - Приложение диалплана SetMusicOnHold устарело и было удалено. Пользователи приложения должны использовать вместо этого параметр musicclass функции CHANNEL.

    WaitMusicOnHold:
    - Приложение диалплана WaitMusicOnHold устарело и было удалено. Пользователи приложения должны использовать MusicOnHold с параметром продолжительности.

    Ну и дальше там посмотреть...
    Написано
  • Как перенести или обновить Астериск?

    @dimone73
    My_Second_Nickname, да да. У меня после цепочки обновлений с 1.6-1.8-10 (неудачно) - сразу 11 (удачно) проблемы навскидку были:
    1. Много лишних модулей, из-за них не запускалось. Файл modules.conf то остается старый, наименование другое, много новых появляется.
    2. Права на доступ/запуск файлов в каталогах, особенно опять-таки модулей.
    А так заработало. В вашем случае проблем то особых не должно быть (12 с 13 не сильно то различаются). А исходники, из которых собирался 12 Астериск в папке /usr/src то остались? История bash осталась интересно или нет? По ней можно посмотреть с какими ключами собирался Астериск? Ну там еще
    configure с какими ключами были.... Или запустить make menuconfig на старом и посмотреть модули какие там.
    Написано
  • Как добавить SipAddHeader для всех звонков?

    @dimone73
    Как вы себе представляете засовывать строку в заголовок чужого сообщения, которое к вам пришло? Сделайте петлю внутри Астериска и звоните самому себе тогда и добавляйте любые заголовки.
    Написано
  • Как пустить голосовое приветствие в канал но не дать ответ 200 SIP пока второй канал не поднимет трубку?

    @dimone73
    При международной связи КПВ должен генерировать международный узел той страны, которая вызывающая сторона. Так что ваши мелодии вместо КПВ - не пройдут.
    Написано