Перейти к содержанию
    

sobr

А вы бы не могли свой парсер выложить или скинуть - не ради копипаста, а ради инженерного интереса.

Да в принципе мог бы...

Выложить схему, печатку, и исходные коды, но правила компаний на которые я работаю это запрещают. Бюрократы, правда же?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Разобрался как отправить СМС

AT+CMGS="Номер в кодировке UCS2" //Отправить SMS на N телефона

Ожидаем прихода > код 0x3E

Отправляем тело баланса без кавычек

Вводим код 0x1A //Ctrl^z в терминалке это будет выглядеть $1A

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Да в принципе мог бы...

Выложить схему, печатку, и исходные коды, но правила компаний на которые я работаю это запрещают. Бюрократы, правда же?

 

ДА гады вообще :) Всю страну сгубили...

Изменено пользователем MKdemiurg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я пытаюсь данную проблему решить следующим образом:

1.С телефона клиента осуществляю звонок на устройство

2. После соединения набираю через ДТМФ код запроса

3. Устройсво анализирует код запроса

4. Через AT+CLCC узнаёт с какого номера был звонок, и если в таблице разрешённых номеров такой имеется то его запоминает.

5. Отклоняет звонок ATH

6. Делает запрос о балансе AT+CUSD=1,"002A0031003000320023"

7. Отправляет на запомненный номер СМС с телом запроса о балансе.

 

У меня тоже почти так же сделано, только без ДТМФ-кода: смс отправляется, если сделать вх.звонок, отбить и затем сделать второй с того же номера в течение 30 сек.

 

Что касается автоуведомления о критическом снижении баланса, тоже не вижу особых сложностей:

периодически (скажем, раз в сутки) делаем USSD, далее парсим ответ следующим образом:

ищем первую цифру (по моим наблюдениям значение баланса идет первым, потом уже бонусы и т.п.), и затем atof.

Сравниваем с порогом, если ниже - отправляем смс с уведомлением.

 

ПС: в УА есть еще бесплатные СМС "Перезвоните мне, пожалуйста", отправляемые и при нулевом балансе. Такой можно отправлять, когда обычное СМС невозможно.

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Народ подскажите за что отвечает первый параметр в ответете на CUSD запрос.

 

Вот этот ..+CUSD: 0,"Na rahunku: 9.97 grn. Info pro bonusy

А то в даташите не прописано это...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

дык я ж говорю именно в ответе. А то write command

 

AT+CUSD=1,"*111#"..

А в ответ +CUSD: 0 , ....

 

PS Ещё порылся в инете по этой команде. Местами у людей запрос не пашет без 3 параметра. А вот что это за параметр непонятно...

Изменено пользователем MKdemiurg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ага понятно... НЕпонятно вот что...

 

 

Первый параметр:

0: от пользователя не требуется никаких действий (инициированные се-тью уведомления USSD или больше не требуется информация после операции, инициированной мобильным устройством)

1: от пользователя требуются дальнейшие действия (инициированный сетью запрос USSD или требуется информация после операции, инициированной мобильным устройством)

2: USSD отключены сетью

4: операция не поддерживается

 

Почему тогда в той же теме и я встречал приходит ответ :

 

+CUSD: 2,"Na rahunku: 29.34 grn......

Т.е. ориентироваться на значение 1го параметра всётаки нельзя...

Изменено пользователем MKdemiurg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Подыму-ка я тему. Может кто поможет..

MKdemiurg прав на счет первого параметра.

У себя я отправляю запрос AT+CUSD=1,"*100#" и жду ответа. Так вот, на 2-х операторах (Velcom и МТС) приходит +CUSD: 0,""Balans....".

А вот на еще одном операторе (Life:)) приходит +CUSD: 1,""Balans....".

Засада в том, что я ждал +CUSD: 0 (и повторял запрос,если было не 0) на что получал +CUSD: 0,"USSD sessia zavershena",64. В итоге девайс вместо строки баланса отсылал эту информацию. В принципе, ничего страшного, если узнать при каком значении этого параметра будет правильная строка ответа.

Я пробовал "#100#". Первые два оператора отвечают по прежнему, а третий +CUSD:2. ATD*100# имеет тот же эффект, что и AT+CUSD=1,"*100#".

Запросы AT+CUSD=? и AT+CUSD? дают одинаковые результаты у всех троих.

Кто-нибудь подскажет, как понять, с каким первым параметром будет присылать сообщение оператор?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я понял, узнать придет CUSD: 1 или 0 невозможно заранее. Я как то не обратил внимание, что на этом Life на информацию о балансе телефон ждет ответа пользователя (Да/Нет), что как раз попадает под описание значений этого байта.

Буду как вы и советуете ждать строки с цифрами.

Вот только как бы не попасть на что-нибудь новое, типа "USSD sessia zavershena, happy 2013!" :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я на 0 или 1 вообще не обращаю внимания, ищу ' " ', затем цифры и после цифр должно быть или ' . ' или ' , ' или пробел.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...