Status of smsc_cgw
Kalle Niemitalo <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
We wanted to connect Kannel 1.4.4 to Sonera Content Gateway and use it for MO SMS and MT SMS. Kannel includes gw/smsc/smsc_cgw.c for this, although it is not documented in the user guide. It was easy to set up, but our testing found several bugs. I have posted patches for most of these bugs to redmine.kannel.org, and we are now using these patches in production. The patched version still has several problems: - UCS-2 MO messages cannot be reliably distinguished from 8-bit. This is a limitation of the Open Text Protocol. - UCS-2 MT messages cannot be sent. This is a limitation of the Open Text Protocol. - In 7-bit MO messages, U+007B gets replaced with U+007C. This looks like a bug in Content Gateway. I've reported it to Sonera. - In MT messages, some GSM 03.38 default alphabet characters cannot be sent in a documented way. They can be sent in an undocumented way though. - smsc_cgw is still not documented in the user guide. Filed as: https://redmine.kannel.org/issues/721 - The code does not follow doc/CodingStyle. On the other hand, that file still refers to CVS rather than SVN, so I don't know whether the guidelines in it are still valid. - The comments above gsm_to_cgw_table[] refer to msg_to_cgw; they should refer to gsm_to_cgw_table. - The handling of non-UTF-8 msg->sms.charset in MT could perhaps be improved. In particular, I think there ought to be a way to provide the msgdata already encoded in a GSM 03.38 non-default alphabet. - I don't know whether delivery notices work at all. - Some of the bugs I fixed were obvious and serious, but AFAIK nobody else had reported them. This indicates smsc_cgw has hardly any other users. If we use it, then we have to maintain it ourselves. I think we should research using the HTTP interfaces of Content Gateway Provider Server instead. Perhaps that could avoid the limitations and bugs of Open Text Protocol. The C implementation in Kannel would probably be shorter as well, thus easier to maintain. Testing would become easier too, because generic HTTP client and server software could be used. Unfortunately, I don't know when I'll have time for this. We'll use smsc_cgw for now. Here is the full list of current patches that I've posted to redmine, in the order they can be applied to Kannel 1.4.4. About half of them are for smsc_cgw: * Subject: mssql: Minor fixes in ct_con_props call Bug: https://redmine.kannel.org/issues/723 Forwarded: https://redmine.kannel.org/attachments/276/35_mssql_check_conn.patch * Subject: smsc_cimd2: Reset receive_seq for each TCP connection Bug: https://redmine.kannel.org/issues/725 Forwarded: https://redmine.kannel.org/attachments/277/36_cimd2_reset_receive_seq.patch * Subject: Fix the formatting of mtbatch.1 Bug: https://redmine.kannel.org/issues/728 Forwarded: https://redmine.kannel.org/attachments/278/37_mtbatch_1_formatting.patch Applied-Upstream: https://redmine.kannel.org/projects/kannel/repository/revisions/5144 * Subject: smsc_http: Allow configuring as MO-only Bug: https://redmine.kannel.org/issues/732 Forwarded: https://redmine.kannel.org/attachments/280/38_smsc_http_mo_only.patch * Subject: smsc_cgw: Set type:bin only if DC_8BIT or DC_UCS2 Bug: https://redmine.kannel.org/issues/729 Forwarded: https://redmine.kannel.org/attachments/294/smsc_cgw-Set-type-bin-only-if-DC_8BIT-or-DC_UCS2.patch * Subject: sendota: Don't dict_remove a NULL key Bug: https://redmine.kannel.org/issues/731 Forwarded: https://redmine.kannel.org/attachments/282/smsbox_req_sendota-Don-t-dict_remove-a-NULL-key.patch * Subject: userguide: Populate the SMSC protocol list Bug: https://redmine.kannel.org/issues/722 Forwarded: https://redmine.kannel.org/attachments/283/userguide-Populate-the-SMSC-protocol-list.patch * Subject: Tell SMS services how many parts of MO concat SMS were received Bug: https://redmine.kannel.org/issues/726 Forwarded: https://redmine.kannel.org/attachments/284/Tell-SMS-services-how-many-parts-of-MO-concat-SMS-we.patch * Subject: sendsms: Return X-Kannel-Billing-Part-Count Bug: https://redmine.kannel.org/issues/730 Forwarded: https://redmine.kannel.org/attachments/287/sendsms-Return-X-Kannel-Billing-Part-Count.patch * Subject: smsc_cgw: Fix infinite loop in cgw_encode_msg Bug: https://redmine.kannel.org/issues/736 Forwarded: https://redmine.kannel.org/attachments/295/smsc_cgw-Fix-infinite-loop-in-cgw_encode_msg.patch * Subject: smsc_cgw: Decode UDH in MO SM Bug: https://redmine.kannel.org/issues/734 Forwarded: https://redmine.kannel.org/attachments/288/smsc_cgw-Decode-UDH-in-MO-SM.patch * Subject: smsc_cgw: Recognize "type:bin" in MO SM Bug: https://redmine.kannel.org/issues/735 Forwarded: https://redmine.kannel.org/attachments/296/smsc_cgw-Recognize-type-bin-in-MO-SM.patch * Subject: smsc_cgw: Recode MO SM from Latin-1 to UTF-8 Bug: https://redmine.kannel.org/issues/735 Forwarded: https://redmine.kannel.org/attachments/297/smsc_cgw-Recode-MO-SM-from-Latin-1-to-UTF-8.patch * Subject: smsc_cgw: Recode MT SM from UTF-8 to almost Latin-1 Bug: https://redmine.kannel.org/issues/735 Forwarded: https://redmine.kannel.org/attachments/301/smsc_cgw-Recode-MT-SM-from-UTF-8-to-almost-Latin-1.patch * Subject: smsc_cgw: Replace \\, \n, and \r in parallel Bug: https://redmine.kannel.org/issues/737 Forwarded: https://redmine.kannel.org/attachments/299/smsc_cgw-Replace-n-and-r-in-parallel.patch * Subject: smsc_cgw: Replace some ESC+char pairs in MO SM Bug: https://redmine.kannel.org/issues/737 Forwarded: https://redmine.kannel.org/attachments/300/smsc_cgw-Replace-some-ESC-char-pairs-in-MO-SM.patch