Actually I needed DLR status to be updated in the same row. Also there are other things like refund credits if invalid number etc. Thigs which are needed for prepaid-accounting. Its not complete yet still few things pending. Its a very application specific modification I'm doing. Here is what I did:
1) Instead of passing msgID i passed hardcoded url 2) When this URL is triggered a bunch of tasks are performed in my application, i thought of using sql-triggers but the task is bit complicated and I'm more comfortable in php In the same function, my solution doesn't work for multipart messages. I'll post it if i get it working. That bit I still need to do. So I have a long way to go. I hope experts here will always be here to help newbies. Thank you On Wed, Apr 30, 2014 at 4:56 PM, spameden <spame...@gmail.com> wrote: > Post your final solution (e.g. some patch in .diff) and what advantages it > gives you so others would benefit too :) > > > 2014-04-30 15:22 GMT+04:00 Saurabh Pandey <sam.it.develo...@gmail.com>: > > Thanks a lot Rene. perfect solution. >> Also I used another gw function to retrieve last item, so that's okay. >> Thanks again for your help. >> >> >> On Wed, Apr 30, 2014 at 4:33 PM, Rene Kluwen <rene.klu...@chimit.nl>wrote: >> >>> Try: >>> >>> >>> >>> octstr_format(" >>> http://someurl.com/somescript.php?mobile=%%p&dlr=%%d&msgid=%s", >>> octstr_get_cstr(msgid)); >>> >>> >>> >>> This will replace %%p with %p, %%d with %d and %s with the msgid. >>> >>> >>> >>> Also: I don’t think gw_extract_last() doesn’t exist in the gw library. >>> >>> >>> >>> == Rene >>> >>> >>> >>> >>> >>> *From:* Saurabh Pandey [mailto:sam.it.develo...@gmail.com] >>> *Sent:* dinsdag 29 april 2014 16:55 >>> *To:* Rene Kluwen >>> *Cc:* users@kannel.org >>> *Subject:* Re: SMS ID and DLR-URL concatenation issue >>> >>> >>> >>> Rene my dlr-url contains other parameters also like %d for dlr etc. Also >>> C is supposed to replace %d with passed integer value right? So I want this >>> >>> "http://someurl.com/somescript.php?mobile=%p&dlr=%d&msgid=<i want my id >>> here>" >>> >>> Now, based on your suggestion I did this: >>> >>> octstr_format(" >>> http://someurl.com/somescript.php?mobile=%p&dlr=%d&msgid=%s", >>> octstr_get_cstr(msgid)); >>> >>> compiled just fine, but when got DLR, it panicked: >>> >>> 2014-04-29 11:44:39 [29025] [12] PANIC: octstr_format format string >>> syntax error. >>> >>> What can I do in this situation? Please help. I appreciate your support. >>> >>> >>> >>> On Tue, Apr 29, 2014 at 7:57 PM, Saurabh Pandey < >>> sam.it.develo...@gmail.com> wrote: >>> >>> Thanks for the valuable guidance Rene. I'll give it a shot and >>> afterwards will look into that memory leak issue. >>> >>> One quick question, above this code the dlr_url is separated by >>> splitting it and picking the first part. Here is the code : >>> >>> parts = octstr_split(msg->sms.dlr_url, octstr_imm("vmsgid=")); >>> msgid = gwlist_extract_first(parts); >>> >>> However, now according to my scenario, I need to extract the last item >>> in the list. I tried this: >>> >>> parts = octstr_split(msg->sms.dlr_url, octstr_imm("vmsgid=")); >>> msgid = gwlist_extract_last(parts); >>> >>> But it throws error: undefined reference to `gwlist_extract_last' >>> >>> Would you happen to know how can I do that, it s a very simple task. >>> Sorry if the question is too stupid :( I'm no C programmer. >>> >>> >>> >>> >>> >>> On Tue, Apr 29, 2014 at 7:23 PM, Rene Kluwen <rene.klu...@chimit.nl> >>> wrote: >>> >>> I didn’t see the end of your email. >>> >>> >>> >>> Use: >>> >>> >>> >>> msg->sms.dlr_url = octstr_format( >>> http://someurl.com/myscript.php?msgid=%s”, octstr_get_cstr(msgid)); >>> >>> >>> >>> Btw, in the code that you gave below, there’s a memory leak. >>> >>> >>> >>> == Rene >>> >>> >>> >>> *From:* Rene Kluwen [mailto:rene.klu...@chimit.nl] >>> *Sent:* dinsdag 29 april 2014 15:51 >>> *To:* 'Saurabh Pandey'; 'users@kannel.org' >>> *Subject:* RE: SMS ID and DLR-URL concatenation issue >>> >>> >>> >>> Use octstr_format(http://someurl.com/myscript.php?msgid=%s”, msgid); >>> >>> >>> >>> This is if msgid is a string. If it is an integer use %d instead of %s. >>> >>> >>> >>> == Rene >>> >>> >>> >>> *From:* users [mailto:users-boun...@kannel.org<users-boun...@kannel.org>] >>> *On Behalf Of *Saurabh Pandey >>> *Sent:* dinsdag 29 april 2014 13:41 >>> *To:* users@kannel.org >>> *Subject:* SMS ID and DLR-URL concatenation issue >>> >>> >>> >>> Hi everyone, >>> >>> this should be very simple for an expert C programmer to fix. I am >>> trying to edit source of Opensmppbox.c to suit my requirements, but I am >>> very poor in C. What I had was: >>> >>> msg->sms.dlr_url = octstr_create("http://someurl.com/myscript.php"); >>> >>> and it was working fine. In my dlr-table this URL was inserted as >>> dlr-url and was fired when I received DLR. Now what I need is: >>> >>> msg->sms.dlr_url = octstr_create("http://someurl.com/myscript.php >>> *?msgid=*"+*msgid*); >>> >>> where msgid is fetched above like this: >>> >>> msgid = generate_smppid(msg,box->version); >>> msgid = octstr_duplicate(msgid); >>> >>> *Issue: *How do I append msgid to my dlr url and pass it. I used >>> strcpy/strcat but it gives me incompatible pointer type errors. >>> >>> Please help me here. Thanks a lot in advance. >>> >>> -Sam >>> >>> >>> >>> >>> >> >> >