<div dir="ltr">Hi all, Another attempt,<br><br>After doing some tests, I saw that one of the problems was that was necessary to comment the following lines within the deffinition of the RELAY route:<br><br># enable additional event routes for forwarded requests<br>
    # - serial forking, RTP relaying handling, a.s.o.<br>    #if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {<br>    #    if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");<br>    #}<br>
<br><br>    At this time, all the features of my old configuration are working fine, and I can make good calls beetween standard SIP UA's and JSSIP UA's, originationg the call from both sides. I'm Using  Cisco SPA3000 GW, and Twinkle and SJ Phone softphones. <br>
<br>    But now, problems are still present with calls between JS SIP UA's. When the B side accepts the calls, Kamailio sends OK to A side, but Offering RTP/AVP instead of RTP/SAVFP, and the call is been rejected because of BAD Media Description. <br>
<br>Can anybody help me with this issue, please?. Here you are a snippet of my config, wich is based in the standard one, mixed with the example of Carlos Ruiz Diaz: <br><br><br><br><br><br>####### Routing Logic ########<br>
<br><br># Main SIP request routing logic<br># - processing of any incoming SIP request starts with this route<br># - note: this is the same as route { ... }<br>request_route {<br><br>    #!ifdef WITH_WEBSOCKETS<br>    if ((($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)<br>
        && !(proto == WS || proto == WSS)) || $Rp == MY_MSRP_PORT) {<br>        xlog("L_WARN", "SIP request received on $Rp\n");<br>        sl_send_reply("403", "Forbidden");<br>
        exit;<br>    }<br>    #!endif<br><br>    # per request initial checks<br>    route(REQINIT);<br><br>    #!ifdef WITH_WEBSOCKETS<br>    if (nat_uac_test(64)) {<br>    # Do NAT traversal stuff for requests from a WebSocket<br>
    # connection - even if it is not behind a NAT!<br>    # This won't be needed in the future if Kamailio and the<br>    # WebSocket client support Outbound and Path.<br>    force_rport();<br>    if (is_method("REGISTER")) {<br>
    fix_nated_register();<br>    } else {<br>    if (!add_contact_alias()) {<br>    xlog("L_ERR", "Error aliasing contact <$ct>\n");<br>    sl_send_reply("400", "Bad Request");<br>
    exit;<br>    }<br>    }<br>    }<br>    #!endif<br>    <br><br>    # NAT detection<br>    route(NATDETECT);<br><br><br>    # CANCEL processing<br>    if (is_method("CANCEL"))<br>    {<br>        if (t_check_trans()) {<br>
            route(RELAY);<br>        }<br>        exit;<br>    }<br><br>    # handle requests within SIP dialogs<br>    route(WITHINDLG);<br>    <br><br>    ### only initial requests (no To tag)<br><br>    t_check_trans();<br>
<br>    # authentication<br>    route(AUTH);<br><br>    # record routing for dialog forming requests (in case they are routed)<br>    # - remove preloaded route headers<br>    remove_hf("Route");<br>    if (is_method("INVITE|SUBSCRIBE"))<br>
        record_route();<br><br><br><br>    # account only INVITEs<br>    if (is_method("INVITE"))<br>    {<br>        setflag(FLT_ACC); # do accounting<br>    #!ifdef WITH_CPL<br>    if(!cpl_run_script("incoming","is_stateful"))<br>
                {<br>                        # script execution failed<br>                        t_reply("500","CPL script execution failed");<br>                 };<br>    #!endif<br><br>    }<br><br>
    # dispatch requests to foreign domains<br>    route(SIPOUT);<br><br>    ### requests for my local domains<br><br>    # handle presence related requests<br>    route(PRESENCE);<br><br>    # handle registrations<br>    route(REGISTRAR);<br>
<br>    if ($rU==$null)<br>    {<br>        # request with no Username in RURI<br>        sl_send_reply("484","Address Incomplete");<br>        exit;<br>    }<br><br>    #if (!is_method("INVITE")) {<br>
    #route(RELAY);<br>    #exit;<br>    #}<br><br>    <br>    if (!is_method("INVITE")) {<br>    route(RELAY);<br>    exit;<br>    }<br><br>    # user location service<br>    route(LOCATION);<br>}<br><br>#!ifdef WITH_WEBRTCGW<br>
route[SETUP_BY_TRANSPORT] {<br><br><br>if ($ru =~ "transport=ws") {<br>xlog("L_INFO", "Request going to WS");<br>rtpproxy_manage("froc+SP");<br>t_on_reply("REPLY_FROM_WS");<br>
<br>}<br>else if ($proto =~ "ws") {<br>xlog("L_INFO", "Request coming from WS");<br>rtpproxy_manage("froc-sp");<br>t_on_reply("REPLY_TO_WS");<br><br>}<br>else {<br>xlog("L_INFO", "This is a classic phone call");<br>
rtpproxy_manage("co");<br>t_on_reply("MANAGE_CLASSIC_REPLY");<br>}<br>}<br><br>#!endif<br><br><br>route[RELAY] {<br><br>    #!ifdef WITH_WEBRTCGW<br>    route(SETUP_BY_TRANSPORT);<br>    #!endif<br><br>
<br>    # enable additional event routes for forwarded requests<br>    # - serial forking, RTP relaying handling, a.s.o.<br>    #if (is_method("INVITE|BYE|SUBSCRIBE|UPDATE")) {<br>    #    if(!t_is_set("branch_route")) t_on_branch("MANAGE_BRANCH");<br>
    #}<br>    if (is_method("INVITE|SUBSCRIBE|UPDATE")) {<br>        if(!t_is_set("onreply_route")) t_on_reply("MANAGE_REPLY");<br>    }<br>    if (is_method("INVITE")) {<br>        if(!t_is_set("failure_route")) t_on_failure("MANAGE_FAILURE");<br>
    }<br><br>    if (!t_relay()) {<br>        sl_reply_error();<br>    }<br>    exit;<br>}<br><br># Per SIP request initial checks<br>route[REQINIT] {<br>#!ifdef WITH_ANTIFLOOD<br>    # flood dection from same IP and traffic ban for a while<br>
    # be sure you exclude checking trusted peers, such as pstn gateways<br>    # - local host excluded (e.g., loop to self)<br>    if(src_ip!=myself)<br>    {<br>        if($sht(ipban=>$si)!=$null)<br>        {<br>            # ip is already blocked<br>
            xdbg("request from blocked IP - $rm from $fu (IP:$si:$sp)\n");<br>            exit;<br>        }<br>        if (!pike_check_req())<br>        {<br>            xlog("L_ALERT","ALERT: pike blocking $rm from $fu (IP:$si:$sp)\n");<br>
            $sht(ipban=>$si) = 1;<br>            exit;<br>        }<br>    }<br>#!endif<br><br>    if (!mf_process_maxfwd_header("10")) {<br>        sl_send_reply("483","Too Many Hops");<br>
        exit;<br>    }<br><br>    if(!sanity_check("1511", "7"))<br>    {<br>        xlog("Malformed SIP message from $si:$sp\n");<br>        exit;<br>    }<br>}<br><br># Handle requests within SIP dialogs<br>
route[WITHINDLG] {<br>    if (has_totag()) {<br>        # sequential request withing a dialog should<br>        # take the path determined by record-routing<br>        if (loose_route()) {<br><br>            #!ifdef WITH_WEBSOCKETS<br>
            if ($du == "") {<br>            if (!handle_ruri_alias()) {<br>            xlog("L_ERR", "Bad alias <$ru>\n");<br>            sl_send_reply("400", "Bad Request");<br>
            exit;<br>            }<br>            }<br>            #!endif<br>            route(DLGURI);<br>            if (is_method("BYE")) {<br>                setflag(FLT_ACC); # do accounting ...<br>                setflag(FLT_ACCFAILED); # ... even if the transaction fails<br>
            }<br>            else if ( is_method("ACK") ) {<br>                # ACK is forwarded statelessy<br>                route(NATMANAGE);<br>            }<br>            else if ( is_method("NOTIFY") ) {<br>
                # Add Record-Route for in-dialog NOTIFY as per RFC 6665.<br>                record_route();<br>            }<br>            route(RELAY);<br>        } else {<br>            if (is_method("SUBSCRIBE") && uri == myself) {<br>
                # in-dialog subscribe requests<br>                route(PRESENCE);<br>                exit;<br>            }<br>            if ( is_method("ACK") ) {<br>                if ( t_check_trans() ) {<br>
                    # no loose-route, but stateful ACK;<br>                    # must be an ACK after a 487<br>                    # or e.g. 404 from upstream server<br>                    route(RELAY);<br>                    exit;<br>
                } else {<br>                    # ACK without matching transaction ... ignore and discard<br>                    exit;<br>                }<br>            }<br>            sl_send_reply("404","Not here");<br>
        }<br>        exit;<br>    }<br>}<br><br># Handle SIP registrations<br>route[REGISTRAR] {<br>    if (is_method("REGISTER"))<br>    {<br>        #!ifdef WITH_CPL        <br>        cpl_process_register();<br>
        #!endif<br>        if(isflagset(FLT_NATS))<br>        {<br>            setbflag(FLB_NATB);<br>            # uncomment next line to do SIP NAT pinging <br>            ## setbflag(FLB_NATSIPPING);<br>        }<br>        if (!save("location"))<br>
            sl_reply_error();<br><br>        exit;<br>    }<br>}<br><br># USER location service<br>route[LOCATION] {<br><br>#!ifdef WITH_SPEEDDIAL<br>    # search for short dialing - 2-digit extension<br>    if($rU=~"^[0-9][0-9]$")<br>
        if(sd_lookup("speed_dial"))<br>            route(SIPOUT);<br>#!endif<br><br>#!ifdef WITH_ALIASDB<br>    # search in DB-based aliases<br>    if(alias_db_lookup("dbaliases"))<br>        route(SIPOUT);<br>
#!endif<br><br>    $avp(oexten) = $rU;<br>    if (!lookup("location")) {<br>        $var(rc) = $rc;<br>        route(TOVOICEMAIL);<br>        t_newtran();<br>        switch ($var(rc)) {<br>            case -1:<br>
            case -3:<br>                send_reply("404", "Not Found");<br>                exit;<br>            case -2:<br>                send_reply("405", "Method Not Allowed");<br>
                exit;<br>        }<br>    }<br><br>    # when routing via usrloc, log the missed calls also<br>    if (is_method("INVITE"))<br>    {<br>        setflag(FLT_ACCMISSED);<br>    }<br>    <br>    route(RELAY);<br>
    exit;<br>    <br>}<br><br># Presence server route<br>route[PRESENCE] {<br>    if(!is_method("PUBLISH|SUBSCRIBE"))<br>        return;<br><br>    if(is_method("SUBSCRIBE") && $hdr(Event)=="message-summary") {<br>
        route(TOVOICEMAIL);<br>        # returns here if no voicemail server is configured<br>        sl_send_reply("404", "No voicemail service");<br>        exit;<br>    }<br><br>#!ifdef WITH_PRESENCE<br>
    if (!t_newtran())<br>    {<br>        sl_reply_error();<br>        exit;<br>    }<br><br>    if(is_method("PUBLISH"))<br>    {<br>        handle_publish();<br>        t_release();<br>    } else if(is_method("SUBSCRIBE")) {<br>
        handle_subscribe();<br>        t_release();<br>    }<br>    exit;<br>#!endif<br>    <br>    # if presence enabled, this part will not be executed<br>    if (is_method("PUBLISH") || $rU==$null)<br>    {<br>
        sl_send_reply("404", "Not here");<br>        exit;<br>    }<br>    return;<br>}<br><br># Authentication route<br>route[AUTH] {<br>#!ifdef WITH_AUTH<br><br>#!ifdef WITH_IPAUTH<br>    if((!is_method("REGISTER")) && allow_source_address())<br>
    {<br>        # source IP allowed<br>        return;<br>    }<br>#!endif<br><br>    if (is_method("REGISTER") || from_uri==myself)<br>    {<br>        # authenticate requests<br>        if (!auth_check("$fd", "subscriber", "1")) {<br>
            auth_challenge("$fd", "0");<br>            exit;<br>        }<br>        # user authenticated - remove auth header<br>        if(!is_method("REGISTER|PUBLISH"))<br>            consume_credentials();<br>
    }<br>    # if caller is not local subscriber, then check if it calls<br>    # a local destination, otherwise deny, not an open relay here<br>    if (from_uri!=myself && uri!=myself)<br>    {<br>        sl_send_reply("403","Not relaying");<br>
        exit;<br>    }<br><br>#!endif<br>    return;<br>}<br><br># Caller NAT detection route<br>route[NATDETECT] {<br>#!ifdef WITH_NAT<br>    force_rport();<br>    if (nat_uac_test("19")) {<br>        if (is_method("REGISTER")) {<br>
            fix_nated_register();<br>        } else {<br>            if(is_first_hop())<br>                set_contact_alias();<br>            <br>        }<br>        setflag(FLT_NATS);<br>    }<br>#!endif<br>    return;<br>
}<br><br># RTPProxy control<br>route[NATMANAGE] {<br>#!ifdef WITH_NAT<br>    if (is_request()) {<br>        if(has_totag()) {<br>            if(check_route_param("nat=yes")) {<br>                setbflag(FLB_NATB);<br>
            }<br>        }<br>    }<br>    if (!(isflagset(FLT_NATS) || isbflagset(FLB_NATB)))<br>        return;<br><br>    #rtpproxy_manage("co");<br><br>    if (is_request()) {<br>        if (!has_totag()) {<br>
            if(t_is_branch_route()) {<br>                add_rr_param(";nat=yes");<br>            }<br>        }<br>    }<br>    if (is_reply()) {<br>        if(isbflagset(FLB_NATB)) {<br>            if(is_first_hop())<br>
                set_contact_alias();<br>                #add_contact_alias();<br>        }<br>    }<br>#!endif<br>    return;<br>}<br><br># URI update for dialog requests<br>route[DLGURI] {<br>#!ifdef WITH_NAT<br>    if(!isdsturiset()) {<br>
        handle_ruri_alias();<br>    }<br>#!endif<br>    return;<br>}<br><br># Routing to foreign domains<br>route[SIPOUT] {<br>    if (!uri==myself)<br>    {<br>        append_hf("P-hint: outbound\r\n");<br>        route(RELAY);<br>
    }<br>}<br><br># XMLRPC routing<br>#!ifdef WITH_XMLRPC<br>route[XMLRPC] {<br>    # allow XMLRPC from localhost<br>    if ((method=="POST" || method=="GET")<br>            && (src_ip==127.0.0.1)) {<br>
        # close connection only for xmlrpclib user agents (there is a bug in<br>        # xmlrpclib: it waits for EOF before interpreting the response).<br>        if ($hdr(User-Agent) =~ "xmlrpclib")<br>            set_reply_close();<br>
        set_reply_no_connect();<br>        dispatch_rpc();<br>        exit;<br>    }<br>    send_reply("403", "Forbidden");<br>    exit;<br>}<br>#!endif<br><br># route to voicemail server<br>route[TOVOICEMAIL] {<br>
#!ifdef WITH_VOICEMAIL<br>    if(!is_method("INVITE|SUBSCRIBE"))<br>        return;<br><br>    # check if VoiceMail server IP is defined<br>    if (strempty($sel(cfg_get.voicemail.srv_ip))) {<br>        xlog("SCRIPT: VoiceMail rotuing enabled but IP not defined\n");<br>
        return;<br>    }<br>    if(is_method("INVITE")) {<br>        if($avp(oexten)==$null)<br>            return;<br>        $ru = "sip:" + $avp(oexten) + "@" + $sel(cfg_get.voicemail.srv_ip)<br>
                + ":" + $sel(cfg_get.voicemail.srv_port);<br>    } else {<br>        if($rU==$null)<br>            return;<br>        $ru = "sip:" + $rU + "@" + $sel(cfg_get.voicemail.srv_ip)<br>
                + ":" + $sel(cfg_get.voicemail.srv_port);<br>    }<br>    route(RELAY);<br>    exit;<br>#!endif<br><br>    return;<br>}<br><br># manage outgoing branches<br>branch_route[MANAGE_BRANCH] {<br>    xdbg("new branch [$T_branch_idx] to $ru\n");<br>
    route(NATMANAGE);<br>}<br><br># manage incoming replies<br>onreply_route[MANAGE_REPLY] {<br>    xdbg("incoming reply\n");<br>    if(status=~"[12][0-9][0-9]")<br>        route(NATMANAGE);<br>}<br><br>
# manage failure routing cases<br>failure_route[MANAGE_FAILURE] {<br>    route(NATMANAGE);<br><br>    if (t_is_canceled()) {<br>        exit;<br>    }<br><br>#!ifdef WITH_BLOCK3XX<br>    # block call redirect based on 3xx replies.<br>
    if (t_check_status("3[0-9][0-9]")) {<br>        t_reply("404","Not found");<br>        exit;<br>    }<br>#!endif<br><br>################################################# <br>#Desvío a buzón de voz si ocupado o no contesta<br>
<br>if (t_check_status("486|408")) { <br>        remove_hf("P-App-Name");<br>        append_hf("P-App-Name: voicemail\r\n"); <br>        $var(usr_voicemail) = "voicemail" + $rU;<br>
        append_hf("P-App-Param: mod=box;usr=$var(usr_voicemail);dom=<a href="http://sipproxy.a.com">sipproxy.a.com</a>;uid=$var(usr_voicemail);did=<a href="http://sipproxy.a.com">sipproxy.a.com</a>;\r\n");<br>         $ru = "sip:" + $var(usr_voicemail) + "@" + "<a href="http://192.168.0.197:5080">192.168.0.197:5080</a>";<br>
        $du = $null;<br>        route(RELAY); <br>        exit;<br>    }<br>#################################################<br><br><br>#!ifdef WITH_VOICEMAIL<br>    # serial forking<br>    # - route to voicemail on busy or no answer (timeout)<br>
    if (t_check_status("486|408")) {<br>        $du = $null;<br>        route(TOVOICEMAIL);<br>        exit;<br>    }<br>#!endif<br><br>}<br><br>#!ifdef WITH_WEBSOCKETS<br>onreply_route {<br>if ((($Rp == MY_WS_PORT || $Rp == MY_WSS_PORT)<br>
&& !(proto == WS || proto == WSS)) || $Rp == MY_MSRP_PORT) {<br>xlog("L_WARN", "SIP response received on $Rp\n");<br>drop;<br>exit;<br>}<br> <br>if (nat_uac_test(64)) {<br># Do NAT traversal stuff for replies to a WebSocket connection<br>
# - even if it is not behind a NAT!<br># This won't be needed in the future if Kamailio and the<br># WebSocket client support Outbound and Path.<br>add_contact_alias();<br>}<br>}<br> <br>event_route[xhttp:request] {<br>
set_reply_close();<br>set_reply_no_connect();<br>if ($Rp != MY_WS_PORT<br>#!ifdef WITH_TLS<br>&& $Rp != MY_WSS_PORT<br>#!endif<br>) {<br>xlog("L_WARN", "HTTP request received on $Rp\n");<br>xhttp_reply("403", "Forbidden", "", "");<br>
exit;<br>}<br> <br>xlog("L_DBG", "HTTP Request Received\n");<br> <br>if ($hdr(Upgrade)=~"websocket"<br>&& $hdr(Connection)=~"Upgrade"<br>&& $rm=~"GET") {<br>
 <br># Validate Host - make sure the client is using the correct<br># alias for WebSockets<br>if ($hdr(Host) == $null || !is_myself("sip:" + $hdr(Host))) {<br>xlog("L_WARN", "Bad host $hdr(Host)\n");<br>
xhttp_reply("403", "Forbidden", "", "");<br>exit;<br>}<br> <br># Optional... validate Origin - make sure the client is from an<br># authorised website. For example,<br>#<br># if ($hdr(Origin) != "<a href="http://communicator.MY_DOMAIN">http://communicator.MY_DOMAIN</a>"<br>
# && $hdr(Origin) != "<a href="https://communicator.MY_DOMAIN">https://communicator.MY_DOMAIN</a>") {<br># xlog("L_WARN", "Unauthorised client $hdr(Origin)\n");<br># xhttp_reply("403", "Forbidden", "", "");<br>
# exit;<br># }<br> <br># Optional... perform HTTP authentication<br> <br># ws_handle_handshake() exits (no further configuration file<br># processing of the request) when complete.<br>if (ws_handle_handshake())<br>{<br># Optional... cache some information about the<br>
# successful connection<br>exit;<br>}<br>}<br> <br>xhttp_reply("404", "Not Found", "", "");<br>}<br> <br>event_route[websocket:closed] {<br>xlog("L_INFO", "WebSocket connection from $si:$sp has closed\n");<br>
}<br>#!endif<br><br><br>#!ifdef WITH_WEBRTCGW<br>onreply_route[REPLY_TO_WS] {<br><br>xlog("L_INFO", "Reply from softphone: $rs");<br><br>if (t_check_status("183")) {<br>change_reply_status("180", "Ringing");<br>
remove_body();<br>exit;<br>}<br><br>if(!(status=~"[12][0-9][0-9]"))<br>return;<br><br>rtpproxy_manage("froc+SP");<br><br>route(NATMANAGE);<br>}<br><br>onreply_route[REPLY_FROM_WS] {<br><br>xlog("L_INFO", "Reply from webrtc client: $rs");<br>
<br>if(status=~"[12][0-9][0-9]") {<br>rtpproxy_manage("froc-sp");<br>route(NATMANAGE);<br>}<br>}<br><br>onreply_route[MANAGE_CLASSIC_REPLY] {<br>xlog("L_INFO", "Boring reply from softphone: $rs");<br>
<br>if(status=~"[12][0-9][0-9]") {<br>rtpproxy_manage("co");<br>route(NATMANAGE);<br>}<br>}<br><br><br><br><br>#!endif<br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-06-02 21:49 GMT+02:00 LAA <span dir="ltr"><<a href="mailto:ornitorrinco7424@gmail.com" target="_blank">ornitorrinco7424@gmail.com</a>></span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div class="gmail_quote"><br><br></div><div class="gmail_quote">Apologize. Previous message was too long.<br>
L.<br><br><br>El 02/06/2014 20:25, "LAA" <<a href="mailto:ornitorrinco7424@gmail.com" target="_blank">ornitorrinco7424@gmail.com</a>> escribió:<div class=""><br type="attribution">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr">Hi all,<br><br>Another guy strugling his mind trying to get a configuration to enable calls between WebRTC UA (JSSIP) to standard SIP UA (Twinkle or SjPhone) I've been working with the examples that were shared by Carlos Ruiz Diaz and Peter Dunkley (thanks to both). <br>





<br><a href="http://www.slideshare.net/crocodilertc/webrtc-websockets" target="_blank">http://www.slideshare.net/crocodilertc/webrtc-websockets</a><br><a href="http://caruizdiaz.com/2014/02/26/webrtc-kamailio/" target="_blank">http://caruizdiaz.com/2014/02/26/webrtc-kamailio/</a><br>





<br>Kamailio is not running behind NAT. I'm using rtpproxy-ng module with Kamailio 4.1.3, and Rtpengine.<br><br>I share a link with my current configuration, wich is based in Peters example, with websocket support from websocket.cfg example.<br>





<br>-  Calls between SIP standard UA's are working OK. I have some endpoint behind nat.<br>-  Calls between JSIP UA's are working OK. So, websocket support is running.<br>-  Calls from JSIP and Twinkle are NOT WORKING OK. sip UA send's back a 488 response, and Kamailio send it back to JSSIP (Incompatible SDP).<br>





-  Calls from Twinkle to Jsip are NOT WORKING OK: Kamailio sends an INVITE to JSIP, and it returns an error. And Kamailio sends 488 to Twinkle.<br><br><br>It seems as if Kamailio is not catching 488. I share a snippet of my config, and links to tcpdump captures:<br>





<br><a href="https://www.dropbox.com/s/i7c9ty57oauujc4/fromws0.pcap" target="_blank">https://www.dropbox.com/s/i7c9ty57oauujc4/fromws0.pcap</a><br><div><a href="https://www.dropbox.com/s/q3q30pgzvdoswts/kamailio.cfg" target="_blank">https://www.dropbox.com/s/q3q30pgzvdoswts/kamailio.cfg</a><br>






</div><a href="https://www.dropbox.com/s/rqtjwcbgg1foaoq/tows0.pcap" target="_blank">https://www.dropbox.com/s/rqtjwcbgg1foaoq/tows0.pcap</a><br><br>What am I missing?<br><br><br>Best regards.<br><br>Luis.<br><br><br><br>





<br><br><br><br></div>
</blockquote></div></div>
</div>
</blockquote></div><br></div>