<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:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<u></u>

  
    
    
  
  <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 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 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>