Hello All,
Please find below steps...and kindly let me know the error solution.
STEP 1::
Under modules I created a directory name b2bentities
/root/kamailio-3.3.2/modules/b2bentities
$ls
b2bentities.so b2b_server.c b2b_server.d b2b_server.h b2b_server.o
dialog.h librpath.lst makecfg.lst Makefile
In b2b_server.h
#ifndef SERVER_H
#define SERVER_H
#endif
int b2b_dlg_reply();
In b2b_server.c I wrote following code ::
int b2b_dlg_reply()
{
LOG(L_INFO,"Hello am in b2bua module\n");
return 0;
}
Also,I added below code to the same file as per steps given in kamailio
server's developer's guide.
In developer's guide,they told to initialize parameters as per module's
requirement but i made them all empty and null...
for example
static int mod_init(void)
{
LOG(L_INFO,"IN mod_init\n");
return 0;
}
static cmd_export_t commands[] = {
};
static param_export_t params[]={
};
struct module_exports exports = {
"b2bentities", // module name
NULL, // dlopen flags
commands, // exported functions
params, // exported parameters
NULL, // exported statistics
NULL, // exported MI functions
NULL, // exported pseudo-variables
NULL, // extra processes
mod_init, // module init function (before fork. kids will inherit)
NULL, // reply processing function
NULL, // destroy function
child_init // child init function
};
STEP 2::
In kamailio core
file : In receive.c
Method Name : In receive_msg
i did this way...
In receive.c add follow piece of code::
#include "modules/b2bentities/b2b_server.h"
int receive_msg(....)
{
/*my code*/
int b2b_ret;
int (*ptr)();
ptr= b2b_dlg_reply;
if(msg->REQ_METHOD!=METHOD_REGISTER)
{
b2b_ret=(*ptr)();
if(b2b_ret!=0)
{
LOG(L_INFO,"B2B Dialogue reply function failed\n");
exit(1);
}
else
{
LOG(L_INFO,"B2B Dialogue reply function success\n");
exit(1);
}
}
}
STEP 3::
I even added kamailio.cfg load module "b2bentities.so"
STEP 4::
Final step,when I do make all.....
its giving me the following error ::
[root@kamserver kamailio-3.3.2]# make all
CC (gcc) [kamailio] receive.o
LD (gcc) [kamailio] kamailio
receive.o: In function `receive_msg':
/root/kamailio-3.3.2/receive.c:163: undefined reference to `b2b_dlg_reply'
collect2: ld returned 1 exit status
make: *** [kamailio] Error 1
My doubt:
Where should my b2bentities.so should be linked during compiling time?
Please tell me the steps for it.
Thanks & Regards,
Manjusha A.
Integra Micro Software Services (P) Ltd.