I just loaded the 0.8.12 server on my lab linux 9.x box. Running postgres/2 current registrations, 123456@named.com and 9723937976@named.com. My configuration allows calls between these two no problem. I can hangup from either end with no problem. I am seeing a problem with a CANCEL message. If one end calls the other, and than CANCELs the communication before the other end ACKs, I get several messages CANCEL ACK CANCEL ACK ...
I read the serusers list and see that Maxim and Andrea reported the same problem. I don't see the problem in my production configuration on 0.8.11. What can I do to make the CANCEL work?
Here is my configuration: UA1 XTEN XPRO UA2 Cisco 7960 SER 0.8.12 configuration: -------------start--------------- route{
# initial sanity checks -- messages with # max_forwards==0, or excessively long requests if (!mf_process_maxfwd_header("10")) { sl_send_reply("483","Too Many Hops"); break; }; if (msg:len >= max_len ) { sl_send_reply("513", "Message too big"); break; };
# we record-route all messages -- to make sure that # subsequent messages will go through our proxy; that's # particularly good if upstream and downstream entities # use different transport protocol if (!method=="REGISTER") record_route();
# subsequent messages withing a dialog should take the # path determined by record-routing if (loose_route()) { # mark routing logic in request append_hf("P-hint: rr-enforced\r\n"); xlog("L_WARN", "LOOSE: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); setflag(1); setflag(2); route(1); break; };
if (!uri==myself) { # mark routing logic in request append_hf("P-hint: outbound\r\n"); route(1); break; };
# if the request is for other domain use UsrLoc # (in case, it does not work, use the following command # with proper names and addresses in it) if (uri==myself) {
if (method=="REGISTER") {
if (!www_authorize("named.com", "subscriber")) { www_challenge("named.com", "0"); break; };
save("location"); break; };
lookup("aliases"); if (!uri==myself) { append_hf("P-hint: outbound alias\r\n"); route(1); break; };
if (method=="INVITE") {
if (!www_authorize("named.com", "subscriber")) { www_challenge("named.com", "0"); break; }; xlog("L_WARN", "INVITE: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); # if (lookup("location")) { route(1); break; };
if(uri=~"sip:[0-9]{10}@.*") { xlog("L_WARN", "10DIGIT: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); route(2); break; } xlog("L_WARN", "UNKNOWN: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); sl_send_reply("580", "Sorry"); break; };
if (method=="CANCEL") {
xlog("L_WARN", "CANCEL: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); route(2); break; };
if (method=="BYE") {
xlog("L_WARN", "BYE: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); route(2); break; };
if (method=="ACK") {
xlog("L_WARN", "ACK: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); break; };
sl_send_reply("404", "Not Found"); break; }; xlog("L_WARN", "FAILATBOTTOM: %Ts call-id:%ci cseq:%ci contact:%ct from:%fu fromtag:%ft to:%tu totag:%tt method:%rm ruri:%ru messageid:%mi\n"); break; }
route[1] { # send it out now; use stateful forwarding as it works reliably # even for UDP2TCP if (!t_relay()) { sl_reply_error(); }; }
route[2] { consume_credentials(); rewritehostport("1.2.3.4:5060"); if(!t_relay()) { sl_reply_error(); break; }; }
-------------------- here are the ngrep packets, from invite to duplicate CANCEL packets... # U 2003/11/22 13:10:32.356665 66.228.44.254:5060 -> 66.228.53.218:5060 INVITE sip:9723937976@66.228.53.218:5060 SIP/2.0. Max-Forwards: 10. Record-Route: sip:9723937976@66.228.44.254;ftag=320951244;lr. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com. Contact: sip:123456@66.228.53.216:5060. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Authorization: Digest username="123456",realm="named.com",nonce="3fbfb5d42576afa9e9384c4f0f16427e46909d1d",response="7bf9fe190978d98811d56ddb60dded2f",uri="sip:9723937976@named.com". Content-Type: application/sdp. User-Agent: X-PRO build 1050. Content-Length: 322. . v=0. o=123456 485850365 485850365 IN IP4 66.228.53.216. s=X-PRO. c=IN IP4 66.228.53.216. t=0 0. m=audio 8000 RTP/AVP 0 8 3 4 98 97 101. a=rtpmap:0 pcmu/8000. a=rtpmap:8 pcma/8000. a=rtpmap:3 gsm/8000. a=rtpmap:4 G723/8000. a=rtpmap:98 iLBC/8000. a=rtpmap:97 speex/8000. a=rtpmap:101 telephone-event/8000. a=fmtp:101 0-15.
# U 2003/11/22 13:10:32.619424 66.228.53.218:50560 -> 66.228.44.254:5060 SIP/2.0 100 Trying. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0,SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Server: CSCO/5. Contact: sip:9723937976@66.228.53.218:5060. Record-Route: sip:9723937976@66.228.44.254;ftag=320951244;lr. Content-Length: 0. .
# U 2003/11/22 13:10:32.728062 66.228.53.218:50561 -> 66.228.44.254:5060 SIP/2.0 180 Ringing. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0,SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=000b5faab82400151dddd662-025452b6. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Server: CSCO/5. Contact: sip:9723937976@66.228.53.218:5060. Record-Route: sip:9723937976@66.228.44.254;ftag=320951244;lr. Content-Length: 0. .
# U 2003/11/22 13:10:32.728480 66.228.44.254:5060 -> 66.228.53.216:5060 SIP/2.0 180 Ringing. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=000b5faab82400151dddd662-025452b6. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Server: CSCO/5. Contact: sip:9723937976@66.228.53.218:5060. Record-Route: sip:9723937976@66.228.44.254;ftag=320951244;lr. Content-Length: 0. .
# U 2003/11/22 13:10:34.846506 66.228.53.216:5060 -> 66.228.44.254:5060 CANCEL sip:9723937976@named.com SIP/2.0. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com. Contact: sip:123456@66.228.53.216:5060. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 CANCEL. User-Agent: X-PRO build 1050. Content-Length: 0. .
# U 2003/11/22 13:10:34.847662 66.228.44.254:5060 -> 66.228.53.218:5060 CANCEL sip:9723937976@66.228.53.218:5060 SIP/2.0. Max-Forwards: 10. Record-Route: sip:9723937976@66.228.44.254;ftag=320951244;lr. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com. Contact: sip:123456@66.228.53.216:5060. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 CANCEL. User-Agent: X-PRO build 1050. Content-Length: 0. .
# U 2003/11/22 13:10:34.847761 66.228.44.254:5060 -> 66.228.53.216:5060 SIP/2.0 200 cancelling. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-6763. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 CANCEL. Server: Sip EXpress router (0.8.12 (i386/linux)). Content-Length: 0. Warning: 392 66.228.44.254:5060 "Noisy feedback tells: pid=10695 req_src_ip=66.228.53.216 req_src_port=5060 in_uri=sip:9723937976@named.com out_uri=sip:9723937976@65.77.154.243:5060 via_cnt==1". .
# U 2003/11/22 13:10:34.847806 66.228.44.254:5060 -> 66.228.53.216:5060 SIP/2.0 487 Request cancelled. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-6763. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Server: Sip EXpress router (0.8.12 (i386/linux)). Content-Length: 0. Warning: 392 66.228.44.254:5060 "Noisy feedback tells: pid=10695 req_src_ip=66.228.53.216 req_src_port=5060 in_uri=sip:9723937976@named.com out_uri=sip:9723937976@66.228.53.218:5060 via_cnt==1". .
# U 2003/11/22 13:10:34.875833 66.228.53.216:5060 -> 66.228.44.254:5060 ACK sip:9723937976@named.com SIP/2.0. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-6763. Contact: sip:123456@66.228.53.216:5060. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 ACK. Max-Forwards: 70. Content-Length: 0. .
# U 2003/11/22 13:10:34.906960 66.228.53.218:50562 -> 66.228.44.254:5060 SIP/2.0 200 OK. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0,SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=000b5faab82400151dddd662-025452b6. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 CANCEL. Server: CSCO/5. Content-Length: 0. .
# U 2003/11/22 13:10:34.942865 66.228.53.218:50563 -> 66.228.44.254:5060 SIP/2.0 487 Request Cancelled. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0,SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=000b5faab82400151dddd662-025452b6. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Server: CSCO/5. Contact: sip:9723937976@66.228.53.218:5060. Record-Route: sip:9723937976@66.228.44.254;ftag=320951244;lr. Content-Length: 0. .
# U 2003/11/22 13:10:34.943103 66.228.44.254:5060 -> 66.228.53.218:5060 ACK sip:9723937976@66.228.53.218:5060 SIP/2.0. Via: SIP/2.0/UDP 66.228.44.254;branch=z9hG4bKe198.142630c1.0. From: 123456 sip:123456@named.com;tag=320951244. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. To: sip:9723937976@named.com;tag=000b5faab82400151dddd662-025452b6. CSeq: 19721 ACK. User-Agent: Sip EXpress router(0.8.12 (i386/linux)). Content-Length: 0. .
# U 2003/11/22 13:10:35.649964 66.228.44.254:5060 -> 66.228.53.216:5060 SIP/2.0 487 Request cancelled. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-6763. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 INVITE. Server: Sip EXpress router (0.8.12 (i386/linux)). Content-Length: 0. Warning: 392 66.228.44.254:5060 "Noisy feedback tells: pid=10695 req_src_ip=66.228.53.216 req_src_port=5060 in_uri=sip:9723937976@named.com out_uri=sip:9723937976@66.228.53.218:5060 via_cnt==1". .
# U 2003/11/22 13:10:35.671936 66.228.53.216:5060 -> 66.228.44.254:5060 ACK sip:9723937976@named.com SIP/2.0. Via: SIP/2.0/UDP 66.228.53.216:5060. From: 123456 sip:123456@named.com;tag=320951244. To: sip:9723937976@named.com;tag=a6a1c5f60faecf035a1ae5b6e96e979a-6763. Contact: sip:123456@66.228.53.216:5060. Call-ID: A7A5E0C3-865F-41A1-9CAD-EE1B104D7244@66.228.53.216. CSeq: 19721 ACK. Max-Forwards: 70. Content-Length: 0. .
The 487CANCEL/ACK/CANCEL/ACK/CANCEL/ACK goes on and on until something eventually times out. Anybody have any ideas? The CANCEL works, but the excess chatter isn't wanted.
Thanks, ---greg