[SR-Users] Kamailio KEMI Framework Tutorial

Daniel-Constantin Mierla miconda at gmail.com
Fri Nov 24 18:30:19 CET 2017


Hello,


the most convenient way is to do a pull request via github project, just
be sure you do the commit message as per guidelines at:


 -
https://github.com/kamailio/kamailio/blob/master/.github/CONTRIBUTING.md#commit-message-format


That will make the merging straightforward via web, if all is ok with
the patch.


Cheers,
Daniel


On 24.11.17 18:18, Samuel F. wrote:
>
> Hey,
>
>
> Almost done with a POC. Should I open up a PR and we can review /
> iterate on it or is there a better of way of sharing the code?
>
>
> Cheers,
>
> Samuel
>
> ------------------------------------------------------------------------
> *From:* Daniel-Constantin Mierla <miconda at gmail.com>
> *Sent:* Friday, November 24, 2017 3:41:35 PM
> *To:* Samuel F.; Kamailio (SER) - Users Mailing List
> *Subject:* Re: [SR-Users] Kamailio KEMI Framework Tutorial
>  
>
> Hello,
>
>
> On 24.11.17 13:43, Samuel F. wrote:
>>
>> Hey,
>>
>>
>> Just tested and it seems to work well! I compared the output to the
>> output from app_lua to run some type of sanity check and it seems to
>> show the same information.
>>
> I think that KSR.x package doesn't have exit() and drop() functions in
> app_python ... but not sure if KSR.x is dumped via rpc.
>>
>>
>> However, there is one issue with the rpc app_lua.api_list, when
>> running the RPC command it returns the result set twice so you get a
>> msize of twice the msize of app_python and duplicated data.
>>
> I will check.
>
> Cheers,
> Daniel
>
>>
>> // Samuel
>>
>> ------------------------------------------------------------------------
>> *From:* Daniel-Constantin Mierla <miconda at gmail.com>
>> <mailto:miconda at gmail.com>
>> *Sent:* Thursday, November 23, 2017 12:52:24 PM
>> *To:* Samuel F.; Kamailio (SER) - Users Mailing List
>> *Subject:* Re: [SR-Users] Kamailio KEMI Framework Tutorial
>>  
>>
>> Hello,
>>
>>
>> I just pushed the rpc command app_python.api_list to master branch.
>> Can you test and see if works? If all ok, then I will push it to
>> branch 5.1 as well.
>>
>>
>> Cheers,
>> Daniel
>>
>>
>> On 23.11.17 08:31, Daniel-Constantin Mierla wrote:
>>>
>>> Hello,
>>>
>>>
>>> On 22.11.17 19:47, Samuel F. wrote:
>>>>
>>>> Hi again,
>>>>
>>>>
>>>> Regarding RPC list: I do not think it is implemented for python?
>>>>
>>> it is not, indeed, I just looked at the code. I am not much into
>>> python myself, so it was overlooked -- I just added kemi support for
>>> it on top of the previous app_python.
>>>
>>>> I checked the source and couldn't find anything that would handle
>>>> the RPC call:
>>>>
>>>> kamctl rpc app_python.api_list
>>>>
>>>>
>>>> Regarding the documentation:
>>>> I didn't mean to document in the source code, sorry for not
>>>> expressing myself clearly,
>>>
>>> That was a proposal on the IRC devel meeting to add doxygen docs for
>>> kemi function, which is good to have anyhow, but for something with
>>> more details and examples, doxygen can become a mess.
>>>
>>>>  I ment to generate the Kemi function list documentation from the
>>>> source code automatically via a script instead of updating it
>>>> manually (so the documentation doesn't become stale). One example
>>>> could be to run the RPC api_list and take that list to generate a
>>>> documentation file that shows all available functions. I tried to
>>>> check that out now but couldn't get it working for python because I
>>>> think the command is missing (v5.0.4).
>>>>
>>>> So to condense my proposal on how we could structure the KEMI docs
>>>> I would suggest:
>>>> - General documentation about how KEMI works: As it is now, great
>>>> - Document special functions that are only implemented in KEMI /or
>>>> differs from the original module implementation: As it is now, great
>>>> - Not have sections for each and every module, just one section
>>>> with a long list of exported KEMI functions with a link to the
>>>> original documentation
>>>>
>>>> I'm happy to take a shot at generating a script for this but would
>>>> need help to understand how I can export the python API list.
>>>
>>> I am going to add the rpc command to app_python, then you can try to
>>> build your tool for it.
>>>
>>> Cheers,
>>> Daniel
>>>
>>>>
>>>> // Samuel
>>>>
>>>> ------------------------------------------------------------------------
>>>> *From:* Daniel-Constantin Mierla <miconda at gmail.com>
>>>> <mailto:miconda at gmail.com>
>>>> *Sent:* Tuesday, November 21, 2017 3:20:21 PM
>>>> *To:* Samuel F.; Kamailio (SER) - Users Mailing List
>>>> *Subject:* Re: [SR-Users] Kamailio KEMI Framework Tutorial
>>>>  
>>>>
>>>> Hello,
>>>>
>>>>
>>>> On 21.11.17 10:20, Samuel F. wrote:
>>>>>
>>>>> Hi Daniel,
>>>>>
>>>>>
>>>>> First, I'd just like to say thanks and let you know we are very
>>>>> grateful for the KEMI framework. We have developed three
>>>>> small applications running on python KEMI in production serving
>>>>> calls every day successfully without any issues at all. The
>>>>> development process was very smooth and quick.
>>>>>
>>>>
>>>> thanks for the feedback, really appreciated! It is good to know
>>>> that KEMI is being used in production and also it shows its
>>>> potential for various needs.
>>>>
>>>>>
>>>>> I reviewed the documentation and think it's great that the KEMI
>>>>> framework gets an extensive documentation.
>>>>>
>>>>>
>>>>> One thought I had regarding documenting the exported functions is
>>>>> that I think it's good if they are exported to the docs
>>>>> automatically from the source code. My opinion is that it is
>>>>> better to have documentation that reflects the current state of
>>>>> the source code rather than having stale/out-of-date documentation.
>>>>>
>>>>>
>>>>> Perhaps having a parser that locates all the exported functions,
>>>>> lists them in appropriate modules with the return value and then a
>>>>> link to the actual modules documentation?
>>>>>
>>>>
>>>> There is an RPC command that lists the exported KEMI functions for
>>>> a running Kamailio. It reflects exactly what functions are
>>>> available from the kemi framework internal structure. This is like
>>>> an auto discovery, it is done automatically.
>>>>
>>>> Addition docs can be added in the code using doxygen, however,
>>>> while that is good for short descriptions, I don't find it good to
>>>> add extensive docs and especially usage examples in the code. Also,
>>>> from past experiences, non-developer users tend not to look at the
>>>> code, therefore the improvements to docs in code from general users
>>>> are very low.
>>>>
>>>> Anyhow, this tutorial was started with the initial goal of covering
>>>> the KEMI framework in general, and the special functions. For the
>>>> functions exported by modules I added only the acc as an example
>>>> (which is also a skeleton at this moment).
>>>>
>>>> As I said, I am open for suggestions on how to do the docs for kemi
>>>> functions from modules. Your proposal with using somehow the code
>>>> is not like being dismissed, I just expressed my opinions based.
>>>> Contributions to parse the code and extract prototypes are of
>>>> course welcome.
>>>>
>>>> Cheers,
>>>> Daniel
>>>>
>>>>
>>>>>
>>>>> // Samuel
>>>>>
>>>>> ------------------------------------------------------------------------
>>>>> *From:* sr-users <sr-users-bounces at lists.kamailio.org>
>>>>> <mailto:sr-users-bounces at lists.kamailio.org> on behalf of
>>>>> Daniel-Constantin Mierla <miconda at gmail.com>
>>>>> <mailto:miconda at gmail.com>
>>>>> *Sent:* Monday, November 20, 2017 4:11:54 PM
>>>>> *To:* Kamailio (SER) - Users Mailing List; Kamailio (SER) - Devel
>>>>> Mailing List
>>>>> *Subject:* [SR-Users] Kamailio KEMI Framework Tutorial
>>>>>  
>>>>> Hello,
>>>>>
>>>>> I started a tutorial for Kamailio KEMI Framework written in markdown
>>>>> format targeting use of mkdocs. It is published on github as part of
>>>>> kamailio-docs repository:
>>>>>
>>>>>   *
>>>>> https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkamailio%2Fkamailio-docs%2Ftree%2Fmaster%2Fkamailio-kemi-framework&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=MuTy1ZgjcDEbQdHTGA2LpO1sKUDAxxo%2BupwGr%2BBspCE%3D&reserved=0
>>>>>
>>>>> The mkdocs build (to browse and read) is online at:
>>>>>
>>>>>   *
>>>>> https://nam02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fkamailio.org%2Fdocs%2Ftutorials%2Fdevel%2Fkamailio-kemi-framework%2F&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=FHJ1zANtLQI6o2%2F1wFPFYfu1B94JlQ%2FHTLDbaVp7dUg%3D&reserved=0
>>>>>
>>>>> It is work in progress and contributions from the community are more
>>>>> than welcome -- doing push requests on github project is the
>>>>> recommended
>>>>> way for contributions:
>>>>>
>>>>>   *
>>>>> https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fkamailio%2Fkamailio-docs%2F&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=utRI9tOvpEuyBWFU70KaBaod6URNk0ju4rTSQl%2FhO3I%3D&reserved=0
>>>>>
>>>>> The main goal is document the role of KEMI, its benefits and how
>>>>> it can
>>>>> be used. It addition it should cover the list of functions exported to
>>>>> KEMI by core as well as special KEMI functions.
>>>>>
>>>>> Regarding the functions exported by kamailio modules to KEMI I
>>>>> added as
>>>>> an skeleton the ones exported by acc module. However, I am not sure if
>>>>> we should do it there or add them to the existing docs of the modules.
>>>>> Opinions on this?!?
>>>>>
>>>>> Cheers,
>>>>> Daniel
>>>>>
>>>>> -- 
>>>>> Daniel-Constantin Mierla
>>>>> https://nam02.safelinks.protection.outlook.com/?url=www.twitter.com%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=%2F1Fg1476daehbTE4jVNmQ1%2BQro52j%2Fy6maGN8HZmHjU%3D&reserved=0
>>>>> --
>>>>> https://nam02.safelinks.protection.outlook.com/?url=www.linkedin.com%2Fin%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=WytUIkS%2FT0cdu%2BEMhSLz8TFhkn2PADOVGEjnHF5d2lE%3D&reserved=0
>>>>> Kamailio Advanced Training -
>>>>> https://nam02.safelinks.protection.outlook.com/?url=www.asipto.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=b8D9EWNFf5eocdwbjZDu8nKmFF777nNE5yknicVgDKs%3D&reserved=0
>>>>> Kamailio World Conference - May 14-16, 2018 -
>>>>> https://nam02.safelinks.protection.outlook.com/?url=www.kamailioworld.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=X7KEbj5w3kLSiCPrpgnrdoCITpeBiWPfAeYFyY2yMhk%3D&reserved=0
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Kamailio (SER) - Users Mailing List
>>>>> sr-users at lists.kamailio.org <mailto:sr-users at lists.kamailio.org>
>>>>> https://nam02.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.kamailio.org%2Fcgi-bin%2Fmailman%2Flistinfo%2Fsr-users&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C226fe2242ed4436c13fa08d53029444d%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636467876150276887&sdata=HLJ5knbTzvZ2EFRpdNEPawUUy5ArJVL6HVqitepIM2Q%3D&reserved=0
>>>>
>>>> -- 
>>>> Daniel-Constantin Mierla
>>>> www.twitter.com/miconda
>>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twitter.com%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7Cb0ef8c659a014ebc3bbc08d530eb0520%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636468708318318423&sdata=%2B6XNLL0f7NWcJWExn7P%2FBQSdjfry6ku79GWr1C9HFyA%3D&reserved=0> -- www.linkedin.com/in/miconda
>>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7Cb0ef8c659a014ebc3bbc08d530eb0520%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636468708318318423&sdata=gctVv3a%2Fyt6K%2F5u8cdxDPOVCXpjAFtWYWdi0edqlQaE%3D&reserved=0>
>>>> Kamailio Advanced Training - www.asipto.com
>>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.asipto.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7Cb0ef8c659a014ebc3bbc08d530eb0520%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636468708318318423&sdata=PUjvVlxZ6%2B6i%2BVX1uyHDP7EHF4dbYgozNjlFRJMJICg%3D&reserved=0>
>>>> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
>>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kamailioworld.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7Cb0ef8c659a014ebc3bbc08d530eb0520%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636468708318318423&sdata=n7wEMwvt38VIugGTLcT9mBZMNLCCaeWgYKDWtapcnVc%3D&reserved=0>
>>>
>>> -- 
>>> Daniel-Constantin Mierla
>>> www.twitter.com/miconda
>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twitter.com%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=dL%2BqbOqXFuC44L4BHfrqmWJ%2FvRdGNnpfve8sL028YnY%3D&reserved=0> -- www.linkedin.com/in/miconda
>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=zLtZY%2Bndy2srMgk5MIKT8h4XVXQSO6bCm6IKs2xGyT4%3D&reserved=0>
>>> Kamailio Advanced Training - www.asipto.com
>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.asipto.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=ymhWfoNJN%2BHe5Yvy2V2tn94GOVyQVnp08li7ZKNU4HE%3D&reserved=0>
>>> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
>>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kamailioworld.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=iG67lgp06qqLZvpC7NxESlK8kd4evjl9Gpwg2ZVBNC0%3D&reserved=0>
>>
>> -- 
>> Daniel-Constantin Mierla
>> www.twitter.com/miconda
>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twitter.com%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=dL%2BqbOqXFuC44L4BHfrqmWJ%2FvRdGNnpfve8sL028YnY%3D&reserved=0> -- www.linkedin.com/in/miconda
>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=zLtZY%2Bndy2srMgk5MIKT8h4XVXQSO6bCm6IKs2xGyT4%3D&reserved=0>
>> Kamailio Advanced Training - www.asipto.com
>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.asipto.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=ymhWfoNJN%2BHe5Yvy2V2tn94GOVyQVnp08li7ZKNU4HE%3D&reserved=0>
>> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
>> <https://eur02.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kamailioworld.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C9e8a66cf561e4162c59208d53268af1f%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636470347544577197&sdata=iG67lgp06qqLZvpC7NxESlK8kd4evjl9Gpwg2ZVBNC0%3D&reserved=0>
>
> -- 
> Daniel-Constantin Mierla
> www.twitter.com/miconda
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.twitter.com%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C8260a30bcbc24ff4c7d408d53349789e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636471312997727370&sdata=4YTMIHQTpcAfSVEQFBFjudl7p00b30VIE2pv3jbIQC8%3D&reserved=0> -- www.linkedin.com/in/miconda
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.linkedin.com%2Fin%2Fmiconda&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C8260a30bcbc24ff4c7d408d53349789e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636471312997727370&sdata=rex0slUeglQ4IIHDsljFzFU5HfYrJMSFCMVcSHT7cJk%3D&reserved=0>
> Kamailio Advanced Training - www.asipto.com
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.asipto.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C8260a30bcbc24ff4c7d408d53349789e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636471312997727370&sdata=maMeM0xPsHLMW9c%2FVyR%2BLBO1Co2o0ern%2BPiTGYaig2s%3D&reserved=0>
> Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com
> <https://nam04.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.kamailioworld.com&data=02%7C01%7Csamuel_is_kewl%40hotmail.com%7C8260a30bcbc24ff4c7d408d53349789e%7C84df9e7fe9f640afb435aaaaaaaaaaaa%7C1%7C0%7C636471312997727370&sdata=4%2Fgk32bg98YTnA2C7QFPWUYln0vDR4VPBQ%2B90i6xhIE%3D&reserved=0>

-- 
Daniel-Constantin Mierla
www.twitter.com/miconda -- www.linkedin.com/in/miconda
Kamailio Advanced Training - www.asipto.com
Kamailio World Conference - May 14-16, 2018 - www.kamailioworld.com

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20171124/f69e5528/attachment.html>


More information about the sr-users mailing list