Hello,
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.
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:te...@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:te...@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
<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
--
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