Cisco 7960 IP Phone
Friday April 22nd 2005, 10:31 am
Filed under: VOIP

We are upgrading Stu’s phone from the Sipura 841 to a Cisco 7960 IP Phone due to the better speaker phone and his high call volume. I first ordered from Compu-America since they had a great price ($263) and said on their site that they shipped in ~24hrs. After a week I called them and they told me that “Oh, we ran out them the day you called.” I pointed out that the website still said “Usually ships in 24hrs” and he muttered. I then asked when I should expect my phone to which he replied that they would get them in in 7 days and then ship it out, making my total time 3 weeks. I canceled my order.

I then called Volt Depot who had the phone for $270 and spoke to “Frosty”. He went over the differences between the 7960G-CH1 and the 7960. He also pointed out that they don’t come with a powersupply and had one for $15 (Not $40). He also offered to ship it out overnight AND sent me the SIP firmware and instructions.

Guess who’s going to get our future Cisco IP phone business?


What is the deal with restaurants?
Friday April 22nd 2005, 10:19 am
Filed under: Food and Drink, Rant, WTF

I don’t get it, I’m paying for service and food at these places and it seems more and more of them supply less options for either. My wife and I recently went to a restaurant that we have frequented in the past and they have a plate that I like. I really like a plate of fried oysters, fried shrimp and fried crawfish, which isn’t on the menu, but they have made the sub for me before. This time we were informed that the only way we could do this is by “buying” the fried crawfish ($6) in addition to the other two I wanted and the fried catfish, which I don’t like. The other option was to order the “Pick two” platter which could have any two of the 3 I prefer for $12. Neither option is what I wanted, so since we were there we picked a halfway point with my wife taking my catfish and me eating the shrimp and oysters. In the end, they didn’t get the add-on sale they were looking for and didn’t even get to sell two plates…we split one. Finally, we won’t be going back anytime soon since they have decided that I can only spend money there the way THEY want. WTF? I wasn’t asking for free food, hell, I would even pay a modest fee for what I wanted ($1-2). Oh well, less business for them.

We’ve noticed several other times lately from differing places and I just wonder, what is their motivation? Always play inside the rules someone made or take care of the customer and get them to come back and spend more money?

It’s penny wise and pound foolish in my mind…you may make money off of me this time, but I won’t be back and won’t recommend them. Who really wins in this scenario? If not the restaruant and not me, then who?

That’s just dumb.

By the way, it’s Clear Springs Cafe in Clear Springs, just outside of New Braunfels.


It’s going to be a girl!
Thursday April 14th 2005, 3:14 pm
Filed under: General

Melissa and I went in for the 19-20th week sonagram today. Dr. Blair looked everything over, skull, heart, face, cerebellum and said everything looked good. We’ll go back in 4 weeks for another look. The big news is that he is 95% sure we’re having a girl so we can start preparing. I was just happy the science part went well, but knowing what we are having means we don’t have to call it, ‘it’ anymore! I’m thrilled! Due date is still 8-10 September.


More golf tomorrow
Thursday April 14th 2005, 3:11 pm
Filed under: Golf

My partners and I are going to take some folks out for golf tomorrow in Houston. Should be an interesting time. I’ll drive to Houston tonight and stay with Mike so we can get to the course early tomorrow.


NBFloat Team
Thursday April 14th 2005, 1:29 pm
Filed under: Leisure, Local

I’ve revived the NBFloat Team website, be sure to visit it often to find out the goings on around NB.


My QoS script for Asterisk/HTTP
Monday April 11th 2005, 11:50 am
Filed under: Linux, VOIP

This is the script I’ve put together to do my QoS on my Asterisk PBX server and my Apache Webserver. It sets VOIP as the highest priority, then HTTP with mail and other stuff falling into 30 or 40. Feel free to use it if you would like. Feedback is always welcome.

IPT=/sbin/iptables
IP=/sbin/ip
TC=/sbin/tc

# Specify ethernet device, Queue length, and MTU size
# ((qlen * mtu) / rate) / 1024 = time
DEV=eth0
OUT_QLEN=100
MTU=1492

# Set to ~80% of tested maximum bandwidth
UPLINK=10000000

# specify class rates - We grant each class at LEAST its “fair share” of
# bandwidth. this way no class will ever be starved by another class.
UPLINK_1_R=512 # VOIP only
UPLINK_2_R=256 # Interactive services (HTTP)
UPLINK_3_R=256 # Default
UPLINK_4_R=128 # Bulk

# Each class is also permitted to consume all of the available bandwidth
# if no other classes are in use.
UPLINK_1_C=${UPLINK}
UPLINK_2_C=${UPLINK}
UPLINK_3_C=${UPLINK}
UPLINK_4_C=${UPLINK}

# remove old qdiscs
$TC qdisc del dev $DEV root 2> /dev/null > /dev/null
$TC qdisc del dev $DEV ingress 2> /dev/null > /dev/null

# reset iptables rules
$IPT -t mangle -D POSTROUTING -o $DEV -j MYOUT
echo “first”
#$IPT -t mangle -D PREROUTING -o $DEV -j MYOUT
$IPT -t mangle -F MYOUT
$IPT -t mangle -X MYOUT

# set outgoing queue length
#$IP link set dev $DEV qlen ${OUT_QLEN}

# lower the MTU to decrease latency
#$IP link set dev $DEV mtu $MTU

# Create HTB root qdisc with an htb default of 30
$TC qdisc add dev $DEV root handle 1: htb default 40

# create main rate limit class
$TC class add dev $DEV parent 1: classid 1:1 htb rate ${UPLINK}kbit

# create leaf rate limit classes
$TC class add dev $DEV parent 1:1 classid 1:10 htb rate ${UPLINK_1_R}kbit ceil ${UPLINK_1_C}kbit prio 0
$TC class add dev $DEV parent 1:1 classid 1:20 htb rate ${UPLINK_2_R}kbit ceil ${UPLINK_2_C}kbit prio 1
$TC class add dev $DEV parent 1:1 classid 1:30 htb rate ${UPLINK_3_R}kbit ceil ${UPLINK_3_C}kbit prio 2
$TC class add dev $DEV parent 1:1 classid 1:40 htb rate ${UPLINK_4_R}kbit ceil ${UPLINK_4_C}kbit prio 3

# attach qdisc to leaf classes - here we at SFQ to each priority class. SFQ
# insures that within each class connections will be treated (almost) fairly.
$TC qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
$TC qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10
$TC qdisc add dev $DEV parent 1:30 handle 30: sfq perturb 10
$TC qdisc add dev $DEV parent 1:40 handle 40: sfq perturb 10

# add MYOUT chain to the mangle table in $IPT - this sets up the table
# we use to filter and mark packets.
$IPT -t mangle -N MYOUT
echo “second”
$IPT -t mangle -I POSTROUTING -o $DEV -j MYOUT
echo “third”

# add fwmark entries to classify different types of traffic - Set fwmark from
# 10-40 according to desired class. 10 is highest prio.
$IPT -t mangle -A MYOUT -j MARK –set-mark 30

# outgoing VOIP rules - trumps everything else
#$IPT -t mangle -A MYOUT -p udp –sport 5060:5063 -j CLASSIFY –set-class 1:10
#$IPT -t mangle -A MYOUT -p udp –dport 5060:5063 -j CLASSIFY –set-class 1:10
#$IPT -t mangle -A MYOUT -p udp –sport 4569:4569 -j CLASSIFY –set-class 1:10
#$IPT -t mangle -A MYOUT -p udp –dport 4569:4569 -j CLASSIFY –set-class 1:10
#$IPT -t mangle -A MYOUT -p udp –sport 5036:5036 -j CLASSIFY –set-class 1:10
#$IPT -t mangle -A MYOUT -p udp –dport 5036:5036 -j CLASSIFY –set-class 1:10
$IPT -t mangle -A MYOUT -p udp –sport 4569 -j MARK –set-mark 10
$IPT -t mangle -A MYOUT -p udp –dport 4569 -j MARK –set-mark 10
$IPT -t mangle -A MYOUT -p udp –sport 5060:5070 -j MARK –set-mark 10
$IPT -t mangle -A MYOUT -p udp –dport 5060:5070 -j MARK –set-mark 10
$IPT -t mangle -A MYOUT -p udp –sport 16000:17000 -j MARK –set-mark 10
$IPT -t mangle -A MYOUT -p udp –dport 16000:17000 -j MARK –set-mark 10

# default for outgoing interactive ports rules
#$IPT -t mangle -A MYOUT -p tcp –sport 0:1024 -j CLASSIFY –set-class 1:20
#$IPT -t mangle -A MYOUT -p tcp –dport 0:1024 -j CLASSIFY –set-class 1:20
#$IPT -t mangle -A MYOUT -p tcp –sport 0:1024 -j MARK –set-mark 20
#$IPT -t mangle -A MYOUT -p tcp –dport 0:1024 -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –sport smtp -j MARK –set-mark 40
$IPT -t mangle -A MYOUT -p tcp –dport smtp -j MARK –set-mark 40
$IPT -t mangle -A MYOUT -p tcp –sport rsync -j MARK –set-mark 40
$IPT -t mangle -A MYOUT -p tcp –dport rsync -j MARK –set-mark 40

# the ack rule ¿ for ack packets smaller than 64 bytes –it must be
#added using
# tc filter instead of iptables for now because the length module appears to be
# broken and/or missing from the wrt54g iptables
$TC filter add dev $DEV parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match u16 0×0000 0xffc0 at 2 match u8 0×10 0xff at 33 flowid 1:10
$TC filter add dev $DEV parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match u16 0×0000 0xffc0 at 2 match u8 0×60 0xff at 33 flowid 1:10
$TC filter add dev $DEV parent 1:0 prio 1 protocol ip u32 match ip protocol 6 0xff match u16 0×0000 0xffc0 at 2 match u8 0xb8 0xff at 33 flowid 1:10

# outgoing DNS rule
#$IPT -t mangle -A MYOUT -p udp –dport domain -j CLASSIFY –set-class 1:20
$IPT -t mangle -A MYOUT -p udp –dport domain -j MARK –set-mark 20

# cheap outgoing ping rule
#$IPT -t mangle -A MYOUT -p icmp -j CLASSIFY –set-class 1:20

# outgoing ssh connection rule
#$IPT -t mangle -A MYOUT -p tcp –sport ssh -j CLASSIFY –set-class 1:20
#$IPT -t mangle -A MYOUT -p tcp –dport ssh -j CLASSIFY –set-class 1:20
$IPT -t mangle -A MYOUT -p tcp –sport ssh -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –dport ssh -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –sport 2545 -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –dport 2545 -j MARK –set-mark 20

#
# Web
#
$IPT -t mangle -A MYOUT -p tcp –sport http -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –dport http -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –sport https -j MARK –set-mark 20
$IPT -t mangle -A MYOUT -p tcp –dport https -j MARK –set-mark 20

# outgoing P2P rules ¿ these are close to last b/c they use relatively costly layer 7 matching
#$IPT -t mangle -A MYOUT -m layer7 –l7dir /etc/l7-protocols/protocols –l7proto directconnect -j CLASSIFY –set-class 1:40
#$IPT -t mangle -A MYOUT -m layer7 –l7dir /etc/l7-protocols/protocols –l7proto fasttrack -j CLASSIFY –set-class 1:40

# outgoing default rule - unmarked packets get schleped into lowest prio
#$IPT -t mangle -A MYOUT -m mark –mark 0 -j CLASSIFY –set-class 1:30

# No Classify, so we need to assign them
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 10 fw flowid 1:10
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 30 fw flowid 1:30
tc filter add dev eth0 parent 1:0 prio 0 protocol ip handle 40 fw flowid 1:40

# All done, exit ok
exit 0


Cygwin DISTCC toolchain update coming
Sunday April 03rd 2005, 11:41 am
Filed under: Linux

After a long absence, I’m going to be rebuilding my Cygwin distcc toolchain for Gentoo today/tonight. I’ve upgraded to GCC 3.4.3 on my Gentoo boxes and want to have that and new binutils and glibc available. binutils and glibc will be from stable, only GCC will be ~x86.