Как забронировать и использовать интернет-пакеты для SIM-карты Ncell, используя Ubuntu?

У меня есть Ncell (непальская компания сотовой связи), которую я хочу использовать во встроенном 3G модеме («Gobi 2000») в моем ноутбуке на основе Ubuntu.

Карта использует «нормальный» тариф Ncell, а не Ncell Connect . Соответственно, я не могу забронировать дешевые, никогда не истекающие пакеты данных Ncell Connect, но хочу использовать Ежедневные интернет-пакеты , что представляется следующим самым дешевым и наиболее гибким вариантом.

Вопрос: Как использовать любую из опций, чтобы успешно забронировать эти пакеты в Ubuntu с SIM-картой в ноутбуке? (например, опция меню USSD или Ncell Ecare, для которой требуется подтверждение по SMS)

В идеале решение должно быть максимально автоматизировано, а также мешать мне работать с более дорогими скоростями передачи данных, когда Daily Internet Объем пакета исчерпан.

0
задан 8 August 2015 в 19:54

2 ответа

После большого экспериментирования следующее является моим лучшим решением до сих пор.

Решение: Используйте atinout для заказа с помощью меню USSD

USSD используется операторами сети мобильной связи для быстро реагирующих сервисных меню – посмотрите Википедию на USSD. Заказ через Ncell *17123# Меню USSD через компьютер, который имеет SIM, является самой удобной опцией.

Так как выделено клиентское программное обеспечение USSD не работало на меня (см. ниже), я использую сырые данные ПРИ командах. Для этого я сначала установлю atinout, маленькую утилиту командной строки для использования ПРИ командах:

sudo apt-get install ruby-ronn;
git clone git://git.code.sf.net/p/atinout/code atinout;
cd atinout;
make;
checkinstall make install;

Затем я могу использовать его с ПРИ командах USSD к, например, заказать Ежедневный интернет-Пакет 40 МБ. Вот полная расшифровка стенограммы. После того, как модем подтверждает Вашу команду с OK, ожидайте несколько секунд и нажмите Enter для отображения ответа USSD (который должен был прибыть к тому времени). Затем нажмите Ctrl+C для завершения atinout (^C в расшифровке стенограммы), и перезапуск это снова.

$ sudo stop modemmanager
stop: Unknown instance:

$ atinout - /dev/ttyUSB1 -
AT+CUSD=1,"*17123#",15
OK
+CUSD: 1,"1.) 1 day Pack 
3.) Facebook Pack 
4.) 7 Day Pack  
6.)  30 Day Pack 
8.) Unlimited Pack  
Note: 
Back:* Top:#",15
^C

$ atinout - /dev/ttyUSB1 -
AT+CUSD=1,"1",15
OK
+CUSD: 1,"1.Light 6 MB Rs 6 
2.Light 12 MB Rs 9 
3.Medium 18 MB Rs 12 
4.Heavy 40 MB Rs 20 
5.Deactivate 
Note: 
Back:* Top:#",15
^C

$ atinout - /dev/ttyUSB1 -
AT+CUSD=1,"4",15
OK
+CUSD: 1,"1.One time Activations 
2.Auto Renewal Activations 
Note: 
Back:* Top:#",15
^C

$ atinout - /dev/ttyUSB1 -
AT+CUSD=1,"1",15
OK
+CUSD: 0,"Dear Customer, your 40 MB pack with 24 hours validity 
is currently processing and will be activated within 10 min. ",15
^C

Можно объединить вышеупомянутое в один сценарий (принимающий на данный момент, что Вы не должны повторять команду; AT должен только отобразить ответ USSD):

sudo stop modemmanager && \
atinout - /dev/ttyUSB1 - < <(echo "AT+CUSD=1,\"*17123#\",15") && sleep 4 && \
atinout - /dev/ttyUSB1 - < <(echo "AT") && \
atinout - /dev/ttyUSB1 - < <(echo "AT+CUSD=1,\"1\",15") && sleep 4 && \
atinout - /dev/ttyUSB1 - < <(echo "AT") && \
atinout - /dev/ttyUSB1 - < <(echo "AT+CUSD=1,\"4\",15") && sleep 4 && \
atinout - /dev/ttyUSB1 - < <(echo "AT") && \
atinout - /dev/ttyUSB1 - < <(echo "AT+CUSD=1,\"1\",15") && sleep 4 && \
atinout - /dev/ttyUSB1 - < <(echo "AT");

(Отметьте, этот сценарий использует технику для предотвращения символов вертикальной черты.)

Поиск и устранение неисправностей

Несколько AT+CUSD управляют подряд. По некоторым причинам, с моим 3G модемом (Гоби 2000), в 90% случаев, только одного AT+CUSD может быть выполнен успешно, затем atinout должен быть перезапущен. Для предотвращения трудностей в процессе выше, мы перезапускаем atinout просто каждый раз в расшифровке стенограммы выше. Это не заканчивает сессию USSD ("открытое" меню USSD).

Если модем не отвечает OK. При продвижении вышеупомянутая расшифровка стенограммы заботьтесь, что каждая команда подтверждена с "OK" модемом. В противном случае перезапуск atinout и попробуйте еще раз. Если это не помогает, запустите целый процесс снова. И если это не помогает, Ваш модем мог бы быть в странном состоянии. Сбросьте его или просто позвольте компьютеру пройти приостанавливание / цикл резюме.

Используя ПРИ командах в целом. Для получения дополнительной информации об общении с модемным использованием ПРИ командах в соответствии с Linux, см. этот ответ.

Когда заказ Ежедневного интернет-Пакета перестал работать. Веб-сайт Ncell Ecare перестал бы работать без сообщения об ошибке и показал бы список сервисов снова вместо сообщения успеха формы для введения кода подтверждения SMS. Это условие происходит, если у Вас все еще есть активный ежемесячный журнал (или также еженедельно?) Интернет-пакет. Даже если никакой баланс данных не оставляют его. Можно проверить что и если необходимая отмена пакет здесь. Однако для меня, даже после отмены пакета, запрос баланса данных SMS возвратил бы "Дорогого Клиента, Вы имеете […] данные МБ в запасе в своей Ежемесячной учетной записи, которая истечет […]". и было все еще невозможно заказать Ежедневный интернет-Пакет. Я должен был бы ожидать до даты истечения срока. Возможно, попытайтесь поместить SIM в телефон и закажите первый Ежедневный интернет-Пакет с помощью кода USSD (набор *17123# и следуйте экранному меню.)

Будущие улучшения

Автоматизация. С вышеупомянутым решением мы должны переместиться по меню вручную и попробовать еще раз, если что-то идет не так, как надо. Могло быть лучше.

Автоматическое переоформление. Идеально, это решение включало бы автоматический (пере-) заказ, когда баланс данных кончается. Это может быть обнаружено Ncell, предупреждающим SMS и / или транспортный контроль. Это не заказало бы новый пакет автоматически, когда он истекает естественно, но затем уведомьте пользователя со значком состояния, что она просматривает с дорогим уровнем.

Будьте уведомлены, когда баланс данных закончится. Если так, мы не потребовали бы передачи ограниченных сумм на SIM-карту, но могли перевести большую сумму и будем предупреждены (например, большим красным значком в панели задач) при столкновении с дорогим уровнем. Существует по крайней мере два пути к этому:

Получение SMS уведомления Ncell во время активной передачи данных. Ncell отправляет его, когда баланс данных кончается. Посмотрите точку выше на wvdial и т.д., как это могло работать. Это не работает с NetworkManager и gammu из поля, так как это захватывает оба канала управления модемом.

Ограничение трафика данных. NTM был бы инструментом кандидата для этого, но он в настоящее время не имеет функции для установления одноразовых пределов данных пакета с точным временем начала.

Альтернативное клиентское программное обеспечение USSD (не работающий на меня)

Там выделены клиенты USSD в соответствии с Ubuntu Linux, но они не работали на меня по различным причинам (мои аппаратные средства 3G модема: Гоби 2000). Однако с некоторой отладкой, Вы могли бы заставить их работать. Использование некоторых рассматривают более подробно в этом вопросе и этом вопросе.

Список, с самыми многообещающими кандидатами сначала:

  • mmcli. ModemManager и его клиент командной строки mmcli кажется, большое программное обеспечение и лучший выбор для этой задачи. См. этот ответ на StackOverflow для того, как использовать mmcli перемещаться по меню USSD. Однако после решения проблемы с постоянным PIN2 соединяют SIM-карты Ncell (решение, подобное этому), mmcli все еще отказался бы от передающих команд USSD через 3G модем Гоби 2000, из-за ошибки (потому что модем использует USSD с другим клиентским программным обеспечением успешно):

    $ sudo apt-get install libqmi-utils
    $ sudo qmicli -d /dev/cdc-wdm0 --dms-uim-verify-pin=PIN2,0000
    $ sudo qmicli -d /dev/cdc-wdm0 --dms-uim-get-pin-status
    $ mmcli -m 0 -e  # Index as found via mmcli -L
    $ mmcli -m 0 --3gpp-ussd-initiate="*100#"
    error: Modem has nn USSD capabilities.
    
  • gsm-ussd. gsm-ussd утилита командной строки исключительно для отправки кодов USSD, и она может управлять меню USSD (см. как в этом ответе). Для Ncell, хотя, я смог отправить коды USSD и получить ответы, но не управлять меню USSD. Были бы различные непоследовательные сообщения об ошибках, и я не занимался расследованиями, если проблемой являются мои аппаратные средства, gsm-ussd или реализация Ncell USSD.

  • gammu. gammu утилита командной строки Linux, которая может отправить коды USSD, но согласно этому вопросу, она еще не может использовать меню USSD. python-gammu содержит сценарий service_numbers.py это предназначено для включения этого. Это не работало на меня все же.

  • ofono. ofono имеет подобную цель и интерфейс как ModemManager [источник], просто что это сделано для Касания Ubuntu (который может работать на мобильных телефонах). Его основной интерфейс является DBus, но можно использовать его инструменты командной строки тестового сценария, чтобы отправить команды USSD и управлять меню USSD (примеры, больше примеров). Однако этому, кажется, нужен a rild (Демон Слоя беспроводного интерфейса), реализация для функционирования, и это только было бы доступно по фактическим мобильным телефонам. При запуске, ofonod жаловался бы на неспособность соединиться с rild, и я не мог найти a rild устанавливать на нормальной Ubuntu установку Linux.

  • ussdq. ussdq другая маленькая утилита для Linux, который включает функцию для работы меню USSD. Однако это больше в активной разработке с 2013 и компиляции его не является определенное усилие (это использует платформу Gambas2, но недавнюю Ubuntu, версии Linux только включают пакеты для Gambas3).

0
ответ дан 9 August 2015 в 05:54
  • 1
    да, этот вопрос немного стар. Я зафиксировал его некоторое время назад. Я мог добавить файл PPD с помощью чашек, но этого wasn' t использование его. Таким образом, я обновил к 16,10, и это зафиксировало его. – Akisame 19 November 2016 в 01:14

См. также мой другой ответ, который я думаю, лучший.

Решение: Книга через веб-сайт Ncell Ecare

Заказ через команды USSD является самым удобным решением (см. мой другой ответ). Но если это не работает на Вас по некоторым причинам, вот другой, менее удобная но рабочая альтернатива.

  1. Передайте 25 NPR SIM-карте компьютера. Так много раз, как Вы хотите купить Ежедневные интернет-Пакеты одновременно. Самый быстрый и самый удобный путь к этому состоит в том, чтобы набрать соответствующий код USSD *17122*<980… mobile number>*25# [источник] от Вашей адресной книги. Цена включает 1,25 NPR, взимают за передачу и налоги, добавленные при заказе 40 МБ Ежедневный интернет-Пакет для 20 NPR.

  2. Создайте точку доступа Wi-Fi с телефоном. И подключите компьютер к нему или используйте существующее соединение Wi-Fi при наличии.

  3. Закажите одноразовые "Тяжелые" Ежедневные интернет-Пакеты на 40 МБ на Ncell Ecare. Можно заказать несколько подряд, и объем данных будет агрегироваться. Необходимо будет подтвердить первый заказ с кодом подтверждения, полученным SMS. Получите то SMS, например, следующим образом:

    1. Выполниться gammu deletesms 0 1 (для принятия Вас не нужно SMS, сохраненное в слоте 1) сделать пространство для входящего SMS. Это будет получено в первом свободном пространстве (гарантировал 1 здесь), но не будет получен, если все 20-30 пространств памяти на SIM-карте будут израсходованы.

    2. Нажмите "Send SMS" в книжном процессе веб-сайта Ncell Ecare.

    3. Выполниться gammu getsms 0 1 получить SMS подтверждения.

    4. Введите код подтверждения на веб-сайте Ncell Ecare.

  4. Используйте Интернет через мобильные данные, пока это не прекратит работать.

  5. Подтвердите, что баланс закончился с проверкой баланса. Короче говоря:

    gammu deletesms 0 1 && \
    gammu sendsms TEXT 9909 -text "status" && \
    sleep 10 && \
    gammu getsms 0 1
    

    Разъедините свое мобильное широкополосное соединение, если оно не работает иначе (некоторые менеджеры соединений захватывают оба канала управления модемом, не оставляя ни один для gammu).

  6. Повториться.

Поиск и устранение неисправностей

Упрощение входа в систему Ncell Ecare. Используя веб-сайт Ncell Ecare часто неудобно, потому что он препятствует тому, чтобы данные входа в систему были сохранены браузером, предотвращает copy&paste, который будет использоваться для вставки в поле пароля, и дополнительно, имеет капчу на форме входа в систему. Решение:

  1. При использовании Firefox установите дополнение Форм Автозаливки.

  2. Затем посетите страницу входа в систему Ncell, щелкните правой кнопкой в поле и выберите "Add complete form as profile …".

  3. В диалоге создания профиля измените подбор правила сайта, чтобы быть (?:ecare\.ncell\.com\.np:9443), и введите свои значения для имени пользователя и пароля.

  4. Копия, которые представляют и адаптируют его к другим SIM-картам, которые Вы имеете.

  5. С этого времени, для входа в систему щелкните правой кнопкой где угодно по странице входа в систему кроме в поле формы и выберите "Autofill Forms ".

  6. (Дополнительно), Чтобы позволить вставлять в поле пароля, установите дополнение FoxReplace Firefox и установите правило для URL https://ecare.ncell.com.np:9443/nser/index.do?method=init с набором опции "HTML for input and output" и действием для замены текста onkeydown="keyDownForbidCopyPaste(passwordIn) ни с чем.

  7. (Дополнительно), Если Вы действительно хотите, Чтобы избавиться от решения капчи, решить проблему капчи, можно использовать дополнение браузера Rumola. Однако обратите внимание, что решение капчи будет стоить 0,013 долларов США с ними, так как оно включает (по крайней мере иногда) человеческую обработку. Их автопоиск капчей не работает на форму входа в систему Ncell Ecare. Вместо этого щелкните правой кнопкой в текстовое поле капчи и выберите "Use this field to enter Captcha". Затем дважды щелкните в поле, чтобы позволить Rumola решить капчу. В то время как это в процессе, используйте "заливку Автоформы", ступают сверху для заполнения остающейся информации о входе в систему.

Решение, когда веб-сайт Ncell Ecare показывает WSOD. WSOD = белый экран смерти. Вы видели бы просто белую предметную область в своем браузере при посещении веб-сайта. Это - ошибка в их веб-приложении, которое инициировано при испытании отказа Интернет-соединения, в то время как вошел в Ncell Ecare. Для фиксации этого условия существуют, по крайней мере, следующие опции:

  • Удалите кэш и cookie, сохраненные для входа в систему Ncell Ecare, перейдите к странице входа в систему снова и войдите в систему снова.

  • Переключитесь на другой профиль Мультилисы (для Firefox) или профиль MultiLogin (для Chrome), и перезагрузите страницу.

Также см. мой другой ответ.

Возможные будущие улучшения

Используя мобильное широкополосное соединение для заказа пакета. Это будет работать, после того как я узнаю, как получить SMS кода подтверждения (для заказа блока данных в веб-сайте Ncell Ecare), в то время как передача данных активна. Не работает с Linux NetworkManager и gammu из поля, потому что администратор сети захватит оба канала управления модемом, не оставляя ни один для gammu. Альтернатива для разъединения, получая SMS с gammu и затем повторное подключение не работает также, потому что Ncell вызывает выход из системы затем, и это делает недействительным код подтверждения SMS также. Кто-то сообщил о том использовании wvdial вместо NetworkManager соединяться зафиксированный этот [источник].

Получите SMS автоматически в уведомлениях. Как шаги выше, это требует способу работать с SMS во время активной передачи данных. Это показало бы SMS подтверждения при заказе интернет-Пакета через веб-сайт Ncell Ecare и переместило бы его в жесткий диск для хранения пространств памяти SIM-карты бесплатными для получения нового SMSs. Это ускорило бы процесс по сравнению с текущим предложением с ручной командой для получения SMS подтверждения от SIM-карты.

Заказ через Ncell Ecare без подтверждения SMS. Упростил бы процесс много, поскольку можно использовать мобильное широкополосное соединение компьютера для заказа интернет-пакета. Потребности действие Ncell.

Заказ через веб-сайт Ncell Ecare без принудительного выхода из системы. Упростил бы процесс много точно так же, как не необходимость в подтверждении SMS, поскольку можно использовать мобильное широкополосное соединение компьютера, выключить его для получения SMS, затем включите его снова для введения кода подтверждения в Ncell Ecare. В настоящее время это будет вызывать выход из системы, который делает недействительным код подтверждения также.

Заказ с помощью приложения Ncell, которое позволяет управлять внешними SIM-картами. В этом случае приложение Ncell позволило бы управлять несколькими SIM-картами, не будучи нужен в других SIM-картах физически в телефоне. В принципе как веб-сайт Ncell Ecare. Снова, действие потребностей Ncell.

Также см. мой другой ответ.

Нерабочие альтернативы

Заказ с веб-сайтом Ncell Ecare в браузере смартфона. Попробованный это, но не мог войти в тот веб-сайт со смартфоном по некоторым причинам. Кнопка входа в систему ничего просто не сделала бы. Кроме того, так как тот веб-сайт не является мобильной товарищеской встречей, заказывание на компьютере через соединение точки доступа Wi-Fi кажется более удобным так или иначе.

Установка приложения Ncell дважды. Существуют пути, как загрузить и изменить любой Android, таким образом, можно установить его дважды (я использовал это решение для приложения Ncell). Я надеялся, что это позволит мне входить в систему с двумя различными учетными записями, управляя SIM-картой моего телефона и компьютера параллельно. Однако вход в систему в приложении Ncell зависит от обнаружения SIM-карты, Вы не можете использовать его для управления несуществующей SIM-картой.

Заказ с помощью приложения Ncell в средстве моделирования. Можно выполнить Android и приложение Ncell в виртуальной машине как OpenBox, но будет трудно фальсифицировать обнаружение SIM-карты к нему.

0
ответ дан 9 August 2015 в 05:54
  • 1
    Спасибо @ArnovanderWeijden за информацию. Я отредактирую свой ответ и определю, что использую 16.10, он мог бы помочь некоторым людям в будущем. – François F 21 November 2016 в 22:17

Другие вопросы по тегам:

Похожие вопросы: