Re: [PATCH] custom MO Parameters for smsc-http

Alejandro Guerrieri <[email protected]>
Newsgroups gmane.comp.mobile.kannel.devel
Message-ID <[email protected]>
Me too, second one is far more flexible and clean.
--
Alejandro Guerrieri
[email protected]



On 10/06/2009, at 14:31, Alexander Malysh wrote:

> Hi,
>
> I'm for the second idea, regex rocks ;)
>
> Thanks,
> Alex
>
> Am 10.06.2009 um 12:37 schrieb Franck LAMASUTA:
>
>> It's not so urgent but I could try, it could be interesting...
>>
>> I have 2 ideas so far...
>>
>>
>> First idea
>> ==========
>>
>> I could add 2 new config parameters to define 2 regex:
>> - the first one, to find the start of the foreign id.
>> - the second one, to find the end of the foreign id.
>>
>> For Claro, they could be defined like this:
>> foreign-id-regex-begin = "<transaction-id>"
>> foreign-id-regex-end = "</transaction-id>"
>>
>> For Clickatell, they could be defined like this:
>> foreign-id-regex-begin = "ID: "
>> foreign-id-regex-end = " "
>>
>> For Brunet, they could be defined like this:
>> foreign-id-regex-begin = "MessageId="
>> foreign-id-regex-end = " "
>>
>> In generic_parse_reply(), only in case of success, regex-begin will  
>> be used to find the beginning of the id. Starting from there, regex- 
>> end will be used to find the end of the id. If regex-end can't find  
>> a match, the id will be read until the end of text (body) and an  
>> ending CRLF will be removed.
>> Then, the id will be used to call dlr_add() (like done in  
>> clickatell_parse_reply()).
>>
>>
>> Second idea
>> ===========
>>
>> It's basically the same idea except that only one regex will be used.
>>
>> For Claro, it could be defined like this:
>> foreign-id-regex = "<transaction-id>(.*)</transaction-id>"
>>
>> For Clickatell, it could be defined like this (if an id contains  
>> only digits):
>> foreign-id-regex = "ID: ([0-9]+)"
>>
>> The offsets given by gw_regex_exec() in pmatch[1] could be used to  
>> extract the id.
>> However, it could be more difficult to understand for people who  
>> are not regex experts...
>>
>>
>> Any comment, opinion, suggestion or better idea? :)
>>
>> Franck
>>
>>
>>
>>
>>> From: Alexander Malysh
>>> Sent: Tuesday, June 09, 2009 6:05 PM
>>>
>>>
>>> Am 09.06.2009 um 17:55 schrieb Alejandro Guerrieri:
>>>
>>>> Franck,
>>>>
>>>> The dlr part is inherited from the "kannel" smsc format. In the
>>>> actual implementation there's no way to grab the remote message id
>>>> from a request, and it'd make a lot of sense to be able to do it.
>>>>
>>>> I can try adding it, but don't refrain to do it so yourself if you
>>>> feel the urge (you'll learn a lot about the code in the process!).
>>>
>>> yep, Alex is right here :) and we need more contributors :)
>>>
>>>>
>>>> Opinions?
>>>> --
>>>> Alejandro Guerrieri
>>>> [email protected]
>>>>
>>>>
>>>>
>>>> On 09/06/2009, at 17:47, Franck LAMASUTA wrote:
>>>>
>>>>> Hi Alejandro ,
>>>>>
>>>>> I work with Hervé who posted to this list the 25th of May (Claro
>>>>> http communication).
>>>>> It seems the patch you've done on the generic part could be very
>>>>> useful for us to manage our communications with Claro. It
>>> could be
>>>>> better than a specific implementation for Claro.
>>>>>
>>>>> However, I don't understand how your patch manages a DLR:
>>>>> In generic_receive_sms(), you call dlr_find() (line 1674 of the
>>>>> patched source) to retrieve a previous record stored in the DLR
>>>>> storage.
>>>>> It seems fine except that dlr_add() is never called in
>>>>> generic_parse_reply(), so I guess dlr_find() will always
>>> return NULL.
>>>>> Am I wrong???
>>>>>
>>>>>
>>>>> In fact, when we submit a MT SMS to Claro with this request
>>>>>
>>> http://retail.mds.claro.com.br/MSE/api?profile=xxxx&pwd=xxxx&m
>> ode=assync-delivery&ANUM=3333&BNUM=1234567&TEXT=test
>>>>>
>>>>> we get a HTTP code 200 with this body:
>>>>>
>>>>> <?xml version="1.0" encoding="UTF-8" ?>
>>>>> <mse-response>
>>>>> <status-code>0</status-code>
>>>>> <profile>profleID</profile>
>>>>> <transaction-id>1020606201622668099</transaction-id>
>>>>> </mse-response>
>>>>>
>>>>> So I guess that the transaction-id should be used in
>>>>> generic_parse_reply() to call dlr_add().
>>>>> Unfortunately, the current implementation does not allow
>>> to manage
>>>>> such an id, it only allows to search if the request was
>>> successful
>>>>> or not through the regex.
>>>>>
>>>>>
>>>>> If all my hypothesis are right... :-)
>>>>> I could try to patch generic_parse_reply() to manage also the id
>>>>> through another regex. It will be my first Kannel patch! ;-)
>>>>> If you prefer to do it, no problem, just let me know.
>>>>>
>>>>> If I'm wrong, please clarify how it works.
>>>>>
>>>>> Regards,
>>>>> Franck
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.