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

 
 
6 страниц V  « < 2 3 4 5 6 >  
Reply to this topicStart new topic
> Автоматическое определение баланса СИМ карточки, Выделение суммы из ответа на запрос USSD
Velund
сообщение Feb 23 2012, 04:34
Сообщение #46


Знающий
****

Группа: Свой
Сообщений: 693
Регистрация: 19-11-04
Пользователь №: 1 177



QUOTE (ArtemKAD @ Feb 22 2012, 13:02) *
Все бы хорошо, но некоторые операторы при переводе денег не сдвигают время актуальности карточки. В результате можно оказаться с заблокированной картой на которой есть деньги...


Вежливо, в мануале на устройство, не рекомендуем пользоваться услугами таких операторов ввиду сложности контроля за состоянием счета и истечением срока действия баланса применительно к карточке, стоящей в удаленном устройстве. wink.gif
Go to the top of the page
 
+Quote Post
Andreymai
сообщение May 31 2012, 07:15
Сообщение #47


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

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



кто сделал пересылку ответа на USSD-запрос через SMS на другой номер?
есть проблема с перекодировкой из UCS2 с кирилицей.
может самому делать транслит через таблицу перекодировки....
подскажите, у кого есть рабочее решение?
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение May 31 2012, 07:42
Сообщение #48


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Я делал. Чё за проблема то?
Go to the top of the page
 
+Quote Post
Andreymai
сообщение May 31 2012, 07:45
Сообщение #49


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

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



проблема в том, чтобы запихать полученный ответ в SMS и отправить.
USSD приходит в UCS2, текст м.б. на русском и на транслите.
просто так это через SMS не передать, модем не поддерживает отправку SMS в UCS2
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение May 31 2012, 07:49
Сообщение #50


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



В PDU передавайте.
Go to the top of the page
 
+Quote Post
Andreymai
сообщение May 31 2012, 08:17
Сообщение #51


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

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



кириллица в Юникоде диапазон кодов 0400-04FF.
для перекодировки (в транслит) надо таблицу набрать.
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение May 31 2012, 09:14
Сообщение #52


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Да можно и без таблицы. 0400 вычитайте и прибавляйте 'a'. Ну и нужно учесть некоторые спецсимволы и ещё некоторые операторы позволяют себе вместо русских букв ставить аналогичные латинские.
Go to the top of the page
 
+Quote Post
Andreymai
сообщение May 31 2012, 11:01
Сообщение #53


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

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



выкладываю свой вариант с транслитом русских букв в англ
Прикрепленные файлы
Прикрепленный файл  translit.txt ( 3.34 килобайт ) Кол-во скачиваний: 134
 
Go to the top of the page
 
+Quote Post
andrewlekar
сообщение May 31 2012, 18:33
Сообщение #54


Знающий
****

Группа: Участник
Сообщений: 837
Регистрация: 8-02-07
Пользователь №: 25 163



Зачем так над пользователями издеваться? PDU режим стоит освоить и передавать им нормальные русскоязычные сообщения. Ещё есть нюанс: у теле2 ответ на USSD запрос бывает содержит переносы строки и определить границы сообщения невозможно. Лично я включаю USSD режим запросов в UCS-2 для всех операторов.
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 1 2012, 02:43
Сообщение #55


Знающий
****

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



Цитата(Andreymai @ May 31 2012, 14:45) *
...
просто так это через SMS не передать, модем не поддерживает отправку SMS в UCS2
Это что за модем такой?
Go to the top of the page
 
+Quote Post
Andreymai
сообщение Jun 1 2012, 04:22
Сообщение #56


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

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



andrewlekar, спасибо за ценную инфу, попробую поработать с TELE2

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

кстати, почему-то не получается удаленно работать в интерактивном режиме, когда оператор предлагает варианты для выбора:
отвечаю AT+CUSD=1,"1" чтобы выбрать пункт меню, а получаю тот же ответ, что и при первом запросе

Сообщение отредактировал Andreymai - Jun 1 2012, 04:31
Go to the top of the page
 
+Quote Post
sobr
сообщение Jun 1 2012, 06:23
Сообщение #57


Знающий
****

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



Цитата(Andreymai @ Jun 1 2012, 11:22) *
Sobr, все тот же Q2686 :-)
А с какого перепугу он перестал поддерживать UCS2 в СМС? biggrin.gif
Go to the top of the page
 
+Quote Post
Andreymai
сообщение Jun 1 2012, 06:32
Сообщение #58


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

Группа: Участник
Сообщений: 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
Сообщение #59


Знающий
****

Группа: Свой
Сообщений: 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
sobr
сообщение Jun 1 2012, 09:38
Сообщение #60


Знающий
****

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



Andreymai получилось?
Go to the top of the page
 
+Quote Post

6 страниц V  « < 2 3 4 5 6 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 06:00
Рейтинг@Mail.ru


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