Hello,
On 26/05/14 12:13, Roberto Fichera wrote:
On 05/26/2014 12:03 PM, Daniel-Constantin Mierla wrote:
Hello,
Ciao!
good that you sent a reminder -- I checked while offline traveling, but then forgot to follow up.
I expect that ps->req is null in this case, because there is no request received by kamailio. That results in xlog not doing anything.
In other words, I expect the event route being executed, just the action inside is doesn't do anything in this case.
Does this mean that I'll have to set a "faked" ps->req in order to get the event route executed?
that's the safe way. The event route is executed, but many functions that you can use inside config routing blocks require a non-null sip message structure. It is the case of xlog() for example, which simply returns -1 if request is null.
Cheers, Daniel
Cheers, Roberto Fichera.
Cheers, Daniel
On 26/05/14 11:40, Roberto Fichera wrote:
On 05/22/2014 09:08 AM, Roberto Fichera wrote:
On 05/21/2014 11:15 PM, Daniel-Constantin Mierla wrote:
Hello,
Ciao Daniel,
have you had time to look at the problem below?
Cheers, Roberto Fichera.
Ciao,
can you send the log messages printed with debug=3?
Yes! Sure! Here it is:
May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8454]: DEBUG: <core> [receive.c:296]: receive_msg(): receive_msg: cleaning up May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:633]: parse_msg(): SIP Reply (status): May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:635]: parse_msg(): version: <SIP/2.0> May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:637]: parse_msg(): status: <202> May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:639]: parse_msg(): reason:
<Accepted> May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/parse_via.c:1284]: parse_via_param(): Found param type 232, <branch> = <z9hG4bK016e.a6c662d4000000000000000....0>; state=6 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/parse_via.c:1284]: parse_via_param(): Found param type 235, <rport> = <1169>; state=6 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/parse_via.c:1284]: parse_via_param(): Found param type 234, <received> = <xx.xx.xx.xx>; state=16 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/parse_via.c:2672]: parse_via(): end of header reached, state=5 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:513]: parse_headers(): parse_headers: Via found, flags=2 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:515]: parse_headers(): parse_headers: this is the first via May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [receive.c:152]: receive_msg(): After parse_msg... May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_lookup.c:1072]: t_check_msg(): DEBUG: t_check_msg: msg id=1 global id=0 T start=0xffffffffffffffff May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/parse_addr_spec.c:176]: parse_to_param(): DEBUG: add_param: tag=74b38630e6be28bab2ebe17319971f33-c57e May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/parse_addr_spec.c:893]: parse_addr_spec(): end of header reached, state=29 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:190]: get_hdr_field(): DEBUG: get_hdr_field: <To> [88]; uri=[sip:test1@test.com] May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:192]: get_hdr_field(): DEBUG: to body [<sip:test1@test.com>] May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [parser/msg_parser.c:170]: get_hdr_field(): get_hdr_field: cseq <CSeq>: <10> <MESSAGE> May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_lookup.c:949]: t_reply_matching(): DEBUG: t_reply_matching: hash 58896 label 0 branch 0 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_lookup.c:1004]: t_reply_matching(): DEBUG: t_reply_matching: reply matched (T=0x7f21ba974408)! May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_lookup.c:1141]: t_check_msg(): DEBUG: t_check_msg: msg id=1 global id=1 T end=0x7f21ba974408 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_reply.c:2206]: reply_received(): DEBUG: reply_received: org. status uas=0, uac[0]=0 local=2 is_invite=0) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_reply.c:1304]: t_should_relay_response(): ->>>>>>>>> T_code=0, new_code=202 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_reply.c:2086]: local_reply(): DEBUG: local_reply: branch=0, save=0, winner=0 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_reply.c:2123]: local_reply(): DEBUG: local transaction completed May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_hooks.c:288]: run_trans_callbacks_internal(): DBG: trans=0x7f21ba974408, callback type 1024, id 0 entered May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: msilo [msilo.c:1327]: m_tm_callback(): completed with status 202 [mid: 139782841221704/4] May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: msilo [msilo.c:1340]: m_tm_callback(): message <4> was sent successfully May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: msilo [ms_msg_list.c:236]: msg_list_set_flag(): mid:4 fl:4 May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: msilo [msilo.c:1350]: m_tm_callback(): executing event_route[msilo:on-delivered] (2) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: tm [t_reply.c:1663]: cleanup_uac_timers(): DEBUG: cleanup_uac_timers: RETR/FR timers reset May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [usr_avp.c:644]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [usr_avp.c:644]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [usr_avp.c:644]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [usr_avp.c:644]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [usr_avp.c:644]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [usr_avp.c:644]: destroy_avp_list(): DEBUG:destroy_avp_list: destroying list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [xavp.c:448]: xavp_destroy_list(): destroying xavp list (nil) May 22 08:58:04 dragon.tekno-soft.it /usr/sbin/kamailio[8436]: DEBUG: <core> [receive.c:296]: receive_msg(): receive_msg: cleaning up May 22 08:58:08 dragon.tekno-soft.it /usr/sbin/kamailio[8441]: DEBUG: pike [timer.c:77]: check_and_split_timer(): splitting 0x7f21ba98dab0(0x7f21ba7b15f8,0x7f21ba7b15f8)node=0x7f21ba98daa0 May 22 08:58:08 dragon.tekno-soft.it /usr/sbin/kamailio[8441]: DEBUG: pike [timer.c:102]: check_and_split_timer(): succ. to split (h=0x7f21ba7b15f8)(p=0x7f21ba7b15f8,n=0x7f21ba7b15f8) May 22 08:58:08 dragon.tekno-soft.it /usr/sbin/kamailio[8441]: DEBUG: pike [pike_funcs.c:234]: clean_routine(): clean node 0x7f21ba98daa0 (kids=(nil); hits=[0,0];leaf=[0,0]) May 22 08:58:08 dragon.tekno-soft.it /usr/sbin/kamailio[8441]: DEBUG: pike [pike_funcs.c:265]: clean_routine(): rmv node 0x7f21ba98daa0[192] May 22 08:58:08 dragon.tekno-soft.it /usr/sbin/kamailio[8441]: DEBUG: pike [ip_tree.c:364]: remove_node(): destroying node 0x7f21ba98daa0 May 22 08:58:10 dragon.tekno-soft.it /usr/sbin/kamailio[8454]: DEBUG: <core> [io_wait.h:617]: io_watch_del(): DBG: io_watch_del (0x8eb2e0, 9, -1, 0x10) fd_no=2 called May 22 08:58:10 dragon.tekno-soft.it /usr/sbin/kamailio[8454]: DEBUG: <core> [tcp_read.c:1437]: release_tcpconn(): releasing con 0x7f21ba9420c0, state 1, fd=9, id=2 May 22 08:58:10 dragon.tekno-soft.it /usr/sbin/kamailio[8454]: DEBUG: <core> [tcp_read.c:1438]: release_tcpconn(): extra_data 0x7f21ba941028 May 22 08:58:10 dragon.tekno-soft.it /usr/sbin/kamailio[8456]: DEBUG: <core> [tcp_main.c:3385]: handle_tcp_child(): handle_tcp_child: reader response= 7f21ba9420c0, 1 from 2 May 22 08:58:10 dragon.tekno-soft.it /usr/sbin/kamailio[8456]: DEBUG: <core> [io_wait.h:390]: io_watch_add(): DBG: io_watch_add(0x893040, 28, 2, 0x7f21ba9420c0), fd_no=20 May 22 08:58:10 dragon.tekno-soft.it /usr/sbin/kamailio[8456]: DEBUG: <core> [tcp_main.c:3515]: handle_tcp_child(): handle_tcp_child: CONN_RELEASE 0x7f21ba9420c0 refcnt= 1
Cheers, Roberto Fichera.
Cheers, Daniel
On 21/05/14 18:37, Roberto Fichera wrote:
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@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@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
-- Daniel-Constantin Mierla -http://www.asipto.com http://twitter.com/#!/miconda -http://www.linkedin.com/in/miconda
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
-- Daniel-Constantin Mierla -http://www.asipto.com http://twitter.com/#!/miconda -http://www.linkedin.com/in/miconda
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