[SR-Users] Issue while initiating database of my new module in kamailio
Jagdeep S
jagdes at gmail.com
Tue Dec 6 12:20:46 CET 2011
Hil,
Please find the wiki link below:
http://www.kamailio.org/dokuwiki/doku.php/development:write-module
I had one more query on the psuedo variable. In the config file i am
try to invoke a method as below:
> if (!mymodulesave("mymodule", "$au"))
where "mymodule" is the database name of my new module.
$au is the username pseudo variable.
The function prototype i have used in mymodule.h is as below:
>int infygeosave(struct sip_msg* msg, str* _d, char* username)
when i print the username variable in the method i am getting the
value as $au itself. Should i just pass the argument as (.., $au);
rather than doing (.., "$au");
Please let me know your inputs.
Regards,
Jagdeep S
On 12/6/11, Daniel-Constantin Mierla <miconda at gmail.com> wrote:
> Hello,
>
> On 12/6/11 5:28 AM, Jagdeep S wrote:
>> Hi Daniel,
>>
>> Thanks for the reply. I was just seeing differences in various module
>> initialization over the weekend and saw that the exports structure was
>> slightly different from what i had taken from the template in the
>> kamailio website.
> ok, probably that doc is for older version. Was it a wiki page? If you
> can give the link, we can update it and make a note about versions and
> validity of the content.
>
> Cheers,
> Daniel
>
>> I think the extra parameters/methods added in the
>> latest versions were missing in my exports structure due to which my
>> initialization used to fail. And during initialization i pass "pseudo
>> variable" as argument to my method but i was not having the pseudo
>> variable member in the structure. Since it was not initialized the db
>> initialization failed.
>>
>> I just changed the following structure from:
>>
>> struct module_exports exports= {
>> "mymodule", /* module's name */
>> DEFAULT_DLFLAGS, /*!< dlopen flags */
>> cmds, /* exported functions */
>> mod_params, /* param exports */
>> mod_stats, /* exported statistics */
>> mod_init, /* module initialization function */
>> 0, /* reply processing function FIXME Not sure when this
>> is used */
>> mod_destroy, /* Destroy function */
>> child_init /* per-child init function */
>> };
>>
>> to the following structure:
>> struct module_exports exports= {
>> "mymodule", /* module's name */
>> DEFAULT_DLFLAGS, /* dlopen flags */
>> cmds, /* Exported functions */
>> mod_params, /* Exported parameters */
>> mod_stats, /* exported statistics */
>> 0, /* exported MI functions */
>> 0, /* exported pseudo-variables */
>> 0, /* extra processes */
>> mod_init, /* module initialization function */
>> 0, /* response function */
>> mod_destroy,/* destroy function */
>> child_init /* child initialization function */
>> };
>>
>> Now i am able to start the kamailio server with db initialized :)
>> Anyways thanks for the response.
>>
>> Regards,
>> Jagdeep S
>>
>>
>>
>> On 12/6/11, Daniel-Constantin Mierla<miconda at gmail.com> wrote:
>>> Hello,
>>>
>>> can you paste here the mod_init() and child_init() functions and say
>>> which one is line 239 (inside child init)? I expect some db init step
>>> for your module was not done.
>>>
>>> Also, the output of 'bt full' might be useful.
>>>
>>> Cheers,
>>> Daniel
>>>
>>> On 12/3/11 6:35 AM, Jagdeep S wrote:
>>>> Hi All,
>>>>
>>>> I am trying to create a new module under the kamailio source base, as
>>>> part of understanding the framework. But when i start the Kamailio, i
>>>> am seeing a core dump occuring when my new module is getting initiated
>>>> and when the database is getting initialised. PFA the files attached
>>>> containing the config file and source files used for creating module
>>>> files.
>>>>
>>>> I am using the "DEFAULT_DB_URL" as database uri. The core dump
>>>> backtrace shows that the module init fails at the following point:
>>>> (gdb) bt
>>>> #0 0x00000000 in ?? ()
>>>> #1 0x00ef390d in child_init (rank=9172352) at my_mod.c:239
>>>> #2 0x081226be in init_mod (m=0xb7515a04) at sr_module.c:922
>>>> #3 0x08122630 in init_mod (m=0xb7515c78) at sr_module.c:919
>>>>
>>>> The line 239 in my module file points to the child-init function which
>>>> initializes the database connectivity ==> "mymod_dbh =
>>>> mymod_dbf.init(&db_url);"
>>>>
>>>> I have written the module using the template provided under the
>>>> kamailio website. All the parameters are defined properly. Have no
>>>> idea as to what is going wrong.
>>>>
>>>> I tried debugging the core dump using gdb but of no much help. I am
>>>> not able to run the gdb during runti sr-users at lists.sip-router.orgme
>>>> due to which i am not able to add break points and check. Not sure
>>>> what the problem is. That's why i generated core dump file and
>>>> analysed the backtrace, but i can't add break points and run it again
>>>> as the executable is not involved.
>>>>
>>>> Can anyone please let me know what is the issue is or any pointers if
>>>> i have missed some part of the code due to which the connectivity to
>>>> db is not happening. Due to this i am not able to proceed further with
>>>> the testing of my new module. Also any tips on how to do get the gdb
>>>> debugging during runtime will also be very helpful.
>>>>
>>>> Any help is appreciated :).
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>>> sr-users at lists.sip-router.org
>>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>> --
>>> Daniel-Constantin Mierla -- http://www.asipto.com
>>> http://linkedin.com/in/miconda -- http://twitter.com/miconda
>>>
>>>
>>
>
> --
> Daniel-Constantin Mierla -- http://www.asipto.com
> http://linkedin.com/in/miconda -- http://twitter.com/miconda
>
>
--
Jagdeep S
More information about the sr-users
mailing list