Try:

 

octstr_format("http://someurl.com/somescript.php?mobile=%%p 
<http://someurl.com/somescript.php?mobile=%25%25p&dlr=%25%25d&msgid=%25s> 
&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:[email protected]] 
Sent: dinsdag 29 april 2014 16:55
To: Rene Kluwen
Cc: [email protected]
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 
<http://someurl.com/somescript.php?mobile=%25p&dlr=%25d&msgid=> 
&dlr=%d&msgid=<i want my id here>"

Now, based on your suggestion I did this:

octstr_format(" 
<http://someurl.com/somescript.php?mobile=%25p&dlr=%25d&msgid=%25s> 
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 <[email protected]> 
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 <[email protected]> wrote:

I didn’t see the end of your email.

 

Use:

 

msg->sms.dlr_url = octstr_format(http://someurl.com/myscript.php?msgid=%s 
<http://someurl.com/myscript.php?msgid=%25s> ”, octstr_get_cstr(msgid));

 

Btw, in the code that you gave below, there’s a memory leak.

 

== Rene

 

From: Rene Kluwen [mailto:[email protected]] 
Sent: dinsdag 29 april 2014 15:51
To: 'Saurabh Pandey'; '[email protected]'
Subject: RE: SMS ID and DLR-URL concatenation issue

 

Use octstr_format(http://someurl.com/myscript.php?msgid=%s 
<http://someurl.com/myscript.php?msgid=%25s> ”, msgid);

 

This is if msgid is a string. If it is an integer use %d instead of %s.

 

== Rene

 

From: users [mailto:[email protected]] On Behalf Of Saurabh Pandey
Sent: dinsdag 29 april 2014 13:41
To: [email protected]
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

 

 

Reply via email to