Peter Beckman wrote:
Dear Kannel Developers:
I've written about this before, but I thought I would bring it up again because I hate patching.
Many SMSC's are starting to use the optional SMPP parameters for information like billing issues, carrier failures, etc. Kannel really doesn't allow for this -- it detects the parameters, but is unable to actually turn them into some sort of passable escape code(s) via sms-service.
Take for example this log dump:
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x0427)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 1
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x001e)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 29
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x1402)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 1
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x1404)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 22
2005-01-27 16:46:56 [30186] [7] ERROR: SMPP: Unknown TLV(0x1404,0x0016,4154265420576972656c657373205365727669636573) for PDU type (deliver_sm) received!
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x1530)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 3
2005-01-27 16:46:56 [30186] [7] ERROR: SMPP: Unknown TLV(0x1530,0x0003,504244) for PDU type (deliver_sm) received!
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x1531)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 90
2005-01-27 16:46:56 [30186] [7] ERROR: SMPP: Unknown TLV(0x1531,0x005a,4e6f2050686f6e65204e756d6265723a20537562736372696265722070686f6e65206e756d62657220776173206e6f74206d617463686
56420696e2074686520515073732073797374656d206f722041575320506f7274616c20) for PDU type (deliver_sm) received!
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x1532)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 6
2005-01-27 16:46:56 [30186] [7] ERROR: SMPP: Unknown TLV(0x1532,0x0006,2d3230313030) for PDU type (deliver_sm) received!
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter tag (0x1533)
2005-01-27 16:46:56 [30186] [7] DEBUG: Optional parameter length read as 90
2005-01-27 16:46:56 [30186] [7] ERROR: SMPP: Unknown TLV(0x1533,0x005a,4e6f2050686f6e65204e756d6265723a20537562736372696265722070686f6e65206e756d62657220776173206e6f74206d617463686
56420696e2074686520515073732073797374656d206f722041575320506f7274616c20) for PDU type (deliver_sm) received!
2005-01-27 16:46:56 [30186] [7] DEBUG: SMPP[mysmsc]: Got PDU:
2005-01-27 16:46:56 [30186] [7] DEBUG: SMPP PDU 0xb5c9a5e0 dump:
2005-01-27 16:46:56 [30186] [7] DEBUG: type_name: deliver_sm
2005-01-27 16:46:56 [30186] [7] DEBUG: command_id: 5 = 0x00000005
2005-01-27 16:46:56 [30186] [7] DEBUG: command_status: 0 = 0x00000000
2005-01-27 16:46:56 [30186] [7] DEBUG: sequence_number: 877 = 0x0000036d
[...]
My dream for the config file:
group = smsbox smsc-id = mysmsc [...] optparam = 0x1404:22:N:billerr_msg optparam = 0x1530:3:M:happy_tag optparam = 0x1531:90:K:secret_code optparam = 0x1532:6:J:test_msg_id optparam = 0x1533:90:L:secret_code2
Now the following takes place:
When an SMS arrives, it can be passed to sms-service, using %N, %M, %K, %J and %L (assuming those are available), so I can grab them with a PHP script and do something with them.
When submitting an SMS to kannel, I can set the URL to:
http://localhost:13013/cgi-bin/sendsms?user=[...]&billerr_msg=you+spent+too+much&happy_tag=fun&text_msg_id=123FFF
And kannel will modify the PDU to include the data passed and send that to the SMSC.
now, this approach does not "handle" on how you pass the SMPP specific optional parameters in the Kannel internal msg structure to smsbox.
I see (and I agree) that we may have a generic way in passing SMSC specific optional parameters up to the application layer and vice versa. But it should be as clean as possible and transparently configurable for all SMSC protocols.
Therefore we need a sort of Dict that contains key:value pairs within the msg structure. Any ideas on how we could handle this? Alex?
Stipe
mailto:stolj_{at}_wapme.de ------------------------------------------------------------------- Wapme Systems AG
Vogelsanger Weg 80 40470 Düsseldorf, NRW, Germany
phone: +49.211.74845.0 fax: +49.211.74845.299
mailto:info_{at}_wapme-systems.de http://www.wapme-systems.de/ -------------------------------------------------------------------