Hi, Denys!

I've just pushed a fix[1] in the master branch - can you please give it a try and let me know if this fixes your setup, so I can backport it down to 3.1?

[1] https://github.com/OpenSIPS/opensips/commit/81e9b14a16acd284469d8958c57dcece69699a85

Best regards,

Răzvan Crainea
OpenSIPS Core Developer
http://www.opensips-solutions.com

On 1/9/23 10:03, Denys Pozniak wrote:
Hello!

Sorry to bring the topic up, but so far I have no idea what the problem is. Or do I need to open an issue on github?

вт, 3 янв. 2023 г. в 13:58, Denys Pozniak <denys.pozn...@gmail.com <mailto:denys.pozn...@gmail.com>>:

    Hello!

    I'm trying to build a classic anycast cluster topology with two
    OpenSIPS nodes, in which requests are processed by one proxy and
    responses by another.
    The client and server are emulated via baresip.
    But I ran into a problem in that the replicated responses have an
    extra 00 in the tail of the reply (the original reply from baresip
    UAS does not have it).

    ngrep -x:
    #
    U 192.168.100.100:5060 <http://192.168.100.100:5060> ->
    192.168.56.103:37279 <http://192.168.56.103:37279> #5
       53 49 50 2f 32 2e 30 20    31 38 30 20 52 69 6e 67    SIP/2.0 180
    Ring
  69 6e 67 0d 0a 52 65 63    6f 72 64 2d 52 6f 75 74  ing..Record-Rout
       65 3a 20 3c 73 69 70 3a    31 39 32 2e 31 36 38 2e    e:
    <sip:192.168.
  31 30 30 2e 31 30 30 3b    6c 72 3e 0d 0a 56 69 61  100.100;lr>..Via
       3a 20 53 49 50 2f 32 2e    30 2f 55 44 50 20 31 39    :
    SIP/2.0/UDP 19
       32 2e 31 36 38 2e 35 36    2e 31 30 33 3a 33 37 32
    2.168.56.103:372 <http://2.168.56.103:372>
  37 39 3b 72 65 63 65 69    76 65 64 3d 31 39 32 2e  79;received=192.   31 36 38 2e 35 36 2e 31    30 33 3b 62 72 61 6e 63  168.56.103;branc   68 3d 7a 39 68 47 34 62    4b 62 65 63 38 65 38 66  h=z9hG4bKbec8e8f   30 32 36 62 65 39 31 34    61 3b 72 70 6f 72 74 3d  026be914a;rport=
       33 37 32 37 39 0d 0a 54    6f 3a 20 3c 73 69 70 3a    37279..To:
    <sip:
       31 30 30 40 31 39 32 2e    31 36 38 2e 31 30 30 2e
    100@192.168.100. <mailto:100@192.168.100.>
  31 30 30 3b 74 72 61 6e    73 70 6f 72 74 3d 75 64  100;transport=ud   70 3e 3b 74 61 67 3d 32    37 65 33 63 32 31 38 65  p>;tag=27e3c218e   30 65 61 31 32 30 64 0d    0a 46 72 6f 6d 3a 20 3c  0ea120d..From: <   73 69 70 3a 32 30 30 40    31 39 32 2e 31 36 38 2e  sip:200@192.168.   31 30 30 2e 31 30 30 3a    35 30 36 30 3e 3b 74 61  100.100:5060>;ta   67 3d 35 36 38 35 66 33    38 39 61 39 37 66 65 31  g=5685f389a97fe1   30 32 0d 0a 43 61 6c 6c    2d 49 44 3a 20 31 32 34  02..Call-ID: 124   39 37 61 63 37 36 65 38    30 34 66 35 36 0d 0a 43  97ac76e804f56..C
       53 65 71 3a 20 36 33 37    30 37 20 49 4e 56 49 54    Seq: 63707
    INVIT
       45 0d 0a 53 65 72 76 65    72 3a 20 62 61 72 65 73    E..Server:
    bares
       69 70 20 76 32 2e 31 30    2e 30 20 28 78 38 36 5f    ip v2.10.0
    (x86_
  36 34 2f 4c 69 6e 75 78    29 0d 0a 43 6f 6e 74 61  64/Linux)..Conta
       63 74 3a 20 3c 73 69 70    3a 31 30 30 2d 30 78 63    ct:
    <sip:100-0xc
  62 63 31 39 30 40 31 39    32 2e 31 36 38 2e 35 36  bc190@192.168.56   2e 31 30 36 3a 35 30 38    30 3e 0d 0a 41 6c 6c 6f  .106:5080>..Allo
       77 3a 20 49 4e 56 49 54    45 2c 41 43 4b 2c 42 59    w:
    INVITE,ACK,BY
  45 2c 43 41 4e 43 45 4c    2c 4f 50 54 49 4f 4e 53  E,CANCEL,OPTIONS   2c 4e 4f 54 49 46 59 2c    53 55 42 53 43 52 49 42  ,NOTIFY,SUBSCRIB   45 2c 49 4e 46 4f 2c 4d    45 53 53 41 47 45 2c 55  E,INFO,MESSAGE,U   50 44 41 54 45 2c 52 45    46 45 52 0d 0a 43 6f 6e  PDATE,REFER..Con   74 65 6e 74 2d 4c 65 6e    67 74 68 3a 20 30 0d 0a  tent-Length: 0..
       0d 0a 00                                              ...
    #

    So it throws a Baresip error:
    call: SIP Progress: 100 Trying-2 (/)
    call: SIP Progress: 100 Giving it a try (/)
    call: SIP Progress: 180 Ringing (/)
    call: could not decode SDP answer: Bad message [74]

    192.168.56.103 - baresip UAC
    192.168.56.106 - baresip UAS
    192.168.100.100 - anycast OpenSIPS

    opensips.cfg (node2):
    ...
    socket = udp:192.168.100.100 anycast
    socket= bin:192.168.56.105:5566 <http://192.168.56.105:5566>
    ...
    modparam ("tm", "tm_replication_cluster", 1)
    modparam("clusterer", "db_mode", 0)
    modparam("clusterer", "my_node_id", 2)
    modparam("clusterer", "my_node_info", "cluster_id=1,
    url=bin:192.168.56.105:5566 <http://192.168.56.105:5566>")
    modparam("clusterer", "neighbor_node_info",
    "cluster_id=1,node_id=1,url=bin:192.168.56.104:5566
    <http://192.168.56.104:5566>")
    modparam("clusterer", "sharing_tag", "vip1/2=active")
    ...
    ####### Routing Logic ########

    route{

             if ( !mf_process_maxfwd_header(10) ) {
                     send_reply(483,"Too Many Hops");
                     exit;
             }

             sl_send_reply(100, "Trying-2");

             if (has_totag()) {

                     if ( !loose_route() && !t_check_trans() ) {
                             if ( is_method("ACK") ) {
                                     t_anycast_replicate();
                                     exit;
                             }
                     }

                     t_relay();
                     exit;
             }

             if (is_method("CANCEL")) {
                     if (t_check_trans()) {
                             t_relay();

                     } else {
                             t_anycast_replicate();
                     }

                     exit;
             }

             t_check_trans();

             if (!is_method("REGISTER|MESSAGE")) {
                     record_route();
             }

             if ( is_method("INVITE") && $si!="5080" ) {
                     $du = "sip:192.168.56.106:5080
    <http://192.168.56.106:5080>";
             }

             t_relay();
             exit;

    }

    [root@localhost opensips]# opensips -V
    version: opensips 3.3.2 (x86_64/linux)
    flags: STATS: On, DISABLE_NAGLE, USE_MCAST, SHM_MMAP, PKG_MALLOC,
    Q_MALLOC, F_MALLOC, HP_MALLOC, DBG_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
    ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN
    16, MAX_URI_SIZE 1024, BUF_SIZE 65535
    poll method support: poll, epoll, sigio_rt, select.
    main.c compiled on 16:12:02 Oct 19 2022 with gcc 4.8.5


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