<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=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><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;}
/* 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;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        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";}
p.msonormal0, li.msonormal0, div.msonormal0
        {mso-style-name:msonormal;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-reference-expand, li.ms-outlook-ios-reference-expand, div.ms-outlook-ios-reference-expand
        {mso-style-name:ms-outlook-ios-reference-expand;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#999999;}
p.ms-outlook-ios-availability-container, li.ms-outlook-ios-availability-container, div.ms-outlook-ios-availability-container
        {mso-style-name:ms-outlook-ios-availability-container;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-mention, li.ms-outlook-ios-mention, div.ms-outlook-ios-mention
        {mso-style-name:ms-outlook-ios-mention;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#F1F1F1;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#333333;}
p.ms-outlook-ios-mention-external, li.ms-outlook-ios-mention-external, div.ms-outlook-ios-mention-external
        {mso-style-name:ms-outlook-ios-mention-external;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#FDF7E7;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#BA8F0D;}
p.ms-outlook-ios-mention-external-clear-design, li.ms-outlook-ios-mention-external-clear-design, div.ms-outlook-ios-mention-external-clear-design
        {mso-style-name:ms-outlook-ios-mention-external-clear-design;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#F1F1F1;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#BA8F0D;}
p.ms-outlook-ios-dark-mode, li.ms-outlook-ios-dark-mode, div.ms-outlook-ios-dark-mode
        {mso-style-name:ms-outlook-ios-dark-mode;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#E1E1E1;}
p.ms-outlook-ios-availability-timeslot-container, li.ms-outlook-ios-availability-timeslot-container, div.ms-outlook-ios-availability-timeslot-container
        {mso-style-name:ms-outlook-ios-availability-timeslot-container;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-availability-border, li.ms-outlook-ios-availability-border, div.ms-outlook-ios-availability-border
        {mso-style-name:ms-outlook-ios-availability-border;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-reference-expand1, li.ms-outlook-ios-reference-expand1, div.ms-outlook-ios-reference-expand1
        {mso-style-name:ms-outlook-ios-reference-expand1;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#777777;}
p.ms-outlook-ios-availability-container1, li.ms-outlook-ios-availability-container1, div.ms-outlook-ios-availability-container1
        {mso-style-name:ms-outlook-ios-availability-container1;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-availability-timeslot-container1, li.ms-outlook-ios-availability-timeslot-container1, div.ms-outlook-ios-availability-timeslot-container1
        {mso-style-name:ms-outlook-ios-availability-timeslot-container1;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#0086F0;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.ms-outlook-ios-availability-border1, li.ms-outlook-ios-availability-border1, div.ms-outlook-ios-availability-border1
        {mso-style-name:ms-outlook-ios-availability-border1;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-mention1, li.ms-outlook-ios-mention1, div.ms-outlook-ios-mention1
        {mso-style-name:ms-outlook-ios-mention1;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#292929;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#ACACAC;}
p.ms-outlook-ios-reference-expand2, li.ms-outlook-ios-reference-expand2, div.ms-outlook-ios-reference-expand2
        {mso-style-name:ms-outlook-ios-reference-expand2;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#777777;}
p.ms-outlook-ios-availability-container2, li.ms-outlook-ios-availability-container2, div.ms-outlook-ios-availability-container2
        {mso-style-name:ms-outlook-ios-availability-container2;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-availability-timeslot-container2, li.ms-outlook-ios-availability-timeslot-container2, div.ms-outlook-ios-availability-timeslot-container2
        {mso-style-name:ms-outlook-ios-availability-timeslot-container2;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#0086F0;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.ms-outlook-ios-availability-border2, li.ms-outlook-ios-availability-border2, div.ms-outlook-ios-availability-border2
        {mso-style-name:ms-outlook-ios-availability-border2;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-mention2, li.ms-outlook-ios-mention2, div.ms-outlook-ios-mention2
        {mso-style-name:ms-outlook-ios-mention2;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#292929;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#ACACAC;}
p.ms-outlook-ios-reference-expand3, li.ms-outlook-ios-reference-expand3, div.ms-outlook-ios-reference-expand3
        {mso-style-name:ms-outlook-ios-reference-expand3;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#777777;}
p.ms-outlook-ios-availability-container3, li.ms-outlook-ios-availability-container3, div.ms-outlook-ios-availability-container3
        {mso-style-name:ms-outlook-ios-availability-container3;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-availability-timeslot-container3, li.ms-outlook-ios-availability-timeslot-container3, div.ms-outlook-ios-availability-timeslot-container3
        {mso-style-name:ms-outlook-ios-availability-timeslot-container3;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#0086F0;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.ms-outlook-ios-availability-border3, li.ms-outlook-ios-availability-border3, div.ms-outlook-ios-availability-border3
        {mso-style-name:ms-outlook-ios-availability-border3;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-mention3, li.ms-outlook-ios-mention3, div.ms-outlook-ios-mention3
        {mso-style-name:ms-outlook-ios-mention3;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#292929;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#ACACAC;}
p.ms-outlook-ios-reference-expand4, li.ms-outlook-ios-reference-expand4, div.ms-outlook-ios-reference-expand4
        {mso-style-name:ms-outlook-ios-reference-expand4;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#777777;}
p.ms-outlook-ios-availability-container4, li.ms-outlook-ios-availability-container4, div.ms-outlook-ios-availability-container4
        {mso-style-name:ms-outlook-ios-availability-container4;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-availability-timeslot-container4, li.ms-outlook-ios-availability-timeslot-container4, div.ms-outlook-ios-availability-timeslot-container4
        {mso-style-name:ms-outlook-ios-availability-timeslot-container4;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#0086F0;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.ms-outlook-ios-availability-border4, li.ms-outlook-ios-availability-border4, div.ms-outlook-ios-availability-border4
        {mso-style-name:ms-outlook-ios-availability-border4;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-mention4, li.ms-outlook-ios-mention4, div.ms-outlook-ios-mention4
        {mso-style-name:ms-outlook-ios-mention4;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#292929;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#ACACAC;}
p.ms-outlook-ios-reference-expand5, li.ms-outlook-ios-reference-expand5, div.ms-outlook-ios-reference-expand5
        {mso-style-name:ms-outlook-ios-reference-expand5;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#777777;}
p.ms-outlook-ios-availability-container5, li.ms-outlook-ios-availability-container5, div.ms-outlook-ios-availability-container5
        {mso-style-name:ms-outlook-ios-availability-container5;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-availability-timeslot-container5, li.ms-outlook-ios-availability-timeslot-container5, div.ms-outlook-ios-availability-timeslot-container5
        {mso-style-name:ms-outlook-ios-availability-timeslot-container5;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#0086F0;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:black;}
p.ms-outlook-ios-availability-border5, li.ms-outlook-ios-availability-border5, div.ms-outlook-ios-availability-border5
        {mso-style-name:ms-outlook-ios-availability-border5;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        border:none;
        padding:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
p.ms-outlook-ios-mention5, li.ms-outlook-ios-mention5, div.ms-outlook-ios-mention5
        {mso-style-name:ms-outlook-ios-mention5;
        mso-margin-top-alt:auto;
        margin-right:0cm;
        mso-margin-bottom-alt:auto;
        margin-left:0cm;
        background:#292929;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        color:#ACACAC;}
span.HTMLVorformatiertZchn
        {mso-style-name:"HTML Vorformatiert Zchn";
        mso-style-priority:99;
        mso-style-link:"HTML Vorformatiert";
        font-family:Consolas;}
span.E-MailFormatvorlage55
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@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 Joey,<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">The lua script will block (like native Kamailio cfg) the specific child if you do time consuming operations.
<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">But you can use the asynchronous support also for app_lua (and other languages). You can also implement e.g. a queue and a dedicated worker process, like in this (older) presentation:<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"><a href="https://www.kamailio.org/events/2014-KamailioWorld/day2/26-Daniel-Constantin.Mierla-Kamailio.cfg-Async.pdf">https://www.kamailio.org/events/2014-KamailioWorld/day2/26-Daniel-Constantin.Mierla-Kamailio.cfg-Async.pdf</a>
<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">The blocking of the dedicated worker should not affect your main network processes.<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>
<div>
<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://skalatan.de/services"><span lang="EN-GB" style="color:#0563C1">https://skalatan.de/services</span></a></span><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p></o:p></span></p>
</div>
<p class="MsoNormal"><span lang="EN-GB" style="mso-fareast-language:EN-US"><o:p> </o:p></span></p>
<div>
<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> sr-dev <sr-dev-bounces@lists.kamailio.org>
<b>On Behalf Of </b>Joey Golan<br>
<b>Sent:</b> Sunday, October 13, 2019 8:34 AM<br>
<b>To:</b> miconda@gmail.com; Kamailio (SER) - Development Mailing List <sr-dev@lists.kamailio.org><br>
<b>Subject:</b> Re: [sr-dev] Kamailio jwt module or Lua script<o:p></o:p></p>
</div>
</div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">My question is, while making the call to the app_lua does the context of the sip call hangs and wait for the Lua script to end or It can handle other calls in that time and the route script will get invoked and
 resume from that point?<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I hope it is more clear now.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"> <o:p></o:p></p>
</div>
<div class="MsoNormal" align="center" style="margin-left:35.4pt;text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> Daniel-Constantin Mierla <<a href="mailto:miconda@gmail.com">miconda@gmail.com</a>><br>
<b>Sent:</b> Monday, October 7, 2019 4:02 PM<br>
<b>To:</b> Joey Golan; Kamailio (SER) - Development Mailing List<br>
<b>Subject:</b> Re: [sr-dev] Kamailio jwt module or Lua script <o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"> <o:p></o:p></p>
</div>
</div>
<p style="margin-left:35.4pt"><o:p> </o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 07.10.19 14:36, Joey Golan wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I’ve implemented the token verification in Lua script and I’m using app_lua module to call the script from the configuration script inside the [AUTH] block.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">It works fine but I want to be sure that I will not face performance degradation.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I’ve used the benchmark module to the log the execution duration. The results shows 130~ microseconds avg. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Do you think it will have impact on performance?<o:p></o:p></p>
</div>
</div>
</blockquote>
<p class="MsoNormal" style="margin-left:35.4pt">If you get the numbers you want (calls per second or registrations per second), then it is fine.<br>
<br>
<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Regarding app_lua, is it running on the same call context or a different one?<o:p></o:p></p>
</div>
</div>
</blockquote>
<p style="margin-left:35.4pt"><o:p> </o:p></p>
<p style="margin-left:35.4pt">What do you mean here? Like "sip/voip call context", or "function call context"?<o:p></o:p></p>
<p style="margin-left:35.4pt">Cheers,<br>
Daniel<o:p></o:p></p>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Thanks<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
</div>
<div>
<div class="MsoNormal" align="center" style="margin-left:35.4pt;text-align:center">
<hr size="2" width="98%" align="center">
</div>
<div id="divRplyFwdMsg">
<p class="MsoNormal" style="margin-left:35.4pt"><b>From:</b> Daniel-Constantin Mierla
<a href="mailto:miconda@gmail.com"><miconda@gmail.com></a><br>
<b>Sent:</b> Monday, October 7, 2019 12:29 PM<br>
<b>To:</b> Kamailio (SER) - Development Mailing List; Joey Golan<br>
<b>Subject:</b> Re: [sr-dev] Kamailio jwt module or Lua script <o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"> <o:p></o:p></p>
</div>
</div>
<p style="margin-left:35.4pt">Hello,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">On 05.10.19 16:07, Joey Golan wrote:<o:p></o:p></p>
</div>
<blockquote style="margin-top:5.0pt;margin-bottom:5.0pt">
<div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">Hi all,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">I would like to authenticate subscribers using JWT tokens and I wonder which approach is better:<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">1. Writhing a dedicated kamailio module.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">2. Writing a Lua script.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:35.4pt">What would work better performance wise?<o:p></o:p></p>
</div>
</div>
</blockquote>
<p style="margin-left:35.4pt">In terms of executing the same Kamailio C function exported to kamailio.cfg routing blocks or to Lua API/kemi, there is not any significant difference.<o:p></o:p></p>
<p style="margin-left:35.4pt">However, if you execute Lua code written by third party, it is not easy to say if it matches the same performances as an equivalent C function that you write.<o:p></o:p></p>
<p style="margin-left:35.4pt">You can go with the option you consider faster for development and then see if you are pleased with the results.<o:p></o:p></p>
<p style="margin-left:35.4pt">Cheers,<br>
Daniel<o:p></o:p></p>
<pre style="margin-left:35.4pt">-- Daniel-Constantin Mierla -- <a href="http://www.asipto.com">www.asipto.com</a><a href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a>Kamailio Advanced Training, Oct 21-23, 2019, Berlin, Germany -- <a href="https://asipto.com/u/kat">https://asipto.com/u/kat</a><o:p></o:p></pre>
</div>
</blockquote>
<pre style="margin-left:35.4pt">-- <o:p></o:p></pre>
<pre style="margin-left:35.4pt">Daniel-Constantin Mierla -- <a href="http://www.asipto.com">www.asipto.com</a><o:p></o:p></pre>
<pre style="margin-left:35.4pt"><a href="http://www.twitter.com/miconda">www.twitter.com/miconda</a> -- <a href="http://www.linkedin.com/in/miconda">www.linkedin.com/in/miconda</a><o:p></o:p></pre>
<pre style="margin-left:35.4pt">Kamailio Advanced Training, Oct 21-23, 2019, Berlin, Germany -- <a href="https://asipto.com/u/kat">https://asipto.com/u/kat</a><o:p></o:p></pre>
</div>
</div>
</body>
</html>