The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"device::gsm device::gsm:sms отправка рус sms под perl через ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Perl)
Изначальное сообщение [ Отслеживать ]

"device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от bytestore email(ok) on 20-Дек-07, 17:37 
У когонибудь получилось отправлять этим модулем русские sms через ком порт??
use Device::Gsm;
$content = "ТЕСТ";
my $gsm = new Device::Gsm( port => '/dev/cuad0' );
         if( $gsm->connect() ) {
             print "connected!\n";
         } else {
             print "sorry, no connection with gsm phone on serial port!\n";
         }

my $lOk = $gsm->send_sms(
    content => $content,
    recipient => '+7ххххххххх',
    class     => 'normal',     # try `flash'
    mode      => 'pdu'
                        );
if( $lOk ) {
print "SMS check money sent!\n" ;
    } else {
        print "Error in sending!\n";
        exit ;
            }

на трубку приходит "ôåóô"
я понимаю что это UTF8, пробовал набить в кодировке UTF8, на трубку приходит "DcDDiDc"
конвертировал всеми возможными способами, безрезультатно :(
в модуле gsm.pm нашел строки которые кодируют мессагу перед отправкой
        # Encode text
        $text = Device::Gsm::Charset::iso8859_to_gsm0338( $text );
        my $enc_msg = Device::Gsm::Pdu::encode_text7( $text );
пробовал закоментировать эту функцию, с сделать
        my $enc_msg = $text;
тогда вообще не отсылает видимо формат PDU нарушается

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от vic (??) on 20-Дек-07, 18:08 
>$content = "ТЕСТ";

И какая у вас кодировка?

> $text = Device::Gsm::Charset::iso8859_to_gsm0338($text);

тут из  кодировки 8859 делается некая gsm0338
> my $enc_msg = Device::Gsm::Pdu::encode_text7($text);

тут конвертируется видимо в 7битку

итого текст должен быть в iso8859,но т.к. iso8859 это еще не русские буквы то надо искать
что нить типа Device::Gsm::Charset::ВАША_КОДИРОВКА_to_gsm0338($text);

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от bytestore email(ok) on 20-Дек-07, 18:33 
>[оверквотинг удален]
>> $text = Device::Gsm::Charset::iso8859_to_gsm0338($text);
>
>тут из  кодировки 8859 делается некая gsm0338
>> my $enc_msg = Device::Gsm::Pdu::encode_text7($text);
>
>тут конвертируется видимо в 7битку
>
>итого текст должен быть в iso8859,но т.к. iso8859 это еще не русские
>буквы то надо искать
>что нить типа Device::Gsm::Charset::ВАША_КОДИРОВКА_to_gsm0338($text);

У меня koi8r
>>что нить типа Device::Gsm::Charset::ВАША_КОДИРОВКА_to_gsm0338($text);

Пробовал закоментить строку перекодирования в модуле и сам кодировал
Encode::from_to($content, 'koi8r', 'gsm0338');
выползают "????"

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от vic (??) on 20-Дек-07, 18:56 
Девайс с русскими буквами вообще работает? Шрифты?

>У меня koi8r

а принимает 8859
т.е. надо
Encode::from_to($content, 'koi8r', 'iso8859');
но т.к. в iso8859 будут крякозябы.. хм.. надо читать доки на девайс..

хм.. пока ничего не могу посоветовать..


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от exn (??) on 21-Дек-07, 00:23 
ух ты, модулёг.. ыы.
Помницо трахался с pdu и 7ми ботной кодировкой. А тут все из коробки.
Радуйтесь

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от bytestore email(ok) on 21-Дек-07, 09:52 
>[оверквотинг удален]
>
>>У меня koi8r
>
>а принимает 8859
>т.е. надо
>Encode::from_to($content, 'koi8r', 'iso8859');
>но т.к. в iso8859 будут крякозябы.. хм.. надо читать доки на девайс..
>
>
>хм.. пока ничего не могу посоветовать..

Да девайс с русскими работает, принимает смс нормально
$koi8_str = $koi8->to8(utf8($text)->utf16);
таким образом перекодирую sms в koi8

>>Encode::from_to($content, 'koi8r', 'iso8859');

Может должна быть iso8859-5 это вроде русская как я понимаю,
а iso8859-1 это обычная latin1

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от lisolog email(??) on 25-Окт-10, 16:55 

>>>Encode::from_to($content, 'koi8r', 'iso8859');
> Может должна быть iso8859-5 это вроде русская как я понимаю,
> а iso8859-1 это обычная latin1

Бьюсь с аналгичной проблемой.
Локаль UTF8.
Никакие выкрутасы с перекодировками из вышеописанных не помогают.

Кто как решил проблему?

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от raruri email(ok) on 21-Янв-11, 22:22 
неужели никто так и не решил проблему??????
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от bytestore email(??) on 24-Янв-11, 13:24 
> неужели никто так и не решил проблему??????

Да я забросил, но помню что вроде модули поддержку влючили в режим PDU

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от raruri (ok) on 24-Янв-11, 17:25 
Решил проблему программой smstools.
Все отлично отправляет и по русски))))
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

10. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от jonson (??) on 30-Янв-11, 20:29 
> Решил проблему программой smstools.
> Все отлично отправляет и по русски))))

как в smstools добился русских смс?

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от raruri (ok) on 31-Янв-11, 07:59 
>> Решил проблему программой smstools.
>> Все отлично отправляет и по русски))))
> как в smstools добился русских смс?

все заработало само после установки
отсылаю смс "sendsms tel 'text'", кодировка Юникод

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

12. "device::gsm device::gsm:sms отправка рус sms под perl через ..."  +/
Сообщение от svi email on 12-Июл-11, 11:19 
Если еще актуально - получилось. После легкой рихтовки Gsm.pm
Исправленный можно взять здесь: http://webfile.ru/5434167
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "дополнение"  +/
Сообщение от svi email on 12-Июл-11, 11:36 
> Если еще актуально - получилось. После легкой рихтовки Gsm.pm
> Исправленный можно взять здесь: http://webfile.ru/5434167

Строка, передаваемая модему, должна быть уже в правильной кодировке:

use Encode qw/encode decode from_to/;
...
my $sms_text = 'Ваш баланс пополнен на 1000 руб.';
from_to($txt, "CP1251", "UCS2");
...
  my $sent = $gsm->send_sms(
      recipient => '+7920xxxxxxx',
      class => 'flash',
      content   => $sms_text,
      mode => 'pdu'
  );

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру