<p></p>
<p><b>@lazedo</b> requested changes on this pull request.</p>

<p>thank you for your contribution. some required changes</p><hr>

<p>In <a href="https://github.com/kamailio/kamailio/pull/2324#discussion_r427114319">src/modules/kazoo/kazoo.c</a>:</p>
<pre style='color:#555'>> +    if(faked_msg_init()<0)
+    {
+        LM_ERR("failed to init kazoo local sip msg\n");
+        return -1;
+    }
+
</pre>
<p>why was this added ?</p>

<hr>

<p>In <a href="https://github.com/kamailio/kamailio/pull/2324#discussion_r427116991">src/modules/kazoo/kazoo.c</a>:</p>
<pre style='color:#555'>> +    sr_kemi_eng_t *keng = NULL;
+         if(kazoo_event_callback.s!=NULL && kazoo_event_callback.len>0) {
+                 keng = sr_kemi_eng_get();
+                 if(keng==NULL) {
+                         LM_ERR("failed to find kemi engine\n");
+                         return -1;
+                 }
+                 kazoo_route_no=-1;
+         } 
+    else {
+                 route_no=route_lookup(&event_rt, "kazoo:consumer-event");
+                 if (route_no==-1)
+                 {
+                         LM_ERR("failed to find event_route[kazoo:consumer-event]\n");
+                         return -1;
+                 }
+                 if (event_rt.rlist[route_no]==0)
+                 {
+                         LM_WARN("event_route[kazoo:consumer-event] is empty\n");
+                 }
+                 kazoo_route_no=route_no;
+    }
+    
+    
</pre>
<p>please use a different logic here. <code>kazoo:consumer-event</code> is not mandatory. you could set a variable like <code>kz_use_kemi</code> that is set if <code>kazoo_event_callback</code> is set and <code>kemi</code> is valid. then use that variable when needed</p>

<hr>

<p>In <a href="https://github.com/kamailio/kamailio/pull/2324#discussion_r427118030">src/modules/kazoo/kazoo.c</a>:</p>
<pre style='color:#555'>> +    if (kazoo_route_no>=0) {
+               rt = route_get(&event_rt, "kazoo:mod-init");
+        if(rt>=0 && event_rt.rlist[rt]!=NULL) {
+                       LM_DBG("executing event_route[kazoo:mod-init] (%d)\n", rt);
</pre>
<p>formatting looks odd</p>

<hr>

<p>In <a href="https://github.com/kamailio/kamailio/pull/2324#discussion_r427119184">src/modules/kazoo/kz_amqp.c</a>:</p>
<pre style='color:#555'>> +      if (kazoo_route_no>=0) {
     sprintf(buffer, "kazoo:consumer-event-%.*s-%.*s",ev_category.len, ev_category.s, ev_name.len, ev_name.s);
-    for (p=buffer ; *p; ++p) *p = tolower(*p);
-    for (p=buffer ; *p; ++p) if(*p == '_') *p = '-';
-    if(kz_amqp_consumer_fire_event(buffer) != 0) {
-        sprintf(buffer, "kazoo:consumer-event-%.*s",ev_category.len, ev_category.s);
         for (p=buffer ; *p; ++p) *p = tolower(*p);
         for (p=buffer ; *p; ++p) if(*p == '_') *p = '-';
         if(kz_amqp_consumer_fire_event(buffer) != 0) {
-            sprintf(buffer, "kazoo:consumer-event-%s-%s", key, subkey);
+            sprintf(buffer, "kazoo:consumer-event-%.*s",ev_category.len, ev_category.s);
             for (p=buffer ; *p; ++p) *p = tolower(*p);
             for (p=buffer ; *p; ++p) if(*p == '_') *p = '-';
             if(kz_amqp_consumer_fire_event(buffer) != 0) {
-                sprintf(buffer, "kazoo:consumer-event-%s", key);
+                sprintf(buffer, "kazoo:consumer-event-%s-%s", key, subkey);
                 for (p=buffer ; *p; ++p) *p = tolower(*p);
                 for (p=buffer ; *p; ++p) if(*p == '_') *p = '-';
-                               if(kz_amqp_consumer_fire_event(buffer) != 0) {
-                                       sprintf(buffer, "kazoo:consumer-event");
-                                       if(kz_amqp_consumer_fire_event(buffer) != 0) {
-                                               LM_ERR("kazoo:consumer-event not found\n");
-                                       }
-                               }
+                if(kz_amqp_consumer_fire_event(buffer) != 0) {
+                    sprintf(buffer, "kazoo:consumer-event-%s", key);
+                    for (p=buffer ; *p; ++p) *p = tolower(*p);
+                    for (p=buffer ; *p; ++p) if(*p == '_') *p = '-';
+                    if(kz_amqp_consumer_fire_event(buffer) != 0) {
+                        sprintf(buffer, "kazoo:consumer-event");
+                        if(kz_amqp_consumer_fire_event(buffer) != 0) {
+                            LM_ERR("kazoo:consumer-event not found\n");
+                        }
+                    }
+                }
             }
         }
+    } else {
+        keng = sr_kemi_eng_get();
+        if(keng!=NULL) {
+            sip_msg_t *msg;
+            str evrtname = str_init("kazoo:consumer-event");
+
+            rtb = get_route_type();
+            msg = faked_msg_next();
+            if(sr_kemi_route(keng, msg, EVENT_ROUTE, &kazoo_event_callback, &evrtname)<0)                {
+                LM_ERR("error running event route kemi callback\n");
+            }
+            set_route_type(rtb);
+        } else {
+            LM_ERR("no event route or kemi callback found for execution\n");
+        }
     }
+
</pre>
<p>split this in two different functions that are evoked depending on <code>kemi</code> being active</p>

<hr>

<p>In <a href="https://github.com/kamailio/kamailio/pull/2324#discussion_r427120497">src/modules/kazoo/kazoo.c</a>:</p>
<pre style='color:#555'>> -    rt = route_get(&event_rt, "kazoo:mod-init");
-       if(rt>=0 && event_rt.rlist[rt]!=NULL) {
-               LM_DBG("executing event_route[kazoo:mod-init] (%d)\n", rt);
-               if(faked_msg_init()<0)
-                       return -1;
-               fmsg = faked_msg_next();
-               rtb = get_route_type();
-               set_route_type(REQUEST_ROUTE);
-               init_run_actions_ctx(&ctx);
-               run_top_route(event_rt.rlist[rt], fmsg, &ctx);
-               if(ctx.run_flags&DROP_R_F)
-               {
-                       LM_ERR("exit due to 'drop' in event route\n");
-                       return -1;
+       if (kazoo_route_no>=0) {
+               rt = route_get(&event_rt, "kazoo:mod-init");
+        if(rt>=0 && event_rt.rlist[rt]!=NULL) {
+                       LM_DBG("executing event_route[kazoo:mod-init] (%d)\n", rt);
+                       if(faked_msg_init()<0)
+                               return -1;
+                       fmsg = faked_msg_next();
+                       rtb = get_route_type();
+                       set_route_type(REQUEST_ROUTE);
+                       init_run_actions_ctx(&ctx);
+                       run_top_route(event_rt.rlist[rt], fmsg, &ctx);
+                       if(ctx.run_flags&DROP_R_F)
+                       {
+                               LM_ERR("exit due to 'drop' in event route\n");
+                               return -1;
+                       }
+                       set_route_type(rtb);
+               }
+       } 
+  else {
+               keng = sr_kemi_eng_get();
+               if(keng!=NULL) {
+                       sip_msg_t *msg;
+                       str evrtname = str_init("kazoo:mod-init");
+                       rtb = get_route_type();
+                       msg = faked_msg_next();
+                       if(sr_kemi_route(keng, msg, EVENT_ROUTE, &kazoo_event_callback, &evrtname)<0) {
+                               LM_ERR("error running event route kemi callback\n");
+                 }
+                 set_route_type(rtb);
+               } 
+    else {
+                       LM_ERR("no event route or kemi callback found for execution\n");
</pre>
<p>split this in two different function that are evoked by <code>fire_init_event</code> depending on <code>kemi</code> being active</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly, <a href="https://github.com/kamailio/kamailio/pull/2324#pullrequestreview-414207173">view it on GitHub</a>, or <a href="https://github.com/notifications/unsubscribe-auth/ABO7UZMCL4CDL6KYADK4NLTRSI7NVANCNFSM4M6AZYHA">unsubscribe</a>.<img src="https://github.com/notifications/beacon/ABO7UZLGALYAVH7UEWG7BT3RSI7NVA5CNFSM4M6AZYHKYY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGODCYEZRI.gif" height="1" width="1" alt="" /></p>
<script type="application/ld+json">[
{
"@context": "http://schema.org",
"@type": "EmailMessage",
"potentialAction": {
"@type": "ViewAction",
"target": "https://github.com/kamailio/kamailio/pull/2324#pullrequestreview-414207173",
"url": "https://github.com/kamailio/kamailio/pull/2324#pullrequestreview-414207173",
"name": "View Pull Request"
},
"description": "View this Pull Request on GitHub",
"publisher": {
"@type": "Organization",
"name": "GitHub",
"url": "https://github.com"
}
}
]</script>