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 <ker...@tekno-soft.it >> <mailto:ker...@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@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@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@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@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users