Hi Users,

For Me also same issue. , But problem with  NAT..
..One Question..
              Is Mediaproxy is good or rtpproxy..
                 I'm confusing..... But , are for media, Voice,  inbound and outbound..
  please help me, Guys.


On 7/1/06, Kenny Chua <strain15@yahoo.com> wrote:
Hi Bogdan I tried what you told me to, however I still have the same problem.  Seems like nothing is hanging up now. However if I used this config before the loose route, things are slightly better, just that the caller(softphne) hangs up first, then the calle(softphone) wont hang up itself.


if (method=="BYE" || method=="CANCEL") {
        unforce_rtp_proxy();
        t_relay();
        exit;
  } ;

The bye is still not working right. Below is my config that I tried using ur suggestion and ngrep:


debug=3
fork=yes
log_stderror=no

listen=68.xxx.xxx.xxx     

alias=test.com

port=5060
children=16


dns=no
rev_dns=no

fifo="/tmp/openser_fifo"
fifo_db_url="mysql://openser:openserrw@localhost/openser"

loadmodule "/usr/local/lib/openser/modules/mysql.so"
loadmodule "/usr/local/lib/openser/modules/sl.so"
loadmodule "/usr/local/lib/openser/modules/tm.so"
loadmodule "/usr/local/lib/openser/modules/rr.so"
loadmodule "/usr/local/lib/openser/modules/maxfwd.so"
loadmodule "/usr/local/lib/openser/modules/usrloc.so"
loadmodule "/usr/local/lib/openser/modules/registrar.so"
loadmodule "/usr/local/lib/openser/modules/auth.so"
loadmodule "/usr/local/lib/openser/modules/auth_db.so"
loadmodule "/usr/local/lib/openser/modules/uri.so"
loadmodule "/usr/local/lib/openser/modules/uri_db.so"
loadmodule "/usr/local/lib/openser/modules/domain.so"

loadmodule "/usr/local/lib/openser/modules/nathelper.so"
loadmodule "/usr/local/lib/openser/modules/avpops.so"
loadmodule "/usr/local/lib/openser/modules/textops.so"
loadmodule "/usr/local/lib/openser/modules/xlog.so"
loadmodule "/usr/local/lib/openser/modules/permissions.so"

modparam("auth_db|permissions|uri_db|usrloc", "db_url",

    "mysql://openser:openserrw@localhost/openser")
modparam("auth_db", "calculate_ha1", 1)
modparam("auth_db", "password_column", "password")

modparam("nathelper", "natping_interval", 30)
modparam("nathelper", "ping_nated_only", 1)  
modparam("nathelper", "rtpproxy_sock", "unix:/var/run/rtpproxy.sock")


modparam("usrloc", "db_mode", 2)

modparam("registrar", "nat_flag", 6)

modparam("rr", "enable_full_lr", 1)

modparam("tm", "fr_inv_timer", 27)
modparam("tm", "fr_inv_timer_avp", "inv_timeout")

modparam("permissions", "db_mode", 1)
modparam("permissions", "trusted_table", "trusted")



route {

    # -----------------------------------------------------------------
    # Sanity Check Section
    # -----------------------------------------------------------------
    if (!mf_process_maxfwd_header("10")) {
        sl_send_reply("483", "Too Many Hops");
        exit;
    };

    if (msg:len > max_len) {
        sl_send_reply("513", "Message Overflow");
        exit;
    };

    # -----------------------------------------------------------------
    # Record Route Section
    # -----------------------------------------------------------------
    if (method!="REGISTER") {
        record_route();
    };

    if (method=="BYE" || method=="CANCEL") {
        unforce_rtp_proxy();
        if(method=="CANCEL")
            t_relay();
        exit;
    } ;

    # -----------------------------------------------------------------
    # Loose Route Section
    # -----------------------------------------------------------------
    if (loose_route()) {

        if ((method=="INVITE" || method=="REFER") && !has_totag()) {
            sl_send_reply("403", "Forbidden");
            return;
        };

        if (method=="INVITE") {

            if (!proxy_authorize("","subscriber")) {
                proxy_challenge("","0");
                return;

            } else if (!check_from()) {
                sl_send_reply("403", "Use From=ID");
                return;
            };
            consume_credentials();

            if (nat_uac_test("19")) {
                setflag(6);
                force_rport();
                fix_nated_contact();
            };
            force_rtp_proxy("l");
        };

        route(1);
        return;
    };

    # -----------------------------------------------------------------
    # Call Type Processing Section
    # -----------------------------------------------------------------
    if (!is_uri_host_local()) {
        if (is_from_local() || allow_trusted()) {
            route(4);
            route(1);
        } else {

            sl_send_reply("403", "Forbidden");
        };
        return;
    };
           
    if (method=="ACK") {
        route(1);
        return;
    } else if (method=="CANCEL") {
        route(1);
        return;
    } else if (method=="INVITE") {
        route(3);
        return;
    } else  if (method=="REGISTER") {
        route(2);
        return;
    };

    lookup("aliases");
    if (!is_uri_host_local()) {

        route(4);
        route(1);
        return;
    };

    if (!lookup("location")) {
        sl_send_reply("404", "User Not Found");
        return;
    };

    route(1);
}

route[1] {

    # -----------------------------------------------------------------
    # Default Message Handler
    # -----------------------------------------------------------------

    t_on_reply("1");

   
    if (!t_relay()) {
        if ((method=="INVITE" || method=="ACK") && isflagset(6)) {

            unforce_rtp_proxy();
        };
        sl_reply_error();
    };
}

route[2] {

    # -----------------------------------------------------------------
    # REGISTER Message Handler
    # ----------------------------------------------------------------

    if (!search("^Contact:[ ]*\*") && nat_uac_test("19")) {
        setflag(6);
        fix_nated_register();
        force_rport();
    };

    sl_send_reply("100", "Trying");

    if (!www_authorize("","subscriber")) {
        www_challenge("","0");
        exit;
    };

    if (!check_to()) {
        sl_send_reply("401", "Unauthorized");
        return;
    };

    consume_credentials();

    if (!save("location")) {
        sl_reply_error();
    };
}

route[3] {

    # -----------------------------------------------------------------
    # INVITE Message Handler
    # -----------------------------------------------------------------

    if (!allow_trusted()) {

   
        if (!proxy_authorize("","subscriber")) {
            proxy_challenge("","0");
            return;

        } else if (!check_from()) {
            sl_send_reply("403", "Use From=ID");
            return;
        };
    };

    consume_credentials();

    if (nat_uac_test("19")) {
        setflag(6);
    }
   
    lookup("aliases");
    if (!is_uri_host_local()) {

        route(4);
        route(1);
        return;
    };

    if (uri=~"^sip:[0-9]{3}@") {
        lookup("aliases");
        lookup("location");

        route(4);
        route(1);
        return;
    };   

    if(!lookup("location")){
        if (uri=~"^sip:[0-9]*@") {       

            route(4);
            route(5);
            return;
        };


        sl_send_reply("404", "User Not Found");
        return;
    };

    route(4);
    route(1);
}

route[4] {

    # -----------------------------------------------------------------
    # NAT Traversal Section
    # -----------------------------------------------------------------

    if (isflagset(6)) {
        force_rport();
        fix_nated_contact();
        force_rtp_proxy();
    }
}

route[5] {

    # -----------------------------------------------------------------
    # PSTN Handler
    # -----------------------------------------------------------------

    rewritehostport("pstn.gateway:5060");


    avp_write("i:45", "inv_timeout");

    route(1);
}

onreply_route[1] {

    if (isflagset(6) && status=~"(180)|(183)|2[0-9][0-9]") {
        if (!search("^Content-Length:[ ]*0")) {
            force_rtp_proxy();
        };
    };

    if (nat_uac_test("1")) {
        fix_nated_contact();
    };
}


[root@adsl-068-213-154-138 openser]# ngrep -qt port 5060
interface: eth0 (68.xxx.xxx.xxx/255.255.255.248)
filter: (ip) and ( port 5060 )


U 2006/06/30 21:13:29.086503 70.xxx.xxx.xxx:5062 -> 68.xxx.xxx.xxx:5060
  BYE sip:68.xxx.xxx.xxx SIP/2.0..Call-ID: 7b304ac5-59d54-c0a814d0@test.com..From: CIO< sip:202@test.com>;tag=2d8ac-e57529..To:
   <sip:200@test.com>;tag=4197719146..CSeq: 102 BYE..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport..Contact: CIO<sip:202@70.xxx.xxx.xxx:5062>..Ma
  x-Forwards: 70..Route: <sip:200@70.xxx.xxx.xxx:5060>..User-Agent: BVA8051S (LDTK AR18D ) STUN 1 0 0..Supported: timer..Proxy-Authorization: Digest userna
  me="202",realm="test.com",uri="sip:68.xxx.xxx.xxx",response="b037fee90080d847fa4c837faba14862",nonce="44a5db70e33b5ec051569d1d7fbc2c6f328d
  63f2"..Content-Length: 0....

U 2006/06/30 21:13:29.602024 70.xxx.xxx.xxx:5062 -> 68.xxx.xxx.xxx:5060
  BYE sip:68.xxx.xxx.xxx SIP/2.0..Call-ID: 7b304ac5-59d54-c0a814d0@test.com..From: CIO< sip:202@test.com>;tag=2d8ac-e57529..To:
   <sip:200@test.com>;tag=4197719146..CSeq: 102 BYE..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport..Contact: CIO<sip:202@70.xxx.xxx.xxx:5062>..Ma
  x-Forwards: 70..Route: <sip:200@70.xxx.xxx.xxx:5060>..User-Agent: BVA8051S (LDTK AR18D ) STUN 1 0 0..Supported: timer..Proxy-Authorization: Digest userna
  me="202",realm="test.com",uri="sip:68.xxx.xxx.xxx",response="b037fee90080d847fa4c837faba14862",nonce="44a5db70e33b5ec051569d1d7fbc2c6f328d
  63f2"..Content-Length: 0....

U 2006/06/30 21:13:30.259448 70.xxx.xxx.xxx:1024 -> 68.xxx.xxx.xxx:5060
  SIP/2.0 200 Ok..Via: SIP/2.0/UDP 68.xxx.xxx.xxx;branch=z9hG4bKb10a.4676fc16.0..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport=5062..From: CIO <sip:202@test.com
  >;tag=2d8ac-e57529..To: < sip:200@test.com>;tag=4197719146..Contact: <sip:200@70.xxx.xxx.xxx:5060>..Record-Route: <sip:68.21
  3.154.138;ftag=2d8ac-e57529;lr=on>..Call-ID: 7b304ac5-59d54-c0a814d0@test.com..CSeq: 101 INVITE..Content-Type: application/sdp..Server: X-
  Lite release 1105x..Content-Length: 308....v=0..o=200 378856709 378857471 IN IP4 70.xxx.xxx.xxx..s=X-Lite..c=IN IP4 70.xxx.xxx.xxx..t=0 0..m=audio 8000 RT
  P/AVP 0 8 3 98 97 101..a=rtpmap:0 pcmu/8000..a=rtpmap:8 pcma/8000..a=rtpmap:3 gsm/8000..a=rtpmap:98 iLBC/8000..a=rtpmap:97 speex/8000..a=rtpmap:101 tele
  phone-event/8000..a=fmtp:101 0-15..a=sendrecv..

U 2006/06/30 21:13:30.259708 68.xxx.xxx.xxx:5060 -> 70.xxx.xxx.xxx :5062
  SIP/2.0 200 Ok..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport=5062..From: CIO <sip:202@test.com>;tag=2d8ac-e57529..To: < sip:200@test.com
  >;tag=4197719146..Contact: <sip:200@70.xxx.xxx.xxx:5060>..Record-Route: <sip:68.xxx.xxx.xxx;ftag=2d8ac-e57529;lr=on>..Call-ID: 7b304ac5-59d54-c0a
  814d0@test.com..CSeq: 101 INVITE..Content-Type: application/sdp..Server: X-Lite release 1105x..Content-Length: 308....v=0..o=200 378856709
   378857471 IN IP4 70.xxx.xxx.xxx..s=X-Lite..c=IN IP4 70.xxx.xxx.xxx..t=0 0..m=audio 8000 RTP/AVP 0 8 3 98 97 101..a=rtpmap:0 pcmu/8000..a=rtpmap:8 pcma/80
  00..a=rtpmap:3 gsm/8000..a=rtpmap:98 iLBC/8000..a=rtpmap:97 speex/8000..a=rtpmap:101 telephone-event/8000..a=fmtp:101 0-15..a=sendrecv..

U 2006/06/30 21:13:30.399353 70.xxx.xxx.xxx:5062 -> 68.xxx.xxx.xxx:5060
  ACK sip:68.xxx.xxx.xxx SIP/2.0..Call-ID: 7b304ac5-59d54-c0a814d0@test.com..From: CIO< sip:202@test.com>;tag=2d8ac-e57529..To:
   < sip:200@test.com>;tag=4197719146..CSeq: 101 ACK..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport..Contact: CIO<sip:202@70.xxx.xxx.xxx:5062>..Ma
  x-Forwards: 70..Route: <sip:200@70.xxx.xxx.xxx:5060>..User-Agent: BVA8051S (LDTK AR18D ) STUN 1 0 0..Content-Length: 0....

U 2006/06/30 21:13:30.399553 68.xxx.xxx.xxx:5060 -> 70.xxx.xxx.xxx:5060
  ACK sip:200@70.xxx.xxx.xxx:5060 SIP/2.0..Record-Route: <sip:68.xxx.xxx.xxx;ftag=2d8ac-e57529;lr=on>..Call-ID: 7b304ac5-59d54-c0a814d0@test.com
  ..From: CIO< sip:202@test.com>;tag=2d8ac-e57529..To: <sip:200@test.com>;tag=4197719146..CSeq: 101 ACK..Via: SIP/2.0/UDP 68
  .213.154.138;branch=0..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport=5062..Contact: CIO<sip:202@70.xxx.xxx.xxx:5062>..Max-Forwards: 69..User-Agent: BVA8051S
  (LDTK AR18D ) STUN 1 0 0..Content-Length: 0....

U 2006/06/30 21:13:30.608084 70.xxx.xxx.xxx:5062 -> 68.xxx.xxx.xxx:5060
  BYE sip:68.xxx.xxx.xxx SIP/2.0..Call-ID: 7b304ac5-59d54-c0a814d0@test.com ..From: CIO<sip:202@test.com>;tag=2d8ac-e57529..To:
   < sip:200@test.com>;tag=4197719146..CSeq: 102 BYE..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5062;rport..Contact: CIO<sip:202@70.xxx.xxx.xxx:5062>..Ma
  x-Forwards: 70..Route: <sip:200@70.xxx.xxx.xxx:5060>..User-Agent: BVA8051S (LDTK AR18D ) STUN 1 0 0..Supported: timer..Proxy-Authorization: Digest userna
  me="202",realm="test.com",uri="sip:68.xxx.xxx.xxx",response="b037fee90080d847fa4c837faba14862",nonce="44a5db70e33b5ec051569d1d7fbc2c6f328d
  63f2"..Content-Length: 0....

U 2006/06/30 21:13:32.324907 70.xxx.xxx.xxx:1024 -> 68.xxx.xxx.xxx:5060
  BYE sip:202@70.xxx.xxx.xxx:5062 SIP/2.0..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5060;rport;branch=z9hG4bK6DCE6FB5347E4C64B528E78857E75918..From: < sip:200@test.com
  >;tag=4197719146..To: CIO < sip:202@test.com>;tag=2d8ac-e57529..Contact: <sip:200@70.xxx.xxx.xxx:5060>..Route: <sip:68.xxx.xx
  x.xxx;ftag=2d8ac-e57529;lr=on>..Call-ID: 7b304ac5-59d54-c0a814d0@test.com..CSeq: 27264 BYE..Max-Forwards: 70..User-Agent: X-Lite release 1
  105x..Content-Length: 0....

U 2006/06/30 21:13:33.997886 70.xxx.xxx.xxx:1024 -> 68.xxx.xxx.xxx:5060
  BYE sip:202@70.xxx.xxx.xxx:5062 SIP/2.0..Via: SIP/2.0/UDP 70.xxx.xxx.xxx:5060;rport;branch=z9hG4bK6DCE6FB5347E4C64B528E78857E75918..From: < sip:200@test.com
  >;tag=4197719146..To: CIO < sip:202@test.com>;tag=2d8ac-e57529..Contact: <sip:200@70.xxx.xxx.xxx:5060>..Route: <sip:68.xxx.xx
  x.xxx;ftag=2d8ac-e57529;lr=on>..Call-ID: 7b304ac5-59d54-c0a814d0@test.com..CSeq: 27264 BYE..Max-Forwards: 70..User-Agent: X-Lite release 1
  105x..Content-Length: 0....








Bogdan-Andrei Iancu <bogdan@voice-system.ro> wrote:
try something like:

if
(method=="BYE" || method=="CANCEL") {
unforce_rtp_proxy();
if (method=="CANCEL")
t_relay();
exit;
}

be doing this you let the BYE to reach the loose_route and be properly
routed.

regards,
bogdan




Want to be your own boss? Learn how on Yahoo! Small Business.


_______________________________________________
Users mailing list
Users@openser.org
http://openser.org/cgi-bin/mailman/listinfo/users





--
Thanks and Regards with cheers
Sunkara Ravi Prakash (Voip Developer)
Hyperion Technology
www.hyperion-tech.com