<div dir="ltr">Hello!<div><br></div><div>Yes, that's right, the documentation did not indicate that TH should generate different Call-IDs for different incoming branches...<br></div><div><br></div><div>But now there is still an open question about the work of the B2B module. It just generates separate Call-IDs, but does not forward the SIP CANCEL message (I will share the trace in a private message).<br></div><div><br></div><div>Happy upcoming holidays!<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">вт, 21 дек. 2021 г. в 17:28, Bogdan-Andrei Iancu <<a href="mailto:bogdan@opensips.org">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 Denys,<br>
      <br>
      Doing TH with dialog does not provide you with different call-ids
      for each branch. The TH (or changing) is done between in (caller)
      and out (callee) sides. There is no doc stating that each branch
      will get a different Call-ID (I hope :D).<br>
      <br>
      Best regards,<br>
    </font>
    <pre cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a href="https://www.opensips-solutions.com" target="_blank">https://www.opensips-solutions.com</a>
OpenSIPS eBootcamp 2021 
  <a href="https://opensips.org/training/OpenSIPS_eBootcamp_2021/" target="_blank">https://opensips.org/training/OpenSIPS_eBootcamp_2021/</a></pre>
    <div>On 12/14/21 2:13 PM, Denys Pozniak
      wrote:<br>
    </div>
    <blockquote type="cite">
      
      <div dir="ltr">Hello!
        <div><br>
        </div>
        <div>Bogdan,</div>
        <div>I tested the combination of dialog + TH modules and found
          out that this also does not work correctly if the incoming
          call was forked.</div>
        <div>Outgoing legs have the same Call-ID and tag, although I
          would expect them to be different.<br>
        </div>
        <div><br>
        </div>
        <div>The configuration is exactly the same as in the
          Documentation/Tutorials-Topology-Hiding</div>
        <div>[root@f-proxy opensips]$ opensips -V<br>
          version: opensips 3.2.3 (x86_64/linux)<br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div>ср, 6 окт. 2021 г. в 12:18, Bogdan-Andrei Iancu <<a href="mailto:bogdan@opensips.org" target="_blank">bogdan@opensips.org</a>>:<br>
        </div>
        <div class="gmail_quote">
          <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 Denys,<br>
                <br>
                Before diving into the B2B dark corners, I would
                strongly suggest to use OpenSIPS with dialog + topology
                hiding modules, rather than B2B. The B2B is not so
                friendly with parallel forking.<br>
                <br>
                And as time as you only need TH, dialog + TH is be best
                way to do it.<br>
                <br>
                Best regards,<br>
              </font>
              <pre cols="72">Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  <a href="https://www.opensips-solutions.com" target="_blank">https://www.opensips-solutions.com</a>
OpenSIPS eBootcamp 2021 
  <a href="https://opensips.org/training/OpenSIPS_eBootcamp_2021/" target="_blank">https://opensips.org/training/OpenSIPS_eBootcamp_2021/</a></pre>
              <div>On 9/7/21 2:14 PM, Denys Pozniak wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">Adding a scheme of the current call-flow
                  scenario maybe it is not completely clear from the
                  previous message:
                  <div><br>
                  </div>
                  <div>FreeSWITCH --(1-call)--> Fork Proxy
                    --(N-branches)--> SEMS --(N-calls)--> Edge
                    Proxy ----> N-devices<br>
                    <div><br>
                    </div>
                  </div>
                </div>
                <br>
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">вт, 7 сент. 2021 г.
                    в 12:57, Denys Pozniak <<a href="mailto:denys.pozniak@gmail.com" target="_blank">denys.pozniak@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">Hello!
                      <div><br>
                      </div>
                      <div>Our service delivery logic is as follows:<br>
                        Each user has an internal extension, under which
                        there are several devices with their own
                        identifier.<br>
                        With an incoming call to such a subscriber,
                        FreeSWITCH adds custom SIP headers with these
                        device identifiers.<br>
                        Further on these fields the superior Proxy forks
                        legs and then these legs pass through the Sems
                        to become completely separate calls.<br>
                        <br>
                        Now there is a task to replace Sems with
                        OpenSIPS.<br>
                      </div>
                      <div>The script below works fine, but only if the
                        incoming calls are not forked<br>
                      </div>
                      <div><br>
                      </div>
                      <div><i>####### Routing Logic ########<br>
                          <br>
                          route{<br>
                          <br>
                            if (is_method("INVITE") &&
                          !has_totag()) {<br>
                                  b2b_init_request("top hiding");<br>
                                  exit;<br>
                              }<br>
                          }<br>
                          <br>
                          route[b2b_logic_request] {<br>
                                  b2b_pass_request();<br>
                                  exit;<br>
                          }</i><br>
                        <br>
                        <div>If there is a fork with an answer on some
                          device, then OpenSIPS does not forward the SIP
                          CANCEL (Reason: SIP;cause=200;text="Call
                          completed elsewhere") to the rest and these
                          devices keep ringing until timeout (Reason:
                          SIP;cause=480;text="NO_ANSWER")<br>
                        </div>
                        <div>Please help understand the nature of this
                          behavior.<br>
                        </div>
                        <div><br>
                        </div>
                        <div>version: opensips 3.2.2 (x86_64/linux)<br>
                        </div>
                        <div><br>
                        </div>
                        <div><b>Incoming SIP INVITE:</b><br>
                          2021/09/07 11:38:30.737456 <a href="http://192.168.27.84:5060" target="_blank">192.168.27.84:5060</a>
                          -> <a href="http://192.168.27.84:5080" target="_blank">192.168.27.84:5080</a><br>
                          INVITE <a>sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp</a>
                          SIP/2.0<br>
                          Record-Route:
                          <a><sip:192.168.27.84;lr=on;ftag=3a8gNpgZQ89pj;did=8b.4a4;vst=AAAAAEcYQ0JfBhUaEEoOFQAAAAAAAAAAAAAJBjY-></a><br>
                          Record-Route: <a><sip:192.168.27.126;lr=on;did=8b01.a1d4></a><br>
                          Via: SIP/2.0/UDP
                          192.168.27.84;branch=z9hG4bKcc18.ec9a363ccc70d07691e11293d160cca6.1<br>
                          Via: SIP/2.0/UDP
                          192.168.27.126;branch=z9hG4bKcc18.accd8d8bac35ac66a172f6ce173c9a34.0<br>
                          Via: SIP/2.0/UDP
192.168.27.123;received=192.168.27.123;rport=5060;branch=z9hG4bKavcjKF58g9D1e<br>
                          Max-Forwards: 66<br>
                          From: "VOIP" <<a href="mailto:sip%3A5009@192.168.27.123" target="_blank">sip:5009@192.168.27.123</a>>;tag=3a8gNpgZQ89pj<br>
                          To: <<a href="mailto:sip%3Aqq2s92mnbrda@192.168.27.84" target="_blank">sip:qq2s92mnbrda@192.168.27.84</a>><br>
                          Call-ID: 33e8140a-8a62-123a-e1ba-001dd8b71cb2<br>
                          CSeq: 40949963 INVITE<br>
                          Contact: <<a href="http://sip:mod_sofia@192.168.27.123:5060" target="_blank">sip:mod_sofia@192.168.27.123:5060</a>><br>
                          Supported: timer, path, replaces<br>
                          Allow-Events: talk, hold, conference, refer<br>
                          Privacy: none<br>
                          Content-Type: application/sdp<br>
                          Content-Disposition: session<br>
                          <br>
                          <b>Outgoing SIP INVITE:</b><br>
                          2021/09/07 11:38:30.737938 <a href="http://192.168.27.84:5080" target="_blank">192.168.27.84:5080</a>
                          -> <a href="http://192.168.27.126:5060" target="_blank">192.168.27.126:5060</a><br>
                          INVITE <a>sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp</a>
                          SIP/2.0<br>
                          Via: SIP/2.0/UDP
                          192.168.27.84:5080;branch=z9hG4bK6ddf.d88b07f2.0<br>
                          To: <a href="http://sip:qq2s92mnbrda@192.168.27.126:5060" target="_blank">sip:qq2s92mnbrda@192.168.27.126:5060</a><br>
                          From: "VOIP" <<a href="mailto:sip%3A5009@192.168.27.123" target="_blank">sip:5009@192.168.27.123</a>>;tag=94fd20254e546fee730f360cf9860800<br>
                          CSeq: 40949964 INVITE<br>
                          Call-ID: B2B.331.6374211.1631007510<br>
                          Max-Forwards: 70<br>
                          Content-Length: 486<br>
                          User-Agent: OpenSIPS (3.2.2 (x86_64/linux))<br>
                          Content-Type: application/sdp<br>
                          Supported: timer, path, replaces<br>
                          P-Asserted-Identity: " VOIP" <<a href="mailto:sip%3A5009@192.168.27.123" target="_blank">sip:5009@192.168.27.123</a>><br>
                          Privacy: none<br>
                          Content-Disposition: session<br>
                          X-Call-ID:
                          33e8140a-8a62-123a-e1ba-001dd8b71cb2<br>
                          Contact: <<a href="http://sip:5009@192.168.27.84:5080" target="_blank">sip:5009@192.168.27.84:5080</a>><br>
                          <br>
                          <b>Incoming SIP CANCEL:</b><br>
                          2021/09/07 11:38:33.593381 <a href="http://192.168.27.84:5060" target="_blank">192.168.27.84:5060</a>
                          -> <a href="http://192.168.27.84:5080" target="_blank">192.168.27.84:5080</a><br>
                          CANCEL <a>sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp</a>
                          SIP/2.0<br>
                          Via: SIP/2.0/UDP
                          192.168.27.84;branch=z9hG4bKcc18.ec9a363ccc70d07691e11293d160cca6.1<br>
                          Max-Forwards: 66<br>
                          From: "VOIP" <<a href="mailto:sip%3A5009@192.168.27.123" target="_blank">sip:5009@192.168.27.123</a>>;tag=3a8gNpgZQ89pj<br>
                          To: <<a href="mailto:sip%3Aqq2s92mnbrda@192.168.27.84" target="_blank">sip:qq2s92mnbrda@192.168.27.84</a>><br>
                          Call-ID: 33e8140a-8a62-123a-e1ba-001dd8b71cb2<br>
                          CSeq: 40949963 CANCEL<br>
                          Content-Length: 0<br>
                          Reason: SIP;cause=200;text="Call completed
                          elsewhere"<br>
                          <br>
                          <b>Outgoing SIP CANCEL by timeout (with 27 sec
                            delay):</b><br>
                          2021/09/07 11:39:01.100888 <a href="http://192.168.27.84:5080" target="_blank">192.168.27.84:5080</a>
                          -> <a href="http://192.168.27.126:5060" target="_blank">192.168.27.126:5060</a><br>
                          CANCEL <a>sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp</a>
                          SIP/2.0<br>
                          Via: SIP/2.0/UDP
                          192.168.27.84:5080;branch=z9hG4bK6ddf.d88b07f2.0<br>
                          From: "VOIP" <<a href="mailto:sip%3A5009@192.168.27.123" target="_blank">sip:5009@192.168.27.123</a>>;tag=94fd20254e546fee730f360cf9860800<br>
                          Call-ID: B2B.331.6374211.1631007510<br>
                          To: <a href="http://sip:qq2s92mnbrda@192.168.27.126:5060" target="_blank">sip:qq2s92mnbrda@192.168.27.126:5060</a><br>
                          CSeq: 40949964 CANCEL<br>
                          Max-Forwards: 70<br>
                          Reason: SIP;cause=480;text="NO_ANSWER"<br>
                          User-Agent: OpenSIPS (3.2.2 (x86_64/linux))<br>
                          Content-Length: 0<br>
                        </div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                        -- <br>
                        <div dir="ltr">
                          <div dir="ltr"><br>
                            <div>
                              <div>BR,</div>
                              <div>Denys Pozniak<br>
                              </div>
                              <div><br>
                              </div>
                              <div><br>
                              </div>
                            </div>
                          </div>
                        </div>
                      </div>
                    </div>
                  </blockquote>
                </div>
                <br clear="all">
                <div><br>
                </div>
                -- <br>
                <div dir="ltr">
                  <div dir="ltr"><br>
                    <div>
                      <div>BR,</div>
                      <div>Denys Pozniak<br>
                      </div>
                      <div><br>
                      </div>
                      <div><br>
                      </div>
                    </div>
                  </div>
                </div>
                <br>
                <fieldset></fieldset>
                <pre>_______________________________________________
Users mailing list
<a href="mailto:Users@lists.opensips.org" target="_blank">Users@lists.opensips.org</a>
<a href="http://lists.opensips.org/cgi-bin/mailman/listinfo/users" target="_blank">http://lists.opensips.org/cgi-bin/mailman/listinfo/users</a>
</pre>
              </blockquote>
              <br>
            </div>
          </blockquote>
        </div>
      </div>
      <br clear="all">
      <div><br>
      </div>
      -- <br>
      <div dir="ltr">
        <div dir="ltr"><br>
          <div>
            <div>BR,</div>
            <div>Denys Pozniak<br>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
          </div>
        </div>
      </div>
    </blockquote>
    <br>
  </div>

</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><br><div><div>BR,</div><div>Denys Pozniak<br></div><div><br></div><div><br></div></div></div></div>