<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
        {font-family:"JetBrains Mono";
        panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert Zchn";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;
        mso-fareast-language:DE;}
span.gmail-m5771132192111387857gmaildefault
        {mso-style-name:gmail-m_5771132192111387857gmaildefault;}
span.E-MailFormatvorlage23
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal"><span style="mso-fareast-language:EN-US">Hello Tyler,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning is fine.
</span><span style="font-family:"Segoe UI Emoji",sans-serif;mso-fareast-language:EN-US">😉</span><span lang="EN-GB" style="mso-fareast-language:EN-US"> Please keep the list in cc, that other people can also participate.
<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">I think there are some people that use llvm/clang for kamailio on the list that might be able to help. I personally work mostly with gcc on Kamailio. About cmake – well this is not the
 system that is used right now in Kamailio.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Cheers,<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">-- <o:p>
</o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Henning Westerholt –
</span><span style="mso-fareast-language:EN-US"><a href="https://skalatan.de/blog/"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US">Kamailio services –
</span><span style="mso-fareast-language:EN-US"><a href="https://gilawa.com/"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a></span><span style="mso-fareast-language:EN-US">
<span lang="EN-GB"><o:p></o:p></span></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> Tyler Moore <tmoore@goflyball.com>
<br>
<b>Sent:</b> Monday, April 27, 2020 4:17 PM<br>
<b>To:</b> Henning Westerholt <hw@skalatan.de><br>
<b>Subject:</b> Re: [sr-dev] Custom kamailio modules<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-family:"Arial",sans-serif">Thanks for the quick reply Mr. Westerholt.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-family:"Arial",sans-serif">I was able to get it working using the makefile workflow that was present which brings me back to my original revised question.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-family:"Arial",sans-serif">How could I integrate a different toolchain for my workflow, for completeness lets say llvm/clang and cmake.<o:p></o:p></span></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><span style="font-family:"Arial",sans-serif">The Makefile's seem to setup a lot of compiler flags and i'm assuming that would be a good place to start but your opinion would be much appreciated as well.<o:p></o:p></span></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p style="margin-left:35.4pt"><span style="font-family:"Arial",sans-serif;color:black">Regards,</span><span style="color:black"><o:p></o:p></span></p>
<p style="margin-left:42.9pt"><span style="font-family:"Arial",sans-serif;color:black"><a href="https://devopsec.net/" target="_blank" title="x-name"><strong><span style="font-family:"Arial",sans-serif;color:black">Tyler Moore</span></strong></a> <br>
<a href="http://www.google.com/search?q=full+stack+software+engineer+job+description" target="_blank"><span style="color:black">Full Stack Software Engineer</span></a><br>
<a href="http://goflyball.com/" target="_blank"><span style="color:black">Flyball Labs</span></a><br>
Office: <a href="tel:8889072085;ext=34" target="_blank"><span style="color:black">888-907-2085, ext: 34</span></a><br>
Cell: <a href="tel:2489092769" target="_blank"><span style="color:black">248-909-2769</span></a><br>
Email: <a href="mailto:tmoore@goflyball.com" target="_blank"><span style="color:black">tmoore@goflyball.com</span></a></span><span style="color:black"><o:p></o:p></span></p>
<p style="margin-left:42.9pt"><span style="color:black"><o:p></o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On Mon, Apr 27, 2020 at 6:24 AM Henning Westerholt <<a href="mailto:hw@skalatan.de">hw@skalatan.de</a>> wrote:<o:p></o:p></p>
</div>
<blockquote style="border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm">
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
Hello,<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
 <o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">just creating a shared library only with the MODULE_VERSION export will not work. Kamailio expects more function in the module to be present and also other exports.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">One way to start is probably to take a small module (like cfgutils) and use this as foundation for extension. The print module might be also ok, but as it comes from the SER side, it is missing e.g. the KEMI support.</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">Cheers,</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">Henning</span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB"> </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">-- </span><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">Henning Westerholt – </span><a href="https://skalatan.de/blog/" target="_blank"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/blog/</span></a><o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB">Kamailio services – </span><a href="https://gilawa.com/" target="_blank"><span lang="EN-GB" style="color:#0563C1">https://gilawa.com</span></a>
<o:p></o:p></p>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:35.4pt">
<span lang="EN-GB"> </span><o:p></o:p></p>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0cm 0cm 0cm">
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<b>From:</b> sr-dev <<a href="mailto:sr-dev-bounces@lists.kamailio.org" target="_blank">sr-dev-bounces@lists.kamailio.org</a>>
<b>On Behalf Of </b>Tyler Moore<br>
<b>Sent:</b> Friday, April 24, 2020 10:14 PM<br>
<b>To:</b> <a href="mailto:sr-dev@lists.kamailio.org" target="_blank">sr-dev@lists.kamailio.org</a><br>
<b>Subject:</b> [sr-dev] Custom kamailio modules<o:p></o:p></p>
</div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
 <o:p></o:p></p>
<div>
<div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">Hey devs got a question about loading custom modules.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">This is my first kamailio module so if I am missing some gotchas please refer me to the proper documentation.</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">I created a shared lib and included the module version info like so:</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<pre style="margin-left:70.8pt;background:#2B2B2B"><span style="font-family:"JetBrains Mono",serif;color:#BBB529">#define </span><span style="font-family:"JetBrains Mono",serif;color:#908B25">NAME </span><span style="font-family:"JetBrains Mono",serif;color:#6A8759">"kamailio"<br></span><span style="font-family:"JetBrains Mono",serif;color:#BBB529">#define </span><span style="font-family:"JetBrains Mono",serif;color:#908B25">VERSION </span><span style="font-family:"JetBrains Mono",serif;color:#6A8759">"5.3"<br></span><span style="font-family:"JetBrains Mono",serif;color:#BBB529">#define </span><span style="font-family:"JetBrains Mono",serif;color:#908B25">ARCH </span><span style="font-family:"JetBrains Mono",serif;color:#6A8759">"x86_64"<br></span><span style="font-family:"JetBrains Mono",serif;color:#BBB529">#define </span><span style="font-family:"JetBrains Mono",serif;color:#908B25">OS_QUOTED </span><span style="font-family:"JetBrains Mono",serif;color:#6A8759">"GNU/Linux"</span><o:p></o:p></pre>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p style="margin-left:70.8pt"><span class="gmail-m5771132192111387857gmaildefault"><span style="font-family:"Arial",sans-serif;color:black">...</span></span><o:p></o:p></p>
<pre style="mso-margin-top-alt:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:70.8pt;background:#2B2B2B"><span style="font-family:"JetBrains Mono",serif;color:#A9B7C6"><br></span><span style="font-family:"JetBrains Mono",serif;color:#908B25">MODULE_VERSION</span><o:p></o:p></pre>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">I tried loading the module in a vanilla kamailio 5.3 install on debian 9 (stretch) and it seems sr_module.c can't find the module version info:</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">ERROR: <core> [core/sr_module.c:325]: version_control(): no version info in module </usr/lib/x86_64-linux-gnu/kamailio/modules/dsiprouter.so>: /usr/lib/x86_64-linux-gnu/kamailio/modules/dsiprouter.so: undefined symbol:
 module_version</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">But MODULE_VERSION should be defining this variable..</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">Running string on the shared lib shows it is being defined:</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">> strings lib/dsiprouter.so | grep module_version<br>
module_version<br>
MODULE_VERSION char *module_version=SER_FULL_VERSION; char *module_flags=SER_COMPILE_FLAGS; unsigned int module_interface_ver=MODULE_INTERFACE_VER;<br>
module_version</span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif"> </span><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="mso-margin-top-alt:auto;mso-margin-bottom-alt:auto;margin-left:70.8pt">
<span style="font-family:"Arial",sans-serif">Is this a linking issue? Why does is seem that module_versino is referenced before being defined when i'm following the example from <a href="https://github.com/kamailio/kamailio/blob/5.1/src/modules/print/print.c" target="_blank">https://github.com/kamailio/kamailio/blob/5.1/src/modules/print/print.c</a>
 ?</span><o:p></o:p></p>
</div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<div>
<p style="margin-left:70.8pt"><span style="font-family:"Arial",sans-serif;color:black">Regards,</span><o:p></o:p></p>
<p style="margin-left:78.3pt"><span style="font-family:"Arial",sans-serif;color:black"><a href="https://devopsec.net/" target="_blank" title="x-name"><strong><span style="font-family:"Arial",sans-serif;color:black">Tyler Moore</span></strong></a> <br>
<a href="http://www.google.com/search?q=full+stack+software+engineer+job+description" target="_blank"><span style="color:black">Full Stack Software Engineer</span></a><br>
<a href="http://goflyball.com/" target="_blank"><span style="color:black">Flyball Labs</span></a><br>
Office: <a href="tel:8889072085;ext=34" target="_blank"><span style="color:black">888-907-2085, ext: 34</span></a><br>
Cell: <a href="tel:2489092769" target="_blank"><span style="color:black">248-909-2769</span></a><br>
Email: <a href="mailto:tmoore@goflyball.com" target="_blank"><span style="color:black">tmoore@goflyball.com</span></a></span><o:p></o:p></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</body>
</html>