<div dir="ltr">Bogdan,<div><br></div><div>In the &#39;vars&#39; column of the dbtext file I have values that look appropriate for the replacements.  vsf, vst, etc.  I don&#39;t see a &#39;values&#39; column.</div><div><br>
</div><div><br></div><div>- Jeff</div><div><br></div><div class="gmail_extra"><div><div dir="ltr"><div><br></div></div></div>
<br><br><div class="gmail_quote">On Thu, Oct 24, 2013 at 12:50 PM, Bogdan-Andrei Iancu <span dir="ltr">&lt;<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u>

  
    
  
  <div text="#000000" bgcolor="#ffffff">
    <tt>Hi Jeff,<br>
      <br>
      It should be restart-safe - the UAC module stores info into the
      dialog - when doing the restart, do you see in the DB any data in
      the values field for your dialog ?<br>
      <br>
      Best regards,<br>
    </tt><div class="im">
    <pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
    <br></div><div><div class="h5">
    On 10/24/2013 03:24 PM, Jeff Pyle wrote:
    <blockquote type="cite">
      <div dir="ltr">Hi Bogdan,
        <div><br>
        </div>
        <div>I believe it&#39;s dialog-based.  I call topology_hiding()
          early on the initial INVITE.  The replace functions happen on
          the branch_routes, very late in the processing.  The
          topology_hiding() function establishes the dialog, no?</div>
        <div><br>
        </div>
        <div>Should the dialog-based version be restart-safe also?</div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>- Jeff</div>
        <div class="gmail_extra">
          <div>
            <div dir="ltr">
              <div>
                <br>
              </div>
            </div>
          </div>
          <br>
          <br>
          <div class="gmail_quote">On Thu, Oct 24, 2013 at 4:08 AM,
            Bogdan-Andrei Iancu <span dir="ltr">&lt;<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>&gt;</span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
              <div text="#000000" bgcolor="#ffffff"> <tt>Hi Jeff,<br>
                  <br>
                  The TO and FROM replacements can be signalling based
                  (storing a cookie in RR hdr) or dialog based (storing
                  the values in the dialog). Which one is used depends
                  on the order of your ops - if you create the dialog
                  before the replacements, then the dialog support will
                  be used. How is it in your case ?<br>
                  <br>
                  The signaling based replacement is not affected by
                  restarts (as values are stored in RR/R hdr) - of
                  course, as time as sequential requests hit the
                  loose_route() stuff.<br>
                  <br>
                  Regards,<br>
                </tt>
                <div>
                  <pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
                  <br>
                </div>
                <div>
                  <div> On 10/24/2013 05:48 AM, Jeff Pyle
                    wrote:
                    <blockquote type="cite">
                      <div dir="ltr">Bogdan,
                        <div><br>
                        </div>
                        <div>Next problem... URI replacements don&#39;t
                          carry through to in-dialog transactions if
                          there is an Opensips restart during the
                          dialog.</div>
                        <div><br>
                        </div>
                        <div>I use uac_replace_to() and
                          uac_replace_from() in branch_routes in my
                          script.  On a call with no restart between the
                          INVITE and BYE transactions, all is well --
                          those functions make their replacements on the
                          initial INVITE, and those replacements carry
                          through to future in-dialog transactions (like
                          a BYE).  If I restart Opensips between the
                          INVITE and the BYE, the BYE doesn&#39;t receive
                          the replacements.</div>
                        <div><br>
                        </div>
                        <div>In my particular case this causes upstream
                          uac:replace_uri errors in an Opensips 1.6
                          system since the local and remote URIs for the
                          dialog have changed.</div>
                        <div><br>
                        </div>
                        <div>Let me know if you need any particular
                          debugs or traffic captures.</div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                        <div>- Jeff</div>
                        <div><br>
                        </div>
                        <div class="gmail_extra"> <br>
                          <br>
                          <div class="gmail_quote">On Wed, Oct 23, 2013
                            at 11:30 AM, Bogdan-Andrei Iancu <span dir="ltr">&lt;<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>&gt;</span>
                            wrote:<br>
                            <blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
                              <div text="#000000" bgcolor="#ffffff"> <tt>Hi
                                  Jeff,<br>
                                  <br>
                                  Thanks for your input and help - I
                                  found and fixed the bug - the fix was
                                  tested and uploaded on GIT.<br>
                                  Please put back the dialog table spec
                                  from the sources (with &quot;long&quot;
                                  definition to the dlg_id column) and
                                  give it a fresh start.<br>
                                  <br>
                                  Regards,<br>
                                </tt>
                                <pre cols="72">Bogdan-Andrei Iancu
OpenSIPS Founder and Developer
<a href="http://www.opensips-solutions.com" target="_blank">http://www.opensips-solutions.com</a></pre>
                                <div>
                                  <div> <br>
                                    On 10/22/2013 10:25 PM, Jeff Pyle
                                    wrote:
                                    <blockquote type="cite">
                                      <div dir="ltr">I think I&#39;ve found
                                        part of it.  On line 536 of
                                        modules/db_text/dbt_file.c it
                                        reads &#39;bigint&#39;.  &#39;bigint&#39; is
                                        read as a blob; it seems &#39;long&#39;
                                        is the correct word to read the
                                        &#39;l&#39; for DB_BIGINT (line 198).
                                        <div> <br>
                                        </div>
                                        <div>Making that change helps,
                                          but now there is a new
                                          problem:</div>
                                        <div><br>
                                        </div>
                                        <blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">
                                          <div>
                                            <div>ERROR:dialog:load_dialog_info_from_db:

                                              inconsistent hash data in
                                              the dialog database: you
                                              may have restarted
                                              opensips using a different
                                              hash_size: please erase
                                              dialog database and
                                              restart</div>
                                          </div>
                                          <div>
                                            <div>db : 869, dlg :
                                              1919252015</div>
                                          </div>
                                        </blockquote>
                                        <div><br>
                                        </div>
                                        <div class="gmail_extra">
                                          <div>
                                            <div dir="ltr">
                                              <div>Obviously 869
                                                != 1919252015, but I
                                                haven&#39;t found where
                                                those numbers come from.
                                                 And the hash_size
                                                hasn&#39;t actually changed.
                                                 Line 565 of
                                                modules/dialog/dbt_db_handler.c
                                                is the complainer.<br>
                                                <br>
                                              </div>
                                            </div>
                                          </div>
                                          Perhaps another misbehaving
                                          column type in the db_text
                                          table?</div>
                                        <div class="gmail_extra"><br>
                                        </div>
                                        <div class="gmail_extra"><br>
                                        </div>
                                        <div class="gmail_extra">- Jeff</div>
                                        <div class="gmail_extra"><br>
                                        </div>
                                        <div class="gmail_extra"> <br>
                                          <br>
                                          <div class="gmail_quote">On
                                            Tue, Oct 22, 2013 at 11:24
                                            AM, Jeff Pyle <span dir="ltr">&lt;<a href="mailto:jpyle@fidelityvoice.com" target="_blank">jpyle@fidelityvoice.com</a>&gt;</span>
                                            wrote:<br>
                                            <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">Bogdan and
                                                team,
                                                <div><br>
                                                </div>
                                                <div>This is on a 1.9
                                                  build from October 17,
                                                  plus the recently
                                                  committed change to
                                                  the dialog table
                                                  schema in dbtext.</div>
                                                <div><br>
                                                </div>
                                                <div>Here&#39;s the
                                                  scenario...  After a
                                                  fresh Opensips start,
                                                  I place a call through
                                                  it.  A dialog is
                                                  established.  I stop
                                                  Opensips after about
                                                  five seconds and
                                                  verify the contents of
                                                  the dialog table file:<br>
                                                </div>
                                                <div><br>
                                                </div>
                                                <blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">
                                                  <div>
                                                    <div>dlg_id(bigint)
                                                      callid(string)
                                                      from_uri(string)
                                                      from_tag(string)
                                                      to_uri(string)
                                                      to_tag(string)
                                                      mangled_from_uri(string,null)
                                                      mangled_to_uri(string,null)

                                                      caller_cseq(string)

                                                      callee_cseq(string)

                                                      caller_ping_cseq(int)

                                                      callee_ping_cseq(int)

                                                      caller_route_set(string,null)

                                                      callee_route_set(string,null)

                                                      caller_contact(string)

                                                      callee_contact(string)

                                                      caller_sock(string)

                                                      callee_sock(string)
                                                      state(int)
                                                      start_time(int)
                                                      timeout(int)
                                                      vars(string,null)
                                                      profiles(string,null)

                                                      script_flags(int)
                                                      flags(int)</div>
                                                  </div>
                                                  <div>
                                                    <div>8672076440446:662bbb7a-8f52-4c26-adaa-6f2f5f870751:.....remaining


                                                      fields for dialog
                                                      record.....</div>
                                                  </div>
                                                </blockquote>
                                                <div><br>
                                                </div>
                                                <div>I again start
                                                  Opensips.  I see this
                                                  in the log (debug=3):</div>
                                                <div> <br>
                                                </div>
                                                <blockquote style="margin:0px 0px 0px 40px;border:medium none;padding:0px">
                                                  <div>ERROR:dialog:load_dialog_info_from_db:

                                                    column dlg_id cannot
                                                    be null/has wrong
                                                    type 6 -&gt;
                                                    skipping</div>
                                                </blockquote>
                                                <div><br>
                                                </div>
                                                <div> One interesting
                                                  note, when Opensips
                                                  starts the dlg_id
                                                  column is defined with
                                                  &#39;long&#39;.  After
                                                  Opensips exits, it has
                                                  &#39;bigint&#39; type.  I
                                                  don&#39;t know if that&#39;s
                                                  relevant.</div>
                                                <span><font color="#888888">
                                                    <div><br>
                                                    </div>
                                                    <div><br>
                                                    </div>
                                                    <div>- Jeff</div>
                                                    <div><br>
                                                    </div>
                                                    <div><br>
                                                    </div>
                                                    <div><br>
                                                    </div>
                                                  </font></span></div>
                                            </blockquote>
                                          </div>
                                          <br>
                                        </div>
                                      </div>
                                    </blockquote>
                                  </div>
                                </div>
                              </div>
                            </blockquote>
                          </div>
                          <br>
                        </div>
                      </div>
                    </blockquote>
                  </div>
                </div>
              </div>
            </blockquote>
          </div>
          <br>
        </div>
      </div>
    </blockquote>
  </div></div></div>

</blockquote></div><br></div></div>