[Serusers] 481 Call Leg Transaction Does Not Exist Problem

Klaus Darilion klaus.mailinglists at pernau.at
Tue Aug 17 23:18:18 CEST 2004


Take a look at the email " BYE issues" from 12.8. Looks like Andrew Mee 
is having the same problem. Maybe he could solve it.

Klaus

Jonathan wrote:

> Hello Everyone,
> 
> I am a newbie SER user.
> 
> I am working on a chat client application that supports VoIP and text
> chat (both single and multiparty IM). I am using Microsoft's RTCDLL
> with SER.
> 
> My question is, is there an issue with regards to using RTCDLL with
> SER and using TCP as the transfer protocol? I asked this because if i
> specify UDP as the transfer protocol im using for both the proxy and
> registrar, text chat works just fine. If i change either of the
> settings to TCP, i get the 481 error (Call Leg transaction does not
> exist) whenever the contacted UA tries to send back message (reply) to
> the caller/initiator of the text chat.
> 
> The following are the infos relevant to my system setup
> 
> OS version is  :  Linux Redhat 9
> 
> Version: ser 0.8.12 ( i 386/linux)
> 
> flags: STATS:Off, USE_IPV6, USE_TCP, DISABLE_NAGLE, DNS_IP_HACK,
> SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, FAST_LOCK-ADAPTIVE_WAIT
> ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16,
> MAX_URI_SIZE 1024, BUF_SIZE 65535
> 
> @(#) $ld:main.c.v 1.168 2003/10/12 15:09:08 andrei Exp $
> main.c compiled on 13:09:22 Nov 21 2003 with gcc 2.95
> 
> 
> ser config file
> 
> #
> # $Id: ser.cfg,v 1.21.2.1 2003/07/30 16:46:18 andrei Exp $
> #
> # simple quick-start config script
> #
> 
> # ----------- global configuration parameters ------------------------
> 
> #debug=3         # debug level (cmd line: -dddddddddd)
> #fork=yes
> #log_stderror=no        # (cmd line: -E)
> 
> /* Uncomment these lines to enter debugging mode
> debug=3
> fork=yes
> log_stderror=no
> */
> 
> check_via=no    # (cmd. line: -v)
> dns=no           # (cmd. line: -r)
> rev_dns=no      # (cmd. line: -R)
> port=5060
> children=4
> fifo="/tmp/ser_fifo"
> sip_warning=yes
> server_signature=yes
> uid="adrian"
> gid="adrian"
> listen=192.168.10.38
> listen=127.0.0.1
> 
> # hostname matching an alias will satisfy the condition uri==myself".
> alias=gandalf.hq1.astra.ph
> #alias=hq1.astra.ph
> alias=192.168.10.38
> # ------------------ module loading ----------------------------------
> 
> # Uncomment this if you want to use SQL database
> loadmodule "/usr/lib/ser/modules/mysql.so"
> 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"
> loadmodule "/usr/lib/ser/modules/auth.so"
> loadmodule "/usr/lib/ser/modules/auth_db.so"
> loadmodule "/usr/lib/ser/modules/acc.so"
> loadmodule "/usr/lib/ser/modules/exec.so"
> loadmodule "/usr/lib/ser/modules/group.so"
> loadmodule "/usr/lib/ser/modules/print.so"
> loadmodule "/usr/lib/ser/modules/textops.so"
> loadmodule "/usr/lib/ser/modules/uri.so"
> loadmodule "/usr/lib/ser/modules/pa.so"
> 
> # ----------------- setting module-specific parameters ---------------
> # ------------- tm parameters
> 
> modparam("tm", "fr_timer", 10)
> modparam("tm", "fr_inv_timer", 20)
> 
> # ------------- rr parameters
> 
> # set ";lr" tag to “;lr=trueâ€<9d>
> modparam("rr", "enable_full_lr", 1)
> 
> # ------------- accounting parameters
> modparam("acc", "log_missed_flag", 3)
> modparam("acc", "log_level", 1)
> modparam("acc", "log_flag", 1)
> 
> # ------------- usrloc parameters
> 
> # 2 enables write-back to persistent mysql storage for speed
> # disable=0, write-through=1
> modparam("usrloc", "db_mode", 0)
> 
> # minimize write back window - default is 60 seconds
> modparam("usrloc", "timer_interval", 10)
> 
> # database location
> modparam("usrloc", "db_url", "sql://ser:heslo@localhost/ser")
> 
> 
> # ------------- auth parameters
> 
> # database location
> modparam("auth_db", "db_url", "sql://ser:heslo@localhost/ser")
> 
> # allows clear text passwords in the mysql database
> modparam("auth_db", "calculate_ha1",1)# yes)
> 
> # name of password column in mysql database
> modparam("auth_db", "password_column", "password")
> 
> # pa initialization
> #modparam("pa", "default_expires", 3600)
> 
> # -------------------------  request routing logic -------------------
> # main routing logic
> 
> 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 (len_gt( 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;
>         };
>         lookup("aliases");
>         # 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") {
> 
> # Uncomment this if you want to use digest authentication
>                         if (!www_authorize("gandalf.hq1.astra.ph",
> "subscriber")) {
>                                 www_challenge("gandalf.hq1.astra.ph", "1");
>                                 break;
>                         };
> 
>                         # only registered users are allowed
>         #               if (!is_user("replicator") & !check_to()) {
>         #                     log(1, "LOG: unregistered user registration
>         #                     attempt\n");
>         #                     sl_send_reply("403", "Only registered users are
>         #                     allowed");
>         #                     break;
>         #               };
> 
>                         # it is an authenticated request, update Contact
>                         # database now
>         #               if (!save("location")) {
>         #                     sl_reply_error();
>         #               };
> 
>                         save("location");
>                         break;
>                 };
> 
>                 # native SIP destinations are handled using our USRLOC DB
>                 if (!lookup("location")) {
>                         sl_send_reply("404", "Not Found");
>                         break;
>                 };
>         };
> 
>         #if(t_newtran()){
>         #       if (method=="SUBSCRIBE" || method=="PUBLISH"){
>         #               handle_subscription("registrar");
>         #               break;
>         #       };
>         #};
> 
>         # 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();
>         };
> 
> }
> 
> end of config file
> 
> 
> As i said before, if i use UDP as my transport protocol, everything
> works fine....the call initiator can send messages and the receiver
> can reply back.
> 
> But when i use TCP, even if the call initiator can still send messages
> like before without any problem, the other client UA (receiver) cannot
> send messages back anymore....here is the sample captured SIP Messages
> when the caller sends text chat messages.
> 
> T 192.168.10.42:1283 -> 192.168.10.38:5060 [AP]
>   MESSAGE
> sip:rose at 192.168.10.38;transport=tcp;ftag=c3366ad7dc9c41d799d979d8aa40b6ef;lr=on
> SIP/2.0..Via: SIP/2.0/TCP 192.1
>   68.10.42:14457..Max-Forwards: 70..From: "jon"
> <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid=b
>   f0baf3a75..To:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..Call-ID:
> e4256863ae5e4c82b2c1138152
>   e1221e at 192.168.10.42..CSeq: 3 MESSAGE..Route:
> <sip:rose at gandalf.hq1.astra.ph:11818;maddr=192.168.10.27;transport=tcp>..C
>   ontact:
> <sip:jon at gandalf.hq1.astra.ph:14457;maddr=192.168.10.42;transport=tcp>..User-Agent:
> RTC/1.2..Content-Type: text/
>   enriched; charset=UTF-8..Content-Length:
> 230....{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0
> Ar
>   ial;}{\f1\fnil\fcharset0 Tahoma;}}..{\colortbl
> ;\red0\green0\blue255;}..\viewkind4\uc1\pard\cf1\b\fs18 jon : \cf0\b0\fs1
>   6 hello po\par..\pard\f1\fs17\par..}..
> ##########
> T 192.168.10.38:33101 -> 192.168.10.27:11818 [AP]
>   MESSAGE sip:192.168.10.27:11818;transport=tcp SIP/2.0..Record-Route:
> <sip:rose at 192.168.10.38;transport=tcp;ftag=c3366ad7
>   dc9c41d799d979d8aa40b6ef;lr=on>..Via: SIP/2.0/TCP
> 192.168.10.38;branch=z9hG4bKd26d.d1049a22.4;i=01..Via: SIP/2.0/TCP 192
>   .168.10.42:14457..Max-Forwards: 69..From: "jon"
> <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid
>   =bf0baf3a75..To:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..Call-ID:
> e4256863ae5e4c82b2c11381
>   52e1221e at 192.168.10.42..CSeq: 3 MESSAGE..Contact:
> <sip:jon at gandalf.hq1.astra.ph:14457;maddr=192.168.10.42;transport=tcp>
>   ..User-Agent: RTC/1.2..Content-Type: text/enriched;
> charset=UTF-8..Content-Length: 230....{\rtf1\ansi\ansicpg1252\deff0\
>   deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil\fcharset0
> Tahoma;}}..{\colortbl ;\red0\green0\blue255;}..\viewk
>   ind4\uc1\pard\cf1\b\fs18 jon : \cf0\b0\fs16 hello
> po\par..\pard\f1\fs17\par..}..
> #
> T 192.168.10.27:11818 -> 192.168.10.38:33101 [AP]
>   SIP/2.0 200 OK..Via: SIP/2.0/TCP
> 192.168.10.38;branch=z9hG4bKd26d.d1049a22.4;i=01..Via: SIP/2.0/TCP
> 192.168.10.42:14457.
>   .From: "jon"
> <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid=bf0baf3a75..To:
> <sip:rose at gandalf.
>   hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..Call-ID:
> e4256863ae5e4c82b2c1138152e1221e at 192.168.10.42..CSeq: 3 MES
>   SAGE..Contact:
> <sip:rose at gandalf.hq1.astra.ph:11818;maddr=192.168.10.27;transport=tcp>..User-Agent:
> RTC/1.2..Content-Len
>   gth: 0....
> ##
> T 192.168.10.38:5060 -> 192.168.10.42:1283 [AP]
>   SIP/2.0 200 OK..Via: SIP/2.0/TCP 192.168.10.42:14457..From: "jon"
> <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d
>   979d8aa40b6ef;epid=bf0baf3a75..To:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..Call-ID:
> e42568
>   63ae5e4c82b2c1138152e1221e at 192.168.10.42..CSeq: 3 MESSAGE..Contact:
> <sip:rose at gandalf.hq1.astra.ph:11818;maddr=192.168.1
>   0.27;transport=tcp>..User-Agent: RTC/1.2..Content-Length: 0....
> 
> ______________________________________________________________
> 
> And here is the sample SIP captured message if the receiver tries to
> reply back to the caller....the one with the 481 error
> 
> 
> T 192.168.10.27:1077 -> 192.168.10.38:5060 [AP]
>   MESSAGE
> sip:rose at 192.168.10.38;transport=tcp;ftag=c3366ad7dc9c41d799d979d8aa40b6ef;lr=on
> SIP/2.0..Via: SIP/2.0/TCP 192.1
>   68.10.27:11818..Max-Forwards: 70..From:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..To:
> "jon"
>   <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid=bf0baf3a75..Call-ID:
> e4256863ae5e4c82b2c1138152
>   e1221e at 192.168.10.42..CSeq: 1 MESSAGE..Route:
> <sip:jon at gandalf.hq1.astra.ph:14457;maddr=192.168.10.42;transport=tcp>..Co
>   ntact:
> <sip:rose at gandalf.hq1.astra.ph:11818;maddr=192.168.10.27;transport=tcp>..User-Agent:
> RTC/1.2..Content-Type: text/
>   enriched; charset=UTF-8..Content-Length:
> 249....{\rtf1\ansi\ansicpg1252\deff0\deflang13321{\fonttbl{\f0\fnil\fcharset0
> A
>   rial;}{\f1\fnil\fcharset0 Tahoma;}}..{\colortbl
> ;\red0\green0\blue255;}..\viewkind4\uc1\pard\cf1\b\fs18 rose : \cf0\b0\f
>   s16 r\lang1033 eply\par..\pard\lang13321\f1\fs17\par..}..
> ##########
> T 192.168.10.38:33101 -> 192.168.10.27:11818 [AP]
>   MESSAGE sip:192.168.10.27:11818;transport=tcp SIP/2.0..Record-Route:
> <sip:rose at 192.168.10.38;transport=tcp;ftag=0ce6d678
>   daf24305a094f59a177bdac7;lr=on>..Via: SIP/2.0/TCP
> 192.168.10.38;branch=z9hG4bKf26d.b82505f.4;i=11..Via: SIP/2.0/TCP 192.
>   168.10.27:11818..Max-Forwards: 69..From:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..To:
> "jon"
>    <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid=bf0baf3a75..Call-ID:
> e4256863ae5e4c82b2c113815
>   2e1221e at 192.168.10.42..CSeq: 1 MESSAGE..Contact:
> <sip:rose at gandalf.hq1.astra.ph:11818;maddr=192.168.10.27;transport=tcp>
>   ..User-Agent: RTC/1.2..Content-Type: text/enriched;
> charset=UTF-8..Content-Length: 249....{\rtf1\ansi\ansicpg1252\deff0\
>   deflang13321{\fonttbl{\f0\fnil\fcharset0 Arial;}{\f1\fnil\fcharset0
> Tahoma;}}..{\colortbl ;\red0\green0\blue255;}..\view
>   kind4\uc1\pard\cf1\b\fs18 rose : \cf0\b0\fs16 r\lang1033
> eply\par..\pard\lang13321\f1\fs17\par..}..
> ##
> T 192.168.10.38:5060 -> 192.168.10.27:1077 [AP]
>   SIP/2.0 408 Request Timeout..Via: SIP/2.0/TCP 192.168.10.27:11818..From:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf
>   24305a094f59a177bdac7..To: "jon"
> <sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid=bf0baf3a75..Ca
>   ll-ID: e4256863ae5e4c82b2c1138152e1221e at 192.168.10.42..CSeq: 1
> MESSAGE..Server: Sip EXpress router (0.8.11 (i386/linux))
>   ..Content-Length: 0..Warning: 392 192.168.10.38:5060 "Noisy feedback tells:
> pid=5107 req_src_ip=192.168.10.27 req_src_p
>   ort=1077
> in_uri=sip:rose at 192.168.10.38;transport=tcp;ftag=c3366ad7dc9c41d799d979d8aa40b6ef;lr=on
> out_uri=sip:192.168.10.
>   27:9287;transport=tcp via_cnt==0"....
> ##
> T 192.168.10.27:11818 -> 192.168.10.38:33101 [AP]
>   SIP/2.0 481 Call Leg/Transaction Does Not Exist..Via: SIP/2.0/TCP
> 192.168.10.38;branch=z9hG4bKf26d.b82505f.4;i=11..Via:
>   SIP/2.0/TCP 192.168.10.27:11818..From:
> <sip:rose at gandalf.hq1.astra.ph>;tag=0ce6d678daf24305a094f59a177bdac7..To:
> "jon" <
>   sip:jon at gandalf.hq1.astra.ph>;tag=c3366ad7dc9c41d799d979d8aa40b6ef;epid=bf0baf3a75..Call-ID:
> e4256863ae5e4c82b2c1138152e
>   1221e at 192.168.10.42..CSeq: 1 MESSAGE..User-Agent: RTC/1.2..Content-Length:
> 0....
> 
> 
> I have no clue as to why it behaves this way while it does not so
> using UDP.  I don't know where the actual problem lies although i am
> biased that more likely, it is microsoft's fault. ^_^
> 
> 
> Please enlighten me, anything would greatly help.
> 
> 
> Many thanks in advance....
> 




More information about the sr-users mailing list