<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <tt>Hi,<br>
      <br>
      Why don't you register dialog callback to get notified when the
      call is terminated ? in this case, the dialog module will trigger
      you if a call gets terminated (expired or bye'ed)<br>
      <br>
      Regards,<br>
    </tt>
    <pre class="moz-signature" cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a class="moz-txt-link-freetext" href="http://www.opensips-solutions.com">http://www.opensips-solutions.com</a></pre>
    <div class="moz-cite-prefix">On 15.07.2016 17:58, Daniel Zanutti
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAN0jgiN_q9YcJP4Ptakssxqf_H2XXYezHGp7ZKg_sA6N6-z5JQ@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hi Bogdan
        <div><br>
        </div>
        <div>I developed a billing mecanism to control how long calls
          can last, so I need to keep tracking all calls until they
          hangup. Every X seconds, I check all calls on Opensips and
          hangup some of them if necessary.</div>
        <div><br>
        </div>
        <div>For some reason (maybe a bug), some random calls (1 in a 1M
          or more) still exist in my mecanism after call is hangup, so I
          try to hangup this call using terminate_dlg() and wait until I
          receive a trigger from dialog module, confirming that it is
          finalized. In fact, I never receive the trigger from dialog
          module, because the call no longer exist and I have no way to
          check this.</div>
        <div><br>
        </div>
        <div>I think just changing the terminate_dlg function to return
          any number that identifies this dialog is no longer valid,
          it's OK to me and I can remove this call from my structure. A
          possibility to check if call is UP would be even better.</div>
        <div><br>
        </div>
        <div>What do you think can be done?</div>
        <div><br>
        </div>
        <div>Thanks for responding.</div>
        <div><br>
        </div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Thu, Jul 14, 2016 at 1:18 PM,
          Bogdan-Andrei Iancu <span dir="ltr">&lt;<a
              moz-do-not-send="true" href="mailto:bogdan@opensips.org"
              target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:bogdan@opensips.org">bogdan@opensips.org</a></a>&gt;</span> wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex">
            <div text="#000000" bgcolor="#FFFFFF"> <tt>Hi Daniel,<br>
                <br>
                Indeed, there is none. Why is so important to know if
                the dialog really existed ? you want to know if it was
                terminated by YOU and not by something else prior to
                your terminate_dlg() ?<br>
                <br>
                We may consider returning a different positive code if
                no dialog was found.<br>
                <br>
                Regards,<br>
              </tt>
              <pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a moz-do-not-send="true" href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
              <div>
                <div class="h5">
                  <div>On 13.07.2016 21:21, Daniel Zanutti wrote:<br>
                  </div>
                </div>
              </div>
              <blockquote type="cite">
                <div>
                  <div class="h5">
                    <div dir="ltr">Hi
                      <div><br>
                        <div>Anyone could please help on this? </div>
                        <div><br>
                        </div>
                        <div>Thanks</div>
                        <div><br>
                        </div>
                      </div>
                    </div>
                    <div class="gmail_extra"><br>
                      <div class="gmail_quote">On Mon, Jul 11, 2016 at
                        3:23 PM, Daniel Zanutti <span dir="ltr">&lt;<a
                            moz-do-not-send="true"
                            href="mailto:daniel.zanutti@gmail.com"
                            target="_blank"><a class="moz-txt-link-abbreviated" href="mailto:daniel.zanutti@gmail.com">daniel.zanutti@gmail.com</a></a>&gt;</span>
                        wrote:<br>
                        <blockquote class="gmail_quote" style="margin:0
                          0 0 .8ex;border-left:1px #ccc
                          solid;padding-left:1ex">
                          <div dir="ltr">Hi
                            <div><br>
                            </div>
                            <div>I need to confirm if a call is UP and
                              terminate it from my code. I have
                              previously stored callid, h_entry and h_id
                              on an internal list, so I'm executing at a
                              specific time:</div>
                            <div><br>
                            </div>
                            <div>dlg_api.terminate_dlg(h_entry, h_id);<br>
                            </div>
                            <div><br>
                            </div>
                            <div>If the call is still running, it works
                              nicely and hangup the call. If there is a
                              problem, I get a negative value and solve
                              too. The problem is if the call is not up
                              anymore, I get a return == 0. This is the
                              code of terminate_dlg function:</div>
                            <div>
                              <div><br>
                              </div>
                              <div>
                                <div>struct dlg_cell * dlg = NULL;</div>
                              </div>
                              <div><br>
                              </div>
                              <div>dlg = lookup_dlg(h_entry, h_id);</div>
                              <div><br>
                              </div>
                              <div>        if(!dlg)</div>
                              <div>                return 0;</div>
                            </div>
                            <div><br>
                            </div>
                            <div>This function "lookup_dlg" isn't
                              exported.<br>
                            </div>
                            <div><br>
                            </div>
                            <div>Is there anyway to confirm if the call
                              is still running, if I have these values
                              Callid, h_entry and h_id?</div>
                            <div><br>
                            </div>
                            <div>Thanks!</div>
                            <div><br>
                            </div>
                          </div>
                        </blockquote>
                      </div>
                      <br>
                    </div>
                    <br>
                    <fieldset></fieldset>
                    <br>
                  </div>
                </div>
                <pre>_______________________________________________
Devel mailing list
<a moz-do-not-send="true" href="mailto:Devel@lists.opensips.org" target="_blank">Devel@lists.opensips.org</a>
<a moz-do-not-send="true" href="http://lists.opensips.org/cgi-bin/mailman/listinfo/devel" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/devel</a>
</pre>
              </blockquote>
              <br>
            </div>
          </blockquote>
        </div>
        <br>
      </div>
    </blockquote>
    <br>
  </body>
</html>