Exactly: Responses are transmitted over the same link that they are originated. So that means when a submit_sm is sent (over the transmitter link) the submit_sm__resp will also be sent to the transmitter link.
If not, you wouldn't even be able to bind successfully. So Brett is right here. == Rene -----Original Message----- From: users-boun...@kannel.org [mailto:users-boun...@kannel.org] On Behalf Of Nikos Balkanas Sent: donderdag 1 juli 2010 17:03 To: brett skinner; users@kannel.org Subject: Re: Open DLRs Submit_sm_resp is originated on the SMSc. Therefore it, is sent over the Receiver. Where does it say on the SMPP spec that responses are transmitted differently than requests? Nikos ----- Original Message ----- From: brett skinner To: users@kannel.org Sent: Thursday, July 01, 2010 3:23 PM Subject: Re: Open DLRs It makes perfect sense according to the SMPP specification. A connection is either bound as transmitter, receiver or both (transceiver). A transmitter is for messages set to SMSC from ESME. A receiver is for messages from SMSC to EMSE. Transceiver does both. So a submit_sm is a request to SMSC from ESME and the EMSE will acknowledge via a sm_submit_resp. The deliver_sm is an SMSC originated message and will therefore go the receiver not the submitted. But all of this I am sure you know. I had not set up a receiver port because I had intended to be in transceiver mode but during all my testing I had commented out the transceiver-mode line so effectively had this in my config. #transceiver-mode = true As soon as I took away the comments and started up again I received all the deliver_sm from the SMSC that had been queuing. I have not submitted any logs or config because I have resolved my issue and what happened can be easily explained by the SMPP protocol. Everything seems to be working as designed. 2010/7/1 Nikos Balkanas <nbalka...@gmail.com> Hi, Nope. The same way you were getting submit_sm_resp, you should have gotten deliver_sm. What you say doesn't make much sense, but is difficult to say, since you never submitted any logs. BR, Nikos ----- Original Message ----- From: brett skinner To: users@kannel.org Sent: Thursday, July 01, 2010 10:26 AM Subject: Re: Open DLRs Hi I am assuming because I had bound as a transmitter and was sending submit_sm packets that they were responding with submit_sm_resp. I think that is according to SMPP 3.4 spec. The only problem is that I was not getting the delivery receipts. It seems that Kannel treats the a positive submit_sm_resp as a DLR to say enqueued. Regards, 2010/6/30 Nikos Balkanas <nbalka...@gmail.com> Hi, How then did you get the submit_sm_resp from the SMSc? BR, Nikos ----- Original Message ----- From: brett skinner To: users@kannel.org Sent: Wednesday, June 30, 2010 12:37 PM Subject: Re: Open DLRs Hi It turns out that I had commented out the section where I put the bind into transceiver mode. Everything is working as expected. Thank you for the help. 2010/6/30 Nikos Balkanas <nbalka...@gmail.com> Hi, No. You have done all you needed from kannel's side. If not seeing deliver_sm, try talking to your SMSc. BR, Nikos ----- Original Message ----- From: brett skinner To: users@kannel.org Sent: Wednesday, June 30, 2010 11:17 AM Subject: Re: Open DLRs Hi Nikos Thanks for your reply. That is the impression that I got. The only thing that is a little confusing right now is that I am not seeing the temporary DLRs in the MySQL table ever being removed. I am using SMPP and am testing by sending to an actual SMSC and I am getting the message on my handset. I see the submit_sm and submit_sm_resp in the logs. But no where do I see any deliver_sm in the logs. Do I need to specify anything extra when calling the sends_sms URL? (I didn't see any additional parameters in the user guide). I have waited a couple of hours after I received the SMS on my handset and still nothing from the SMSC and the DLRs are still in the table. Last question: How does Kannel do the lookup to remove the DLR once it is received? Does it use the smsc and the ts fields assuming you are using SMPP? Regards, 2010/6/30 Nikos Balkanas <nbalka...@gmail.com> Hi, The documentation is correct. DLR entries (internal to kannel but without final status) are created and inserted when the SMS is accepted by the SMSc and deleted when the external DLR (with final status) arrives from the SMSc. This could last for the time it takes to deliver the SMS to the mobile. It could be anything from a few minutes to a couple of days. If DLRs are in memory, bb is restarted, and the final DLR from the SMSc is still pending, the entries will be erased from memory. The result is that when the external status DLR arrives from the SMSc, there is no corresponding entry to match in kannel, and discarded. This doesn't happen if you use a DB for dlr-storage. The DLR tables are to be used only internally by kannel. You can see the DLR from bb access logs and you can even store it in your external web application by specifying a dlr-url to your push SMS. You will have to supply a msg-id to that dlr-url, unique for each MT, since msgid is internal to kannel and not sent over the dlr-url. For more info read User's Guide. BR, Nikos ----- Original Message ----- From: brett skinner To: users@kannel.org Sent: Wednesday, June 30, 2010 10:44 AM Subject: Open DLRs Hi Reading through the documentation I came across this statement: This is problematic if bearerbox crashes or you take the process down in a controlled way, but there are still DLRs open. Therefore you may use external DLR storage places, i.e. a MySQL database. Does that mean that the MySQL is temporary storage and that at some point when the DLR is deemed to be closed that the row will be removed? If so then When is a DLR closed? Should we be using the MySQL table to get extra information about the DLR? If not what should we be using? Can we get Kannel to send us information about the fields in the DLR in the URL. Such as message_id field from submit_sm_resp? Thank you. I really appreciate all the help.