Archive for October, 2007

Lost In Translation

Wednesday, October 31st, 2007

Sometimes translating from French to English makes things a little vague

Retour Vs. Rendezvous

Web Application - Mixtape Generator

Wednesday, October 31st, 2007

Mixtapes were great. I think most people who were doing that then remember sitting down for two or more hours and collecting all their music in one place. Then they would choose 60 minutes of it and make a cassette tape. It was cool because it took lots of time and it was linear. No undo button. It was also in the context of a gift to a friend or a gift to yourself to express a mood or feeling.

Mixtapes got creative. Designing the packaging. Listing the song titles. A significant amount of work went into making them. Then the CD-R mix came around and that worked pretty much the same way. Then the iPod came around and all of a sudden mixtapes were gone. CD mixes still existed but people’s music collections became an ocean. I can remember hearing the statement “I don’t even know what I’m listening to half the time”. The context was lost and it was not special any longer.

So I’m going to make a web application where the user can upload their song files, make a custom design for the page, upload pictures and notes and send the link to a friend. It will be small and special, just like the old days. There will be lots and lots of context.

Rid of Asterisk

Monday, October 1st, 2007

Asterisk is a cool SIP Proxy. It’s also a bunch of other things and it’s dialplan syntax totally sucks. OpenSER is a small fast SIP Proxy. Last week I finished an interesting project: replace Asterisk and hardware phones with OpenSER, Mediaproxy and software phones.

It took about 1 week and a half of hacking configuration syntax, reading through SIP headers and debugging soft phones to figure it out but now it’s done. Here’s what works for me.

  1. Install OpenSER from Debian stable. This should be easy. You’ll also need the MySQL module.
  2. Set up your database with /usr/sbin/openser_mysql
  3. Install Mediaproxy
  4. Configure the proxy and the dispatcher. You’ll need to configure it to accept control messages from localhost and RTP from the IP address of your host.
  5. Generate an OpenSER config from the sip:wise wizard I hate the word wizard when used in the context of a non-human software device that DOES NOT wear a robe or cap, but hey, this shit totally saved me time
  6. If you choose the “loose routing” option and you don’t know what it means, you’ll have to comment it out. There’s some code in the main route of the config file with the function has_totag(). Get rid of that condition.
  7. Read the comments of the generated file and follow the instructions. THIS IS VERY IMPORTANT. The wizard isn’t so magical he can read your mind.
  8. Download the xlite softphone for your platform of choice. I’m working on OS X and the Xmeeting softphone does not work behind NAT, which is the majority of users network layout.
  9. Accept the defaults and register to OpenSER as the user you created. You did remember to create a user, right?
  10. Do the same from some other network location. Then call the SIP URI of the other user. If you can talk both ways, congrats! You now have a software phone layout like Vonage.
  11. So yeah, that was my week. It was hard cause I was unaware of all the variables involved. If you try the above advice, it probably won’t work for you at first because you have to think about your network layout and adapt the pieces to fit. Examining logs and sniffing SIP headers were what saved my ass. If you don’t know what that means, all I did was use the tail and ngrep programs. I’ll leave the details of using them to you.

    This whole project taught me about SIP, which is pretty much the same thing as HTTP but for realtime voice. Status codes with headers and ACKs. The only difference is there is an SDP media description if your signalling works. Remember, signaling and payload are different. My situation was confusing because all the signaling worked but the payload was blocked by improper NAT configuration.

    So yeah, that’s it…on to video phones. It’s nice to be living in the future.