Hi Jason,

For changing the FROM hdr (at INVITE time), better use the uac_replace_from() function [1] - by doing this, the TM will become aware of the change and reflect it into CANCEL too.


[1] https://opensips.org/html/docs/modules/3.4.x/uac.html#func_uac_replace_from

Regards,

Bogdan-Andrei Iancu

OpenSIPS Founder and Developer
  https://www.opensips-solutions.com
  https://www.siphub.com

On 24.12.2023 13:33, nz deals wrote:
Hi Bogdan,
Agreed that the RFC3261 CANCEL is truly built using INVITE. In my case, somehow CANCEL is not the same as the initial INVITE. Due to the complexity of my case I have hard times to fix the issue. Let me explain a bit. On the INVITE i change the From Header, which i can see has also been changed during Authorization. If i CANCEL then the From header is different (it's the same as i have before making my change).

I am also using topology_hiding().


under the main route i change the From header for INVITE

        set_advertised_address("104.13.xx.xx "); # same as i have used in the advertised_address
        # this is my cancel processing
        if (is_method("CANCEL")) {
                if (t_check_trans())
                        t_relay(8);
                exit;
        }
        if (has_totag()) {
            if(topology_hiding_match())  {
                                   # remove and add a custom one
                                   remove_hf("From");
                                   append_hf("From: \"$fU\"<sip:$fU@$td;custom=$var(custom)>;tag=$ft\r\n");
 force_send_socket("tls:192.xx.xx.xx:5061");
             }
        }
My opensips version is 3.4.2
My listening socket is socket=tls:ens192:5061 tag ens192  (its the same 192.xx.xx.xx IP that you see in the force_send_socket)
I am also using public ip as follows
advertised_address=104.13.xx.xx
alias=104.13.xx.xx

Regards,
Jason

On Thu, 21 Dec 2023 at 02:31, Bogdan-Andrei Iancu <bog...@opensips.org> wrote:

    Hi Jason,

    In transactional stateful SIP, the CANCEL requests are hop by hop
    - each hop in the path is generating its own CANCEL requests to
    the next hop, which consumes it; there is no actual relaying of
    the CANCELs. So, the replacing (which works in relaying mode only)
    doesn't fit here.

    Even more, the RFC3261 gives a rigorous way for building the
    CANCEL requests, they are to be built 100% based on the INVITE
    request only (nothing more). OpenSIPS internally builds the CANCEL
    in accordance to the corresponding INVITE, so you should not need
    any such changes.

    May you detail why you think you need this FROM replacement?

    Regards,

    Bogdan-Andrei Iancu

    OpenSIPS Founder and Developer
       https://www.opensips-solutions.com
       https://www.siphub.com

    On 20.12.2023 12:38, nz deals wrote:
    Hi,
    I've been attempting to modify the From header in the CANCEL, but
    it seems the changes aren't taking effect. I've also experimented
    with remove_hf and append_hf, but unfortunately, these methods
    didn't work either. Could someone kindly offer suggestions if I
    might be overlooking something?

    This is in the main request route

            if (is_method("CANCEL")) {
                    uac_replace_from("","sip:t...@test.com
    <mailto:sip%3at...@test.com>");
                    if (t_check_trans())
                            t_relay(8);
                    exit;
            }



    Regards,
    Jason

    _______________________________________________
    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