On 05/21/2014 09:08 AM, Roberto Fichera wrote:
Hi There,
> On 05/20/2014 09:15 PM, Peter Villeneuve wrote:
>> Hi Roberto,
>
> Hi Peter,
>
>> Did you ever figure out how to do it?
>> I'd be interested too.
>
> Not yet! I tried other ways, barely workarounds, but I guess I'll
> have to go into this
> quite soon because it is the straight way to go. The main problem
> is the lack of
> my knowledge of kamailio API so I'll have to study a bit some code
> in order to understand
> how to use it.
>
> BTW the idea is to trigger an event route were I'd like to set all
> the info regarding
> the dispatched message including the result of the delivering. I
> don't know if is possible
> but the best would be to set all the pseudo-variables so that such
> event route will be
> in the right context of the given MSILO message.
>
> So, any advice regarding the API would definitively help and put
> me in the right direction.
Actually I've started to play with the above idea, so below you
will find my current implementation
which seems executed because I see the LM_DBG() log but the code
within the event route but
the corresponding script code does not.
Any help?
Cheers,
Roberto Fichera.
event_route [msilo:on-delivered] {
xlog("L_INFO", "MSILO event on-delivered <$fu> to
<$ru>\n");
}
diff --git a/modules/msilo/msilo.c b/modules/msilo/msilo.c
index 903b3cf..742c48d 100644
--- a/modules/msilo/msilo.c
+++ b/modules/msilo/msilo.c
@@ -281,6 +281,9 @@ static int bind_msilo(msilo_api_t* api)
return 0;
}
+/* where to go for the local request route ("msilo:on-delivered") */
+int msilo_event_on_delivered=-1; /* default disabled */
+
/**
* init module function
*/
@@ -480,6 +483,11 @@ static int mod_init(void)
if(ms_outbound_proxy.s!=NULL)
ms_outbound_proxy.len = strlen(ms_outbound_proxy.s);
+ /* check if the on-delivered route event exists or not */
+ msilo_event_on_delivered=route_lookup(&event_rt,
"msilo:on-delivered");
+ if (msilo_event_on_delivered>=0 &&
event_rt.rlist[msilo_event_on_delivered]==0)
+ msilo_event_on_delivered=-1; /* disable */
+
return 0;
}
@@ -1330,6 +1338,26 @@ void m_tm_callback( struct cell *t, int
type, struct tmcb_params *ps)
LM_DBG("message <%d> was sent successfully\n",
*((int*)ps->param));
msg_list_set_flag(ml, *((int*)ps->param), MS_MSG_DONE);
+ /* execute the msilo:on-delivered event route */
+ if(unlikely(msilo_event_on_delivered>=0))
+ {
+ int sflag_bk;
+ int backup_route_type;
+ struct run_act_ctx ctx;
+
+ LM_DBG("executing event_route[msilo:on-delivered]
(%d)\n", msilo_event_on_delivered);
+
+ sflag_bk = getsflags();
+ backup_route_type = get_route_type();
+
+ set_route_type(EVENT_ROUTE);
+ init_run_actions_ctx(&ctx);
+ run_top_route(event_rt.rlist[msilo_event_on_delivered], ps->req,
&ctx);
+
+ set_route_type(backup_route_type);
+ setsflagsval(sflag_bk);
+ }
+
done:
return;
}
>
> Cheers,
> Roberto Fichera.
>
>>
>> Cheers,
>> Peter
>>
>>
>> On Thu, Apr 17, 2014 at 4:04 PM, Roberto Fichera
>> <kernel(a)tekno-soft.it <mailto:kernel@tekno-soft.it>> wrote:
>>
>> On 04/17/2014 10:36 AM, Roberto Fichera wrote:
>>
>> Hi All,
>>
>> > On 04/16/2014 07:15 PM, Roberto Fichera wrote:
>> >
>> > Hi All,
>> >
>> >> On 04/16/2014 06:53 PM, Daniel-Constantin Mierla wrote:
>> >>> Hello,
>> >> Ciao Daniel,
>> >>
>> >>> most likely the messages are looped back, be sure you
>> allow requests from 'myself' without authentication.
>> >>>
>> >>> You can watch loopback interface with ngrep to see if the
>> messages are sent out.
>> >> Yep! Allowing requests from myself solved the problem! Thanks!
>> >>
>> >> Another thing regarding MSILO, I would like to preserve
>> some custom header fields
>> >> for both instant message and notification. How can I do it?
>> > I was able to solve this issue too, pretty straight I mean,
>> there is the extra_hdrs_avp param
>> > which did the trick. BTW, is there a way to send back the
>> notification to the sender that
>> > the message has been sent correctly via m_dump(), so to get
>> a 200 about the given
>> > m_dump()ed message?
>> >
>>
>> I think that this can be solved in a different way, the idea
>> is to add an event_route for the msilo
>> module so that we get notified for each m_dump()ed message
>> about the given IM status and
>> then handle it in the cfg file. So, looking at the code
>> within m_tm_callback() it seems that it's
>> right place where to add such feature. Since I'm not a
>> kamailio developer but I've quite long
>> time experience in C coding, does anyone can show/point me to
>> some example about
>> how to do that?
>>
>> Thanks in advance,
>> Roberto Fichera.
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users
>> mailing list
>> sr-users(a)lists.sip-router.org
>> <mailto:sr-users@lists.sip-router.org>
>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>
>>
>>
>>
>> _______________________________________________
>> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>> sr-users(a)lists.sip-router.org
>>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>
>
> _______________________________________________
> SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
> sr-users(a)lists.sip-router.org
>
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users -http://www.linkedin.com/in/miconda
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org