<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <font face="monospace">Perfect !!!</font><br>
    <pre class="moz-signature" cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a class="moz-txt-link-freetext" href="https://www.opensips-solutions.com">https://www.opensips-solutions.com</a>
OpenSIPS Summit 27-30 Sept 2022, Athens
  <a class="moz-txt-link-freetext" href="https://www.opensips.org/events/Summit-2022Athens/">https://www.opensips.org/events/Summit-2022Athens/</a></pre>
    <div class="moz-cite-prefix">On 10/12/22 1:09 PM, Ryzhik Ivan wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAG9R00qdPORtgc+uguF8NEwiThpyQcP5RHK67-kSk8rNAoZgSw@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">I found a solution. hex strings are reversed).
        <div>Thank you very much!</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">ср, 12 окт. 2022 г. в 12:59,
          Ryzhik Ivan <<a href="mailto:ryzhik.ivan@gmail.com"
            moz-do-not-send="true">ryzhik.ivan@gmail.com</a>>:<br>
        </div>
        <blockquote class="gmail_quote" style="margin:0px 0px 0px
          0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
          <div dir="ltr">and one more research: $T_id returns
            hex encoded label.hashid
            <div>but my attempts failed:</div>
            <div>got $T_id = 6545e285.3fe4</div>
            <div>Send: {"jsonrpc": "2.0", "method": "t_reply", "id": 1,
              "params": {"code": "487", "reason": "Terminating",
              "trans_id": "16356:1699078789", "to_tag": "<null>"}}</div>
            <div>Got:
              b'{"jsonrpc":"2.0","error":{"code":404,"message":"Transaction
              not found"},"id":1}'<br>
              <br>
            </div>
          </div>
          <br>
          <div class="gmail_quote">
            <div dir="ltr" class="gmail_attr">ср, 12 окт. 2022 г. в
              11:13, Ryzhik Ivan <<a
                href="mailto:ryzhik.ivan@gmail.com" target="_blank"
                moz-do-not-send="true">ryzhik.ivan@gmail.com</a>>:<br>
            </div>
            <blockquote class="gmail_quote" style="margin:0px 0px 0px
              0.8ex;border-left:1px solid
              rgb(204,204,204);padding-left:1ex">
              <div dir="ltr">Thank you, Bogdan.
                <div>I got stuck with tm documentation. </div>
                <div>  1) MI t_reply command has named parameters, ok,
                  no problem. </div>
                <div>  2) trans_id - transaction identifier (has the
                  hash_entry:label format)  - what is this? if i use
                  $T_id i got reply "Invalid trans_id".</div>
                <div>  3) Where can I get to_tag from script level on
                  initial invite?</div>
                <div>      ...</div>
                <div>      t_reply_with_body(183, "Session progress",
                  $(var(body){re.subst,$var(re)}) );<br>
                        avp_db_query("insert into moh (callid, timeout,
                  tid,totag) values ('$ci', $var(wait_time), '$T_id',
                  '??????')"); <br>
                        ...</div>
                <div><br>
                </div>
                <div>Regards, Ivan.</div>
              </div>
              <br>
              <div class="gmail_quote">
                <div dir="ltr" class="gmail_attr">вт, 11 окт. 2022 г. в
                  12:35, Bogdan-Andrei Iancu <<a
                    href="mailto:bogdan@opensips.org" target="_blank"
                    moz-do-not-send="true">bogdan@opensips.org</a>>:<br>
                </div>
                <blockquote class="gmail_quote" style="margin:0px 0px
                  0px 0.8ex;border-left:1px solid
                  rgb(204,204,204);padding-left:1ex">
                  <div> <font face="monospace">Hi Ivan,<br>
                      <br>
                      you can use timer_route, but as there is no way to
                      send a reply for a particular transaction from
                      script level (only to the currently processed
                      request), you will have to trigger the MI cmds
                      from the timer route, which is a bit hackish ....<br>
                      <br>
                      Regards,<br>
                    </font>
                    <pre cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
OpenSIPS Summit 27-30 Sept 2022, Athens
  <a href="https://www.opensips.org/events/Summit-2022Athens/" target="_blank" moz-do-not-send="true">https://www.opensips.org/events/Summit-2022Athens/</a></pre>
                    <div>On 10/11/22 11:47 AM, Ryzhik Ivan wrote:<br>
                    </div>
                    <blockquote type="cite">
                      <div dir="ltr">Hi, Bogdan!
                        <div>What d' you think, can we use timer_route
                          instead of an external script?</div>
                        <div>Regards, Ivan.</div>
                      </div>
                      <br>
                      <div class="gmail_quote">
                        <div dir="ltr" class="gmail_attr">пн, 10 окт.
                          2022 г. в 17:04, Bogdan-Andrei Iancu <<a
                            href="mailto:bogdan@opensips.org"
                            target="_blank" moz-do-not-send="true">bogdan@opensips.org</a>>:<br>
                        </div>
                        <blockquote class="gmail_quote"
                          style="margin:0px 0px 0px
                          0.8ex;border-left:1px solid
                          rgb(204,204,204);padding-left:1ex">
                          <div> <font face="monospace">Hi Ryzhik,<br>
                              <br>
                              Without a t_relay() it makes not much
                              sense to have an dialog structure at all -
                              the dialog module in opensips is actually
                              design for proxied calls, not for UAC
                              calls.<br>
                              <br>
                              IMO, you should keep it a transaction
                              level, by sending replies back only. When
                              getting the INVITE, put its call-id into a
                              DB table (to keep only the "active"
                              session) together with a lifetime /
                              expiration time. When getting a CANCEL,
                              update the table (set lifetime to 0), to
                              know it is terminated. And use an simple
                              external script that keeps scanning the DB
                              for (1) sending 487 Terminated via MI if
                              the record has 0 lifetime or (2) send a
                              408 Timeout via MI if the lifetime
                              exceeded.<br>
                              In a similar way you can handle the BYE -
                              send back 200OK for the BYE and set 0 in
                              lifetime, to send a 487 canceled back <br>
                              <br>
                              Regards,<br>
                            </font>
                            <pre cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a href="https://www.opensips-solutions.com" target="_blank" moz-do-not-send="true">https://www.opensips-solutions.com</a>
OpenSIPS Summit 27-30 Sept 2022, Athens
  <a href="https://www.opensips.org/events/Summit-2022Athens/" target="_blank" moz-do-not-send="true">https://www.opensips.org/events/Summit-2022Athens/</a></pre>
                            <div>On 10/10/22 4:33 PM, Ryzhik Ivan wrote:<br>
                            </div>
                            <blockquote type="cite">
                              <div dir="ltr">Hello!
                                <div>My opensips version is 3.1 with
                                  tm,dialog and rtpengine modules.</div>
                                <div>On incoming INVITE i'm creating an
                                  early dialog with 183 replies and i'm
                                  playing audio to caller with
                                  rtpengine, no t_relay() on this step,
                                  OS is acting as UAS endpoint.<br>
                                  If the caller cancels the invite with
                                  a CANCEL message - all works great.<br>
                                  But some users terminate dialog with
                                  BYE message.<br>
                                  1) on BYE with to-tag OS can't find
                                  dialog with match_dialog(), because
                                  to-tag presents.<br>
                                  2) if i use load_dialog_ctx($ci) -  it
                                  is possible to handle BYE.<br>
                                  3) in early dialog termination with
                                  BYE we also need to send final
                                  response to the INVITE transaction. <br>
                                  <br>
                                  Maybe I did something wrong, but I
                                  can't handle the final response to
                                  INVITE in this case.<br>
                                </div>
                              </div>
                              <br>
                              <fieldset></fieldset>
                              <pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank" moz-do-not-send="true">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank" moz-do-not-send="true">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
                            </blockquote>
                            <br>
                          </div>
                        </blockquote>
                      </div>
                    </blockquote>
                    <br>
                  </div>
                </blockquote>
              </div>
            </blockquote>
          </div>
        </blockquote>
      </div>
    </blockquote>
    <br>
  </body>
</html>