Cheers,
Roberto Fichera.
>
> 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(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
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