jnfuller.freeshell.org - The home page of Josh Fuller
   


The homepage of Josh Fuller.


Categories

 ·dance
 ·film
 ·als
 ·markus
 ·music
 ·tsfwon
  ·hardware
  ·networks
  ·software
 ·linux
  ·debian
  ·TELUS
  ·voip
   ·regex
 ·unix
  ·bsd
 ·xnu


2008
Months
Sep
Oct Nov Dec

Josh Fuller
jnfuller at gmail dot com

Subscribe

Subscribe to a syndicated feed of my weblog
       

Fri, 05 Sep 2008

facebook test

I've just added my rss feed to facebook and I want to see what happens when I post here. Test. test. test.

email: Josh Fuller | tag: /personal | permanent link | Share on Facebook

Tue, 26 Aug 2008

My Music

If you were looking for my music you can find it all in archive.org for the moment.

I've also added it to iLike.

email: Josh Fuller | tag: /personal/music | permanent link | Share on Facebook

Mon, 25 Aug 2008

FREE Maytag Washer and Wood Stove

I've just added two FREE listings to Craigslist...

Washer --- Maytag Heavy Duty Washer Gone!

Wood Stove --- A wood stove perfect for a cabin or a hunting camp

You're too late, suckers!

email: Josh Fuller | tag: /personal/craigslist | permanent link | Share on Facebook

Wed, 13 Aug 2008

good songs

Ryan Adams and The Cardinals

  • Sweet Illusions

Alexisonfire

Catherine Wheel

  • Fripp

Matthew Good

Saul Williams

Sigur Rós

TV on the Radio

Ultra Vivid Scene

Zach de la Rocha, KRS 1, The Last Emperor

email: Josh Fuller | tag: /personal/music | permanent link | Share on Facebook

Mon, 04 Aug 2008

I am selling my home

If you live in the Vancouver Lower Mainland and have been looking for a home in New Westminster I am selling my home.

email: Josh Fuller | tag: /personal | permanent link | Share on Facebook

Thu, 31 Jul 2008

fromdomain and fromuser in sip.conf

I've started to use fromuser and fromdomain in sip.conf for Asterisk to force override user and domain when pointing towards a sip friend...

[border-controller-none]
    type=friend
    nat=yes
    host=10.0.0.1
    insecure=port,invite
    promiscredir=yes
    context=example-sip

[border-controller-anon]
    type=friend
    nat=yes
    fromuser=Anonymous
    fromdomain=anonymous.invalid 
    host=10.0.0.1
    insecure=port,invite
    promiscredir=yes
    context=example-sip

[border-controller-unkn]
    type=friend
    nat=yes
    fromuser=Unknown
    fromdomain=unknown.invalid 
    host=10.0.0.1
    insecure=port,invite
    promiscredir=yes
    context=example-sip

This allows me to turn presentation into a subroutine in extensions.conf...


[example-presentations]

; --- anon bogon present pai ---

  exten => 71,1,NoOp()
  exten => 71,n,SIPAddHeader(P-Asserted-Identity ) 
  exten => 71,n,SIPAddHeader(Privacy: header\; session)
  exten => 71,n,Set(CALLERID(all)=anonymous <>)
  exten => 71,n,Set(PrivacyInd=anon)
  exten => 71,n,Return()

... and this can in turn be called by a context...

  exten =>_XX*.,1,NoOp()
  exten => _XX*.,n,Gosub(example-presentations,${EXTEN:0:2},1)              
  exten => _XX*.,n,Dial(SIP/+${EXTEN:3}@border-controller-${PrivacyInd}) 
  exten => _XX*.,n,Hangup()

... which greatly simplifies a lot of testing by turning presentations into reusable scenarios and is very handy for spoofing privacy headers in a lab environment.

email: Josh Fuller | tag: /technology/telecommunications/voip | permanent link | Share on Facebook

Thu, 17 Jul 2008

NOTICE: The views expressed on this Web site are mine alone and do not necessarily reflect the views of my employer.

Making Os X "Say" TELUS...

Out of the box, Os X 10.5 Leopard has a fantastic new voice called Alex.

Alex has wonderfuly diction and can say many words flawlessly.

Unfortunately, Alex can't say TELUS very well.

So, to get Alex to say the brand name I tried a few permutations and settled on this:

iMac:~ UserAcct$ say Tellaes

Hooked on phonics saves the day!

email: Josh Fuller | tag: /technology/telecommunications/TELUS | permanent link | Share on Facebook

Sat, 31 May 2008

JDiskReport

jdiskreport --- The tool analyses your disk drives and collects several statistics which you can view as overview charts and details tables.

I used the app to regain about 90GB of space I'd filled with old system emulator images that I had completely forgotten about today. It's well worth the download if you have a jre installed that will allow you to run the program.

Very handy. Very cross-platform. The only negative I can find is that you can't delete files within the application.

The only Windows tool that I know of that even comes close is Steffen Gerlach's Scanner.

email: Josh Fuller | tag: /technology/computing/software | permanent link | Share on Facebook

Thu, 29 May 2008

The Debian SSH Fiasco

After reading Lessons from the Debian/OpenSSL Fiasco , reading some of the HORRIFIC OpenSSL code and also reading the BSD license-- which isn't really "kopyleft: all rites reversed" enough for my tastes-- I've decided to give Debian another chance.

I'm still a little nervous about the possibilities of upstream package management being able to change developer code at the last minute but I think the benefits of APT might outweight the risks.

I do think I will explore csh some more after playing in BSD-land for a while, though.

email: Josh Fuller | tag: /technology/linux/debian | permanent link | Share on Facebook

Wed, 28 May 2008

NOTICE: The views expressed on this Web site are mine alone and do not necessarily reflect the views of my employer.

The Oasis

Today when I walked into the office I discovered that over the weekend someone had turned our office into an island oasis.

I haven't discovered where the swim-up bar is yet but there is always hope.

Maybe next week they'll turn the office into an Irish pub!


At any rate, it beats my normal office decor hands down...

email: Josh Fuller | tag: /technology/telecommunications/TELUS | permanent link | Share on Facebook

Wed, 28 May 2008

setenv http_proxy using .cshrc when granted specific dhcp hostnames

We use DHCP assigned host addresses at work and I've recently switched my development laptop to FreeBSD after the Debian SSH security fiasco.

I've been spoiled by bash and never really used csh very often but I'm finding that I really like the scripting syntax and way environments are set.

One of the first things I've done is add a section to my .cshrc to set my http_proxy and HTTP_PROXY for our corporate firewall whenever I am on our network.

The basic syntax is...

setenv MYHOST `hostname`
if ( == "corporate.host.name") then
setenv HTTP_PROXY http://corporate.web.proxy:8080/
setenv http_proxy http://corporate.web.proxy:8080/
endif

Now, whenever I login to our corporate network and spawn a shell session using BSD the script automajickally sets up my proxy for me.

Nice!

email: Josh Fuller | tag: /technology/unix/bsd | permanent link | Share on Facebook

Wed, 28 May 2008

NOTICE: The views expressed on this Web site are mine alone and do not necessarily reflect the views of my employer.

gaming the system

When productivity is incentivized, employees figure out how to game the system.

I read that on "Worse Than Failure" this morning.

I have a lot to say about that but no time right now to say anything.

I'm not 100% sure this should actually be in the TELUS section of my blog.

Since I don't have a generic work section anymore I'll put it here until I have time to expand on the topic.

email: Josh Fuller | tag: /technology/telecommunications/TELUS | permanent link | Share on Facebook

Mon, 26 May 2008

Christmas 2008

I usually start one of these lists every spring and add things to it until Christmas rolls around. I am not the easiest person to pick gifts for so this always helps.

sane list

Sizes

  • 36W, 34L
  • 42 Long (believe it or not... XL is too big)

Stuff

not-so sane list

...so, you just won the lottery and you were thinking of buying me a christmas gift. Hey, it could happen...

  • Mac Mini --- Perfect for a set-top-box style PVR system

  • Apple TV --- anchoring a perfectly usable laptop to the TV all the time just sucks

email: Josh Fuller | tag: /personal | permanent link | Share on Facebook

Fri, 16 May 2008

NOTICE: The views expressed on this Web site are mine alone and do not necessarily reflect the views of my employer.

New Ethics

This year, TELUS changed their code of ethics to allow blogging about non-proprietary content related to employment. This will open the door for me to post new and interesting insights into working in a telecommunications company on the threshhold of the new telephony world.

I will still have to be careful about what I post on my personal blog but at least now I can post with little fear of reprisal.

I haven't really decided what I will discuss here but I've set aside a category in index / technology / telecommunications / TELUS with a nice "standard disclaimer" that will free me to at least speak about some things.

Mostly, this will probably end up being some of the "neat" Asterisk hacks that I've discovered while working in our labs.

email: Josh Fuller | tag: /technology/telecommunications/TELUS | permanent link | Share on Facebook

Thu, 08 May 2008

Faraday Cage

Just in case any of you ever go crazy and need to block the unborn chikken voices in your head...

No, would actually need to be grounded to earth ground. Like the centre prong off a plug.

The easiest thing I can think of to do is build a faraday cage to go into but that isn't wearable or portable. It would actually work, though, if constructed out of the right materials.

The good news is you're near lots of Home Depots. Go to one and see if they have copper tape or at worst case ducting tape. (not duct tape like the grey stuff. The metal stuff.)

Find a very large cardboard box, like a fridge box or something, big enough to get into and sleep, work, etc.

Overlap the tape on the box so it becomes a screen grid and then connect a wire from the cage to ground. Of course you would do this on a plug with

ONLY the ground wire connected and none of the other two. Make sure a ground wire contacts every strip of tape so be methodical when you lay out the tape. Electrical tape, heat gun, maybe washers and nuts?

When you go into the faraday cage the transmissions will be shunted to ground.

The box should be free, tape fairly cheap and the ground wire easy to come by.

I know that seems weird but a faraday cage is standard security practice.

http://www.globalgadgetuk.com/Personal.htm <--- not exactly expensive

That's a start at least. Faraday for instant relief. Jammer for long term.

A tin foil hat would not be effective as tin foil is not a good shield. I ran across someone selling these on the internet today. Total scam.


It's really a shame that I can't really tell the story for why I wrote that and made the graphic. It's hilarious. And sad. But hilarious nonetheless.

(EDIT: No, S, this is not an attempt to get you to write me. Please don't.)

email: Josh Fuller | tag: /technology | permanent link | Share on Facebook

Mon, 05 May 2008

Walk for ALS

We are participating in the WALK for ALS this year:

Bear Creek Park, Surrey Jun 14, 2008

Start Time: 10:00:00 AM

If you'd like to donate online you can do so through Saara's Page.

I've registered this event with Team TELUS Cares for dollar for dollar matching and so any donation you care to give will be doubled!

email: Josh Fuller | tag: /personal/als | permanent link | Share on Facebook

Wed, 23 Apr 2008

NOTICE: The views expressed on this Web site are mine alone and do not necessarily reflect the views of my employer.

LG 8600

I just picked up a new LG 8600 to replace my extremely aged Nokia 3595.

So far I am pretty impressed with the LG 8600 and how well the bluetooth side interacts with OS X.

It is easy to use BitPim to access and manipulate the filesystem via bluetooth and the native USB SD-card reader is a nice cross-platform data transfer tool.

The menu system is very easy to use and the flip is a decent size and is comfortable for placing calls.


Edit: Someone sent me an e-mail asking how I got into my LG.

Here are some basic instructions...

I did this all under 10.5 but the procedure should be pretty similar for 10.4.

First, I turned on bluetooth on my mpb and the phone.

Then I made the phone discoverable and found it with the mbp. They get detected as modems and obex objects.

I think I also made the mbp discoverable and found it with the phone, but I can't remember. Pretty sure this is yes and also pointless because obex is locked out.

Then, using BitPim 1.0.6.20080304-Test I detected the phone (takes forever at first) and it failed but asked if I wanted to use the wizard, so I did.

The wizard has a spinbox menu with selections and I picked the LG VX8600 on a /dev/cu.LGVX8600-blahblah-btdiag1 port.

The phone beeps and looks like someone is dialling numbers and then the filesystem should be available.

Select the root and back up the entire tree before going further because it is very easy to break things while hacking.

Hopefully this is helpful. It has been a whle since I did the hacking of my phone.

email: Josh Fuller | tag: /technology/telecommunications/TELUS | permanent link | Share on Facebook

Sun, 13 Apr 2008

Josh Fuller has found Michael Timothy Fuller

I, Josh Fuller, am looking for have found my father, Michael Timothy Fuller.

The last time I saw him we lived in Wichita Falls.

As far as I know he still lives somewhere in Texas.

If anyone knows where he might be I would appreciate an e-mail.

I have an old yahoo profile for him but the e-mail address may just be a black hole.

If anyone knows of his whereabouts please feel free to give him my e-mail address and/or point him to this blog.

Also... Please tell him he has a grandson.

Thanks to everyone who has helped me.

This mission is now complete as he left me a voice mail yesterday!

email: Josh Fuller | tag: /personal | permanent link | Share on Facebook

Sat, 12 Apr 2008

lookaround to cut trailing digits out of a phone number

If you have a sip:+15558675309123@foo.bar number and you need to cut out some digits out of the +15558675309123 once you've parsed it out regex lookaround can be your best friend.

Try using ^(\+.*)(?=...$) in your parser and you will instantly find your needed results of +15558675309 are available.

email: Josh Fuller | tag: /technology/telecommunications/voip/regex | permanent link | Share on Facebook

Tue, 08 Apr 2008

Here comes trouble!

With a grin like that all the ladies are in trouble.

email: Josh Fuller | tag: /personal/markus | permanent link | Share on Facebook

Chinese Ballet Circus Swan Lake

Absolutely amazing.

email: Josh Fuller | tag: /links/dance | permanent link | Share on Facebook

Mon, 07 Apr 2008

"I Am Legend" alternate ending

If you were as pissed off as I was by the end of "I Am Legend" then perhaps you might want to watch this.

email: Josh Fuller | tag: /links/film | permanent link | Share on Facebook

Fri, 04 Apr 2008

H and V Coordinates to Latitude / Longitude

I found the code for my H&V to Latitude and Longitude coordinate converter on my MacBook Pro and I've just restored it to my site.

H and V Coordinates to Latitude and Longitude

As an added bonus, I finally installed Geo::Coordinates::VandH::XS and and added Latitude / Longitude to H & V Coordinates so you can convert the other way.

Since Geo::Coordinates::VandH::XS supports mileage calculations checking tariff distances should be easy to code.

If you need some H&V codes to play around with you can look up your NPA-NXX at www.areacodedownload.com and use my tool to see where your local central office is located. The site has popups so I am still looking for a better site.

email: Josh Fuller | tag: /technology/telecommunications | permanent link | Share on Facebook

Wed, 02 Apr 2008

engadget-mobile

Engadget battles T-Mobile over the colour Magenta.

For those who need a colour code to help in the protest it is: #ff00ff.

jnfuller.freeshell.org says "T-Mobile sucks!"

email: Josh Fuller | tag: /technology/telecommunications | permanent link | Share on Facebook

Tue, 01 Apr 2008

Wireshark 1.0

I've just downloaded and installed the new experimental Wireshark Version 1.0 build for OS X Intel from wireshark.askapache.com.

I can't seem to read the RTF I'm supposed to read before installing on Leopard because it is empty in the dmg I downloaded from askapache.

I just dragged Wireshark into /Applications and tried to run the file. An xterm window popped up and nothing much else happened.

There are a lot of command line tools in the DMG that have to be installed along with the *.app so the experiment would pretty much be a flop if not for the 1.0.0pre1 build with a readme that actually works.

The file should read:


Quick Setup

  • Drag the Wireshark icon to /Applications.
  • Drag the contents of the Utilities/Command Line folder to /bin, /usr/local/bin, /opt/wireshark/bin or any other location that makes sense (preferably one that's in your PATH).
  • You will probably need to adjust the permissions of /dev/bpf* in order to capture. You can do this by hand or by installing the ChmodBPF startup item.

Details

This disk contains the following:

  • The Wireshark application, which can be placed anywhere on your system. It requires X11.
  • The Utilities/Command Line folder, which contains links to Wireshark's command line utilities. These can be placed anywhere on your system, but they must all be in the same directory. If you placed Wireshark in a folder other than /Applications, you'll have to set WIRESHARKAPPDIR in order for these to work.
  • The Utilties/Startup folder, which contains the ChmodBPF startup item from the libpcap distribution. This can be used to set the permissions of /dev/bpf* when your system starts up. See Utilties/Startup/.macosx for more details.
  • This file.

After making the required installation "hacks" to get ChmodBPF working I tried to start Wireshark from the /Applications directory a few times to no avail and then started it from the command line no problem.

It looks like in this version for the moment the only easy way to start Wireshark is to use terminal.app.

There may be either some path issues related to running outside of the console or perhaps WIRESHARKAPPDIR really does need to be set.

At any rate, it doesn't really look like Wireshark 1.0 is ready for primetime on OS X Intel yet unless you are comfortable with the command line.

email: Josh Fuller | tag: /technology/computing/software | permanent link | Share on Facebook

Wed, 26 Mar 2008

the small fuzzy world of nothing

It occurred to me today that I should make a post containing TSFWON so that people looking for my old site in Google can find this one.

Done.

email: Josh Fuller | tag: /personal/tsfwon | permanent link | Share on Facebook

Wed, 19 Mar 2008

Pinnacle Live Assistance... p0wned!

Social Engineering at its finest...

For Christmas last year I got a nice Pinnacle HD Stick for Mac which I use all the time to turn my MBP into the worlds most expensive PVR. While browsing the Pinnacle website I noticed their PCTV HD Pro Stick which looks a lot like the TV for Mac HD Stick. I started thinking about how it sucked to not be able to watch TV while booted into Windows using Boot Camp and decided to start doing some research into seeing whether or not I could get a legitimate license for Windows software since I had a legitimate use for the product.

First, I rebooted to Windows and verified that the HD Stick could be detected. Windows saw it as a PCTV 800e which IS the PCTV HD Pro Stick. So far, so good...

Connect to Live Assistance...

Andrei Bologa: Hi, my name is Andrei Bologa. How may I help you?

JF: I purchased the HD Stick for Mac and now have a Windows system. Is it possible to get the PC software for the product?

Andrei Bologa has disconnected.

Ricci Espacio has joined the chat.

Ricci Espacio: Hi, my name is Ricci Espacio. How may I help you?

Ricci Espacio: Hi

JF: I purchase the HD Stick for Mac and now have a Windows system, plus use the Mac in boot camp. Is it possible to get the PC software for the product?

JF: Is it possible to upgrade from eyetv to a pc version of studio at all?

Ricci Espacio: Where would you like to use the HD Stick?

JF: I want to be able to use it with windows and os x.

JF: mac has windows and os x

JF: i have mac hd stick. does it work with windows? can i get windows software?

Ricci Espacio: Let me check if you can use that on Windows

Ricci Espacio: Thank you for holding. I tried to verify, yes the HD for Mac will also work with Windows

JF: ok good where do i get the windows software

Ricci Espacio: You mean Windows?

JF: software for hd stick for windows

JF: eyetv for mac in box no hd software for windows

Ricci Espacio: I see.

Ricci Espacio: Stay on the line

Ricci Espacio: Thank you for holding. Please download TVCenter Pro 4.7 from the link.

*Ricci Espacio: link *

select link and copy to clipboard...

Cut and paste, open new tab and begin to download file.

Browser crashes with error 500...

As I began to respond to Ricci the browser crashed. Looks like their java is buggy in the chat interface and can't take a tabbed world. Good thing I copied the chat window to the clipboard.

Restart browser...

Download file...

Downloaded and installed file Ricci suggested. UH OH! Serial Number!

Reconnect to Pinnacle Live Assistance

Rudy Agenias: Hi, my name is Rudy Agenias. How may I help you?

JF: Ricci Espacio was helping me with HD stick for PC. Here is a copy of our chat:

JF: We got disconnected.

JF: He did not give me a registration for TVCenter Pro 4.7 to use it with my pc

JF: he was helping me use my mac stick with windows

Rudy Agenias: It's not recommended to use that device that way.

JF: He said it would work fine

JF: So I downloaded TVCenter Pro 4.7 like Ricci said but now it is asking me for a registration from the box which I do not have and he did not give me.

Rudy Agenias: Is it the HD STICK FOR MAC?

JF: yes. I have a mac that runs windows and os x and was wanting to use the mac stick for windows too. Ricci checked and it will work and he gave me the link to the windows software but now I can't install.

JF: Because he didn't give me the registration info and the browser crashed.

JF: Could you get Ricci Espacio?

Rudy Agenias: I am confirming this with 2nd LEVEL SUPPORT since you have bought a MAC product and the PC product is not the same with your purchase.

JF: so i can't use tv when my mac is running windows?

Rudy Agenias: Yes, as I have confirmed with 2nd level.

JF: But windows detects the card as a PCTV 800e

JF: Can I at least try the software to see if it works?

Rudy Agenias: No, it's not possible.

Rudy Agenias: I could not give out the serial also, sorry.

JF: Ok but I was trying to see if I could upgrade from eyetv by buying the windows version

Rudy Agenias: No, it's not possible.

Rudy Agenias: You should buy the PCTV product for windows, there is no upgrade available.

JF: but that would be silly as it is for the same mac that runs windows and os x

JF: i will just use os x for tv then

Rudy Agenias: Unfortunately, silly as it is, I don't have other options as well as you do.

Rudy Agenias: You could stick to the OS your product is made to work.

JF: ok thanks

Rudy Agenias: You're welcome. Thanks for chatting with us. Have a nice day!

Rudy Agenias: Please don't forget to disconnect from the chat session. Thanks.

Re-Reconnect to Pinnacle Live Assistance

Zrwyn Santos: Hi, my name is Zrwyn Santos. How may I help you?

JF: Ricci Espacio: Stay on the line Ricci Espacio: Thank you for holding. Please download TVCenter Pro 4.7 from the link.

JF: he was helping me but my browser crashed

JF: i need the code to install

Zrwyn Santos: Just to clarify what code do you want?

JF: i bought hd for mac with eyetv and he was helping me install it in windows for use with os x boot camp

JF: mac runs windows too

JF: card detects as pctv 800e

JF: but when i install from the link i was given i need some serial number ant the eyetv one does not work

Zrwyn Santos: Kindly tell me the software and device your and using?

Zrwyn Santos: Thank you.

JF: so i was trying to ask Ricci for the right code and my browser crashed with a java error and now i lost the chat with him

JF: its pctv 800e and tvcenter pro 4.7

Zrwyn Santos: Have you also registered your product?

JF: yes

Zrwyn Santos: One moment please. Please give me 2-3 minutes to check this.

JF: ok

Zrwyn Santos: XXXXX-XXXXX-XXXXX-XXXXX-XXXXX NOTE: Yeah, that's not the real serial. Don't ask, I'm not giving it to you.

Zrwyn Santos: Please try this serial number.

JF: awesome just a sec

Zrwyn Santos: Is there anything more I can help you with?

JF: great that works

JF: thanks!

Zrwyn Santos: You're very much welcome. By the way , after our conversation, you will get a survey which will give you a chance to rate on how I handled your issue. I would greatly appreciate your feedback so we can continuously improve our service

JF: ok i will be happy to answer

Zrwyn Santos: Thank you have a great time.

PCTV works!

Everything now works correctly and I've officially p0wned Pinnacle's tech support and gotten them to turn my HD Stick for Mac into a PCTV HD Pro Stick.

email: Josh Fuller | tag: /technology/computing/hardware | permanent link | Share on Facebook

Thu, 13 Mar 2008

blog editing on iPod touch

This is a test post to test the feasibility of blogging using an iPod touch.

email: Josh Fuller | tag: /technology/computing/hardware | permanent link | Share on Facebook

Sat, 08 Mar 2008

OpenIMS

http://www.openimscore.org/

Cool.

email: Josh Fuller | tag: /technology/telecommunications/voip | permanent link | Share on Facebook

Thu, 06 Mar 2008

tracking

email: Josh Fuller | tag: /technology | permanent link | Share on Facebook

Mon, 18 Feb 2008

My home network infrastructure

People often ask me what sort of network I have set up at home. Here is a basic diagram...

+--------+        +------------+
| docsis |        | iPod touch |
+--------+        +------------+
     |           /
     |          /
+---------+    / WiFi        +--------+  +----+
| dd-wrt  |--->})~~~~~~({<---| laptop |--| TV |
+-v-v-v-v-+                  +--------+  +----+
  | | | | Wired
  | | | +-------------------------------+
  | | |                                 |
  | | +--------------------+            |
  | |                      |            |
  | +---------+            |            |
  |           |            |            |
+------+ +----------+ +----------+ +---------+
| iMac | | spa-3000 | | asterisk | | switch  |
+------+ +----------+ +----------+ +---------+
  |  |      |    |                   | | | |
[drives] [pstn] [phone]          [guest clients]


The Asterisk box and the SPA-3000 are not always hooked up but there's space available for the systems on the network at all times.

email: Josh Fuller | tag: /technology/computing/networks | permanent link | Share on Facebook

Jave - a java GUI-based ASCII editor

I ran across a wonderful java based ASCII editor yesterday called Java Ascii Versatile Editor.

The program vastly simplifies 7-bit ASCII drawings by allowing you to edit them in a graphical environment.

It's sort of like Gimp for text. It makes it very easy to draw completely portable network diagrams that can be viewed with zero proprietary software installed.

I'm a firm believer that if you're not able to write your documentation from a console using only vi, emacs, nano (or dos edit) then you probably shouldn't be writing documentation in the first place.

Some people like fancy photos. Jave allows me to serve them a "big cup of STFU."

DISCLAIMER: I use nano for the most part because I am lazy when it comes to learning shortcuts. I am, however, becoming a VI convert more and more every day .

email: Josh Fuller | tag: /technology/computing/software | permanent link | Share on Facebook

A VoIP troubleshooting tool manifesto for the Next Generation

We in the telecommunications world are at a strange crossroads--- a "singularity," for lack of a better term--- where legacy circuit switched voice and current generation packet switched voice exist within one constantly evolving and relatively unstable network platform.

In the legacy world call processing happens in a fairly linear fashion: telephony switches send messages back and forth over common signalling points using well defined protocols. Voice circuits always remain in an idle state waiting for control messages that "turn on" the voice path.

In the "Now Generation," complex network elements are commissioned within our ever-growing data complexes at an exponential rate. This current technology does not use signalling formats or media paths that allow existing legacy telephony monitoring tools to be used for performance analysis, triage of call outages and day-to-day operational readiness and maintenance. True "Next Generation" call processing and signalling is far less linear than traditional telephony. Existing network services such as bind are retooled to become services such as enum. In a purely IP world media and signalling paths are no longer static. Voice and signalling paths are created only when needed and those resources are released back to a pool of loosely interconnected devices once no longer required.

Servers chop media into small packets with an address on each one telling the network devices where to send them. Inside of each packet is a payload. The payload is a piece of the media transmitted inside the packet. The sending server sends the packet to a nearby router and forgets about it.

The nearby router send the packet to another router that is closer to the recipient server. When the receiving server finally gets the packets (which may have all taken completely different paths to get there), it uses instructions contained within the packets to reassemble the data into its original state.

Vendor monitoring technologies partially fill the surveillance gaps in networks but do not support open and extensible signalling and media protocols due to architecture "racism." Oddly, the basic media formats are almost always thrown away due to cost savings in server storage.

Bit flushing is also a quick and dirty way to increase monitoring probe performance without actually using scalable hardware. Not capturing the media packets is a dangerous and confusing choice which is the network equivalent of throwing the baby out with the bathwater. Existing call processing tools have a very poor capacity to measure in-band signalling methods such as RFC-2833 DTMF. The all-important DNS queries--- the glue that makes enum NAPTR possible--- are often completely invisible. At a bare minimum media must always be watched for the possible existence of tertiary signalling.

Sadly, the true issue isn't something as simple as vendor lock-in, budget constraints or protocol exclusion. The real issue is that there is no such thing as a switch anymore, a voice path or a circuit.

The network itself is the point that must be monitored.

Read that again. Drill it into your brain. The network itself is the point that must be monitored.

Why?

VoIP is a moving target with numerous protocols loosely gathered together in a server farm pretending to be a traditional telephony network.

A single call progressing through this server farm may use many different protocols and transport mechanisms for completion.

For example: cdp; skinny; sccp; sgcp; rvp/ip; h.245; h.225; megaco; h.248; dns; enum; sip; sip-t; rfc-2833 dtmf; inband signalling; rtp; rtcp; rtsp; t.38; t.30; ulaw; alaw; gsm; gcp; ss7; mf; unistim; mgcp; SDP envelopes; sigtran; q.931; radius; h.323.

Now for the real mind blowing experience: By the time you finish reading the list it has already become obsolete.

Our seemingly impossible challenge is to develop and deploy tools that both graphically and logically depict a call from end to end on a network that has numerous traditional and non-traditional signalling and media ingress and egress points.

Since IP networks effectively forget about the packets they have already handled it becomes impossible to troubleshoot VoIP calls without being able to disassemble, rethread and reassemble transmitted packets into a cohesive call end-to-end.

Integration with legacy networks such as traditional TDM causes even more confusion as the intersecting technology boundaries create logically and functionally different calls in the network.

In the past, I have suggested that the solution for this is an open-standards based unix tool with the capacity to:

  • capture a feed from all network probes in parallel

  • intelligent packet capture and merge with no duplication of packets

  • capable of capturing ALL protocols associated with VoIP and TDM

In a perfect world this would be a real time active capture device that creates both a visual depiction and a packet-capture dump of a call. These storage files should be in an open and extensible format such as tcpdump. At a minimum this tool should include every single leg of the call from the ingress to egress point of a voice network.

If I were to create such a system I would leverage open-source products (such as sipP, Wireshark, Asterisk and Sip Scenario) to create a distributed packet capture tool while avoiding vendor hardware and software lock-in. I would attract and retain in-house resources solely tasked to create a customized open-source platform capable of understanding both "next generation" and legacy technologies.

Any system I would source from a vendor would have to support open standards and would have to be based on an easily upgraded and extensible technology geared towards an eventual migration to IMS. I also would urge organizations responsible for deployment of VoIP infrastructure to restructure their teams that work on "Next Generation" services into cohesive organizations to remove interdepartmental roadblocks, compartmentalization of knowledge and entrenched corporate beauracracy.

Finally, I would forbid any potential vendor from treating Internet Explorer as a personal extension of their command and control environment.

email: Josh Fuller | tag: /technology/telecommunications/voip | permanent link | Share on Facebook

JDarkroom

I've recently started to use JDarkroom for all my markdown editing tasks. It's really nice to have a cross-platform text editor that feels like editing in a console with no distractions.

email: Josh Fuller | tag: /technology/computing/software | permanent link | Share on Facebook

Sat, 16 Feb 2008

iPod touch

Thanks, Saara and Markus! I never knew you won the lottery!

email: Josh Fuller | tag: /personal | permanent link | Share on Facebook

Thu, 14 Feb 2008

Sad Uncle Sam

email: Josh Fuller | tag: /links/political | permanent link | Share on Facebook

Sun, 10 Feb 2008

Remove Go iDisk from the Finder.app menu

One of the nicest things about xnu is how much control you have over Aqua and how it functions.

The menus for Finder (and many other applications) are for all intensive purposes "open source" and you can modify them once you understand how they are built.

NOTE: You must have the XCode Developer Tools installed for this to work.

Open Terminal.app

cd /System/Library/CoreServices/Finder.app/Contents/Resources/English.lproj

(substitute your native language as appropriate)

sudo tar cvf Menus.nib.tgz Menus.nib

sudo open Menus.nib

Use Interface builder to remove definitions for iDisk.

Save file to desktop.

Delete the old directory (rm -rf Menus.nib) and copy the edited file back into the Finder resources tree.

If you make Finder FUBAR boot from the DVD and replace the file in Terminal.

email: Josh Fuller | tag: /technology/xnu | permanent link | Share on Facebook

Mon, 04 Feb 2008

Handy ways to cut an IP address out of command responses

Every now and then I need to write scripts that read the local IP address and use them on the command line. There are two ways that I've found that will do this in a flash.

They aren't very eloquent but they work.

cut and cut again

ip addr list eth0 | grep "inet " | cut -d' ' -f6 |cut -d/ -f1

cut and awk

ifconfig eth0 | grep "inet addr" | cut -d: -f2 | awk '{ print $1}

email: Josh Fuller | tag: /technology/unix | permanent link | Share on Facebook

Sat, 02 Feb 2008

Using sipP as a Call Generator to load test Asterisk on Ubuntu Server

Using sipP as a Call Generator to load test Asterisk on Ubuntu Server

Note: this requires you to have access to more than one Asterisk server within a network! You also need access to the superuser account.

Preparation and Existing Configuration Backup

  1. Log in to your Asterisk server and become superuser with sudo -s
  2. Change to the superuser's home with cd ~
  3. Backup the current Asterisk configs with tar czvf asterisk-configs.tgz /etc/asterisk
  4. Ensure sipP is installed with apt-get install sip-tester

Test Configuration

Map out the scenario you plan to test.

+--------+ call => +--------+
|Asterisk|---------|Asterisk|
|Server  |---------|Server  |
+--------+ <= call +--------+

Set up your Asterisk extensions to answer and hangup in each server

extensions.conf example

[default]

  exten => service,1,Answer()
  exten => service,n,Dial(SIP/1234@remote-peer)

  exten => t,1,Hangup()

[sipp]

  exten => 1234,1,Answer()
  exten => 1234,n,Milliwatt() ; this provides the media for rtp loopback

sip.conf example

[sippuac]
type=friend
username=sippuac
host=dynamic
context=sipp
insecure=port,invite
nat=yes
promiscredir=no

Connect to each server and set up some background sipP sessions.

  • From each Asterisk server (with Asterisk running)

sipp `ifconfig eth0|grep "inet addr"|cut -d: -f2|awk '{ print $1}'` -i `ifconfig eth1|grep "inet addr"|cut -d: -f2|awk '{ print $1}'` -d 1s -l 100 -aa -mi `ifconfig eth1|grep "inet addr"|cut -d: -f2|awk '{ print $1}'` -rtp_echo -nd -r 12 -bg

This generates about 12cps with a call duration of one second. You can use the -bg flag to keep the calls running in the background.

  • Start tshark on a system that can see the entire network

tshark -i capture eth -r "sip" -w name of file.cap

Wait while test completes

  • killall sipp on any server where you had it running and [ctrl]-[c] the tshark session

  • save data

email: Josh Fuller | tag: /technology/telecommunications/voip | permanent link | Share on Facebook