реклама на сайте
подробности

 
 
> Автоматическое определение баланса СИМ карточки, Выделение суммы из ответа на запрос USSD
Dmitrich
сообщение Dec 14 2011, 06:31
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 51
Регистрация: 15-02-05
Пользователь №: 2 663



Ответы на запрос баланса по USSD у всех операторов, мало того, что разные, так они ещё и меняются время от времени.

Я у себя делаю так:

- ловлю в ответе слово "Баланс" ("Balace", "Balans","OCTATOK") и считываю первое число после него,
- если этих слов нет, считываю первое число и проверяю, что за ним есть буква 'р' или 'r', а в ответе нет слов "Ошибка", "Недоступен".

Но это срабатывает не всегда.

Например, из Казахстана прислали любопытный текст ответа (привожу по памяти): "На 12.11.2011 остаток на Вашем счету составляет...".
Естественно, моё устройство этот ответ не распознало.

Приглашаю поделится опытом - кто как распознаёт ответ оператора на запрос баланса по USSD.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Andreymai
сообщение Jun 1 2012, 06:32
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 137
Регистрация: 29-06-11
Пользователь №: 65 964



AT+CSCS=?

"GSM", "PCCP437", "CUSTOM", "HEX"
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 1 2012, 06:35
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 926
Регистрация: 18-01-07
Пользователь №: 24 552



Цитата(Andreymai @ Jun 1 2012, 13:32) *
AT+CSCS=?

"GSM", "PCCP437", "CUSTOM", "HEX"
Погоди чуток, с обеда вернусь, кусок кода выложу и будет тебе счастье biggrin.gif
Ну вот, как то так...
Код
#include "adl_global.h"

const u16 wm_apmCustomStackSize = 4096*4;


s8 SmsHandle = -1;
ascii sms_buf[280];
ascii num[15];



void SmsCtrlHandler( u8 Event, u16 Nb )
{
    TRACE (( 1, "SMS_EVENT N:%d",Event));

  switch(Event)
  {
    case ADL_SMS_EVENT_SENDING_OK:
        //----------- СМС ушло ------------//
        TRACE (( 1, "SMS_SENDING_OK"));

      break;

    case ADL_SMS_EVENT_SENDING_ERROR:
      TRACE (( 1, "SMS_ERROR N:%d",Nb));
      break;

    default:
  }
}

bool SmsHandler( ascii * SmsTel, ascii * SmsTimeOrLength, ascii * SmsText )
{
        //----- Тут читаем СМС ---------//
  return ADL_SMS_FILTER_INDICATION_AND_DELETE;
}

s16 sms_at_Handler(adl_atResponse_t *paras)
{
    if(paras->RspID == ADL_STR_OK);
    {
        adl_smsSend ( SmsHandle, num, sms_buf, ADL_SMS_MODE_TEXT);
    }
    return FALSE;
}

void SmsSend(u8 z, u8 n[])
{
    wm_strcpy(num,(ascii*)n);
    if(z == 0)
    {
        //---Текст СМС в UCS2-------//
        wm_strcpy(sms_buf,"0410043D0434044004350439002C0020043F044004380432043504420020043804370020041D
043E0432043E044104380431043804400441043A04300021");    
        adl_atCmdSend ( "AT+CSMP=1,168,0,8",(adl_atRspHandler_t)sms_at_Handler,"*",NULL);
    }else
        if(z == 1)
        {
            //---Текст СМС в GSM -------//
            wm_strcpy(sms_buf,"Hello Word!");    
            adl_atCmdSend ( "AT+CSMP=1,168,0,17",(adl_atRspHandler_t)sms_at_Handler,"*",NULL);
        }
}

void adl_main ( adl_InitType_e  InitType )
{
    SmsHandle = adl_smsSubscribe ( SmsHandler, SmsCtrlHandler, ADL_SMS_MODE_TEXT);
    
    // ------------------  UCS2 ----------------- //
    SmsSend(0,"+7913xxxxxx");
    
    // ------------------  GSM ----------------- //
    //SmsSend(1,"+7913xxxxxx");
}


Как видишь если не надо "склеивать" в длинную смску то можно в текстовом режиме отправить UCS2.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Dmitrich   Автоматическое определение баланса СИМ карточки   Dec 14 2011, 06:31
- - KARLSON   А что если искать в тексте выражение число с точко...   Dec 14 2011, 06:57
|- - Dmitrich   Цитата(KARLSON @ Dec 14 2011, 10:57) А чт...   Dec 14 2011, 12:23
- - sobr   Цитата(Dmitrich @ Dec 14 2011, 13:31) Отв...   Dec 14 2011, 13:35
|- - pau62   Чем плохо найти 2 цифры, разделитель и еще 2 цифры...   Dec 14 2011, 14:01
- - CADiLO   Может быть искать название денег - рубли-гривны-ту...   Dec 14 2011, 14:07
|- - ssokol   а я еще всегда запрашиваю ответ транслитом - некая...   Dec 14 2011, 15:12
- - GeGeL   Украинские сисопы все передают баланс только тран...   Dec 14 2011, 17:17
- - KARLSON   Вот что ляпают операторы в Нижегородской области: ...   Dec 14 2011, 18:00
- - Velund   Гм... А почему бы не _попросить_ у операторов нужн...   Dec 14 2011, 22:32
|- - Dmitrich   Цитата(Velund @ Dec 15 2011, 02:32) Гм......   Dec 15 2011, 05:09
|- - sobr   Цитата(Velund @ Dec 15 2011, 05:32) Если ...   Dec 15 2011, 09:18
|- - =F8=   Цитата(sobr @ Dec 15 2011, 13:18) Да вот ...   Dec 15 2011, 14:05
||- - sobr   Цитата(=F8= @ Dec 15 2011, 21:05) Ничего ...   Dec 15 2011, 16:58
||- - ssokol   Цитата(sobr @ Dec 15 2011, 20:58) А зачем...   Dec 16 2011, 16:16
||- - stream   Цитата(ssokol @ Dec 16 2011, 20:16) БАРДА...   Dec 19 2011, 07:45
|- - ssokol   Цитата(sobr @ Dec 15 2011, 13:18) Тот же ...   Dec 15 2011, 15:59
- - Andreymai   а интернет помощник/личный кабинет/сервис-гид не п...   Dec 15 2011, 04:12
- - =F8=   Искал по сочетанию подходящее по формату число(дес...   Dec 15 2011, 06:23
- - ilya_nn   Цитата(Dmitrich @ Dec 14 2011, 10:31) Отв...   Dec 15 2011, 07:54
|- - =F8=   Цитата(ilya_nn @ Dec 15 2011, 11:54) Из с...   Dec 15 2011, 08:11
|- - 13amator   Цитата(=F8= @ Dec 15 2011, 12:11) Это хор...   Dec 15 2011, 09:43
- - KARLSON   А вообще с операторами кто-нибудь может поговорить...   Dec 15 2011, 09:33
|- - sobr   Цитата(KARLSON @ Dec 15 2011, 16:33) А во...   Dec 15 2011, 11:44
- - KARLSON   C обычными пользователями разговаривать там не буд...   Dec 15 2011, 13:47
- - vintick   А на Life , если запрашивать через *100# , иногда ...   Dec 19 2011, 13:38
|- - ssokol   Цитата(vintick @ Dec 19 2011, 17:38) А на...   Dec 19 2011, 17:13
- - V125   Сейчас проверил баланс Мегафон 0,28руб. *Не заб...   Dec 29 2011, 20:47
- - krdmitry   Позвольте вклиниться по поводу МТС: порекомендую и...   Dec 29 2011, 21:13
- - sobr   Цитата(Ответ МТС на USSD запрос)Баланс:156,17р Хит...   Feb 18 2012, 08:26
|- - GeGeL   Цитата(sobr @ Feb 18 2012, 11:26) ==Балан...   Feb 19 2012, 19:40
- - ArtemKAD   Цитата(Dmitrich @ Dec 14 2011, 08:31) При...   Feb 19 2012, 00:21
- - ArtemKAD   ЦитатаА это как и где? Команда настройки автопров...   Feb 19 2012, 22:23
- - MVJ   Не понимаю, зачем нужно определять баланс именно в...   Feb 21 2012, 11:09
- - MKdemiurg   Как вы предлагаете автоматизировать поиск по миним...   Feb 21 2012, 11:43
|- - MVJ   Цитата(MKdemiurg @ Feb 21 2012, 14:43) Хр...   Feb 21 2012, 12:23
- - MKdemiurg   НУ вот мы тут и обсуждали "маски". Я е...   Feb 21 2012, 12:46
|- - MVJ   Цитата(MKdemiurg @ Feb 21 2012, 15:46) ес...   Feb 21 2012, 13:14
- - MKdemiurg   Цитата(MVJ @ Feb 21 2012, 16:14) Думаю, ч...   Feb 21 2012, 13:35
- - ArtemKAD   ЦитатаНа мой взгляд более актуальныно было бы реши...   Feb 21 2012, 18:51
- - CADiLO   Одни товарищи сделали следующее автопополнение - о...   Feb 22 2012, 07:15
- - ArtemKAD   ЦитатаЗатем когда кто нибуть из клиентских модулей...   Feb 22 2012, 09:02
|- - Velund   QUOTE (ArtemKAD @ Feb 22 2012, 13:02) Все...   Feb 23 2012, 04:34
- - CADiLO   У меня предоплатные МТС и Киевстар - пофигу как по...   Feb 22 2012, 09:44
- - ArtemKAD   Насколько помню это касалось в первую очередь Лайф...   Feb 22 2012, 12:41
- - CADiLO   Там да, могут чудить.... Впрочем у Лайфа и без эт...   Feb 22 2012, 12:45
- - Andreymai   кто сделал пересылку ответа на USSD-запрос через S...   May 31 2012, 07:15
- - andrewlekar   Я делал. Чё за проблема то?   May 31 2012, 07:42
- - Andreymai   проблема в том, чтобы запихать полученный ответ в ...   May 31 2012, 07:45
|- - sobr   Цитата(Andreymai @ May 31 2012, 14:45) .....   Jun 1 2012, 02:43
- - andrewlekar   В PDU передавайте.   May 31 2012, 07:49
- - Andreymai   кириллица в Юникоде диапазон кодов 0400-04FF. для ...   May 31 2012, 08:17
- - andrewlekar   Да можно и без таблицы. 0400 вычитайте и прибавляй...   May 31 2012, 09:14
- - Andreymai   выкладываю свой вариант с транслитом русских букв ...   May 31 2012, 11:01
- - andrewlekar   Зачем так над пользователями издеваться? PDU режим...   May 31 2012, 18:33
- - Andreymai   andrewlekar, спасибо за ценную инфу, попробую пора...   Jun 1 2012, 04:22
|- - sobr   Цитата(Andreymai @ Jun 1 2012, 11:22) Sob...   Jun 1 2012, 06:23
- - sobr   Andreymai получилось?   Jun 1 2012, 09:38
- - KARLSON   А максимальное число символов в ответе баланса ско...   Aug 5 2012, 18:42
- - Integral   Ну народ дает.... решает не решаемую задачу, ответ...   Aug 6 2012, 10:13
|- - =F8=   Цитата(Integral @ Aug 6 2012, 13:13) Ну н...   Aug 6 2012, 15:29
- - ArtemKAD   Цитатарешает не решаемую задачу, ответ баланса не ...   Aug 6 2012, 13:03
- - MKdemiurg   Цитата(Integral @ Aug 6 2012, 13:13) В та...   Aug 6 2012, 13:23
- - Integral   Цитата(ArtemKAD @ Aug 6 2012, 16:03) Не з...   Aug 6 2012, 14:52
- - ArtemKAD   Цитатаим еще не надоело вечно менять настройки поз...   Aug 6 2012, 17:25
- - andrewlekar   Integral прав. Чтобы в корне решить эту проблему, ...   Aug 7 2012, 07:26
- - ArtemKAD   Цитатанужно или отправлять ответ с балансом пользо...   Aug 7 2012, 09:19
- - andrewlekar   ЦитатаИ тратить на это каждый раз деньги... И заче...   Aug 8 2012, 04:53
|- - =F8=   Цитата(andrewlekar @ Aug 8 2012, 07:53) Л...   Aug 8 2012, 06:17
- - andrewlekar   "Чтобы в корне решить эту проблему, нужно или...   Aug 8 2012, 09:49
- - Integral   ЦитатаПроставлять цифру с балансом в каждое отправ...   Aug 8 2012, 10:38
- - ArtemKAD   ЦитатаЛюбое другое автоинформирование о балансе то...   Aug 8 2012, 17:13
- - Integral   Лично у меня нет ДТМФ (точней пару команд всего) т...   Aug 8 2012, 17:25
- - ArtemKAD   ЦитатаУ кого есть голосовое меню научите тетку чит...   Aug 8 2012, 17:41


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 3rd August 2025 - 21:46
Рейтинг@Mail.ru


Страница сгенерированна за 0.01435 секунд с 7
ELECTRONIX ©2004-2016