Hi Denys,

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.

And as time as you only need TH, dialog + TH is be best way to do it.

Best regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  https://www.opensips-solutions.com
OpenSIPS eBootcamp 2021
  https://opensips.org/training/OpenSIPS_eBootcamp_2021/

On 9/7/21 2:14 PM, Denys Pozniak wrote:
Adding a scheme of the current call-flow scenario maybe it is not completely clear from the previous message:

FreeSWITCH --(1-call)--> Fork Proxy --(N-branches)--> SEMS --(N-calls)--> Edge Proxy ----> N-devices


вт, 7 сент. 2021 г. в 12:57, Denys Pozniak <denys.pozn...@gmail.com <mailto:denys.pozn...@gmail.com>>:

    Hello!

    Our service delivery logic is as follows:
    Each user has an internal extension, under which there are several
    devices with their own identifier.
    With an incoming call to such a subscriber, FreeSWITCH adds custom
    SIP headers with these device identifiers.
    Further on these fields the superior Proxy forks legs and then
    these legs pass through the Sems to become completely separate calls.

    Now there is a task to replace Sems with OpenSIPS.
    The script below works fine, but only if the incoming calls are
    not forked

    /####### Routing Logic ########

    route{

      if (is_method("INVITE") && !has_totag()) {
            b2b_init_request("top hiding");
            exit;
        }
    }

    route[b2b_logic_request] {
            b2b_pass_request();
            exit;
    }/

    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")
    Please help understand the nature of this behavior.

    version: opensips 3.2.2 (x86_64/linux)

    *Incoming SIP INVITE:*
    2021/09/07 11:38:30.737456 192.168.27.84:5060
    <http://192.168.27.84:5060> -> 192.168.27.84:5080
    <http://192.168.27.84:5080>
    INVITE sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp SIP/2.0
    Record-Route:
    
<sip:192.168.27.84;lr=on;ftag=3a8gNpgZQ89pj;did=8b.4a4;vst=AAAAAEcYQ0JfBhUaEEoOFQAAAAAAAAAAAAAJBjY->
    Record-Route: <sip:192.168.27.126;lr=on;did=8b01.a1d4>
    Via: SIP/2.0/UDP
    192.168.27.84;branch=z9hG4bKcc18.ec9a363ccc70d07691e11293d160cca6.1
    Via: SIP/2.0/UDP
    192.168.27.126;branch=z9hG4bKcc18.accd8d8bac35ac66a172f6ce173c9a34.0
    Via: SIP/2.0/UDP
    
192.168.27.123;received=192.168.27.123;rport=5060;branch=z9hG4bKavcjKF58g9D1e
    Max-Forwards: 66
    From: "VOIP" <sip:5009@192.168.27.123
    <mailto:sip%3A5009@192.168.27.123>>;tag=3a8gNpgZQ89pj
    To: <sip:qq2s92mnbrda@192.168.27.84
    <mailto:sip%3Aqq2s92mnbrda@192.168.27.84>>
    Call-ID: 33e8140a-8a62-123a-e1ba-001dd8b71cb2
    CSeq: 40949963 INVITE
    Contact: <sip:mod_sofia@192.168.27.123:5060
    <http://sip:mod_sofia@192.168.27.123:5060>>
    Supported: timer, path, replaces
    Allow-Events: talk, hold, conference, refer
    Privacy: none
    Content-Type: application/sdp
    Content-Disposition: session

    *Outgoing SIP INVITE:*
    2021/09/07 11:38:30.737938 192.168.27.84:5080
    <http://192.168.27.84:5080> -> 192.168.27.126:5060
    <http://192.168.27.126:5060>
    INVITE sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp SIP/2.0
    Via: SIP/2.0/UDP 192.168.27.84:5080;branch=z9hG4bK6ddf.d88b07f2.0
    To: sip:qq2s92mnbrda@192.168.27.126:5060
    <http://sip:qq2s92mnbrda@192.168.27.126:5060>
    From: "VOIP" <sip:5009@192.168.27.123
    <mailto:sip%3A5009@192.168.27.123>>;tag=94fd20254e546fee730f360cf9860800
    CSeq: 40949964 INVITE
    Call-ID: B2B.331.6374211.1631007510
    Max-Forwards: 70
    Content-Length: 486
    User-Agent: OpenSIPS (3.2.2 (x86_64/linux))
    Content-Type: application/sdp
    Supported: timer, path, replaces
    P-Asserted-Identity: " VOIP" <sip:5009@192.168.27.123
    <mailto:sip%3A5009@192.168.27.123>>
    Privacy: none
    Content-Disposition: session
    X-Call-ID: 33e8140a-8a62-123a-e1ba-001dd8b71cb2
    Contact: <sip:5009@192.168.27.84:5080
    <http://sip:5009@192.168.27.84:5080>>

    *Incoming SIP CANCEL:*
    2021/09/07 11:38:33.593381 192.168.27.84:5060
    <http://192.168.27.84:5060> -> 192.168.27.84:5080
    <http://192.168.27.84:5080>
    CANCEL sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp SIP/2.0
    Via: SIP/2.0/UDP
    192.168.27.84;branch=z9hG4bKcc18.ec9a363ccc70d07691e11293d160cca6.1
    Max-Forwards: 66
    From: "VOIP" <sip:5009@192.168.27.123
    <mailto:sip%3A5009@192.168.27.123>>;tag=3a8gNpgZQ89pj
    To: <sip:qq2s92mnbrda@192.168.27.84
    <mailto:sip%3Aqq2s92mnbrda@192.168.27.84>>
    Call-ID: 33e8140a-8a62-123a-e1ba-001dd8b71cb2
    CSeq: 40949963 CANCEL
    Content-Length: 0
    Reason: SIP;cause=200;text="Call completed elsewhere"

    *Outgoing SIP CANCEL by timeout (with 27 sec delay):*
    2021/09/07 11:39:01.100888 192.168.27.84:5080
    <http://192.168.27.84:5080> -> 192.168.27.126:5060
    <http://192.168.27.126:5060>
    CANCEL sip:qq2s92mnbrda@192.168.27.126:5060;transport=udp SIP/2.0
    Via: SIP/2.0/UDP 192.168.27.84:5080;branch=z9hG4bK6ddf.d88b07f2.0
    From: "VOIP" <sip:5009@192.168.27.123
    <mailto:sip%3A5009@192.168.27.123>>;tag=94fd20254e546fee730f360cf9860800
    Call-ID: B2B.331.6374211.1631007510
    To: sip:qq2s92mnbrda@192.168.27.126:5060
    <http://sip:qq2s92mnbrda@192.168.27.126:5060>
    CSeq: 40949964 CANCEL
    Max-Forwards: 70
    Reason: SIP;cause=480;text="NO_ANSWER"
    User-Agent: OpenSIPS (3.2.2 (x86_64/linux))
    Content-Length: 0



--
    BR,
    Denys Pozniak




--

BR,
Denys Pozniak



_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to