Warm tip: This article is reproduced from serverfault.com, please click

Using Query_sm (Smpp)

发布于 2013-04-29 06:51:18

I am trying to fetch reply statuses from an SMPP gateway through talend ESB. Is there any way of using QuerySm through talend to do this? Does anyone have any experience with using QuerySm in general? If so please could someone give me some tips on how to do so. I have tried with my current talend jobs with no success.

Even pointers with how Query_sm works or how to use it would be really helpful. Ive been searching the internet for a while and, sadly, cant seem to find these answers. :c

Any help would be appreciated. Thanks in advance.

EDIT:

Hi Wahid sorry its been a while. Smpp seems to be very poorly documented and camelSmpp 11 seems to have fixed a lot of things. We found out the reason we are not receiving all of the reports is because the reports are being duplicated. The service provider is sending more than one delivery_sm per packet (not sure if this is normal) and because of this instead of reading all of the delivery_sm's it is duplicating the first one and therefor we are never actually able to collect the other delivery_sm's in the packet. Is there any way for us to receive these delivery_sm's? I am not able to find this in the smpp documentation.

Questioner
DeanMWake
Viewed
0
Wahid Sadik 2013-04-29 23:11:10

In this answer, I have shared my experience with SMPP. I have not used Talend ESB.

As per the SMPP 3.4 spec, sections 4.8, 5.2.28 and 6.1 provide description about the query_sm and query_sm_resp pdus. Here are some key points:

  • query_sm
    • Can only be requested by a ESME.
    • Can be issued on a previously issued submit_sm, data_sm or submit_multi_sm pdu.
    • source_addr, source_addr_ton, source_addr_npi sent and message_id received from the *_resp object are used on the query_sm pdu.
  • qeury_sm_resp
    • command_status can indicate the overall outcome of the query_sm pdu. Section 5.1.3 enlists all the values. You should check the API provider to know correct values to use.
    • message_state indicates the state of the requested pdu. See section 5.2.28.
    • error_code indicates error occurred in the network, if any. You should check the API provider to know correct values to use.

I would be curios to know what motivated you to use query_sm. query_sm pdus are rarely used in real life. At work, we process billions of SMS everyday from all major US carriers and we rarely get any query_sm.

Alternatives to query_sm would be "Delivery Receipt", yet not so much supported by most platforms. The immediate platform you are connected to can give you some info.