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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.