<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix">On 06/10/2014 10:20 AM,
      Daniel-Constantin Mierla wrote:<br>
    </div>
    <blockquote cite="mid:5396BFB4.9030105@gmail.com" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Hello,<br>
    </blockquote>
    <br>
    Hi,<br>
    <br>
    <blockquote cite="mid:5396BFB4.9030105@gmail.com" type="cite"> the
      parse from error don't seem to be from parse_msg().<br>
      <br>
      Can you print the uac buffer and send it over here to see if it is
      something wrong there?<br>
    </blockquote>
    <br>
    Jun 10 09:32:29 ip-10-227-0-26.localdomain
    /usr/sbin/kamailio[29663]: DEBUG: msilo [msilo.c:1403]:
    m_tm_callback_on_delivered_event(): t->uac[0].request.buffer:
    MESSAGE <a class="moz-txt-link-abbreviated" href="mailto:sip:test1@test.com">sip:test1@test.com</a> SIP/2.0<br>
    <br>
    I've used LM_DBG()  to print it.<br>
    <br>
    <blockquote cite="mid:5396BFB4.9030105@gmail.com" type="cite"> You
      get a crash as well, very likely due to the shm free at the end.<br>
    </blockquote>
    <br>
    The rest of the code hasn't changed, so I kept all the shm_malloc(),
    actually I do not expect <br>
    them to fail.<br>
    <br>
    Cheers,<br>
    Roberto Fichera.<br>
    <br>
    <blockquote cite="mid:5396BFB4.9030105@gmail.com" type="cite"> <br>
      Cheers,<br>
      Daniel<br>
      <br>
      <div class="moz-cite-prefix">On 10/06/14 09:40, Roberto Fichera
        wrote:<br>
      </div>
      <blockquote cite="mid:5396B650.6080703@tekno-soft.it" type="cite">
        <meta content="text/html; charset=ISO-8859-1"
          http-equiv="Content-Type">
        <div class="moz-cite-prefix">On 06/09/2014 08:55 PM,
          Daniel-Constantin Mierla wrote:<br>
        </div>
        <blockquote cite="mid:5396031B.4090309@gmail.com" type="cite">
          <meta content="text/html; charset=ISO-8859-1"
            http-equiv="Content-Type">
          Hello,<br>
        </blockquote>
        <br>
        Hi,<br>
        <br>
        <blockquote cite="mid:5396031B.4090309@gmail.com" type="cite">
          the $ru should be the same as $tu in this case. $ru will
          change when the message loops back and there is a
          lookup("location") in the config, but in the callback you
          don't get it.<br>
          <br>
          If you really want to get the content of the sip MESSAGE
          request sent out, you can find it in the
          t->uac[0].request.buffer (iirc) as plain text. you can take
          it from there and parse it in a sip_msg_t  structure inside
          the callback. But with the SIP reply structure you may get
          what you need (if you just need $ru which is available in
          $tu).<br>
        </blockquote>
        <br>
        I've tried your suggestion but looks like something is missing
        in the buffer, the code I've added just for testing is the
        following:<br>
        <br>
               /* execute the msilo:on-delivered event route */<br>
               if(unlikely(msilo_event_on_delivered>=0))<br>
               {<br>
                       int sflag_bk;<br>
                       int backup_route_type;<br>
                       struct run_act_ctx ctx;<br>
                       struct sip_msg req;<br>
        <br>
        -->>>               if
        (parse_msg(t->uac[0].request.buffer,
        t->uac[0].request.buffer_len, &req) != 0)<br>
                       {<br>
                         LM_ERR("parse_msg failed\n");<br>
                         goto done;<br>
                       }<br>
        <br>
                       LM_DBG("executing event_route[msilo:on-delivered]
        (%d)\n", msilo_event_on_delivered);<br>
        <br>
                       sflag_bk = getsflags();<br>
                       backup_route_type = get_route_type();<br>
        <br>
                       set_route_type(EVENT_ROUTE);<br>
                       init_run_actions_ctx(&ctx);<br>
                       LM_DBG("event_route[msilo:on-delivered]
        req=%p)\n", &req);<br>
                      
        run_top_route(event_rt.rlist[msilo_event_on_delivered],
        &req, &ctx);<br>
        <br>
                       set_route_type(backup_route_type);<br>
                       setsflagsval(sflag_bk);<br>
        <br>
                       shm_free(event->req->buf);<br>
                       shm_free(event->req);<br>
                       shm_free(event);<br>
               }<br>
        <br>
        but doesn't properly work:<br>
        <br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29231]: DEBUG: msilo [msilo.c:1410]:
        m_tm_callback_on_delivered_event(): executing
        event_route[msilo:on-delivered] (1)<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29231]: DEBUG: msilo [msilo.c:1417]:
        m_tm_callback_on_delivered_event():
        event_route[msilo:on-delivered] event->req=0xbf81b830)<br>
        ---->>>> Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29231]: ERROR: <core>
        [parser/parse_from.c:58]: parse_from_header():
        ERROR:parse_from_header: bad msg or missing FROM header<br>
        ---->>>> Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29231]: ERROR: pv [pv_core.c:449]:
        pv_get_from_attr(): cannot parse From header<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29231]: INFO: <script>: MSILO event
        on-delivered <<null>> to <������ͫ<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29250]: : <core> [pass_fd.c:293]:
        receive_fd(): ERROR: receive_fd: EOF on 13<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29227]: ALERT: <core> [main.c:775]:
        handle_sigs(): child process 29231 exited by a signal 11<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29250]: DEBUG: <core>
        [tcp_main.c:3595]: handle_ser_child(): DBG: handle_ser_child:
        dead child 2, pid 29231 (shutting down?)<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29227]: ALERT: <core> [main.c:778]:
        handle_sigs(): core was not generated<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29250]: DEBUG: <core> [io_wait.h:617]:
        io_watch_del(): DBG: io_watch_del (0x82cf640, 13, -1, 0x0)
        fd_no=23 called<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29227]: INFO: <core> [main.c:790]:
        handle_sigs(): INFO: terminating due to SIGCHLD<br>
        Jun 10 08:32:01 ip-10-227-0-26.localdomain
        /usr/sbin/kamailio[29249]: INFO: <core> [main.c:841]:
        sig_usr(): INFO: signal 15 received<br>
        <br>
        Cheers,<br>
        Roberto Fichera.<br>
        <br>
        <blockquote cite="mid:5396031B.4090309@gmail.com" type="cite"> <br>
          Cheers,<br>
          Daniel<br>
          <br>
          <div class="moz-cite-prefix">On 09/06/14 18:29, Roberto
            Fichera wrote:<br>
          </div>
          <blockquote cite="mid:5395E100.4000109@tekno-soft.it"
            type="cite">
            <meta content="text/html; charset=ISO-8859-1"
              http-equiv="Content-Type">
            <div class="moz-cite-prefix">On 06/09/2014 06:16 PM,
              Daniel-Constantin Mierla wrote:<br>
            </div>
            <blockquote cite="mid:5395DDDB.1000204@gmail.com"
              type="cite">
              <meta content="text/html; charset=ISO-8859-1"
                http-equiv="Content-Type">
              [...]<br>
            </blockquote>
            <br>
            <blockquote cite="mid:5395DDDB.1000204@gmail.com"
              type="cite"> ps->req is null, because there is no
              incoming request, but you should have ps->rpl available
              if there is a 200ok.<br>
            </blockquote>
            <br>
            Which is my case! Only triggered once a 200ok has been
            received! Anyway it seems to work because the event route<br>
            get executed but $ru seems not defined:<br>
            <br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: msilo [msilo.c:1378]:
            m_tm_callback_on_delivered_event():
            >>>>>>> msilo_notification_event
            0xb30cb748<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: msilo [msilo.c:1380]:
            m_tm_callback_on_delivered_event(): completed with status
            200 [mid: 148]<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: msilo [msilo.c:1393]:
            m_tm_callback_on_delivered_event(): message <148> was
            sent successfully<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: msilo [ms_msg_list.c:236]:
            msg_list_set_flag(): mid:148 fl:4<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: msilo [msilo.c:1403]:
            m_tm_callback_on_delivered_event(): executing
            event_route[msilo:on-delivered] (1)<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: msilo [msilo.c:1410]:
            m_tm_callback_on_delivered_event():
            event_route[msilo:on-delivered] event->req=0xb7275680)<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: <core>
            [parser/parse_addr_spec.c:176]: parse_to_param(): DEBUG:
            add_param: tag=90a2f67ea18c2dbc1dd6d5c5f690acb0-25e2<br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: <core>
            [parser/parse_addr_spec.c:893]: parse_addr_spec(): end of
            header reached, state=29<br>
            ---->>>> Jun 09 17:25:01
            ip-10-227-0-26.localdomain /usr/sbin/kamailio[25288]: INFO:
            <script>: MSILO event on-delivered <a
              moz-do-not-send="true" class="moz-txt-link-rfc2396E"
              href="mailto:sip:test1@test.com"><sip:test1@test.com></a>
            to <<null>><br>
            Jun 09 17:25:01 ip-10-227-0-26.localdomain
            /usr/sbin/kamailio[25288]: DEBUG: tm [t_reply.c:1663]:
            cleanup_uac_timers(): DEBUG: cleanup_uac_timers: RETR/FR
            timers reset<br>
            <br>
            <br>
            Cheers,<br>
            Roberto Fichera.<br>
            <br>
            <blockquote cite="mid:5395DDDB.1000204@gmail.com"
              type="cite"> <br>
              Cheers,<br>
              Daniel<br>
              <br>
              <div class="moz-cite-prefix">On 09/06/14 18:12, Roberto
                Fichera wrote:<br>
              </div>
              <blockquote cite="mid:5395DCFE.9070502@tekno-soft.it"
                type="cite">
                <meta content="text/html; charset=ISO-8859-1"
                  http-equiv="Content-Type">
                <div class="moz-cite-prefix">On 06/09/2014 06:03 PM,
                  Roberto Fichera wrote:<br>
                  <br>
                  Hi,<br>
                  <br>
                </div>
                <blockquote cite="mid:5395DADB.4070603@tekno-soft.it"
                  type="cite">
                  <meta content="text/html; charset=ISO-8859-1"
                    http-equiv="Content-Type">
                  <div class="moz-cite-prefix">On 06/09/2014 05:49 PM,
                    Daniel-Constantin Mierla wrote:<br>
                  </div>
                  <blockquote cite="mid:5395D789.1010504@gmail.com"
                    type="cite">
                    <meta content="text/html; charset=ISO-8859-1"
                      http-equiv="Content-Type">
                    Hello,<br>
                  </blockquote>
                  <br>
                  Hi,<br>
                  <br>
                  <blockquote cite="mid:5395D789.1010504@gmail.com"
                    type="cite">On 09/06/14 17:41, Roberto Fichera
                    wrote:<br>
                    <blockquote
                      cite="mid:5395D5AF.7000100@tekno-soft.it"
                      type="cite">
                      <meta content="text/html; charset=ISO-8859-1"
                        http-equiv="Content-Type">
                      [...]<br>
                      <br>
                      <blockquote cite="mid:5395CFC1.6090705@gmail.com"
                        type="cite"> your patch seems a bit to complex
                        -- I didn't figure out why you store the message
                        in pkg memory.<br>
                      </blockquote>
                      <br>
                      Ok! So I will need to shm_malloc() the memory in
                      such case, right?<br>
                    </blockquote>
                    I don't get why you need to do that at all. If you
                    need to access from, to, etc..., you can get them
                    from the SIP response. You go in dangerous zone as
                    you do that cloning.<br>
                  </blockquote>
                  <br>
                  The idea was to set a sip_msg just to have all the
                  pseudo-variable available <br>
                  within the event route and nothing else.<br>
                  <br>
                  <blockquote cite="mid:5395D789.1010504@gmail.com"
                    type="cite"> Because you want to execute the event
                    route on 200ok, the best is to run the event route
                    with the SIP response structure.<br>
                  </blockquote>
                  <br>
                  At the beginning this was my choice, but I'd always
                  got ps->req = NULL in the callback tmcb_params <br>
                  hence the event route wasn't executed. But I'll re-try
                  it just to be sure.<br>
                </blockquote>
                <br>
                I can confirm, I'm always getting ps->req = NULL<br>
                <br>
                un 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [parser/msg_parser.c:170]: get_hdr_field():
                get_hdr_field: cseq <CSeq>: <10>
                <MESSAGE><br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_lookup.c:949]:
                t_reply_matching(): DEBUG: t_reply_matching: hash 39390
                label 0 branch 0<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_lookup.c:1004]:
                t_reply_matching(): DEBUG: t_reply_matching: reply
                matched (T=0xb2f7ebfc)!<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_lookup.c:1141]:
                t_check_msg(): DEBUG: t_check_msg: msg id=1 global id=1
                T end=0xb2f7ebfc<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_reply.c:2206]:
                reply_received(): DEBUG: reply_received: org. status
                uas=0, uac[0]=0 local=2 is_invite=0)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_reply.c:1304]:
                t_should_relay_response():
                ->>>>>>>>> T_code=0,
                new_code=200<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_reply.c:2086]:
                local_reply(): DEBUG: local_reply: branch=0, save=0,
                winner=0<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_reply.c:2123]:
                local_reply(): DEBUG: local transaction completed<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_hooks.c:288]:
                run_trans_callbacks_internal(): DBG: trans=0xb2f7ebfc,
                callback type 1024, id 0 entered<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: msilo [msilo.c:1378]:
                m_tm_callback_on_delivered_event():
                >>>>>>> msilo_notification_event
                0xb301669c<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: msilo [msilo.c:1380]:
                m_tm_callback_on_delivered_event(): completed with
                status 200 [mid: 147]<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: msilo [msilo.c:1393]:
                m_tm_callback_on_delivered_event(): message <147>
                was sent successfully<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: msilo
                [ms_msg_list.c:236]: msg_list_set_flag(): mid:147 fl:4<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: msilo [msilo.c:1403]:
                m_tm_callback_on_delivered_event(): executing
                event_route[msilo:on-delivered] (1)<br>
                --->>>>> Jun 09 17:06:38
                ip-10-227-0-26.localdomain /usr/sbin/kamailio[25089]:
                DEBUG: msilo [msilo.c:1410]:
                m_tm_callback_on_delivered_event():
                event_route[msilo:on-delivered] ps->req=(nil))<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: tm [t_reply.c:1663]:
                cleanup_uac_timers(): DEBUG: cleanup_uac_timers: RETR/FR
                timers reset<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [usr_avp.c:644]: destroy_avp_list():
                DEBUG:destroy_avp_list: destroying list (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [usr_avp.c:644]: destroy_avp_list():
                DEBUG:destroy_avp_list: destroying list (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [usr_avp.c:644]: destroy_avp_list():
                DEBUG:destroy_avp_list: destroying list (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [usr_avp.c:644]: destroy_avp_list():
                DEBUG:destroy_avp_list: destroying list (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [usr_avp.c:644]: destroy_avp_list():
                DEBUG:destroy_avp_list: destroying list (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [usr_avp.c:644]: destroy_avp_list():
                DEBUG:destroy_avp_list: destroying list (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [xavp.c:448]: xavp_destroy_list(): destroying xavp list
                (nil)<br>
                Jun 09 17:06:38 ip-10-227-0-26.localdomain
                /usr/sbin/kamailio[25089]: DEBUG: <core>
                [receive.c:296]: receive_msg(): receive_msg: cleaning up<br>
                <br>
                <br>
                <blockquote cite="mid:5395DADB.4070603@tekno-soft.it"
                  type="cite"> <br>
                  BTW! using shm_malloc() I was finally able to execute
                  the event route in the script with all the <br>
                  pseudo-variable correctly set!<br>
                </blockquote>
                <br>
                Attached you will find the patch I'm actually using.<br>
                <br>
                Cheers,<br>
                Roberto Fichera.<br>
                <br>
                <blockquote cite="mid:5395DADB.4070603@tekno-soft.it"
                  type="cite"> <br>
                  Cheers,<br>
                  Roberto Fichera.<br>
                  <br>
                  <blockquote cite="mid:5395D789.1010504@gmail.com"
                    type="cite"> <br>
                    Cheers,<br>
                    Daniel<br>
                  </blockquote>
                </blockquote>
              </blockquote>
            </blockquote>
          </blockquote>
        </blockquote>
        <br>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <br>
        <pre wrap="">_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
      </blockquote>
      <br>
      <pre class="moz-signature" cols="72">-- 
Daniel-Constantin Mierla - <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://www.asipto.com">http://www.asipto.com</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://twitter.com/#%21/miconda">http://twitter.com/#!/miconda</a> - <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://www.linkedin.com/in/miconda">http://www.linkedin.com/in/miconda</a></pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
<a class="moz-txt-link-abbreviated" href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a>
<a class="moz-txt-link-freetext" href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>