Hi Alexander!

I've made some tests with your patch.
These are the Optional SMPP parameters I've configured:


# Specifies if message must or not be billed
group  = smpp-tlv
name   = charge_type
tag    = 0x2151
type   = integer
length = 1

# Specifies amount to be billed
group  = smpp-tlv
name   = charge_amount
tag    = 0x2152
type   = integer
length = 2

# Specifies the reason why the SMS is in it's current message state
group  = smpp-tlv
name   = reason_id
tag    = 0x2153
type   = integer
length = 2


I've used the first 2 ones, on MT sending, and I've been able to send
with this Premium messages
I used this sample code on PHP:

<SNIP>
$tlv = urlencode('?smpp?charge_type=1&charge_amount=99');

$url = 
"http://127.0.0.1:13131/cgi-bin/sendsms?username=$send_sms_user&password=$send_sms_pass&to=$phone&from=$short_code&smsc=$smsc&dlr-mask=$dlr_mask&dlr-url=$dlr_url&text=$message";;

if($tlv != '')
{
        $url .= "&meta-data=$tlv";
}
</SNIP>

This worked fine as you can see here:

007-11-08 09:54:01 [19112] [6] DEBUG: SMPP[om-1]: Manually forced dest
addr ton = 1, dest add npi = 1
2007-11-08 09:54:01 [19112] [6] DEBUG: new group created `smpp'
2007-11-08 09:54:01 [19112] [6] DEBUG: group=`smpp' key=`charge_type' value=`1'
2007-11-08 09:54:01 [19112] [6] DEBUG: group=`smpp'
key=`charge_amount' value=`99'
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP[om-1]: Sending PDU:
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP PDU 0x1da7c4c0 dump:
2007-11-08 09:54:01 [19112] [6] DEBUG:   type_name: submit_sm
2007-11-08 09:54:01 [19112] [6] DEBUG:   command_id: 4 = 0x00000004
2007-11-08 09:54:01 [19112] [6] DEBUG:   command_status: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sequence_number: 28 = 0x0000001c
2007-11-08 09:54:01 [19112] [6] DEBUG:   service_type: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   source_addr_ton: 3 = 0x00000003
2007-11-08 09:54:01 [19112] [6] DEBUG:   source_addr_npi: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   source_addr: "12345"
2007-11-08 09:54:01 [19112] [6] DEBUG:   dest_addr_ton: 1 = 0x00000001
2007-11-08 09:54:01 [19112] [6] DEBUG:   dest_addr_npi: 1 = 0x00000001
2007-11-08 09:54:01 [19112] [6] DEBUG:   destination_addr: "11234567890"
2007-11-08 09:54:01 [19112] [6] DEBUG:   esm_class: 3 = 0x00000003
2007-11-08 09:54:01 [19112] [6] DEBUG:   protocol_id: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   priority_flag: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   schedule_delivery_time: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   validity_period: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   registered_delivery: 1 = 0x00000001
2007-11-08 09:54:01 [19112] [6] DEBUG:   replace_if_present_flag: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   data_coding: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sm_default_msg_id: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sm_length: 30 = 0x0000001e
2007-11-08 09:54:01 [19112] [6] DEBUG:   short_message:
2007-11-08 09:54:01 [19112] [6] DEBUG:    Octet string at 0x1da56910:
2007-11-08 09:54:01 [19112] [6] DEBUG:      len:  30
2007-11-08 09:54:01 [19112] [6] DEBUG:      size: 31
2007-11-08 09:54:01 [19112] [6] DEBUG:      immutable: 0
2007-11-08 09:54:01 [19112] [6] DEBUG:      data: 54 65 73 74 20 50 53
4d 53 20 66 72 6f 6d 20 4a   Test PSMS from J
2007-11-08 09:54:01 [19112] [6] DEBUG:      data: 75 61 6e 20 4e 69 6e
20 28 53 4d 50 50 29         uan Nin (SMPP)
2007-11-08 09:54:01 [19112] [6] DEBUG:    Octet string dump ends.
2007-11-08 09:54:01 [19112] [6] DEBUG:   charge_type: "1"
2007-11-08 09:54:01 [19112] [6] DEBUG:   charge_amount: "99"
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP PDU dump ends.
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP[om-1]: Got PDU:
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP PDU 0x1da7c4c0 dump:
2007-11-08 09:54:01 [19112] [6] DEBUG:   type_name: submit_sm_resp
2007-11-08 09:54:01 [19112] [6] DEBUG:   command_id: 2147483652 = 0x80000004
2007-11-08 09:54:01 [19112] [6] DEBUG:   command_status: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sequence_number: 28 = 0x0000001c
2007-11-08 09:54:01 [19112] [6] DEBUG:   message_id:
2007-11-08 09:54:01 [19112] [6] DEBUG:    Octet string at 0x1da64ea0:
2007-11-08 09:54:01 [19112] [6] DEBUG:      len:  23
2007-11-08 09:54:01 [19112] [6] DEBUG:      size: 24
2007-11-08 09:54:01 [19112] [6] DEBUG:      immutable: 0
2007-11-08 09:54:01 [19112] [6] DEBUG:      data: 30 31 30 37 48 2d 31
31 30 38 47 2d 30 39 35 34   0107H-1108G-0954
2007-11-08 09:54:01 [19112] [6] DEBUG:      data: 44 2d 30 31 33 39 52
                             D-0139R
2007-11-08 09:54:01 [19112] [6] DEBUG:    Octet string dump ends.
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP PDU dump ends.


Now, the third optional parameter I defined (reason_id) is sent by the
gateway when they send a DLR
I defined my dlr-url and dlr-mask like this:

$dlr_mask = '31';
$dlr_url  = 
urlencode("http://myHost.tld/dlr.php?smsc-id=%i&status=%d&answer=%A&to=%P&from=%p&ts=%t&meta_data=%D";);


There I'm using the "&meta_data=%D" in the dlr-url, but despite of
that, the data is not passed, it comes blank...
The optional parameter is recognized, but no data is coming on %D
Here are the logs:

2007-11-08 09:54:01 [19112] [6] DEBUG: DLR[mysql]: Adding DLR
smsc=om-1, ts=0107H-1108G-0954D-0139R, src=12345, dst=11234567890,
mask=31, boxc=
2007-11-08 09:54:01 [19112] [6] DEBUG: sql: INSERT INTO dlr (smsc, ts,
source, destination, service, url, mask, boxc, status) VALUES ('om-1',
'0107H-1108G-0954D-0139R', '12345', '11234567890', '3Ci',
'http://myHost.tld/dlr.php?smsc-id=%i&status=%d&answer=%A&to=%P&from=%p&ts=%t&meta_data=%D',
'31', '', '0');
2007-11-08 09:54:01 [19112] [6] DEBUG: SMSC[om-1]: creating DLR message
2007-11-08 09:54:01 [19112] [6] DEBUG: SMSC[om-1]: DLR =
http://myHost.tld/dlr.php?smsc-id=%i&status=%d&answer=%A&to=%P&from=%p&ts=%t&meta_data=%D
2007-11-08 09:54:01 [19112] [6] DEBUG: Optional parameter tag (0x0427)
2007-11-08 09:54:01 [19112] [6] DEBUG: Optional parameter length read as 1
2007-11-08 09:54:01 [19112] [6] DEBUG: Optional parameter tag (0x001e)
2007-11-08 09:54:01 [19112] [6] DEBUG: Optional parameter length read as 24
2007-11-08 09:54:01 [19112] [6] DEBUG: Optional parameter tag (0x2153)
2007-11-08 09:54:01 [19112] [6] DEBUG: Optional parameter length read as 2
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP[om-1]: Got PDU:
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP PDU 0x1da7c370 dump:
2007-11-08 09:54:01 [19112] [6] DEBUG:   type_name: deliver_sm
2007-11-08 09:54:01 [19112] [6] DEBUG:   command_id: 5 = 0x00000005
2007-11-08 09:54:01 [19112] [6] DEBUG:   command_status: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sequence_number: 1671777 = 0x00198261
2007-11-08 09:54:01 [19112] [6] DEBUG:   service_type: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   source_addr_ton: 1 = 0x00000001
2007-11-08 09:54:01 [19112] [6] DEBUG:   source_addr_npi: 1 = 0x00000001
2007-11-08 09:54:01 [19112] [6] DEBUG:   source_addr: "11234567890"
2007-11-08 09:54:01 [19112] [6] DEBUG:   dest_addr_ton: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   dest_addr_npi: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   destination_addr: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   esm_class: 4 = 0x00000004
2007-11-08 09:54:01 [19112] [6] DEBUG:   protocol_id: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   priority_flag: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   schedule_delivery_time: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   validity_period: NULL
2007-11-08 09:54:01 [19112] [6] DEBUG:   registered_delivery: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   replace_if_present_flag: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   data_coding: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sm_default_msg_id: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   sm_length: 0 = 0x00000000
2007-11-08 09:54:01 [19112] [6] DEBUG:   short_message: ""
2007-11-08 09:54:01 [19112] [6] DEBUG:   message_state: 2 = 0x00000002
2007-11-08 09:54:01 [19112] [6] DEBUG:   receipted_message_id:
2007-11-08 09:54:01 [19112] [6] DEBUG:    Octet string at 0x1da50670:
2007-11-08 09:54:01 [19112] [6] DEBUG:      len:  23
2007-11-08 09:54:01 [19112] [6] DEBUG:      size: 24
2007-11-08 09:54:01 [19112] [6] DEBUG:      immutable: 0
2007-11-08 09:54:01 [19112] [6] DEBUG:      data: 30 31 30 37 48 2d 31
31 30 38 47 2d 30 39 35 34   0107H-1108G-0954
2007-11-08 09:54:01 [19112] [6] DEBUG:      data: 44 2d 30 31 33 39 52
                             D-0139R
2007-11-08 09:54:01 [19112] [6] DEBUG:    Octet string dump ends.
2007-11-08 09:54:01 [19112] [6] DEBUG:   reason_id: "4"
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP PDU dump ends.
2007-11-08 09:54:01 [19112] [6] DEBUG: SMPP[om-1] handle_pdu, got DLR
2007-11-08 09:54:01 [19112] [6] DEBUG: DLR[mysql]: Looking for DLR
smsc=om-1, ts=0107H-1108G-0954D-0139R, dst=11005132582, type=1
2007-11-08 09:54:01 [19112] [6] DEBUG: sql: SELECT mask, service, url,
source, destination, boxc FROM dlr WHERE smsc='om-1' AND
ts='0107H-1108G-0954D-0139R';
2007-11-08 09:54:01 [19112] [6] DEBUG: Found entry, row[0]=31,
row[1]=3Ci, 
row[2]=http://myHost.tld/dlr.php?smsc-id=%i&status=%d&answer=%A&to=%P&from=%p&ts=%t&meta_data=%D,
row[3]=12345, row[4]=11234567890 row[5]=
2007-11-08 09:54:01 [19112] [6] DEBUG: DLR[mysql]: created DLR message
for URL 
<http://myHost.tld/dlr.php?smsc-id=%i&status=%d&answer=%A&to=%P&from=%p&ts=%t&meta_data=%D>
2007-11-08 09:54:01 [19112] [6] DEBUG: removing DLR from database
2007-11-08 09:54:01 [19112] [6] DEBUG: sql: DELETE FROM dlr WHERE
smsc='om-1' AND ts='0107H-1108G-0954D-0139R' LIMIT 1;

and on smsbox.log the relevant part:

2007-11-08 09:54:01 [19126] [8] DEBUG: Octet string dump ends.
2007-11-08 09:54:01 [19126] [4] INFO: Starting delivery report
<username> from <12345>
2007-11-08 09:54:01 [19126] [9] DEBUG: Parsing URL
`http://myHost.tld/dlr.php?smsc-id=om-1&status=1&answer=&to=12345&from=11234567890&ts=2007-11-08+14:54:01&meta_data=':
2007-11-08 09:54:01 [19126] [9] DEBUG:   Scheme: http://
2007-11-08 09:54:01 [19126] [9] DEBUG:   Host: host.myDomain.tld
2007-11-08 09:54:01 [19126] [9] DEBUG:   Port: 80
2007-11-08 09:54:01 [19126] [9] DEBUG:   Username: (null)
2007-11-08 09:54:01 [19126] [9] DEBUG:   Password: (null)
2007-11-08 09:54:01 [19126] [9] DEBUG:   Path: /dlr.php
2007-11-08 09:54:01 [19126] [9] DEBUG:   Query:
smsc-id=om-1&status=1&answer=&to=12345&from=11234567890&ts=2007-11-08+14:54:01&meta_data=
2007-11-08 09:54:01 [19126] [9] DEBUG:   Fragment: (null)


any idea on why I'm receiving nothing on meta_data?

Thanks in advance!

Juan

Reply via email to