Creslin is currently certified at Journeyer level.

Name: Matthew Fredrickson
Member since: 2001-11-26 21:27:18
Last Login: 2007-05-29 17:10:18

FOAF RDF Share This



For the most part I've been doing a lot of telephony development for linux. My primary tools of the trade are C, perl, and lkml :-). A lot of my work now consists of kernel developing, mostly on the usb devices lately. We keep getting sent demo units of various usb and pci peripherals from a company we work with, so I've had an opportunity to learn how to do a bit of linux device driver propramming.

I am one of those strange people with a funny keyboard layout (dvorak is really cool). If you're interested, there's a really good dvorak tutorial on the linked page.

If you need to get a hold of me you can drop me an IM on gaim. My screen name is MatthewFredricks

I haven't updated my webpage in a while, so be warned it's crusty and needs work.

Recent blog entries by Creslin

Syndication: RSS 2.0

So once again, I haven't written for a while. It seems that with school and work I don't have much time to do much blogging. Of late, I have been working on kind of an interesting project at work. I'm writing an interface in zaptel so that we can use hardware assisted HDLC and CRC calculation on D-channels for ISDN equipment. Currently, it's done in software and is not very resilient to missed interrupts. It still works, but you could have retransmitted frames and so forth that you could potentially get around with an interface with additional buffering. I've got it basically running, but there is still some phantom bug that causes my kernel to crash on me. Aside from all that, I think I'm going to try to get some more work done on libss7 tonight. I haven't been able to work on it since school started and I feel it has been sorely neglected. Just need to write a couple more ISUP messages and parameters.

Personal: I haven't written in a long time and I'm going to be totally lame and only write a few lines. I recently got the opportunity to go to FOO camp in Sebastopol CA at the O'Reilly offices there. It was a really great experience that I was really glad that I could go for. I met a lot of really neat people that I wouldn't have had the opportunity to meet otherwise.

Work: So at my work, I get to do a lot of different things. I rarely ever get to work on the same thing one week as I do the next. So right now, I'm working on porting a proprietary voice mail application over to run on zaptel. I've got just about everything running except for call progress tone detection. The library I'm using for DSP functions does all the standard DTMF and fax tone detection, but it doesn't have any hooks for doing user-programmable tone detection (which is a little bit more complicated it seems). So I get to learn how to be a DSP engineer this week :-)

School: Ok, so school started up this last week. I have a few new classes this semester. I'm taking Western Civilization, Intro to Ethics, Linear Algebra, and Computer Organization. I don't forsee the Computer Organization class being to hard considering we started off our first day with some assembly programming. When I was in high school, I used to distract myself from my classes with z80 assembler. MIPS assembler looks like it's going to be a piece of cake. You've got lots of cool registers to work with too, ere go, not as much push'ing and pop'ing. My other classes are going to be interesting. I always do well in math, but I'm worried a little about my paper classes, Ethics and Western Civ. I'm shooting to make a 4.0 this semester, but it's these non-major related classes that seem to kick my trash. Oh yeah, that and trying to work 40 hours a week too.

Project: Alright... now on to my pride and joy. My project that I've been working on for a good chunk of the summer. So anyway, earlier this year I was kicking around the idea of learning a bit about SS7. Well, at the beginning of the summer I started writing an SS7 stack. I started with ISUP, then realized that I should start with the bottom layers first, and began with the driver layer. I figured out how the framer works on the TE410P/TE405P and wrote an interface to send/receive data to it. It does the HDLC portion and the CRC checksum at the end of each SU for me. After that, I started studying MTP2 and wrote the MTP2 layer. I have finished a relatively simple implementation of MTP3 (VERY simple) and am moving back to ISUP. My goal was to have a call passing by the end of the summer but I seem to have fallen short on that. Well, I've at least gotten a significant chunk of it done. I hope to be able to put some more time into this between work, school, and climbing on the weekends to knock out a little bit more progress on it. I must admit, I wasn't sure in the beginning if I would have made it this far. In fact, if I would have known how much work it would be back then, I don't know if I would have taken it on, but I've gotten so far now that it's impossible to turn back :-) It's been a pretty good learning experience for me though. It will also be a big benefit to those in the Asterisk community that want to see an open source SS7 solution. It still has a bit to go (I haven't done any live testing yet) but I think that it has passed the point of no return already. I need to buckle down and spend some time on this ISUP stuff again. It's just such a pain to read the standards docs on this stuff. They're so dry. Maybe one of the SS7 books that I have will have a better way to present it. Anyways, it's late. I need to go. Hope anybody reading this enjoyed it :-) Cya!

Finally fixed the MWI speed on Q.SIG. Apparently I was waiting for the other end to send a RELEASE message after the NCAS connection was started and I should have been sending the RELEASE. So I changed it, and it worked. Nasty little problem, I didn't even think that it would have anything to do with the message order.

Other than that, I have been of late working on writing some software that tunes the impedance setting on the SI3020 analog line part. It's been interesting learning about how to do data analysis on the line to find out in the application which setting is actually the best. If anybody has any experience in this, hit me up :-)

I've also started looking into what it would take to write an SS7 stack for Asterisk. SS7 is the de facto signaling standard for the telecommunications backbones of the world and apparently a lot of people are interested in getting native SS7 support into Asterisk. It's funny how similar (functionally) SS7 is to the internet and it's major protocol, TCP/IP. I can see why there's a lot of effort put forth to moving the lower layers of the SS7 protocol suite to TCP/IP.

Still hacking a way on MWI for Q.SIG. For some reason it's not letting me turn on/off the light at an interval quicker than ~35 seconds. It's funny, because I've been through the traces for the call, and byte-for-byte our setup message is the same as the one on a working MWI transaction. It's beginning to drive me nuts trying to identify the problem. It doesn't help very much either that the switch that I'm working against is 3000 miles away. I wonder if something's wrong in it's configuration or something. At least some how getting more information would help. Maybe I need to go out there to find out what's going on with it.

I seem to always wait a long time between updates, no? :-) For all of you out there that wondered, I'm still alive. I'm still working at Digium, doing development on Asterisk/libpri/zaptel. Of late, I've mostly been doing developement on libpri - the opensource PRI/PRA stack that Mark wrote. It's fairly comprehensive with basic PRI features, but a lot of the more intricate and advanced features (2 bchannel transfer, Calling name over facility, etc) have been missing due to the different format in which they are sent. Instead of them being encoded in some binary-flagged information element, they use a special information element that is used for transport of generic information called a facility information element. So anyway, I got a lot of that done, and now am working to merge it back into the standard libpri tree.

I guess my latest (new) project has been writing a program that does analysis on a telephone line for echo and auto-tuning of a line interface based on the analysis data received on the line. It's on a FXO line interface card and it uses one of the Silicon labs chips for talking to the line. At first I was working on just tuning the onboard echo canceller coefficients but I learned that I should be doing tuning of AC impedance first and worry about the echo canceller later. Now I just need to test it some more.

10 older entries...


Creslin certified others as follows:

  • Creslin certified Creslin as Journeyer

Others have certified Creslin as follows:

  • fxn certified Creslin as Apprentice
  • Creslin certified Creslin as Journeyer
  • Trakker certified Creslin as Journeyer
  • trs80 certified Creslin as Journeyer

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page