looks like the LCS doesn't find a matching entry in its "routing table".
regards,
klaus
Mimmus wrote:
Hi,
I'm setting up SER to act as a proxy between Asterisk and Microsoft LCS
(to enable TCP2UDP translation needed to speak with Microsoft LCS).
I'd like to keep configuration the simplest as possible.
Unfortunately, LCS refuses INVITE with a:
<504: Server Timeout>
as you can see in following output from 'ngrep' (some security
sanityzing performed):
#######
T xxx.yyy.64.118:32834 -> 10.99.1.9:5060 [AP]
INVITE sip:myuser@mydomain.it SIP/2.0.
Max-Forwards: 10.
Record-Route:
<sip:myuser@xxx.yyy.64.118;transport=tcp;r2=on;ftag=as12c76469;l
r=on>.
Record-Route: <sip:myuser@xxx.yyy.64.118;r2=on;ftag=as12c76469;lr=on>.
Via: SIP/2.0/TCP xxx.yyy.64.118;branch=z9hG4bK1988.c780cdd1.0.
Via: SIP/2.0/UDP xxx.yyy.64.118:5061;branch=z9hG4bK184e7f66.
From: "01234564" <sip:01234564@xxx.yyy.64.118:5061>;tag=as12c76469.
To: <sip:myuser@xxx.yyy.64.118>.
Contact: <sip:01234564@xxx.yyy.64.118:5061>.
Call-ID: 3b3a9d59133196ef4dfa27836e47cea9(a)xxx.yyy.64.118.
CSeq: 102 INVITE.
User-Agent: Asterisk PBX.
Date: Tue, 29 Mar 2005 17:34:32 GMT.
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER.
Content-Type: application/sdp.
Content-Length: 267.
.
v=0.
o=root 14974 14974 IN IP4 xxx.yyy.64.118.
s=session.
c=IN IP4 xxx.yyy.64.118.
t=0 0.
m=audio 11980 RTP/AVP 8 3 0 101.
a=rtpmap:8 PCMA/8000.
a=rtpmap:3 GSM/8000.
a=rtpmap:0 PCMU/8000.
a=rtpmap:101 telephone-event/8000.
a=fmtp:101 0-16.
a=silenceSupp:off - - - -.
#
T 10.99.1.9:5060 -> xxx.yyy.64.118:32834 [AP]
SIP/2.0 100 Trying.
Via: SIP/2.0/TCP
xxx.yyy.64.118;branch=z9hG4bK1988.c780cdd1.0;ms-received-port=3
2834;ms-received-cid=1d00.
Via: SIP/2.0/UDP xxx.yyy.64.118:5061;branch=z9hG4bK184e7f66.
From: "01234564" <sip:01234564@xxx.yyy.64.118:5061>;tag=as12c76469.
To: <sip:myuser@xxx.yyy.64.118>.
Call-ID: 3b3a9d59133196ef4dfa27836e47cea9(a)xxx.yyy.64.118.
CSeq: 102 INVITE.
Content-Length: 0.
.
##
T 10.99.1.9:5060 -> xxx.yyy.64.118:32834 [AP]
SIP/2.0 504 Server time-out.
Via: SIP/2.0/TCP
xxx.yyy.64.118;branch=z9hG4bK1988.c780cdd1.0;ms-received-port=3
2834;ms-received-cid=1d00.
Via: SIP/2.0/UDP xxx.yyy.64.118:5061;branch=z9hG4bK184e7f66.
From: "01234564" <sip:01234564@xxx.yyy.64.118:5061>;tag=as12c76469.
To: <sip:myuser@xxx.yyy.64.118>;tag=9B5EAEFA3B5764273F459C938E732306.
Call-ID: 3b3a9d59133196ef4dfa27836e47cea9(a)xxx.yyy.64.118.
CSeq: 102 INVITE.
Content-Length: 0.
.
#################################################################
Logs from LCS shows this message:
Text: Unable to route the request
Result-Code: 0xc3e91002
SIP-Start-Line: INVITE sip:myuser@mydomain.it SIP/2.0
SIP-Call-ID: 572410cc05c62bfe720cbc4c6cde6b0b(a)xxx.yyy.64.118
SIP-CSeq: 102 INVITE
Data: Non-trusted source sent an FQDN/IP that doesn't match a routing
table rule
##################################################################
This is my ser.cfg:
debug=9 # debug level (cmd line: -dddddddddd)
log_stderror=yes # (cmd line: -E)
check_via=no # (cmd. line: -v)
dns=no # (cmd. line: -r)
rev_dns=no # (cmd. line: -R)
listen=xxx.yyy.64.118
alias="mydomain.it"
alias="xxx.yyy.64.118"
fifo="/tmp/ser_fifo"
loadmodule "/usr/lib/ser/modules/sl.so"
loadmodule "/usr/lib/ser/modules/tm.so"
loadmodule "/usr/lib/ser/modules/rr.so"
loadmodule "/usr/lib/ser/modules/maxfwd.so"
loadmodule "/usr/lib/ser/modules/usrloc.so"
loadmodule "/usr/lib/ser/modules/registrar.so"
modparam("usrloc", "db_mode", 0)
modparam("rr", "enable_full_lr", 1)
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
record_route();
# loose-route processing
if (loose_route()) {
t_relay();
break;
};
# reject REGISTER attempts for now
if (method=="REGISTER") {
sl_send_reply( "503", "Registration Unavailable" );
break;
};
# Forward to LCS if text usernames
if (uri =~ "sip:[a-zA-Z\.\_]*@*") {
log(1, "Forwarding to LCS\n");
rewritehostport("mydomain.it");
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay_to_tcp("eco.pitagora.it", "5060")) {
sl_reply_error();
};
break;
}
# Forward to Asterisk if numerical username
if (method == "INVITE") {
if (uri =~ "sip:9[0-9]{10}@*") {
log(1, "Forwarding to Asterisk\n");
rewriteport("5061");
# forward to current uri now; use stateful forwarding; that
# works reliably even if we forward from TCP to UDP
if (!t_relay)) {
sl_reply_error();
};
break;
}
}
sl_send_reply("404", "Not Found");
}
##############################################################
Any help?
Thanks in advance...
Domenico Viggiani
_______________________________________________
Serusers mailing list
serusers(a)lists.iptel.org
http://lists.iptel.org/mailman/listinfo/serusers