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 -> 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 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. 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 ... 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") modparam("clusterer", "neighbor_node_info", "cluster_id=1,node_id=1,url=bin: 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"; } 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
extra_00.pcap
Description: Binary data
_______________________________________________ Users mailing list Users@lists.opensips.org http://lists.opensips.org/cgi-bin/mailman/listinfo/users