Hi,
I am trying to write a module for SER. I managed to write a tiny test module ("hello world") and it compiles fine (the source is attached). However, I'm not quite sure I fully understood how to execute the functions defined in the module.
I included the module to sr_modules.c and also a line 'loadmodule' in the ser.cfg. But how do I actually execute the function in the module every time a (INVITE) message is received by the server?
The docs couldn't really help ...
Thanks very much!
Regards, Mario
Hello,
simply use fi_check() in the configuration script. That will call your function.
regards, Jan.
On 14-02 11:13, Mario Kolberg wrote:
Hi,
I am trying to write a module for SER. I managed to write a tiny test module ("hello world") and it compiles fine (the source is attached). However, I'm not quite sure I fully understood how to execute the functions defined in the module.
I included the module to sr_modules.c and also a line 'loadmodule' in the ser.cfg. But how do I actually execute the function in the module every time a (INVITE) message is received by the server?
The docs couldn't really help ...
Thanks very much!
Regards, Mario
-- Mario Kolberg phone: +44 (0)1786 46 7440 Lecturer in Computing Science fax : +44 (0)1786 46 4551 email: mko@cs.stir.ac.uk
Department of Computing Science and Mathematics University of Stirling Stirling FK9 4LA Scotland, UK -- The University of Stirling is a university established in Scotland by charter at Stirling, FK9 4LA. Privileged/Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not disclose, copy or deliver this message to anyone and any action taken or omitted to be taken in reliance on it, is prohibited and may be unlawful. In such case, you should destroy this message and kindly notify the sender by reply email. Please advise immediately if you or your employer do not consent to Internet email for messages of this kind. Opinions, conclusions and other information in this message that do not relate to the official business of the University of Stirling shall be understood as neither given nor endorsed by it.
#include <stdio.h> #include <string.h> #include <stdlib.h>
#include "../../sr_module.h" #include "../../dprint.h" #include "../../error.h" #include "../../ut.h"
static int fi_check(struct sip_msg* msg,char* str,char* str2); static int mod_init(void);
#ifdef STATIC_FI struct module_exports fi_exports = { #else struct module_exports exports= { #endif "fi_module", (char*[]){ "fi_check" }, (cmd_function[]){ fi_check }, (int[]){ 0 }, (fixup_function[]){ 0 }, 1, NULL, NULL, NULL, 0, mod_init, (response_function) 0, (destroy_function) 0, 0, 0 };
static int mod_init(void) { printf("FI module initializing\n"); return 0; }
static int fi_check(struct sip_msg* msg, char* str1,char* str2) { printf("FI module executing\n"); return 1; }
On Feb 14, 2003 at 11:13, Mario Kolberg mko@cs.stir.ac.uk wrote:
Hi,
[...]
I included the module to sr_modules.c and also a line 'loadmodule' in the ser.cfg.
You need to include your module in sr_module.c only if you plan to compile it statically in ser. The only reasons to do that are debugging with an old gdb or profiling.
But how do I actually execute the function in the module every time a (INVITE) message is received by the server?
[this was answered by Jan]
Andrei