Re: [Ekiga-list] Account is no locked anymore. What to do?



On 08/17/2013 02:15 PM, Csanyi Pal wrote:

./voip_ck: line 141: _nc_app: unbound variable

Result caused by removal of app check code.
New and improved script at end of reply.

When I hash with '#' character this line
      pkill -u $USER -f $_nc_app > /dev/null 2>&1

then I can run the script with the following output:

./voip_ck 2>voip_ck.log

            Testing PC firewall (LAN) the Router (WAN) ports

Testing  LAN 127.0.1.1 ports
  Hmmm, guessing that will not test pc firewall by its self. :(



Testing  WAN 95.85.141.89 ports
STUN UDP 3478  passed
STUN UDP 3479  passed
SIP UDP 5060  passed
SIP UDP 5000  passed
SIP UDP 5100  passed
RTP UDP 7070  passed
RTP UDP 16382  passed
old H323 H.245 TCP 30000  passed
old H323 H.245 TCP 30010  passed
H.323 TCP 1720  passed

Ok now we know firewall and router are working;  :-)



            Testing sip servers by ip then by name

ping -c1 -w 2 69.71.222.197 passed
ping -c1 -w 2 46.19.58.41 passed
ping -c1 -w 2 sip2.diamondcard.us. passed
ping -c1 -w 2 sip.diamondcard.us. passed

At this point, we know your ip is not blacklisted at Diamond.
Hope the ping test did not get you blacklisted.  :(



Still can't call neither Ekiga echo test, nor Diamond echo test. Why?

At this point, I have to say it is an account setup problem.
I know I had to remove my Ekiga account, so a diamond call would get through.

New and improved script follows:

#!/bin/bash
#***********************************************************************
#*
#* voip_ck - check voip ports  version 1.1
#*
#*   Verify ports used by ekiga are open on pc and accessable
#*   through pc firewall and modem.
#*
#* Uses nc from netcat-openbsd rpm to test port connections
#*  wget from wget rpm, and
#*  dig from bind-utils rpm to check sip.diamondcard.us servers.
#*
#*     Required /etc/shorewall/rules snippet follows:
#*
#* If behind NAT router, read
#*        http://wiki.ekiga.org/index.php/Ekiga_behind_a_NAT_router
#*
#* # ekiga UDP Through NAT (STUN) ports
#* ACCEPT          $FW      net     udp     3478:3479
#* ACCEPT          net      $FW     udp     3478:3479
#*
#* # ekiga incomming SIP VoIP, Windows Messenger ports
#* ACCEPT          $FW      net     udp     5000:5100
#* ACCEPT          net      $FW     udp     5000:5100
#*
#* # ekiga incomming H.323, Netmeeting ports
#* ACCEPT          net      $FW     tcp     1720
#* ACCEPT          $FW      net     tcp     1720
#*
#***********************************************************************

    set -u
   _exe=$0
   _app=$(basename $_exe)

    _dport=0
    _errors=("")
    _fault_flg=0
    _fault_msg="pc firewall and/or tcpwrappers blocking"
    _ipv_mode="-4"
    _lan_ip=$(/bin/hostname --ip-address)
    _msg=""
    _nc_bin="nc"
    _pkt_sw=""
    _pkt="-u"
    _registar="sip.diamondcard.us"
    _rpm=""
    _servers=""
    _servers_ip=""
    _sport=38564
    _svr_fn=/local/tmp/$_app.log
    _target="$_lan_ip"
    _test=""
    _test_msg="LAN"
    _wan_ip=$(wget -qO - http://myip.dnsomatic.com/)


    port_ary=(
    "3478 UDP STUN"
    "3479 UDP STUN"
    "5060 UDP SIP"
    "5000 UDP SIP"
    "5100 UDP SIP"
    "7070 UDP RTP"
    "16382 UDP RTP"
    "30000 TCP old H323 H.245 "
    "30010 TCP old H323 H.245 "
    "1720 TCP H.323"
    )

              #**********************************
              #* Verify needed apps are installed
              #**********************************

    _apps="nc wget dig"
    for _app in $_apps ; do
      set -- $(type $_app)
      if [ "$2" != "is" ] ; then
        _errors+=("$@")
        (( _fault_flg++ ))
      fi
    done


    set -- $(type rpm)
    if [ "$2" = "is" ] ; then
      _app=nc
      set -- $(type $_app)
      _bin=$3
      if [ $? -eq 0 ] ; then
        _nc_app=$_bin
        _rpm=$(rpm -qf $_bin )
        _tmp=${_rpm:0:14}
        if [ "$_tmp" != "netcat-openbsd" ] ; then
          _errors+=("$_bin needs to be the netcat-openbsd version")
          (( _fault_flg++ ))
        fi
      fi
    fi


    if [ $_fault_flg -gt 0 ] ; then
      echo "
      $_exe fatal _error:"
      for ix in ${!_errors[*]} ; do
        printf "   %s\n" "${_errors[$ix]}"
      done
      echo "Please install any missing application "
      exit 1
    fi

    set -- $(type nc)
    _nc_app=$_bin

        #**************************************************
        #* check pc firewall (LAN) then WAN router ports
        #**************************************************
    /bin/echo "
          Testing PC firewall (LAN) the Router (WAN) ports
    "
    _fault_flg=0
    pkill -u $USER -f $_nc_app > /dev/null 2>&1
    for _test_msg in LAN WAN ; do
      /bin/echo "Testing  $_test_msg $_target ports"
      i=0
      while [ $i -ne ${#port_ary[ ]} ] ; do
        set --  $(/bin/echo ${port_ary[$i]})
        _dport=$1
        _pkt=$2
        shift 2
        _test="$@"

        if [ "$_pkt" = "UDP" ] ; then
          _pkt_sw="-u"
        else
          _pkt_sw=""
        fi

        _test_args="$_ipv_mode -s $_sport $_pkt_sw  -w 2 $_target"

        /bin/echo -n "$_test $_pkt $_dport "
        _msg="$_test_msg $_test_msg port ${port_ary[$i]}"

        $_nc_bin $_ipv_mode -l $_pkt_sw $_dport > $_svr_fn  &
        /bin/echo "$_msg" |$_nc_bin  $_test_args $_dport
        _count=$(/bin/grep -c "$_msg" $_svr_fn)
        if [ $_count -eq 0 ] ; then
          /bin/echo " FAILED"
          (( _fault_flg++ ))
          /bin/echo " "
          /bin/echo    "Sent:     $_msg "
          /bin/echo -n "Received: $_msg "
          /bin/cat $_svr_fn
          netstat | grep  $_dport
          /bin/echo "$_test_msg $_pkt port ${port_ary[$i]} is not open"
          if [ "$_test_msg" = "LAN" ] ; then
            /bin/echo "$_fault_msg port $_dport"
            /bin/echo "Open port $_dport in ${_target}'s firewall"
/bin/echo "Allow port $_dport in ${_target}'s /etc/hosts.allow or"
            /bin/echo "Remove port $_dport in ${_target}'s /etc/hosts.deny"
            /bin/echo " "
          else
            /bin/echo "$_test_msg $_pkt port ${port_ary[$i]} is not open"
            /bin/echo "Open/forward port $_dport to $_target in the router"
            /bin/echo " "
          fi
        else
          /bin/echo " passed"
        fi
        (( i++ ))
      done
      /bin/echo "

      "
      _fault_msg="Router's firewall blocking"
      _target="$_wan_ip"
    done

    pkill -u $USER -f $_nc_bin  > /dev/null 2>&1

    if [ $_fault_flg -gt 0 ] ; then
      echo "
      Clear the above errors to finish $_exe testing"
      exit 1
    fi


        #*************************************************
        #* get registar's sip udp server and ip address
        #*************************************************
    while read -r line; do
      set -- $line
      _servers="$_servers $4"
      set -- $(host $4)
      _servers_ip="$_servers_ip $4"
    done < <((dig +short _sip._udp.$_registar SRV))

        #*********************************************
        #* ping by ip then by name
        #*********************************************

   echo "
          Testing sip servers by ip then by name
   "
   _fault_flg=0
   for _serv in $_servers_ip $_servers ; do
      _cmd="ping -c1 -w 2 $_serv"
      /bin/echo -n "$_cmd"
      $_cmd > /dev/null 2>&1
      if [ $? -ne 0 ] ; then
        /bin/echo " FAILED"
        (( _fault_flg++ ))
      else
        /bin/echo " passed"
      fi
    done

    if [ $_fault_flg -ne 0 ] ; then
      echo "If one sip server FAILED and the other passed, then I
      am betting your ip ($_wan_ip) has been black listed.
      You will need to contact diamond to clear it from their blacklist.
      Repeted ping can also get you blacklisted.  :(
      "
    fi



    /bin/rm $_svr_fn

#****************** end voip_ck *********************************************











[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]