Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автоматическое определение баланса СИМ карточки
Форум разработчиков электроники ELECTRONIX.ru > Интерфейсы > Форумы по интерфейсам > Сотовая связь и ее приложения
Страницы: 1, 2
Andreymai
кириллица в Юникоде диапазон кодов 0400-04FF.
для перекодировки (в транслит) надо таблицу набрать.
andrewlekar
Да можно и без таблицы. 0400 вычитайте и прибавляйте 'a'. Ну и нужно учесть некоторые спецсимволы и ещё некоторые операторы позволяют себе вместо русских букв ставить аналогичные латинские.
Andreymai
выкладываю свой вариант с транслитом русских букв в англ
andrewlekar
Зачем так над пользователями издеваться? PDU режим стоит освоить и передавать им нормальные русскоязычные сообщения. Ещё есть нюанс: у теле2 ответ на USSD запрос бывает содержит переносы строки и определить границы сообщения невозможно. Лично я включаю USSD режим запросов в UCS-2 для всех операторов.
sobr
Цитата(Andreymai @ May 31 2012, 14:45) *
...
просто так это через SMS не передать, модем не поддерживает отправку SMS в UCS2
Это что за модем такой?
Andreymai
andrewlekar, спасибо за ценную инфу, попробую поработать с TELE2

Sobr, все тот же Q2686 :-)

кстати, почему-то не получается удаленно работать в интерактивном режиме, когда оператор предлагает варианты для выбора:
отвечаю AT+CUSD=1,"1" чтобы выбрать пункт меню, а получаю тот же ответ, что и при первом запросе
sobr
Цитата(Andreymai @ Jun 1 2012, 11:22) *
Sobr, все тот же Q2686 :-)
А с какого перепугу он перестал поддерживать UCS2 в СМС? biggrin.gif
Andreymai
AT+CSCS=?

"GSM", "PCCP437", "CUSTOM", "HEX"
sobr
Цитата(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.
sobr
Andreymai получилось?
KARLSON
А максимальное число символов в ответе баланса сколько может быть? Кто с каким максимумом сталкивался? Я с 70 символами.
Integral
Ну народ дает.... решает не решаемую задачу, ответ баланса не есть стандарт, потому менятся будет как угодно когда угодно и в любой стране, потому пытаться выделять сумму есть тупиковый метод, уже слышал от клиентов отзывы о устройствах конкурентов в которых пытались так сделать, в результате ниче не работает

Цитата(MKdemiurg @ Feb 21 2012, 14:43) *
Как вы предлагаете автоматизировать поиск по минимуму баланса среди 1000 устройств?

Хранить в базе такую кучу мусора. Тем более что механимы поиска будут теже что и на устройстве.


В таких случаях берутся контрактные симки с ОДНИМ балансом на 1000 симок

Как решить вопрос с пользователем 1шт... я в каждом СМС дополнительно отправляю информацию о балансе, в результате баланс у пользователя всегда на виду + в настройках думаю сделать доп. опцию типа отправлять баланс раз в неделю / месяц и т.д.

С ГПРС серверами проблем нет, там контрактные симки, а с пользователями 1шт... нужно слать строки баланса при любой возможности, вот и все пироги, нет привязки корректности работы устройства к оператору, а это очень важно

ArtemKAD
Цитата
решает не решаемую задачу, ответ баланса не есть стандарт, потому менятся будет как угодно когда угодно и в любой стране, потому пытаться выделять сумму есть тупиковый метод, уже слышал от клиентов отзывы о устройствах конкурентов в которых пытались так сделать, в результате ниче не работает


Не знаю как у кого она не решаемая, но у нас автопроверка баланса (настраивается позиция в запросе и уровень баланса ниже которого надо оповещать) работает лет шесть без особых нареканий. А это несколько тысяч систем которые работают со всем зоопарком наших украинских операторов...
ЗЫ. Система самостоятельно оповещает юзера если на счету денег мало...
MKdemiurg
Цитата(Integral @ Aug 6 2012, 13:13) *
В таких случаях берутся контрактные симки с ОДНИМ балансом на 1000 симок

Как решить вопрос с пользователем 1шт... я в каждом СМС дополнительно отправляю информацию о балансе, в результате баланс у пользователя всегда на виду + в настройках думаю сделать доп. опцию типа отправлять баланс раз в неделю / месяц и т.д.

С ГПРС серверами проблем нет, там контрактные симки, а с пользователями 1шт... нужно слать строки баланса при любой возможности, вот и все пироги, нет привязки корректности работы устройства к оператору, а это очень важно


Контрактные симки сразу "отваливаются" - в смысле - не подходят.
Мне надо баланс отправлять ежедневно. Просто ежедневно отлавливать баланс и записывать в базу данных на сервере.
Integral
Цитата(ArtemKAD @ Aug 6 2012, 16:03) *
Не знаю как у кого она не решаемая, но у нас автопроверка баланса (настраивается позиция в запросе и уровень баланса ниже которого надо оповещать) работает лет шесть без особых нареканий. А это несколько тысяч систем которые работают со всем зоопарком наших украинских операторов...
ЗЫ. Система самостоятельно оповещает юзера если на счету денег мало...


А мнение своих юзеров слышали? им еще не надоело вечно менять настройки позиции баланса? или плюнули уже давно?
Есть масса клиентов вообще ни грамма не понимающих в настройках, хотят и заказывают уже даже сразу настроенные системы на их же номера, т.е. мне вариант настройки позиции юзером не катит, будет огромная масса звонков от дедушек/бабушек/ всяких там блондинок как оно там настраивается, влезут в настройки.... ууу.... короче, придется все с 0 настраивать.

У меня лично нет желания продать несколько тысяч устройств и 90% тел. звонков на протяжении лет 5 иметь о консультации не работоспособности проверки баланса.... реально проще повесится, ну или нанять спец. чела для подобного рода консультаций.
Для не особо опытных юзеров система настраивается, продается и ТОЧКА. Должна работать пока не выбросят, мне так легче, меньше гемора с тех. поддержкой
=F8=
Цитата(Integral @ Aug 6 2012, 13:13) *
Ну народ дает.... решает не решаемую задачу, ответ баланса не есть стандарт, потому менятся будет как угодно когда угодно и в любой стране, потому пытаться выделять сумму есть тупиковый метод, уже слышал от клиентов отзывы о устройствах конкурентов в которых пытались так сделать, в результате ниче не работает

Почему не решаемую? Вы же увидев ответ эту задачу решаете.
ArtemKAD
Цитата
им еще не надоело вечно менять настройки позиции баланса?

Зачем? Эти настройки очень не часто меняются. И даже более того - за все время я видел только 3 их варианта... С учетом распространенности этих вариантов я могу забив в слепую один вариант угадать в 4 случаях из 5.
andrewlekar
Integral прав. Чтобы в корне решить эту проблему, нужно или отправлять ответ с балансом пользователю целиком (включая рекламу), или брать симки на юр. лицо и ежедневно запрашивать баланс и детализацию.
ArtemKAD
Цитата
нужно или отправлять ответ с балансом пользователю целиком

И тратить на это каждый раз деньги... И зачем тогда такая проверка? Ради галочки?
andrewlekar
Цитата
И тратить на это каждый раз деньги... И зачем тогда такая проверка? Ради галочки?

Любое другое автоинформирование о балансе тоже будет тратить деньги. Проставлять цифру с балансом в каждое отправляемое сообщение - издевательство над пользователем и здравым смыслом.
=F8=
Цитата(andrewlekar @ Aug 8 2012, 07:53) *
Любое другое автоинформирование о балансе тоже будет тратить деньги. Проставлять цифру с балансом в каждое отправляемое сообщение - издевательство над пользователем и здравым смыслом.

А зачем "проставлять цифру с балансом в каждое отправляемое сообщение"? Вы переодически контролируете балланс. Если балланс меньше заданного значения - сообщаете об этом пользователю, один раз. И необязательно с помощью SMS, можно и голосовым сообщением, можно и e-mail отправить.

andrewlekar
"Чтобы в корне решить эту проблему, нужно или отправлять ответ с балансом пользователю целиком (включая рекламу)"

Ещё раз повторяю, не надо ничё парсить. Сами себе выроете яму и сами в неё потом прыгнете. Пользователь запросил баланс - запросили по USSD у оператора - кинули всё, что пришло. Просто и надёжно.
Integral
Цитата
Проставлять цифру с балансом в каждое отправляемое сообщение - издевательство над пользователем и здравым смыслом.


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

Не знаю как кто кому и зачем производит, я делаю как хотят клиенты, было много пожеланий о балансе в каждом смс, то и сделали, все довольны.

Пример.
Отправляет пользователь смс "АКТИВИРОВАТЬ БОМБУ"
В ответ приходит подтверждение выполнения команды "ОК" или "ЕРРОР"
В самом конце сообщение пишет текущий баланс

Пока продолжаем слушать дальше клиентов, может еще чето интересное придумают
ArtemKAD
Цитата
Любое другое автоинформирование о балансе тоже будет тратить деньги.

Но будет тратить когда надо, а не постоянно.
Т.е. заранее задается правило, на основании которого система самостоятельно запрашивает баланс, разбирает ответ и если конкретное число в ответе меньше требуемого, вот тогда уже и можно отправить оповещение о том, что денег мало.

Цитата
Пользователь запросил баланс - запросили по USSD у оператора - кинули всё, что пришло. Просто и надёжно.


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

Цитата
Отправляет пользователь смс

Пользователь может пользоваться и исключительно DTMF-интерфейсом.
Integral
Лично у меня нет ДТМФ (точней пару команд всего) так как нет голосового меню, а без голосового меню ДТМФ катастрофически не удобен, потому только смс с понятным текстом и понятным добавлением текста с балансом, а не так как у некоторых.... сплошные ДТМФ команды без голосового меню, нужно как минимум иметь на руках документацию с кучей не понятных циферок

У кого есть голосовое меню научите тетку читать все сообщение о балансе
ArtemKAD
Цитата
У кого есть голосовое меню научите тетку читать все сообщение о балансе

А латиницу как читать - как транслит или как английский? wink.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.