[Serusers] Forwarding to a LCS server
Klaus Darilion
klaus.mailinglists at pernau.at
Tue Mar 29 20:43:51 CEST 2005
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 at mydomain.it SIP/2.0.
> Max-Forwards: 10.
> Record-Route:
> <sip:myuser at xxx.yyy.64.118;transport=tcp;r2=on;ftag=as12c76469;l
> r=on>.
> Record-Route: <sip:myuser at 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 at xxx.yyy.64.118:5061>;tag=as12c76469.
> To: <sip:myuser at xxx.yyy.64.118>.
> Contact: <sip:01234564 at xxx.yyy.64.118:5061>.
> Call-ID: 3b3a9d59133196ef4dfa27836e47cea9 at 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 at xxx.yyy.64.118:5061>;tag=as12c76469.
> To: <sip:myuser at xxx.yyy.64.118>.
> Call-ID: 3b3a9d59133196ef4dfa27836e47cea9 at 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 at xxx.yyy.64.118:5061>;tag=as12c76469.
> To: <sip:myuser at xxx.yyy.64.118>;tag=9B5EAEFA3B5764273F459C938E732306.
> Call-ID: 3b3a9d59133196ef4dfa27836e47cea9 at 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 at mydomain.it SIP/2.0
> SIP-Call-ID: 572410cc05c62bfe720cbc4c6cde6b0b at 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 at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers
>
>
More information about the sr-users
mailing list