Задать вопрос
  • Как заставить KANNEL работать с кириллицей при передаче сообщения в message_payload?

    @lelik67
    Kannel bearerbox version `svn-r5303M'. Build `Nov 2 2020 03:03:24', compiler `8.3.0'.
    System Linux, release 4.19.0-12-amd64, version #1 SMP Debian 4.19.152-1 (2020-10-18), machine x86_64. Libxml version 2.9.4. Using OpenSSL 1.1.1d 10 Sep 2019.
    Compiled with MySQL 10.3.25-MariaDB, using MySQL 10.3.25.
    Compiled with PostgreSQL 11.9 (Debian 11.9-0+deb10u1).
    Using hiredis API 0.14.0
    Using native malloc.
  • Как заставить KANNEL работать с кириллицей при передаче сообщения в message_payload?

    @lelik67
    Можно поподробней, когда начало работать и как.
    Для меня не работает т.к. Kannel не понимает как правильно "encode" message payload.
    Объясню на примере:
    1) Отправляю сообщение "Проверка как работает coding 2 и charset utf8" обычным способом.
    http://kanneltest:10002/cgi-bin/sendsms?smsc=...&coding=2&charset=utf-8&text=%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%20%D0%BA%D0%B0%D0%BA%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20coding%202%20%D0%B8%20charset%20utf8

    Все нормально:
    2020-10-30 21:58:26 [23577] [6] DEBUG:   data_coding: 8 = 0x00000008
    ...
    2020-10-30 21:58:26 [23577] [6] DEBUG:   short_message:
    2020-10-30 21:58:26 [23577] [6] DEBUG:    Octet string at 0x7f1a7000a740:
    2020-10-30 21:58:26 [23577] [6] DEBUG:      len:  90
    2020-10-30 21:58:26 [23577] [6] DEBUG:      size: 91
    2020-10-30 21:58:26 [23577] [6] DEBUG:      immutable: 0
    2020-10-30 21:58:26 [23577] [6] DEBUG:      data: 04 1f 04 40 04 3e 04 32 04 35 04 40 04 3a 04 30   ...@.>.2.5.@.:.0
    2020-10-30 21:58:26 [23577] [6] DEBUG:      data: 00 20 04 3a 04 30 04 3a 00 20 04 40 04 30 04 31   . .:.0.:. .@.0.1
    2020-10-30 21:58:26 [23577] [6] DEBUG:      data: 04 3e 04 42 04 30 04 35 04 42 00 20 00 63 00 6f   .>.B.0.5.B. .c.o
    2020-10-30 21:58:26 [23577] [6] DEBUG:      data: 00 64 00 69 00 6e 00 67 00 20 00 32 00 20 04 38   .d.i.n.g. .2. .8
    2020-10-30 21:58:26 [23577] [6] DEBUG:      data: 00 20 00 63 00 68 00 61 00 72 00 73 00 65 00 74   . .c.h.a.r.s.e.t
    2020-10-30 21:58:26 [23577] [6] DEBUG:      data: 00 20 00 75 00 74 00 66 00 38                     . .u.t.f.8


    2) Отправляю сообщение "Проверка как работает coding 2 и charset utf8" в TLV.
    http://kanneltest:10002/cgi-bin/sendsms?smsc=...i&coding=2&charset=utf-8&text=&meta-data=%3Fsmpp%3Fmessage-payload%3D%D0%9F%D1%80%D0%BE%D0%B2%D0%B5%D1%80%D0%BA%D0%B0%20%D0%BA%D0%B0%D0%BA%20%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82%20coding%202%20%D0%B8%20charset%20utf8

    Приходит что-то типа китайских иероглифов:
    2020-10-30 22:05:36 [23577] [6] DEBUG:   data_coding: 8 = 0x00000008
    ...
    20-10-30 22:05:36 [23577] [6] DEBUG:   short_message: ""
    2020-10-30 22:05:36 [23577] [6] DEBUG:   message-payload:
    ....
    2020-10-30 22:05:36 [23577] [6] DEBUG:      data: d0 9f d1 80 d0 be d0 b2 d0 b5 d1 80 d0 ba d0 b0   ................
    2020-10-30 22:05:36 [23577] [6] DEBUG:      data: 20 d0 ba d0 b0 d0 ba 20 d1 80 d0 b0 d0 b1 d0 be    ...... ........
    2020-10-30 22:05:36 [23577] [6] DEBUG:      data: d1 82 d0 b0 d0 b5 d1 82 20 63 6f 64 69 6e 67 20   ........ coding
    2020-10-30 22:05:36 [23577] [6] DEBUG:      data: 32 20 d0 b8 20 63 68 61 72 73 65 74 20 75 74 66   2 .. charset utf
    2020-10-30 22:05:36 [23577] [6] DEBUG:      data: 38                                                8


    Прошу обратить внимание что например %D0 (буква П) должна передоваться как 04 1f
    А message-payload попадает d0
    Т.е. Kannel для message-payload игнорирует data_coding: 8 = 0x00000008 и использует почему-то data_coding: 0 = 0x00000000