Re: [PATCH] SMPP Optional Parameters
Alexander Malysh <[email protected]>
| Newsgroups | gmane.comp.mobile.kannel.devel |
|---|---|
| Message-ID | <[email protected]> |
It's easier for me todo it myself instead of write how to do it :) Juan Nin wrote: > oks, can u give me any clue on how to expand it to all TLVs? > > not sure if I'll be able to do it, I'm not too much of a C programmer, > but if not much has to be touched, maybe I can do it... > > thnx again! > > Juan > > > On Nov 9, 2007 12:55 PM, Alexander Malysh <[email protected]> wrote: >> Hi again, >> >> in metadata you will receive only vendor specific TLVs. >> >> It could be expanded to all TLVs if needed. >> >> >> Juan Nin wrote: >> >> > On Nov 9, 2007 11:54 AM, Alexander Malysh <[email protected]> wrote: >> >> Hi, >> >> >> >> seems I just forgot about DLRs and data_sm :) >> >> >> >> Please try attached patch instead of previous one. >> > >> > cool! :) >> > I just tried it, and now it's passing it! >> > >> > BUT, it's not passing back all of the received optional parameters :( >> > >> > it's only passing the vendor specific one >> > there are 2 more that are coming, which are defined on the SMPP specs >> > (receipted_message_id and message_state), that are not being passed in >> > %D >> > >> > may be something yet missing? >> > here's the definitions: >> > >> > # 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 its current message state >> > group = smpp-tlv >> > name = reason_id >> > tag = 0x2153 >> > type = integer >> > length = 2 >> > >> > # Specifies the Message ID returned in the Submit_SM response packet >> > group = smpp-tlv >> > name = receipted_message_id >> > tag = 0x001e >> > type = octetstring >> > length = 65 >> > >> > # Specifies the most up-to-date delivery state of the SMS >> > group = smpp-tlv >> > name = message_state >> > tag = 0x0427 >> > type = integer >> > length = 1 >> > >> > here the smsc connection logs: >> > >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: SMPP[om-1]: Manually forced >> > source addr ton = 3, source add npi = 0 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: SMPP[om-1]: Manually forced dest >> > addr ton = 1, dest add npi = 1 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: new group created `smpp' >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: group=`smpp' key=`charge_type' >> > value=`1' 2007-11-09 09:26:18 [4004] [6] DEBUG: group=`smpp' >> > key=`charge_amount' value=`99' >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: SMPP[om-1]: Sending PDU: >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: SMPP PDU 0xdeee5c0 dump: >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: type_name: submit_sm >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: command_id: 4 = 0x00000004 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: sequence_number: 5 = 0x00000005 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: service_type: NULL >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: source_addr_ton: 3 = 0x00000003 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: source_addr_npi: 0 = 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: source_addr: "12345" >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: dest_addr_ton: 1 = 0x00000001 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: dest_addr_npi: 1 = 0x00000001 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: destination_addr: "11234567890" >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: esm_class: 3 = 0x00000003 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: protocol_id: 0 = 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: priority_flag: 0 = 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: schedule_delivery_time: NULL >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: validity_period: NULL >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: registered_delivery: 1 = >> > 0x00000001 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: replace_if_present_flag: 0 = >> > 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: data_coding: 0 = 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: sm_default_msg_id: 0 = >> > 0x00000000 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: sm_length: 30 = 0x0000001e >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: short_message: >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: Octet string at 0xdec18e0: >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: len: 30 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: size: 31 >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: immutable: 0 >> > 2007-11-09 09:26:18 [4004] [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-09 09:26:18 [4004] [6] DEBUG: data: 75 61 6e 20 4e 69 6e >> > 20 28 53 4d 50 50 29 uan Nin (SMPP) >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: Octet string dump ends. >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: charge_type: "1" >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: charge_amount: "99" >> > 2007-11-09 09:26:18 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP[om-1]: Sending enquire link: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU 0xdec1580 dump: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: type_name: enquire_link >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_id: 21 = 0x00000015 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sequence_number: 6 = 0x00000006 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP[om-1]: Got PDU: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU 0xdec1580 dump: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: type_name: submit_sm_resp >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_id: 2147483652 = >> > 0x80000004 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sequence_number: 5 = 0x00000005 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: message_id: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Octet string at 0xdeee460: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: len: 23 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: size: 24 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: immutable: 0 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: data: 30 31 30 37 32 2d 31 >> > 31 30 39 55 2d 30 39 32 36 01072-1109U-0926 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: data: 35 2d 31 39 46 57 33 >> > 5-19FW3 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Octet string dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: DLR[mysql]: Adding DLR >> > smsc=om-1, ts=01072-1109U-09265-19FW3, src=12345, dst=11234567890, >> > mask=31, boxc= >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sql: INSERT INTO dlr (smsc, ts, >> > source, destination, service, url, mask, boxc, status) VALUES ('om-1', >> > '01072-1109U-09265-19FW3', '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-09 09:26:19 [4004] [6] DEBUG: SMSC[om-1]: creating DLR message >> > 2007-11-09 09:26:19 [4004] [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-09 09:26:19 [4004] [6] DEBUG: SMPP[om-1]: Got PDU: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU 0xdec1580 dump: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: type_name: enquire_link_resp >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_id: 2147483669 = >> > 0x80000015 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sequence_number: 6 = 0x00000006 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Optional parameter tag (0x0427) >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Optional parameter length read as >> > 1 2007-11-09 09:26:19 [4004] [6] DEBUG: Optional parameter tag (0x001e) >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Optional parameter length read as >> > 24 2007-11-09 09:26:19 [4004] [6] DEBUG: Optional parameter tag >> > (0x2153) 2007-11-09 09:26:19 [4004] [6] DEBUG: Optional parameter >> > length read as 2 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP[om-1]: Got >> > PDU: 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU 0xdec0b40 dump: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: type_name: deliver_sm >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_id: 5 = 0x00000005 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sequence_number: 4616540 = >> > 0x0046715c >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: service_type: NULL >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: source_addr_ton: 1 = 0x00000001 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: source_addr_npi: 1 = 0x00000001 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: source_addr: "11234567890" >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: dest_addr_ton: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: dest_addr_npi: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: destination_addr: NULL >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: esm_class: 4 = 0x00000004 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: protocol_id: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: priority_flag: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: schedule_delivery_time: NULL >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: validity_period: NULL >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: registered_delivery: 0 = >> > 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: replace_if_present_flag: 0 = >> > 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: data_coding: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sm_default_msg_id: 0 = >> > 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sm_length: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: short_message: "" >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: message_state: 2 = 0x00000002 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: receipted_message_id: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Octet string at 0xdebbb90: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: len: 23 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: size: 24 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: immutable: 0 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: data: 30 31 30 37 32 2d 31 >> > 31 30 39 55 2d 30 39 32 36 01072-1109U-0926 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: data: 35 2d 31 39 46 57 33 >> > 5-19FW3 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: Octet string dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: reason_id: "4" >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP[om-1] handle_pdu, got DLR >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: DLR[mysql]: Looking for DLR >> > smsc=om-1, ts=01072-1109U-09265-19FW3, dst=11234567890, type=1 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sql: SELECT mask, service, url, >> > source, destination, boxc FROM dlr WHERE smsc='om-1' AND >> > ts='01072-1109U-09265-19FW3'; >> > 2007-11-09 09:26:19 [4004] [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-09 09:26:19 [4004] [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-09 09:26:19 [4004] [6] DEBUG: removing DLR from database >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sql: DELETE FROM dlr WHERE >> > smsc='om-1' AND ts='01072-1109U-09265-19FW3' LIMIT 1; 2007-11-09 >> > 09:26:19 >> > [4004] [6] DEBUG: SMPP[om-1]: Sending PDU: 2007-11-09 09:26:19 [4004] >> > [[6] >> > DEBUG: SMPP PDU 0xdec0d00 dump: >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: type_name: deliver_sm_resp >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_id: 2147483653 = >> > 0x80000005 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: sequence_number: 4616540 = >> > 0x0046715c >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: message_id: NULL >> > 2007-11-09 09:26:19 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: SMPP[om-1]: Sending enquire link: >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: SMPP PDU 0xdec1520 dump: >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: type_name: enquire_link >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: command_id: 21 = 0x00000015 >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: sequence_number: 7 = 0x00000007 >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: SMPP PDU dump ends. >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: SMPP[om-1]: Got PDU: >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: SMPP PDU 0xdec1520 dump: >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: type_name: enquire_link_resp >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: command_id: 2147483669 = >> > 0x80000015 >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: command_status: 0 = 0x00000000 >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: sequence_number: 7 = 0x00000007 >> > 2007-11-09 09:26:44 [4004] [6] DEBUG: SMPP PDU dump ends. >> > >> > and here smsbox.log relevant part: >> > >> > 007-11-09 09:26:19 [4017] [4] INFO: Starting delivery report >> > <username> from <12345> >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Parsing URL >> > >> `http://myHost.tld/dlr.php?smsc-id=om-1&status=1&answer=&to=12345&from=11234567890&ts=2007-11-09+14:26:19&meta-data=%3Fsmpp%3Freason_id%3D4%26': >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Scheme: http:// >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Host: host.myDomain.tld >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Port: 80 >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Username: (null) >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Password: (null) >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Path: /dlr.php >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Query: >> > >> smsc-id=om-1&status=1&answer=&to=12345&from=11234567890&ts=2007-11-09+14:26:19&meta-data=%3Fsmpp%3Freason_id%3D4%26 >> > 2007-11-09 09:26:19 [4017] [9] DEBUG: Fragment: (null) >> > >> > thanks again! >> > >> > Juan >> >> -- >> Thanks, >> Alex >> >> >> -- Thanks, Alex