bvn123 0 13 октября, 2015 Опубликовано 13 октября, 2015 · Жалоба Здравствуйте, интересуют ответы разных операторов России, Украины, Белоруссии на запрос баланса счета ответ Киевстар и Beeline (Украина) +CUSD: 1,"Na rahunku 34.00 grn. Bonusy: *100# null" +CUSD: 1,"Na rahunku 26.30 grn. Nomer die do ... из этих ответов программно выделить баланс несложно - найти кавычку, после нее искать первую цифру, пока идут цифры или разделитель (точка, запятая) - считать это символами, относящимися к балансу. встречаются ли отличия в ответах ДРУГИХ операторов - цифры между кавычкой и первым числом баланса, запись баланса словами, а не цифрами, или, скажем, запись баланса в виде "34 rub. 00 kop" Спасибо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CADiLO 12 13 октября, 2015 Опубликовано 13 октября, 2015 · Жалоба Уже обсуждали это пару лет назад. Можно поискать темку. Но если кратко, то пришли к следующему: Каждый оператор воротит как хочет, и более того может изменить формат ответа не предупреждая. Например перед цифрами вставить рекламу. Это расчитано на то что человек будет читать ответ, а не железка. Поэтому тогда пришли к выводу что унифицировать разбор отчетов не получится. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 8 13 октября, 2015 Опубликовано 13 октября, 2015 · Жалоба Поэтому тогда пришли к выводу что унифицировать разбор отчетов не получится. можно частично решить проблему: на SD иметь файлы под каждого оператора oper250_001.ini oper250_002.ini oper250_020.ini oper250_099.ini где в каждом [operator] apn="internet.mts.ru" login="" password="" dns1="" dns2="" balance_check="*100#" balance_check_scanf="[b]Na rahunku %f grn[/b]" Чуть-чего либо оператор ручками все корректирует, либо дополнение/исправление с сервера Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 13 октября, 2015 Опубликовано 13 октября, 2015 · Жалоба Спасибо за ответы, похоже, особого смысла стремиться унифицировать ТОЛЬКО разбор ответа нет еще из-за того, что и номера для запроса баланса по операторам не одинаковы, уже вижу номера запросов *100#, *102#, *111# тему нашел: > Автоматическое определение баланса СИМ карточки, Выделение суммы из ответа на запрос USSD Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aleksandr-zh 4 13 октября, 2015 Опубликовано 13 октября, 2015 · Жалоба я делаю так если можно - включаю ответы ussd ТРАНСЛИТОМ (латинскими буквами). Например, Россия, Теле2 *120# делаю запрос. Жду 6-7 секунд. Принимаю ответ. Выдаю абоненту первые 25 символов ответа. Пока проблем не было Выделение по кавычкам, точкам и самим цифрам не есть универсальный метод: иногда операторы вставляют рекламу. Например: только 12 мая 2015 мы предлагаем... или Магазин "Солнышко" дарит детям... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 57 13 октября, 2015 Опубликовано 13 октября, 2015 · Жалоба Выдаю абоненту первые 25 символов ответа. Пока проблем не было Ну можно и не так ограничивать, мои аппараты выдают весь текст, влезающий в СМС или меньше. ЗЫ. Опсосы, конечно, плевали на нас, но уж в тарифах М2М могли и унифицированный ответ сделать. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
bvn123 0 15 октября, 2015 Опубликовано 15 октября, 2015 · Жалоба Спасибо всем за ответы, думаю не декодировать все это в микроконтроллере, управляющем GSM-модемом, а только искать первую цифру после кавычки; начиная с этой цифры, брать фрагмент ответа о балансе так, чтобы он заполнил остаток места в собственном смс, передача от первой цифры даст экономию числа передаваемых символов, будет больше шансов, что остаток на счету попадет в одно сообщение. Более гибкое декодирование можно будет сделать на компе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
CADiLO 12 16 октября, 2015 Опубликовано 16 октября, 2015 · Жалоба И еще имейте в виду. Если Ваше устройство попадет в Эмираты или еще куда на восток, то CUSD там не работает. Баланс получают при помощи SMS, а CUSD используется в биллинге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
megajohn 8 16 октября, 2015 Опубликовано 16 октября, 2015 · Жалоба Если Ваше устройство попадет в Эмираты или еще куда на восток даже далеко ехать не надо. Спб-МТС ( 250 01 ). Cusd говорит что "ожидайте смс с балансом" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
POLL 0 16 октября, 2015 Опубликовано 16 октября, 2015 · Жалоба Мы таким способом (см ReadBalance) баланс обрабатываем. Не идеально, но в большинстве случаев годится. Т.е. ищем цифры до точки или запятой. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 57 16 октября, 2015 Опубликовано 16 октября, 2015 · Жалоба Мы таким способом (см ReadBalance) баланс обрабатываем. Я не вижу смысла вообще его как-то обрабатывать,т.к. в 99% это информация, пересылаемая клиенту, а он уж "обработает" Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
POLL 0 16 октября, 2015 Опубликовано 16 октября, 2015 · Жалоба Я не вижу смысла вообще его как-то обрабатывать,т.к. в 99% это информация, пересылаемая клиенту, а он уж "обработает" Не, смысл идеи - если пороговое значение баланса сработало, клиенту будут приходить напоминалки (мол пополни баланс). А если баланс в ажуре, клиента не нужно беспокоить какими-то смсками. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 17 октября, 2015 Опубликовано 17 октября, 2015 · Жалоба даже далеко ехать не надо. Спб-МТС ( 250 01 ). Cusd говорит что "ожидайте смс с балансом" Омск, МТС: на CUSD иногда баланс приходит в ответе, а иногда так как Вы описали - в след. СМС. Никакой системы нет. А если разбирать, то думаю нужно искать первую группу цифр включающих опционально точку или запятую. Реклама вряд-ли будет перед балансом, скорее всегда после. Можно сделать более сложный анализ: искать все группы цифр (соответствующих вышеуказанному шаблону). Если найдено более одной такой группы, то далее - чтобы выбрать одну из этих групп, нужно построить рейтинги для них. Анализируем слова возле этих групп на равенство обозначению одной из валют: "руб", "гр" и др., также ищем слова типа "баланс", "счёт" и подобные типичные для баланса слова. На каждое такое нахождение увеличиваем рейтинг соотв. группы на некоторое число. Предварительно можно разбить весь текст на предложения по точкам и заглавным буквам. Список искомых ключевых слов выбирать в соответствии со страной, определённой по тел. номеру - искать "руб" если номер начинается на +3 не стоит. Число, получившее максимальный рейтинг, и есть результат. Такой алгоритм конечно не даёт 100%-ый результат. Если где-нить найдёте список разных ответов от разных операторов, то можете на нём протестить готовый алгоритм. Проблему с балансом в отдельном СМС решаем так: ответ CUSD не разбираем сразу, ждём неск. секунд СМС, если получили - объединяем оба текста и анализируем вместе. CUSD будет в первом предложении. Рейтинг чисел в первом предложении сделать выше, чем во втором. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Radik_1983 0 19 октября, 2015 Опубликовано 19 октября, 2015 · Жалоба У оператора на любой ваш хитрый алгоритм найдется болт с винтом. Я думаю, что у каждого оператора есть в штате человек, который непрерывно думает, как максимально усложнить жизнь таким как мы людям. Как обработать такой ответ: "Положите 10 руб. на счет и будет вам счастье! Позвоните по номеру 6372 и выиграйте 1000000 рублей! У Вас остаток MINUS 142." ? Городить нейросеть в несколько слоев для такой задачи по мне так перебор. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться