[sr-dev] git:master: modules/tsilo: added MI commands
Federico Cabiddu
federico.cabiddu at gmail.com
Thu Nov 13 07:46:19 CET 2014
Ok I understand your point. I can remove the commands, no problem.
Regards,
Federico
On Wed, Nov 12, 2014 at 6:09 PM, Ovidiu Sas <osas at voipembedded.com> wrote:
> The plan is to remove all MI commands. The issue right now is that many
> ppl are using the MI and don't really want to migrate to RPC. If we add new
> MI commands, we are just adding more overhead.
> My suggestion would be to remove them, along with the mi lib dependency.
>
> Regards,
> Ovidiu Sas
> On Nov 12, 2014 11:49 AM, "Federico Cabiddu" <federico.cabiddu at gmail.com>
> wrote:
>
>> Basically I added those commands for "completness" since I was adding the
>> corresponding RPC commands.
>> In the future if I will need to add more I'll add only the RPC ones.
>> Thanks for the feedback.
>>
>> Regards,
>>
>> Federico
>>
>> There were discussions in the list about getting rid of the MI interface
>> and sticking with the RPC one. We should stop adding new MI commands. I see
>> that the RPC commands are already implemented.
>>
>> Regards,
>> Ovidiu Sas
>> On Nov 12, 2014 5:59 AM, "Federico Cabiddu" <federico.cabiddu at gmail.com>
>> wrote:
>>
>>> Module: sip-router
>>> Branch: master
>>> Commit: a255911902788bf74a7f4279fce4758b2f2a4613
>>> URL:
>>> http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=a255911902788bf74a7f4279fce4758b2f2a4613
>>>
>>> Author: Federico Cabiddu <federico.cabiddu at gmail.com>
>>> Committer: Federico Cabiddu <federico.cabiddu at gmail.com>
>>> Date: Wed Nov 12 11:52:29 2014 +0100
>>>
>>> modules/tsilo: added MI commands
>>>
>>> ---
>>>
>>> modules/tsilo/Makefile | 5 +++-
>>> modules/tsilo/README | 51
>>> +++++++++++++++++++++++++++++--------
>>> modules/tsilo/doc/tsilo_admin.xml | 44
>>> ++++++++++++++++++++++++++------
>>> modules/tsilo/ts_hash.c | 2 +-
>>> modules/tsilo/ts_hash.h | 16 ++++++------
>>> modules/tsilo/tsilo.c | 30 ++++++++++++++++-----
>>> 6 files changed, 112 insertions(+), 36 deletions(-)
>>>
>>> diff --git a/modules/tsilo/Makefile b/modules/tsilo/Makefile
>>> index 40b04cb..c179aec 100644
>>> --- a/modules/tsilo/Makefile
>>> +++ b/modules/tsilo/Makefile
>>> @@ -9,10 +9,13 @@ include ../../Makefile.defs
>>> auto_gen=
>>> NAME=tsilo.so
>>> LIBS=
>>> -DEFS+= -DSER_MOD_INTERFACE
>>> +DEFS+=-DKAMAILIO_MOD_INTERFACE
>>>
>>> ifeq ($(INSTALL_FLAVOUR),kamailio)
>>> DEFS+= -DWITH_EVENT_LOCAL_REQUEST
>>> endif # INSTALL_FLAVOUR
>>>
>>> +SERLIBPATH=../../lib
>>> +SER_LIBS+=$(SERLIBPATH)/kmi/kmi
>>> +
>>> include ../../Makefile.modules
>>> diff --git a/modules/tsilo/README b/modules/tsilo/README
>>> index 4790ad1..297c435 100644
>>> --- a/modules/tsilo/README
>>> +++ b/modules/tsilo/README
>>> @@ -10,7 +10,7 @@ Federico Cabiddu
>>>
>>> <federico.cabiddu at gmail.com>
>>>
>>> - Copyright © 2014 Federico Cabiddu
>>> + Copyright © 2014 Federico Cabiddu
>>> __________________________________________________________________
>>>
>>> Table of Contents
>>> @@ -33,7 +33,10 @@ Federico Cabiddu
>>> 4.2. ts_append(domain, ruri)
>>> 4.3. ts_append_to(tindex, tlabel, domain)
>>>
>>> - 5. Statistics
>>> + 5. MI Commands
>>> +
>>> + 5.1. ts_dump
>>> + 5.2. ts_lookup
>>>
>>> List of Examples
>>>
>>> @@ -62,19 +65,26 @@ Chapter 1. Admin Guide
>>> 4.2. ts_append(domain, ruri)
>>> 4.3. ts_append_to(tindex, tlabel, domain)
>>>
>>> - 5. Statistics
>>> + 5. MI Commands
>>> +
>>> + 5.1. ts_dump
>>> + 5.2. ts_lookup
>>>
>>> 1. Overview
>>>
>>> This modules provides transaction storage for the Kamailio SIP Server
>>> - Platform. It stores in an internal table transactions for an user and
>>> - add branches to them if new contacts are added.
>>> + Platform. It stores in an internal table transactions for a
>>> Request-URI
>>> + (R-URI) and add branches to them later if new contacts for the AOR
>>> are
>>> + added.
>>>
>>> - For each message, the modules stores "Request-URI" ("R-URI"), URI and
>>> - the internal transaction index and label.
>>> + When the ts_store function is called, the modules stores the current
>>> + transaction R-URI URI, index and label. Two functions (ts_append and
>>> + ts_append_to) provide the ability to add new branches either to a
>>> + specific transaction or to all of the transactions stored for a given
>>> + R-URI.
>>>
>>> - When the transaction is destroyed (by the TM module, the transaction
>>> is
>>> - removed from the module table.
>>> + When a transaction is destroyed by the TM module, it is removed from
>>> + the module's table too.
>>>
>>> 2. Dependencies
>>>
>>> @@ -105,7 +115,7 @@ Chapter 1. Admin Guide
>>> must be a power of two, otherwise it will be rounded down to the
>>> nearest power of two.
>>>
>>> - Default value is "2048".
>>> + Default value is “2048”.
>>>
>>> Example 1.1. Set hash_size parameter
>>> ...
>>> @@ -182,4 +192,23 @@ if (is_method("REGISTER")) {
>>> }
>>> ...
>>>
>>> -5. Statistics
>>> +5. MI Commands
>>> +
>>> + 5.1. ts_dump
>>> + 5.2. ts_lookup
>>> +
>>> +5.1. ts_dump
>>> +
>>> + Dumps the entire content of the TSILO table
>>> +
>>> + Parameters:
>>> + * brief - (optional, may not be present); if equals to string
>>> + “brief”, a brief dump will be done (only RURI, without the
>>> + transaction(s) details)
>>> +
>>> +5.2. ts_lookup
>>> +
>>> + Dumps the transactions stored for the given RURI
>>> +
>>> + Parameters:
>>> + * ruri - RURI for which we want to show the transactions.
>>> diff --git a/modules/tsilo/doc/tsilo_admin.xml
>>> b/modules/tsilo/doc/tsilo_admin.xml
>>> index 4c35e69..36180d1 100644
>>> --- a/modules/tsilo/doc/tsilo_admin.xml
>>> +++ b/modules/tsilo/doc/tsilo_admin.xml
>>> @@ -17,17 +17,15 @@
>>> <title>Overview</title>
>>> <para>
>>> This modules provides transaction storage for the
>>> &kamailioname;. It
>>> - stores in an internal table transactions for an user and
>>> add branches
>>> - to them if new contacts are added.
>>> + stores in an internal table transactions for a
>>> Request-URI (R-URI) and add branches
>>> + to them later if new contacts for the AOR are added.
>>> </para>
>>> <para>
>>> - For each message, the modules stores
>>> <quote>Request-URI</quote>
>>> - (<quote>R-URI</quote>), &uri; and the internal
>>> transaction index
>>> - and label.
>>> + When the <emphasis>ts_store</emphasis> function is
>>> called, the modules stores the current transaction R-URI &uri;, index and
>>> label. Two functions (<emphasis>ts_append</emphasis> and
>>> <emphasis>ts_append_to</emphasis>) provide the ability to add new branches
>>> either to a specific transaction or to all of the transactions stored for a
>>> given R-URI.
>>> </para>
>>> <para>
>>> - When the transaction is destroyed (by the
>>> <emphasis>TM</emphasis> module,
>>> - the transaction is removed from the module table.
>>> + When a transaction is destroyed by the
>>> <emphasis>TM</emphasis> module,
>>> + it is removed from the module's table too.
>>> </para>
>>> </section>
>>> <section>
>>> @@ -201,6 +199,36 @@ if (is_method("REGISTER")) {
>>> </section>
>>>
>>> <section>
>>> - <title>Statistics</title>
>>> + <title>MI Commands</title>
>>> + <section id="tsilo.mi.ts_dump">
>>> + <title>
>>> + <function moreinfo="none">ts_dump</function>
>>> + </title>
>>> + <para>
>>> + Dumps the entire content of the TSILO table
>>> + </para>
>>> + <para>Parameters: </para>
>>> + <itemizedlist>
>>> + <listitem><para>
>>> + <emphasis>brief</emphasis> -
>>> (optional, may not be present); if
>>> + equals to string
>>> <quote>brief</quote>, a brief dump will be
>>> + done (only RURI, without the
>>> transaction(s) details)
>>> + </para></listitem>
>>> + </itemizedlist>
>>> + </section>
>>> + <section id="tsilo.mi.ts_lookup">
>>> + <title>
>>> + <function moreinfo="none">ts_lookup</function>
>>> + </title>
>>> + <para>
>>> + Dumps the transactions stored for the given RURI
>>> + </para>
>>> + <para>Parameters: </para>
>>> + <itemizedlist>
>>> + <listitem><para>
>>> + <emphasis>ruri</emphasis> - RURI
>>> for which we want to show the transactions.
>>> + </para></listitem>
>>> + </itemizedlist>
>>> + </section>
>>> </section>
>>> </chapter>
>>> diff --git a/modules/tsilo/ts_hash.c b/modules/tsilo/ts_hash.c
>>> index 089f425..6225db6 100644
>>> --- a/modules/tsilo/ts_hash.c
>>> +++ b/modules/tsilo/ts_hash.c
>>> @@ -162,7 +162,7 @@ void unlock_entry(ts_entry_t *entry) {
>>>
>>> void lock_entry_by_ruri(str* ruri)
>>> {
>>> - unsigned int sl;
>>> + unsigned int sl;
>>>
>>> sl = core_hash(ruri, 0, 0) & (t_table->size-1);
>>> ts_lock(t_table, &t_table->entries[sl]);
>>> diff --git a/modules/tsilo/ts_hash.h b/modules/tsilo/ts_hash.h
>>> index b895c26..bc7adf1 100644
>>> --- a/modules/tsilo/ts_hash.h
>>> +++ b/modules/tsilo/ts_hash.h
>>> @@ -26,8 +26,8 @@
>>> * Module: \ref tsilo
>>> */
>>>
>>> -#ifndef _DIALOG_TS_HASH_H_
>>> -#define _DIALOG_TS_HASH_H_
>>> +#ifndef _TS_HASH_H_
>>> +#define _TS_HASH_H_
>>>
>>> #include "../../locking.h"
>>> #include "../../lib/kmi/mi.h"
>>> @@ -64,10 +64,10 @@ typedef struct ts_urecord
>>> /*! entries in the main transaction table */
>>> typedef struct ts_entry
>>> {
>>> - int n; /*!< Number of elements in the
>>> collision slot */
>>> + int n; /*!< Number of elements in
>>> the collision slot */
>>> struct ts_urecord *first; /*!< urecord list */
>>> - struct ts_urecord *last; /*!< optimisation, end of the
>>> urecord list */
>>> - unsigned int next_id; /*!< next id */
>>> + struct ts_urecord *last; /*!< optimisation, end of
>>> the urecord list */
>>> + unsigned int next_id; /*!< next id */
>>> unsigned int lock_idx; /*!< lock index */
>>> } ts_entry_t;
>>>
>>> @@ -75,13 +75,13 @@ typedef struct ts_entry
>>> /*! main transaction table */
>>> typedef struct ts_table
>>> {
>>> - unsigned int size; /*!< size of the dialog table */
>>> + unsigned int size; /*!< size of the tsilo table
>>> */
>>> struct ts_entry *entries; /*!< urecord hash table */
>>> unsigned int locks_no; /*!< number of locks */
>>> - gen_lock_set_t *locks; /*!< lock table */
>>> + gen_lock_set_t *locks; /*!< lock table */
>>> } ts_table_t;
>>>
>>> -/*! global dialog table */
>>> +/*! global transactions table */
>>> extern ts_table_t *t_table;
>>>
>>> /*!
>>> diff --git a/modules/tsilo/tsilo.c b/modules/tsilo/tsilo.c
>>> index 90eb292..9c404dd 100644
>>> --- a/modules/tsilo/tsilo.c
>>> +++ b/modules/tsilo/tsilo.c
>>> @@ -32,11 +32,13 @@
>>> #include "../../modules/tm/tm_load.h"
>>> #include "../../modules/registrar/api.h"
>>> #include "../../dset.h"
>>> +#include "../../lib/kmi/mi.h"
>>>
>>> #include "ts_hash.h"
>>> #include "ts_handlers.h"
>>> #include "ts_append.h"
>>> #include "ts_store.h"
>>> +#include "ts_mi.h"
>>>
>>> MODULE_VERSION
>>>
>>> @@ -57,20 +59,24 @@ static int w_ts_append_to(struct sip_msg* msg, char
>>> *idx, char *lbl, char *d);
>>> static int fixup_ts_append_to(void** param, int param_no);
>>> static int w_ts_append(struct sip_msg* _msg, char *_table, char *_ruri);
>>> static int fixup_ts_append(void** param, int param_no);
>>> -
>>> static int w_ts_store(struct sip_msg* msg);
>>>
>>> -
>>> static cmd_export_t cmds[]={
>>> {"ts_append_to", (cmd_function)w_ts_append_to, 3,
>>> - fixup_ts_append_to, REQUEST_ROUTE | FAILURE_ROUTE },
>>> + fixup_ts_append_to, 0, REQUEST_ROUTE | FAILURE_ROUTE },
>>> {"ts_append", (cmd_function)w_ts_append, 2,
>>> - fixup_ts_append, REQUEST_ROUTE | FAILURE_ROUTE },
>>> + fixup_ts_append, 0, REQUEST_ROUTE | FAILURE_ROUTE },
>>> {"ts_store", (cmd_function)w_ts_store, 0,
>>> - 0 , REQUEST_ROUTE | FAILURE_ROUTE },
>>> + 0 , 0, REQUEST_ROUTE | FAILURE_ROUTE },
>>> {0,0,0,0,0}
>>> };
>>>
>>> +static mi_export_t mi_cmds[] = {
>>> + { "ts_dump", mi_tsilo_dump, 0, 0,
>>> 0 },
>>> + { "ts_lookup", mi_tsilo_lookup, 0, 0,
>>> 0 },
>>> + { 0, 0, 0, 0, 0}
>>> +};
>>> +
>>> static param_export_t params[]={
>>> {"hash_size", INT_PARAM, &hash_size},
>>> {0,0,0}
>>> @@ -80,13 +86,16 @@ static param_export_t params[]={
>>> /** module exports */
>>> struct module_exports exports= {
>>> "tsilo",
>>> + DEFAULT_DLFLAGS,
>>> cmds,
>>> - 0, /* RPC methods */
>>> params,
>>> + 0, /* exported statistics */
>>> + mi_cmds, /* exported MI functions */
>>> + 0,
>>> + 0,
>>> mod_init, /* module initialization function */
>>> 0,
>>> (destroy_function) destroy, /* destroy function */
>>> - 0,
>>> 0
>>> };
>>>
>>> @@ -97,6 +106,13 @@ static int mod_init(void)
>>> {
>>> unsigned int n;
>>>
>>> + /* register the MI commands */
>>> + if(register_mi_mod(exports.name, mi_cmds)!=0)
>>> + {
>>> + LM_ERR("failed to register MI commands\n");
>>> + return -1;
>>> + }
>>> +
>>> /* load the TM API */
>>> if (load_tm_api(&_tmb)!=0) {
>>> LM_ERR("can't load TM API\n");
>>>
>>>
>>>
>>> _______________________________________________
>>> sr-dev mailing list
>>> sr-dev at lists.sip-router.org
>>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>>
>>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>>
>> _______________________________________________
>> sr-dev mailing list
>> sr-dev at lists.sip-router.org
>> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>>
>>
> _______________________________________________
> sr-dev mailing list
> sr-dev at lists.sip-router.org
> http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-dev/attachments/20141113/f8cc8417/attachment-0001.html>
More information about the sr-dev
mailing list