Информация
Услуги
  • Внедрение
  • Настройка
  • Поддержка
  • Ремонт
Контакты
Новинка
Распродажа
Новости
Доставка
Оплата
Загрузки
  • Прошивки
    • WinBox
    • RouterOS
    • Мобильные приложения MikroTik
    • Архив
  • RouterOS
  • Мобильные приложения MikroTik
  • Архив
Форум
Настройка
    info@mikrotik.moscow
    +7 495 320-55-52
    Заказать звонок
    Mikrotik.moscow
    Каталог
    • Акции
      Акции
    • Маршрутизаторы
      Маршрутизаторы
    • Коммутаторы
      Коммутаторы
    • Радиомосты и уличные точки доступа
      Радиомосты и уличные точки доступа
    • Wi-Fi для дома и офиса
      Wi-Fi для дома и офиса
    • LTE/5G
      LTE/5G
    • Powerline адаптеры
      Powerline адаптеры
    • IoT устройства
      IoT устройства
    • Оборудование 60 ГГц
      Оборудование 60 ГГц
    • Материнские платы RouterBOARD
      Материнские платы RouterBOARD
    • Корпуса
      Корпуса
    • Интерфейсы
      Интерфейсы
    • SFP/QSFP трансиверы
      SFP/QSFP трансиверы
    • Аксессуары
      Аксессуары
    • Антенны
      Антенны
    • Архив
      Архив
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Скачать WinBox Скачать Прошивки Форум > RouterOS Форум > SwOS Форум > Железо
    Mikrotik.moscow
    Каталог
    Войти
    0 Сравнение
    0 Избранное
    0 Корзина
    Mikrotik.moscow
    Телефоны
    +7 495 320-55-52
    Заказать звонок
    0
    0
    0
    Mikrotik.moscow
    • +7 495 320-55-52
      • Назад
      • Телефоны
      • +7 495 320-55-52
      • Заказать звонок
    • info@mikrotik.moscow
    • г. Москва, ул. Бакунинская, 84
    • Пн-Пт: 09-00 до 18-00
      Сб-Вс: выходной


    • Кабинет
    • 0 Сравнение
    • 0 Избранное
    • 0 Корзина
    Главная
    Форум
    Форум
    RouterOS
    Не могу перевести текст "Decode USSD response".

    Не могу перевести текст "Decode USSD response".

    Форумы: RouterOS, Аппаратное обеспечение, SwOS, Обратная связь, Объявления, Сторонние инструменты
    Поиск  Пользователи  Правила  Войти
    Страницы: 1
    RSS
    Не могу перевести текст "Decode USSD response"., RouterOS
     
    Tedionius
    Guest
    #1
    0
    25.04.2019 12:00:00
    Как декодировать ответ USSD от 3G оператора на комплекте wAP LTE с антенной r11e? Все ответы предлагают использовать утилиту sms в Winbox, но я не хочу этого. Я хочу сделать это через командное окно. Можете предложить решение? Я посмотрел на эти статьи, но не могу найти ответ: http://forum.mikrotik.com/t/decode-ussd-on-wap-lte-kit/115644/1 https://wiki.mikrotik.com/wiki/Manual:Interface/LTE https://wiki.mikrotik.com/wiki/Manual:Tools/Sms http://forum.mikrotik.com/t/send-at-commands-to-modem-via-script/44218/1 Я могу отправить код USSD оператору Vodacom в Южной Африке, используя /interface lte at-chat lte1 input="AT+CUSD=1,"*135#",15" wait=yes и корректно получить закодированный ответ. Как я могу декодировать этот ответ в командном окне или получить его уже в декодированном виде?
     
     
     
    ctil004
    Guest
    #2
    0
    24.07.2019 10:10:00
    У меня такая же проблема с Vodacom Южная Африка — выходные данные нечитаемы! Однако с MTN все работает отлично. Это может быть проблема, связанная с оператором связи. У меня оборудование RB912 с картой R11e_LTE miniPCI-e.
     
     
     
    ctil004
    Guest
    #3
    0
    24.07.2019 11:56:00
    Извините, в моем предыдущем сообщении я забыл упомянуть, что ответ от MTN был получен с использованием другого роутера. Это было сделано с помощью роутерной платы RB411u и мини-интерфейса Sierra 7710 PCIe LTE (оба настроены на 3G только для этой цели). При использовании SIM-карты MTN на роутерной плате RB912 с интерфейсом R11e_LTE я получаю тот же неразборчивый ответ, что и с SIM-картой Vodacom. Очевидно, это не зависит от оператора связи. Оба роутера работают под управлением RouterOS 6.45.1 (стабильная версия) с прошивкой diitto. Я не менял LTE-интерфейсы, так что это может быть связано либо с роутерной платой, либо с интерфейсом…
     
     
     
    Tedionius
    Guest
    #4
    0
    02.08.2019 08:23:00
    Спасибо за ответ. К сожалению, я не могу подтвердить, является ли это проблемой, связанной с оператором, так как у меня в Mikrotik установлены сим-карты Vodacom и Rain, и у Rain нет функций SMS, только подключение к интернету. Тем не менее, я подозреваю, что проблема связана с оператором, так как у меня другая установка, но я сталкиваюсь с той же проблемой. Моя конфигурация — роутер RBSXTR с прошивкой 6.45.2 и модем R11e-LTE. Когда я отправляю команду, ответ от Vodacom следующий: output: OK +CUSD: 1,“31292042616c616e6365730a3229204275790a332920416c6c203420596­f750a3429204a757374203420596f750a3529204d6f7265506f7765720a3­6292050726f6d6f730a372920416476616e6365265472616e73666572730­a38292053657276696 365730a39292046756e26526577617264730a31302920476574203130252­06d6f72650а31312920496e737572616e63650a2020”, 0
     
     
     
    ctil004
    Guest
    #5
    0
    02.08.2019 14:53:00
    Да, спасибо за информацию. Моё лучшее предположение — проблема в модеме R11e_LTE. Используя модем Sierra, ответ от Vodacom был: Aug/02/2019 16:19:18 lte,async,event +COPS: 0,0,“VodaCom-SA”,2 Aug/02/2019 16:19:29 lte,async,event +CUSD: 0,"Баланс подписки — R0.00; данные — 4.14 ГБ; Ночной сова — 5.23 ГБ; 0 SMS; ",15 На R11e установлена последняя версия прошивки: MikroTik_CP_2.160.000_v012. Надеюсь, что в следующем обновлении прошивки будет исправление!
     
     
     
    oceanmaster
    Guest
    #6
    0
    23.11.2019 14:39:00
    Новая версия прошивки 13
     
     
     
    sindy
    Guest
    #7
    0
    23.11.2019 14:58:00
    Я понимаю, что я опоздал, но нужно ли для понимания ответа USSD иметь сам Mikrotik (а может, предпринять какие-то действия на основе его содержания), или достаточно, чтобы это было читаемо для человека? Потому что приведенное выше - это просто восьмеричный код, каждая пара символов 0..9, a..f представляет один результирующий символ, так что перевод, выполненный любым конвертером hex->ascii, выглядит так: Balances Buy All 4 You Just 4 You MorePower Promos Advance&Transfers 8****) Services Fun&Rewards Get 10% more Insurance.
     
     
     
    Tedionius
    Guest
    #8
    0
    27.11.2019 07:15:00
    … тебе нужно, чтобы сам Mikrotik понимал ответ USSD (и, возможно, выполнял какие-то действия на основе содержимого), или достаточно сделать его читаемым для человека? На самом деле мне нужны обе функции: Mik должен понимать код, чтобы правильно реагировать на ключевые слова USSD-сообщения Содержимое сообщения должно записываться в журнал в читаемом для человека виде Спасибо за подсказку по закодированному ASCII, SIndy. Посмотрю, куда это меня приведет в поисках решения. Также протестирую с обновлением, как предложил Oceanmaster.
     
     
     
    sindy
    Guest
    #9
    0
    27.11.2019 08:37:00
    В RouterOS скриптах нет встроенной функции преобразования hex в char, так что вот что может вас вдохновить: local asciitable {"20"=" ";"21"="!";"22"="\""} ; put ($asciitable->"21") Вы можете сэкономить процессорное время, сохраняя таблицу переводов как глобальную переменную один раз при запуске.
     
     
     
    ctil004
    Guest
    #10
    0
    27.11.2019 09:25:00
    Спасибо за совет! Используя модем R11e-LTE с версией прошивки 13 для Vodacom Южная Африка, следующий запрос дает мне сводку о балансе данных без необходимости дальнейшего ввода: /interface lte at-chat input=“AT+CUSD=1," 111 502#",15” wait=yes lte1 Результат, который я получил сегодня: nov/27/2019 10:14:20 lte,async,event +CUSD: 1, “537562736372697074696f6e2041697274696d652069732052302e30303­b20206461746120697320322e37302047423b4e69676874204f776c20362­e30302047423b203b203020534d5327733b200a31292044657461696c656­40a32292050726f6d6f74696f6e616c0a2020” Затем скопировал и вставил вывод в конвертер из шестнадцатеричного в десятичный, чтобы прочитать результат: “Подписка на минуту - R0.00; данные - 2.70 ГБ; Ночной сова - 6.00 ГБ; 0 SMS;”
     
     
     
    Tedionius
    Guest
    #11
    0
    28.11.2019 05:43:00
    Отлично, Синди Может подтвердить выводы ctil004. Обновление прошивки ничего не изменило. Конвертер из шестнадцатеричной в десятичную систему работает и полезен для одноразового использования. Создание локальной ASCII-таблицы работает без проблем. Это правильное решение для данного конкретного случая. Спасибо!
     
     
     
    ctil004
    Guest
    #12
    0
    28.11.2019 14:26:00
    У меня нет опыта в скриптах — могли бы вы предоставить подходящий скрипт? Долгосрочным решением было бы включение автоматического перевода hex-ascii результатов вызовов CUSD в следующем обновлении прошивки для модема R11e-LTE. Sierra может это сделать, может быть, и RB тоже?
     
     
     
    sindy
    Guest
    #13
    0
    28.11.2019 15:27:00
    Я не разработчик Mikrotik, но подумайте о международных рынках. То есть, ASCII недостаточно, и вам нужен Unicode, который должен обрабатываться модемом (RouterOS, похоже, уже с этим справляется, я вчера видел комментарии на арабском в Winbox). Так что использование hex — это надежный выбор. Часто нет необходимости полностью конвертировать данные из hex в ASCII, можно искать паттерн в строке в hex и конвертировать только несколько байтов, содержащих цифры.
     
     
     
    Tedionius
    Guest
    #14
    0
    30.11.2019 14:34:00
    Для тех, кто ищет решение по этому вопросу, я нашел это: http://forum.mikrotik.com/t/how-to-convert-a-hex-value-to-a-char/97913/1 и это: https://gist.github.com/jpluimers/f667af4696d2a6411be44df1eeda2c2f действительно полезными.
     
     
     
    rextended
    Guest
    #15
    0
    08.08.2021 00:04:00
    Лучше это: http://forum.mikrotik.com/t/decode-ussd-on-wap-lte-kit/115644/1
     
     
     
    ctil004
    Guest
    #16
    0
    17.08.2021 11:40:00
    Спасибо, это лучше, чем использовать таблицу конверсий! Но в коде есть ошибка: используются вложенные функции, и чтобы вызвать другую функцию, ее имя должно быть объявлено. То есть: :global hexstr2chrstr do={ :global hex2chr; :local hexstr $1 и так далее…
     
     
     
    rextended
    Guest
    #17
    0
    17.08.2021 12:24:00
    Спасибо, это всего лишь один пример, в терминале никаких проблем, только в скрипте, но, как ты и написал, легко исправить, также пропущен : на “return” в единственной функции. Спасибо за информацию, я исправил оба скрипта.
     
     
     
    eagle2k
    Guest
    #18
    0
    10.05.2022 11:27:00
    Я сталкиваюсь с проблемами при использовании следующего USSD-кода: /interface lte at-chat lte1 input=“AT+CUSD=1,"136 5#",15” wait=yes, все работает хорошо, ответы выглядят так: /interface lte at-chat lte1 input=“AT+CUSD=1,"3",15” wait=yes. Но на пятом ответе меня просят ввести номер телефона, что я и делаю, но это не работает. #Номер телефона состоит из 10 цифр: /interface lte at-chat lte1 input=“AT+CUSD=1,"0732542544",15” wait=yes. Ошибка, которую я получаю от провайдера, — неверный номер. Но когда я ввожу его на своем телефоне, номер принимается. Каков формат? Я думаю, он принимает/регистрирует только первую ноль и затем возвращает ошибку. Как мне ответить с полным номером?
     
     
     
    Страницы: 1
    Читают тему
    +7 495 320-55-52
    info@mikrotik.moscow
    Электрозаводская, Бауманская
    Москва, ул. Бакунинская, 84с21
    Конфиденциальность Оферта
    © 2026 «Mikrotik.Moscow»
    Главная Каталог 0 Корзина 0 Избранные Кабинет 0 Сравнение Акции Контакты Услуги Бренды Отзывы Компания Лицензии Документы Реквизиты Поиск Блог Обзоры