[Serusers] public ip - private ip communication problem

Jan Janak jan at iptel.org
Fri May 28 16:40:22 CEST 2004


There is an parse error in the logs you sent us, some Route header field
is missing < character, unfortunately the dumps do not show the message.
Locate the source of error and report it to the manufacturer.

  Jan.

On 26-05 22:49, varala ramakanth wrote:
> hello friends,
> 
> sorry to disturb you people again and again iam newbie
> 
> 
> i know ser from last two weeks only
> 
> as iam suffering with this problem from last week
> 
> i need help of you people i hope some body is kind 
> 
> enough to help me out .
> 
> 
> and my first scenario in simple ascii diagram
> 
>               public ip (estara softphone)
>                             /|\
>                              | 
>                              |
>                             \|/
>                     SER server (public ip)
>                             /|\
>                              |
>                             \|/
>               public ip (estara softphone)
> 
> my SER server is redhat linux 9.0
> 
> iam using stable version which i got through cvs
> 
> and first checking with the public ip to publics ip
> 
> here i could able to establish the call i.e in either 
> 
> side i could able to listen the voice
> 
> in this iam not using any rtpproxy
> ------------------------------------------------------
> 
> [root at server sbin]# ser
> Listening on
>               127.0.0.1 [127.0.0.1]:5060
>               <public ip>[public ip]:5060
> Aliases: server.pol.net.in:5060 localhost:5060
> localhost.localdomain:5060
> stateless - initializing
> [root at server sbin]# Maxfwd module- initializing
> textops - initializing
>  0(0) INFO: udp_init: SO_RCVBUF is initially 65535
>  0(0) INFO: udp_init: SO_RCVBUF is finally 131070
>  0(0) INFO: udp_init: SO_RCVBUF is initially 65535
>  0(0) INFO: udp_init: SO_RCVBUF is finally 131070
>  9(0) INFO: fifo process starting: 17451
>  9(17451) SER: open_uac_fifo: fifo server up at
> /tmp/ser_fifo...
>  8(17450) parse_nameaddr(): No < found
>  8(17450) parse_rr(): Error while parsing name-addr
>  8(17450) find_first_route(): Error while parsing
> Route HF
>  6(17448) parse_nameaddr(): No < found
>  6(17448) parse_rr(): Error while parsing name-addr
>  6(17448) find_first_route(): Error while parsing
> Route HF
>  6(17448) parse_nameaddr(): No < found
>  6(17448) parse_rr(): Error while parsing name-addr
>  6(17448) find_first_route(): Error while parsing
> Route HF
>  7(17449) parse_nameaddr(): No < found
>  7(17449) parse_rr(): Error while parsing name-addr
>  7(17449) find_first_route(): Error while parsing
> Route HF
>  6(17448) parse_nameaddr(): No < found
>  6(17448) parse_rr(): Error while parsing name-addr
>  6(17448) find_first_route(): Error while parsing
> 
> -------------------------------------------------------
> this is the second scenario 
> 
>            public ip (msn messenger)
>                             /|\
>                              | 
>                              |
>                             \|/
>                     SER server (public ip)
>                             /|\
>                              |
>                             \|/
>                DHCP server (public ip , NAT device)
>                             /|\
>                              |
>                             \|/
>                  private ip (estara softphone)
> 
> 
> in the terminal of ser iam gettign this
> -----------------------------------------------------
> 
> [root at server sbin]# ser
> Listening on
>               127.0.0.1 [127.0.0.1]:5060
>               <public ip>[public ip]:5060
> Aliases: server.pol.net.in:5060 localhost:5060
> localhost.localdomain:5060
> [root at server sbin]# stateless - initializing
> Maxfwd module- initializing
> textops - initializing
>  0(0) INFO: udp_init: SO_RCVBUF is initially 65535
>  0(0) INFO: udp_init: SO_RCVBUF is finally 131070
>  0(0) INFO: udp_init: SO_RCVBUF is initially 65535
>  0(0) INFO: udp_init: SO_RCVBUF is finally 131070
>  9(0) INFO: fifo process starting: 17642
>  9(17642) SER: open_uac_fifo: fifo server up at
> /tmp/ser_fifo...
>  5(17638) parse_nameaddr(): No < found
>  5(17638) parse_rr(): Error while parsing name-addr
>  5(17638) find_first_route(): Error while parsing
> Route HF
>  8(17641) parse_nameaddr(): No < found
>  8(17641) parse_rr(): Error while parsing name-addr
>  8(17641) find_first_route(): Error while parsing
> Route HF
>  5(17638) ERROR: extract_body: message body has lenght
> zero
>  5(17638) ERROR: force_rtp_proxy: can't extract body
> from the message
>  5(17638) ERROR: on_reply processing failed
> 
> -----------------------------------------------------
> here iam using the rtpproxy of version 1.4 2003/08/05
> 
> ./rtpproxy -f
> 
> in the terminal of rtpproxy iam getting this
> -----------------------------------------------------
> [root at server rtpproxy]# ./rtpproxy -f
> rtpproxy: new session on a port 35000
> rtpproxy: lookup on a port 35000
> rtpproxy: addr1 filled in: 202.65.128.24
> rtpproxy: addr2 filled in: 202.65.148.252
> rtpproxy: stats: 179 in from addr1, 3 in from addr2,
> 180 relayed
> rtpproxy: session on port 35000 is cleaned up
> 
> ------------------------------------------------------
> 
> the result is i could able to see that both mic and 
> 
> speaker are working and iam listening what ever public
> 
> ip softphone is speaking in private ip softphone.
> 
> but in public ip softphone i have seen  that only
> 
> mic is working not the speakers i.e i could not 
> 
> able to listen what ever private ip softphone is 
> 
> speaking
> 
> i observed that one malformed sip packet is genrating 
> 
> thorugh the ser in tethereal
> 
> so my ethereal report is 
> 
> 
> ****************************************************
> Frame 3 (327 bytes on wire, 327 bytes captured)
>     Arrival Time: May 23, 2004 20:18:03.259293000
>     Time delta from previous packet: 2.401569000
> seconds
>     Time relative to first packet: 2.402778000 seconds
>     Frame Number: 3
>     Packet Length: 327 bytes
>     Capture Length: 327 bytes
> Ethernet II, Src: 00:e0:2b:90:1f:00, Dst:
> 00:e0:18:ed:04:61
>     Destination: 00:e0:18:ed:04:61 (Asustek__ed:04:61)
>     Source: 00:e0:2b:90:1f:00 (Extreme__90:1f:00)
>     Type: IP (0x0800)
> Internet Protocol, Src Addr: 202.*.*.252 (dhcp i.e nat
> server) (202.*.*.252), Dst Addr: 202. *.*.19
> (202.*.*.19)
>     Version: 4
>     Header length: 20 bytes
>     Differentiated Services Field: 0x00 (DSCP 0x00:
> Default; ECN: 0x00)
>         0000 00.. = Differentiated Services Codepoint:
> Default (0x00)
>         .... ..0. = ECN-Capable Transport (ECT): 0
>         .... ...0 = ECN-CE: 0
>     Total Length: 313
>     Identification: 0xf5f8
>     Flags: 0x00
>         .0.. = Don't fragment: Not set
>         ..0. = More fragments: Not set
>     Fragment offset: 0
>     Time to live: 125
>     Protocol: UDP (0x11)
>     Header checksum: 0x9d28 (correct)
>     Source: 202.*.*.252 (202.*.*.252)
>     Destination: 202.*.*.19 (202.*.*.19)
> User Datagram Protocol, Src Port: 62812 (62812), Dst
> Port: 5060 (5060)
>     Source port: 62812 (62812)
>     Destination port: 5060 (5060)
>     Length: 293
>     Checksum: 0x8112 (correct)
> Session Initiation Protocol
>     Request line: REGISTER sip:202.*.*.19 SIP/2.0
>     Message Header
>         Via: SIP/2.0/UDP 192.168.1.18:5060
>         From: sip:203 at 202.*.*.19
>         To: sip:203 at 202.*.*.19
>         Contact: sip:203 at 192.168.1.18:5060
>         Call-ID:
> e166bf60-acf2-11d8-aafe-00e01846e257 at 192.168.1.18
>         CSeq: 32320301 REGISTER
>         Content-Length: 0
>         Expires: 3600
> 
> Frame 4 (629 bytes on wire, 629 bytes captured)
>     Arrival Time: May 23, 2004 20:18:03.261431000
>     Time delta from previous packet: 0.002138000
> seconds
>     Time relative to first packet: 2.404916000 seconds
>     Frame Number: 4
>     Packet Length: 629 bytes
>     Capture Length: 629 bytes
> Ethernet II, Src: 00:e0:18:ed:04:61, Dst:
> 00:e0:2b:90:1f:00
>     Destination: 00:e0:2b:90:1f:00 (Extreme__90:1f:00)
>     Source: 00:e0:18:ed:04:61 (Asustek__ed:04:61)
>     Type: IP (0x0800)
> Internet Protocol, Src Addr: 202.*.*.19 (202.*.*.19),
> Dst Addr: 202.*.*.252 (202.*.*.252)
>     Version: 4
>     Header length: 20 bytes
>     Differentiated Services Field: 0x10 (DSCP 0x04:
> Unknown DSCP; ECN: 0x00)
>         0001 00.. = Differentiated Services Codepoint:
> Unknown (0x04)
>         .... ..0. = ECN-Capable Transport (ECT): 0
>         .... ...0 = ECN-CE: 0
>     Total Length: 615
>     Identification: 0x0000
>     Flags: 0x04
>         .1.. = Don't fragment: Set
>         ..0. = More fragments: Not set
>     Fragment offset: 0
>     Time to live: 64
>     Protocol: UDP (0x11)
>     Header checksum: 0x8ee3 (correct)
>     Source: 202.*.*.19 (202.*.*.19)
>     Destination: 202.*.*.252 (202.*.*.252)
> User Datagram Protocol, Src Port: 5060 (5060), Dst
> Port: 62812 (62812)
>     Source port: 5060 (5060)
>     Destination port: 62812 (62812)
>     Length: 595
>     Checksum: 0x0d6c (correct)
> Session Initiation Protocol
>     Status line: SIP/2.0 200 OK
>     Message Header
>         Via: SIP/2.0/UDP
> 192.168.1.18:5060;rport=62812;received=202.*.*.252
>         From: sip:203 at 202.*.*.19
>         To:
> sip:203 at 202.65.128.19;tag=b27e1a1d33761e85846fc98f5f3a7e58.d036
>         Call-ID:
> e166bf60-acf2-11d8-aafe-00e01846e257 at 192.168.1.18
>         CSeq: 32320301 REGISTER
> Status line: SIP/2.0 200 OK
>     Message Header
>         Via: SIP/2.0/UDP
> 192.168.1.18:5060;rport=62812;received=202.*.*.252
>         From: sip:203 at 202.*.*.19
>         To:
> sip:203 at 202.*.*.19;tag=b27e1a1d33761e85846fc98f5f3a7e58.d036
>         Call-ID:
> e166bf60-acf2-11d8-aafe-00e01846e257 at 192.168.1.18
>         CSeq: 32320301 REGISTER
>         Contact:
> <sip:203 at 202.*.*.252:62812>;q=0.00;expires=3600
>         Server: Sip EXpress router (0.8.12-tcp_nonb
> (i386/linux))
>         Content-Length: 0
>         Warning: 392 202.*.*.19:5060 "Noisy feedback
> tells:  pid=17639 req_src_ip=202.*.*.252 req_src_p
> ort=62812 in_uri=sip:202.*.*.19
> out_uri=sip:202.65.128.19 via_cnt==1"
> 
> Frame 5 (46 bytes on wire, 46 bytes captured)
>     Arrival Time: May 23, 2004 20:18:18.476274000
>     Time delta from previous packet: 15.214843000
> seconds
>     Time relative to first packet: 17.619759000
> seconds
>     Frame Number: 5
>     Packet Length: 46 bytes
>     Capture Length: 46 bytes
> Ethernet II, Src: 00:e0:18:ed:04:61, Dst:
> 00:e0:2b:90:1f:00
>     Destination: 00:e0:2b:90:1f:00 (Extreme__90:1f:00)
>     Source: 00:e0:18:ed:04:61 (Asustek__ed:04:61)
>     Type: IP (0x0800)
> Internet Protocol, Src Addr: 202.*.*.19 (202.*.*.19),
> Dst Addr: 202.*.*.252 (202.*.*.252)
>     Version: 4
>     Header length: 20 bytes
>     Differentiated Services Field: 0x10 (DSCP 0x04:
> Unknown DSCP; ECN: 0x00)
>         0001 00.. = Differentiated Services Codepoint:
> Unknown (0x04)
>         .... ..0. = ECN-Capable Transport (ECT): 0
> Differentiated Services Field: 0x10 (DSCP 0x04:
> Unknown DSCP; ECN: 0x00)
>         0001 00.. = Differentiated Services Codepoint:
> Unknown (0x04)
>         .... ..0. = ECN-Capable Transport (ECT): 0
>         .... ...0 = ECN-CE: 0
>     Total Length: 32
>     Identification: 0x0000
>     Flags: 0x04
>         .1.. = Don't fragment: Set
>         ..0. = More fragments: Not set
>     Fragment offset: 0
>     Time to live: 64
>     Protocol: UDP (0x11)
>     Header checksum: 0x912a (correct)
>     Source: 202.*.*.19 (202.*.*.19)
>     Destination: 202.*.*.252 (202.*.*.252)
> User Datagram Protocol, Src Port: 5060 (5060), Dst
> Port: 62812 (62812)
>     Source port: 5060 (5060)
>     Destination port: 62812 (62812)
>     Length: 12
>     Checksum: 0x4d22 (correct)
> [Malformed Packet: SIP]
> 
> *********************************************************
> i kept * inorder to hide the public ip please pardon
> me for that
>                           
> ser.cfg is of klaus which he kept in the we last 
> 
> febaraury with some light modifications confined to my
> 
> 
> problem
> 
> my ser.cfg is 
> ******************************************************
> #
> # $Id: ser.cfg,v 1.21 2003/06/04 13:47:36 jiri Exp $
> #
> # simple quick-start config script
> #
> 
> # ----------- global configuration parameters
> ------------------------
> 
> debug=3         # debug level (cmd line: -dddddddddd)
> fork=yes
> log_stderror=yes        # (cmd line: -E)
> 
> 
> # Uncomment these lines to enter debugging mode
> /*
> debug=7
> fork=no
> log_stderror=yes
> */
> 
> 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"
> alias=server.pol.net.in
> #------------------ module loading
> ----------------------------------
> 
> # Uncomment this if you want to use SQL database
> #loadmodule "/usr/local/lib/ser/modules/mysql.so"
> 
> loadmodule "/usr/local/lib/ser/modules/sl.so"
> loadmodule "/usr/local/lib/ser/modules/tm.so"
> loadmodule "/usr/local/lib/ser/modules/rr.so"
> loadmodule "/usr/local/lib/ser/modules/maxfwd.so"
> loadmodule "/usr/local/lib/ser/modules/usrloc.so"
> loadmodule "/usr/local/lib/ser/modules/registrar.so"
> loadmodule "/usr/local/lib/ser/modules/textops.so"
> 
> # Uncomment this if you want digest authentication
> # mysql.so must be loaded !
> #loadmodule "/usr/local/lib/ser/modules/auth.so"
> #loadmodule "/usr/local/lib/ser/modules/auth_db.so"
> 
> # load the voicemail module
> #loadmodule "/usr/local/lib/ser/modules/vm.so"
> 
> # load the enum module
> #loadmodule "/usr/local/lib/ser/modules/enum.so"
> 
> # load the group module, to verify if a user forwards
> to voicemail
> #loadmodule "/usr/local/lib/ser/modules/group.so"
> 
> # load the nathelper module
> loadmodule "/usr/local/lib/ser/modules/nathelper.so"
> 
> # ----------------- setting module-specific parameters
> ---------------
> 
> # -- registrar parameter
> # special NAT flag indicates that a registered client
> is behind NAT
> modparam("registrar", "nat_flag", 6)
> 
> # -- usrloc params --
> 
> #modparam("usrloc", "db_mode",   0)
> 
> # Uncomment this if you want to use SQL database
> # for persistent storage and comment the previous line
> #/
> #odparam("usrloc", "db_mode", 0)
> #modparam("usrloc", "db_url",
> "mysql://ser:XXXXXXX@localhost/ser")
> 
> # -- auth params --
> # Uncomment if you are using auth module
> #
> #modparam("auth_db", "calculate_ha1", yes)
> #
> # If you set "calculate_ha1" parameter to yes (which
> true in this config),
> # uncomment also the following parameter)
> #
> #modparam("auth_db", "password_column", "password")
> #modparam("auth_db", "db_url",
> "mysql://ser:XXXXXXX@localhost/ser")
> 
> # -- rr params --
> # add value to ;lr param to make some broken UAs happy
> modparam("rr", "enable_full_lr", 1)
> 
> # -- voicemail params --
> #modparam("voicemail",
> "db_url","mysql://ser:XXXXXXX@localhost/ser")
> 
> # -- voicemail params --
> #modparam("group",
> "db_url","mysql://serro:XXXXXXXXX@localhost/ser")
> 
> # -- nathelper params --
> modparam("nathelper", "natping_interval", 60)
> modparam("nathelper", "ping_nated_only", 1)
> modparam("tm", "fr_inv_timer", 30 )
> #/modparam("register","nat_flag",6)
> #modparam("tm", "fr_inv_timer", 8 )
> 
> # -------------------------  request routing logic
> -------------------
> 
> # main routing logic
> 
> 
> 
>         if (nat_uac_test("2")) {
>                 force_rport();
>                 fix_nated_contact();
>                if (method=="INVITE")
>                        {
>                        fix_nated_sdp("1");
>                        }
>                 append_hf("P-hint: fixed NAT contact
> for request\r\n");
>                 setflag(5);
>         };
>         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;
>         };
>         if (loose_route()) {
>                 log(1, "loose_route processing\n");
>                 t_relay();
>                 break;
>         };
>         if (uri==myself) {
> 
>                 if (method=="REGISTER")
>                 {
>                         if (isflagset(5)) {
>                                 setflag(6);
> 
> ...skipping 29 lines
>                 if (method=="INVITE")
>                 {
>                         force_rtp_proxy();
>                         append_hf("P-hint: request
> forced to rtp proxy\r\n");
>                         setflag(7);
>                 };
>         };
>         if (!t_relay()) {
>                 sl_reply_error();
>         };
> 
> }
> 
> onreply_route[1] {
>         if (isflagset(6)) {
>                 fix_nated_contact();
>                 append_hf("P-hint: fixed NAT contact
> for response\r\n");
>         }
> 
>         if ( (status=~"200" || status=~"183") ) {
>                 if ( isflagset(7) ) {
>                         force_rtp_proxy();
>                         append_hf("P-hint: response
> forced to rtp proxy\r\n");
>                 };
>         };
> }
> 
> route[4]{
>         # non-Voip -- just send "off-line"
>         if (!(method == "INVITE" || method == "ACK" ||
> method == "CANCEL" || method == "REFER" || method == "
> BYE")) {
>                 log(1, "no
> invite,ack,cancel,refer->return 404\n");
>                 sl_send_reply("404", "Not Found");
>                 break;
>         };
> 
>         # not voicemail subscriber and no
> echo/conference call
>         if ( isflagset(4)) {
>                 log(1, "flag(4) active\n");
>         };
>         if (uri =~ "conference") {
>                 log(1, "conference call\n");
>         };
>         if (uri =~ "echo") {
>                 log(1, "echo call\n");
>         };
>         if ( !( isflagset(4) || (uri =~ "conference")
> || (uri =~ "echo") ) ) {
>                 log(1, "no voicemail
> subscriber->return 404");
>                 sl_send_reply("404", "Not Found and no
> voicemail turned on");
>                 break;
>         };
> 
>         if ( isflagset(5) ) {
>                 log(1, "caller is
> NATed->record_route\n");
>                 record_route();
>                 log(1, "     -->setting up reply
> processing ->onreply_route[1]");
>                 t_on_reply("1");
>                 if (method=="INVITE") {
>                         log(1, "     INVITE
> request-->force_rtp_proxy");
>                         force_rtp_proxy();
>                 };
>         };
> 
> }
> 
> ******************************************************
> 
> my requirement is private to public call establishment
> 
> so please kindly guide me
> 
> with regards
> rama kanth
> 
> 
> 	
> 		
> __________________________________
> Do you Yahoo!?
> Friends.  Fun.  Try the all-new Yahoo! Messenger.
> http://messenger.yahoo.com/ 
> 
> _______________________________________________
> Serusers mailing list
> serusers at lists.iptel.org
> http://lists.iptel.org/mailman/listinfo/serusers




More information about the sr-users mailing list