 After listening to that last presentation, I just almost want to yell, but probably went from a type 2 to a type 6. We're going to cover, we're going to teach you everything about phone systems for beginners. We're going to tell you how normal phone systems are deployed. We're going to tell you how open source phone systems are deployed, what exists. We're going to show you examples of how to script your own phone systems, how to make your own phone systems, and what they can do that other phone systems can't do. Hopefully, can you see me moving this mouse cursor around up here, and is there something going on here? Yeah, I know. We're hacking this so that we have two screens because we've got a lot of information. So we're making a little modification here. So that's actually an old presentation. Isn't Mac OS 10 great? I was asleep. Last time I slept is probably about two and a half days ago. And a lot of these wonderful slides you're going to see I did in Mac OS Sketch application, which I compiled in the car on the way here. So some of them aren't the highest quality, but the info is all there. So let me pull something out here, actually. Okay, so I'll start at the beginning. Yeah, in the beginning, about 18, late 19th century, Bell and possibly some other people came up with this cool phone idea, basically saved the world a ton of time, made the world free for democracy. And actually, if you take one of those old piece of crap phones and plug it in the phone system today, it still works. And that was a killer hack. There have been very few improvements since then, but we're still looking. And we think that open source software is probably the way it's going to happen, because this has been the most patent-ridden proprietary market that software has ever seen. So let me hit it. So we actually are developers on the GNU Common Bay Own projects. The GNU Common Bay Own projects are open source projects that implement application servers and a variety of other servers that you can script your own telephone systems with. We're going to show you how to do it from basic voicemail stuff to very complex systems. And go back to Sketch. All right. Okay, so here, assuming you were a business or an individual, your first phone system is something like an answering machine. You've got four-line phones. These little slashes with fours there indicate four lines. It's hooked up in parallel with the four phones coming from the phone company. You've got a switch. Later on, maybe you've got a key term, what's called a little switching device. And that's an important distinction from the answering machine. The key term is a switching device, whereas the answering machine is actually an application server. It's called an interactive voice response server. What it does is it interfaces a person to a computer. You've got an interface. It's just a keypad, speaker microphone. Anything you can interact with on a computer is interactive voice response. And that's what an answering machine is. So the key term, if you guys are into networking and you don't know about phone systems, the key term's like a matte box. Basically, it takes a few lines in, you see a few lines coming in there, and splits it out into a whole bunch of lines. And what you can do is you can, there's also the concept of hunting now, which you didn't have problems with. After that, you very well might end up with a computer-based phone system. And there are some cool things about having an all-in-one integrated computer-based phone systems. There are some really lousy things too. Some of the cool things are, first of all, you don't have lots of pieces of equipment that may or may not work together. You don't have to use up extra resources connecting these two together. There are a lot of resources actually used there. The computer-based system can also interact possibly with your, say, your database or your website or whatever. Any questions on that so far? And that's basically kind of the evolution of these types of phone systems. There's a little bit more on this. I'll show you a few more, see what we got. Okay, so less often seen are systems that are based on splitting out the interface from the logic entirely. This happened in the 80s or kind of gained favor in the 80s because people came out with programmable switches. They were just dumb. All they did was a switching part. They connected one port to another. You had to have a computer there that watched everything and told them everything to do. Connect this port to that port. Oh, you hear a ring. Pick up the line, transfer it, whatever. You had to tell them everything. The CTI and channel bank method is how you would do a dumb interface in your office. And the CTI and programmable switch method is how a central office would do it, how a phone company or somebody else would do it. There's a subtle difference in that the programmable switch is a little bit more intelligent and a lot more capable. All right. I know I've got another one. All right. So there are a lot of different ways to create phone systems, though. And what people are doing with Voice of IP now, does anybody here not know what Voice of IP means or probably? You guys just aren't going to... The first person who at least says he doesn't know what Voice of IP means gets a shirt. All right. A shirt, by the way. It's like this... And by the way, has anybody in here ever written a device driver? All right. Wait a minute. If you've written a device driver, you can come up and grab it. I only brought three of them. Sorry. I'll probably have more in John's booth downstairs. All right. So, Dan, is that computer up? Thanks. Okay. So Voice of IP is basically means we're sending voice over internet protocol in a packet switched manner. Internet protocol is part of the suite of protocols we use every day. Basically, sending voice over involves compressing the voice, having a session protocol that understands how you set up a phone call over this packet switched network, having compression codecs that are efficient, and all of the lower layers. Generally, what people have used it for in the past is things like told bypass. So you want to call across the country and you don't want to pay long distance bills or to another country. You don't want to pay long distance bills. Compress the voice, send it as packets over the internet back and forth, decompress it at the other end, negotiate. The two people can talk through, say, a computer average PC with sound card speakers, and you get an intelligible voice usually. It depends on your internet connection, of course, but Voice of IP basically is commonly used for that. You don't pay any long distance bills, so it can be cool. Lots of other reasons it can be cool. It seems like if you had your, this was a phone cable and I pulled it out, you were hung up, but that's not the case with Voice of IP. I didn't just, okay. So yeah, there may be some smoke here. Lots of things aren't going to work, but we've got so many dollars, it just doesn't matter. So we explain you kind of an interesting, tweaky way of making a phone system that uses Voice over IP. Imagine that these are little computers with connections to, this is the phone system, by the way. That's what these things are. And these are phones. You like? Okay. So you've got these computers that are connected both the internet and to the phone system. They've got interfaces to both, a network interface for packet data, a network interface for circuit switch data, phone lines. You have, these computers are able to gateway data from either network. They're called gateways. You generally connect, you can connect analog phones to them. That's called a station port or an FXS port. Just connect the phone right into them. Talk away either over the packet switch network or the circuit switch network. You can talk to other gateways and get a set of cooperating gateways together. There are groups of people, us included, who have formed our own Voice over IP networks. And it's not that hard. And we're going to explain how to do that too. I'm going to probably, I might come back to some of these, but I don't want to go over your head. So I think I'm going to start with stuff that, how ready is that computer? Not ready. Okay. I'm just going to explain then the first demos, and then we're going to give them as soon as that computer's ready. Here's an old architecture that we had for our system. Basically, we work on the GNU projects communication subsystem. That doesn't mean a lot to most of you. But what it means to us is that we're trying to get a fully functional, complete set of software that you can use to build your own phone systems and we're making it part of the GNU project. There are several components. As you can see, we've got one called BAN. We finished this one. Babylon finished this. Working on that, trashed that, trashed that, working on that. I'll cover some more stuff later, but this one here, basically all of these are daemons. They're servers that carry out a small portion of the functionality that you need to make a full range of phone systems. However, standalone, they can do quite a bit. Bayon is the one that I'm going to cover first, and that's an application server or interactive voice response. Like I said, interactive voice response, super set of tons of stuff. Voice messaging, call center type stuff covers a lot. Any interface... We're supposed to have water between a human and a computer. So that's interactive voice response. I'm going to cover a little bit of... Okay, this is a good one. So we generally stick to a three-tier architecture. So those of you who develop web apps, you have an interface language. It's called HTML. It's simple. You know, describe it in a small document. You can figure it out. It does one thing. It describes the interface to the end user, to the client. Then you have a logic layer, and that's what your application servers do. Maybe your Perl scripts or your CGI. If you program using this. Then in the back, you've got your data. So there's three tiers, clean separation. We like it, very nice. There are a lot of servers that operate the same way. Apache operates this way. Bayone operates this way. That's the IBR server. We have a little interface language, and it's stuff like play a prompt, record a prompt, listen for the guy to press some digits. These are how he's interfacing to it. Yeah, what's up? Oh, sorry about your laptop, man. Okay, first casually, the laptop. You can't see all the spackle cell. Okay, so we also are able to execute application logic with Bayone, just like CGI's. We call it TGI. Basically the same thing. Let's go here. We've got to start giving some of this stuff away. Who understood what three-tier men? Who's ever written a Bayone application? That's too many people. You do not count. Oh, wow. That's a bummer. Okay. Who wants to write a Bayone application? Okay. You look kind of evil, so I'm going to give you the horns. What, do we have no one? Am I good? So TGI. TGI is just like CGI. It's basically you pass information via environment variables. Pretty simple stuff. What you do is your application comes to a point where it decides, I need to take some information from the user, like, say, digits pressed on the keypad. And I'd like to pass that to, say, a Perl script. It takes them via TGI, passes them through environment variables. There's a little Pro module just like with your three-tier web application. So there's some other application servers that Bayone is supposed to work with. We're also trying to get this to work with the Canoe Enterprise project. They have an application server as well. Basically what that does is it takes form interfaces that are business forms, like shipping, receiving accounting, those kinds of guys. Three-tier, the back end, they do some logic when you fill out your form. Product gets shipped. Lots of stuff we can integrate with them. I'll cover a little bit of that later. Go back to these sketches. All right. What's up? Okay. So here's one application. We started naming all this stuff with acronyms, like TOSI and PSCT and stuff like that. But it was impossible to find new acronyms, so we're naming them after donuts. And this one's called Super Donut, because it's a totally killer application. It's a really good example of CTI. Unfortunately, we're not going to give you that as a demo, because the machine that we had interchange running on is not here. And we'll probably demo it later in the showroom for it. What this does is it allows you to purchase applications or rather purchase goods, track goods, do everything you could do with a shopping cart over the phone. Now, granted, you wouldn't want to do a whole lot of that over the phone, but you would want to do a little bit. You'd want to track the goods. You'd like movie tickets and pizza and things that you buy when you're on the road. If your internet was down and you had to get something, you'd still want to get it. And so you'd be able to go through a menu and pick items out of a list, buy things. This is just a pretty good example. It's interchange and beyond. Again, actually, basically, those aren't on the same level. Apache and beyond are on the same level. Co-operating together, sharing the same data. It's the same backend that interchange uses. Interchange is a shopping cart, just so you know. When I'm talking about buying things on the web, being able to do transaction completion on the phone, that wasn't one of mine, was it? That's going to be a challenge. Okay. Okay, I'm about to show you a demo of Bayon. Unfortunately, I'm not going to be able to see it, which stinks. Can we use this box so that I can see it too? Okay. We can switch them back and forth. Okay, we'll just switch them. Okay. We'll actually make you go through the application on here in this way. Yeah, do you have my assistant? No, no. Just a text file. This is going to be a little crudgy, but I'm going to show you the first apps over here. Jason's will be less crudgy. It's already working. What's that? You can go call him. What do we have to give this guy? Spark. Oh, yeah. We've got a Spark for you with HPEX and, is this yours? No, it's DevCon. DevCon staff. DevCon staff? Oh, okay. Are we actually allowed to give this away? Yeah, that's what we have to do. All right. All right. Well, next person who saves our ass gets this. It's pretty cool. I mean, we've got at HPEX 11 some Microsoft... Right. We've got cookies. We actually have others. How about this? Can we give this one? All right. Let me see what's going on here. That is a very phallic box. That's the biggest box here, probably. Yeah. Dude, these are just...this is a minefield. Can you switch cables? All right. Thanks. Just a second. So, what I'm going to show you in a minute is a couple of things. Basically, I'm going to run through a Bayon application with you. And I'll show you CCScript first, which is the interface language. I know. Switch. This is a buggy hack. But, okay. So, what you've got here is CCScript, and that's our interface language to Bayon, which is a phone application server. What we're trying to do here is allow you to very quickly, with a small amount of code, design an interface through a phone system and express that. There are a lot of other ways to do it. What this does here is it has commands like set variables, clue variables. You can do that. You have the concepts of variables. You also have the concepts of digit traps, where you see the carrot. That's trapping a digit. So, probably it's down here. So, digit traps, basically, on a trap digit, you execute the code after the trap. That's it. Then, what you have are other things you can do. You can execute pro scripts with the data that you've collected. You can collect data. Jason, am I on a collect? Does anyone have a laser pointer? All right. Yeah, that's very hard. So, you can do things like play files, play audio files, record audio files with this. You just have type, what's that? Oh, yeah. Maybe I can. Hold on. Hold on. Hold on. Hold on. Caller, 24 minutes. This is rad. Okay. So, you can set variables. This sets this variable to this variable. Basically, you're assigning this variable to this variable. This session variables are one type and then all other variables are of another type. Session variables are variables that are valid throughout the session and get changed by Bayon. For instance, this contains all the digits that Bayon has collected since the session variables have been cleared. So, question is, can you pass it to other functions? Yes, you can. You can actually have subroutines. Session digits are valid throughout the session. So, this here is actually a login script. And I made a couple of different login scripts. This one is basically we've collected some digits from the user. We have a collect function up here. And we have a deterministic where it actually looks in a little ProDB database. This is a LibExec call. It's just like a CGI call. This is the name of the poll script that it's calling. Then we have a random-ish method, which actually what this does is it looks at the bottom of a file of passwords that were generated, one-time passwords. There's a little poll script to generate 100 of them. It gets the last one and then deletes it. So, basically, when you log into the voicemail system, you'll only use one password once. Usually what you'll do is you'll print out 100 one-time passwords under a business card and then you'll cross them off as you use them. And they'll be deleted and they won't exist anymore. So, that's actually a little bit, I feel this would be kind of cool for here because it's, you know, out of security nature. People couldn't, you know, go in and poke around and delete your files if they were sitting outside with a lineman's phone or something when you typed your password in. So, that's kind of cool. What I'll probably do is I'll just show you Bayon running in trace mode. I'll show it, go through here. We have a debug mode for Bayon. You know, if we don't get blown away, we'll show you basically all of these script steps executing. And you actually, it's pretty cool developing with this because you don't actually have to, you know, start and stop the server to change this stuff. It's just like, it's almost like HTML. You can just type one command in the server and the server will then recompile all of this stuff internally, all of its scripts. And real time, the application will change as you've defined it. It won't change, of course, until the next caller picks up on a port. A port, by the way, is roughly equivalent to a little phone socket in the back of a computer. So let me put it in trace mode, see if that helps. Excellent. So if I call into the system here, it's a basic voice mail system. I'm just going to show you the hack that I just did. Here it goes. I'm calling through a little separate switching box here. I could explain that later, but it's not really interesting. So it explains it's ringing. It's probably, it's asking me to, you know, do something. I'm going to press start to log in. Oh, okay. It just asked me to enter my password. I'll load some like next time. So that's an invalid password. So it didn't like that. But I will show you now a valid password that I'll get out of the one-time password file. This is the little poll script that Bayon is going to call to get the value out of the password file. And I'll show you the password file too. And you'll understand the script a little better. So that's just it. There's just a bunch of numbers about. What's that last number, Jason? Okay, 6970. So let's go ahead and look at that poll script one more time. Okay, so the poll script basically has to get a value from the CC script, the interface script that I just showed you. It gets the value where it's not debug, so it gets it to the TGI query. And then it goes ahead and chops it off. The last line off returns it and then goes ahead and sets the value back with the TGI set. And that's it. That's basically a TGI script. So 6970. I think that's it. I can't do that. Thank you for calling. Enter your password in valid value. That hurts. A450. A450. That one's deleted now, dude. Oh, wait. Oh, never mind. I was going to hold it while you entered the cascode. Okay. Anyway, so this is basically the way that it works. We didn't enter the right number. The other interesting things that you could do with this voice mail system that you wouldn't do with other voice mail systems easily is, you know, say, have your voice mail emailed to you so you didn't actually have to use a phone. You can check them on the web or online. I actually did write a little script like that. Let's see. Okay. Oh, no. Okay. So this is a, actually this is way over complicated. I did write this for this, well, I wrote it for somebody else. What this does is it just checks a directory and sees if any files have changed, and if they have, it just emails you links to the new ones. And that's really all you need to do. You don't need to touch your voice mail application or anything. You know, it's simple. It's useful for other things. And, you know, you can do kind of clean hacks like this if you have a powerful system. By the way, Bayon is used commercially by, you know, lots of big companies. We're doing the Enterprise Call Center for Sun with it. There's just, it's a robust, mature app. Okay. So what kind of hardware? Okay. Very good question. There are a lot of different vendors of, let me see if I have some. Okay, I don't. There are a lot of different vendors of computers that left any cards out there. Very few of them actually have open source drivers, which is kind of bad, because usually what happens is a kernel will rev and your driver will no longer load, or you just can't use a newer kernel or something, and it stinks. But it's livable. You can deal with it. Intel Dialogic has a full line of cards that you can use with, use on Linux. Linux only. VoiceTronics is a company, an Australian company, that you can use. They make a line of analog cards, basically. They'll do call logging, they'll do voice response. You can implement a PBX with it, with their stuff. They've got some pretty cool stuff. And QuickNet is another company. And we're going to show you a QuickNet card. We actually have a VoiceTronics card in here, doing this messaging demo. And then we've got a QuickNet card in there. We're going to show you a Voice over IP demo with that. And QuickNet makes some single load density cards that are designed for, you know, cell type environments, or just, you know, personal use. They can be used in gateways. You can throw one or two of these QuickNet cards into a gateway. They do hardware compression and echo cancellation. So it makes your voice... Basically, it can improve the quality of your Voice over IP call. What are we at? Okay. It's not too bad. What's that? Okay. Let me do some terminology. You don't know what a codec is? A codec... Yeah, okay. I know. The question is, will your codec scale automatically on the fly if your traffic gets heavy? And the answer is generally no. What will happen is they... Codecs usually have a rated at a certain amount of bandwidth. They're usually named ITU names, like G711, you know, G723. A lot of them are proprietary. And even if you reverse engineer them, you couldn't use them. A lot of the really good ones. And it's really sad that a lot of the good Voice over IP codecs are proprietary. You would just have to license them. It would be illegal to use them even if you reverse engineer them. But most of these cards, companies that make these cards that are specifically designed to do Voice over IP, these guys actually license the codecs and put it in hardware on the card so you don't have to purchase it. Also, Microsoft NetMe has licenses for most of the codecs in it. We're going to show you basically a Linux box here, one of our next demos, showing a Voice over IP gateway on a Linux box and a Microsoft NetMe client, just to show you the interoperability. The situation isn't hopeless. There are people working on really high quality low bandwidth codecs for Voice over IP use through open source. There's one called Speaks out there. Speaks, yeah. So there's quite a bit of useful stuff out there. You can also use G711 and GSM. Those are two codecs that are about cell phone quality or toll quality and they work. They're not as nice as the other codecs. So we're a little behind on that. Do I have any questions on this stuff, on a demo? How BAN works? How the 3-tier architecture? Yes, sir. Hand sets. Well, basically what happens is when you have a server like this, it's just got ports in back. There are four ports back here. And based on the card that you buy, it's an interface card, okay? You generally will buy an interface card to either lines from the phone company, trunk side lines or station side lines which just connect straight to phones. All your voice messages, your answering machines, they just connect to the phone company. Do you have some interface cards that you need in SS7? No, there is an open SS7 stack. It's an out-of-band protocol. There are cards that have everything under the sun built into the card in software. Dialogic actually has this thing. Back in the day, we used to make them out of 286s and we'd put a whole bunch of these dialogic cards in there and they have this out-of-band bus, just a ribbon cable going across all the cards. And everything would be done on the cards. You name it. These days, we're doing...actually I'll show you another slide on this. We're doing what's called host processing. We're taking everything out of the expensive DSP cards and we're putting it into host processing. We're implementing it all in commodity software, making the interface cards very cheap, making it possible to build an expensive system. You've had your hand up a long time. What's the cost? Yeah, actually the Intel cards all support ISDN primary rate. There are...pardon? Yes, it does. And actually those are all supported by Intel. We've got full ISDN primary rate stack. They work internationally, everywhere in the world. There are basic-grade ISDN drivers. I don't have much experience with basic-grade ISDN drivers because frankly, it's just not viable where I live What's that? We've used the Fritz card. There's this cheap card called the Fritz Kappie card. It's a Kappie driver, right? Well, it's called the Fritz card but it's a Kappie driver, Kappie interface. Yeah, actually definitely. I think people will always be compressing it because you'll want to get the most out of your bandwidth. You'll also be doing some other complex things like echo cancellation that are all, you know, basically a cheap echo canceler has like four or five FFTs in it. It's a very complicated piece of software to write and really good ones, you know, have a lot more. You're always going to have a lot of fairly complex software, at least I think in our lifetime, you know, compressing this stuff and, you know, processing the audio because you have to do it in a pack-based system. I'm going to take one from you. I'm going to take one more question from you, sir. Oh, well, I think you actually had it up longer. Are you in the back? Can somebody relay that? Yeah, actually, that's another thing that you can do in host processing. We actually have the VoiceTronix card does that in host processing. It's got an echo canceler that works in host processing. It's not as efficient as doing it on a DSP, of course. Intel cards generally do all of this on DSPs. They'll bridge calls. There's a simple command in their own CC script called join and you just join two ports together. I can show you that. And let me actually cover a little bit more material before I turn it over to Jason because I just want to touch on a few questions that were asked. No, go for it. Yeah. Small capacity systems. SS7 is not generally used in small capacity systems. It's usually not a band protocol. It's used between central offices. There are a few people who are using open SS7. Like Lockheed uses it between their offices. I really don't know how prevalent it is, how heavily used it is because I haven't used it. I'm working on small systems actually. Up to, say, 96 ports per box. I don't know if any of you guys saw this paper. Okay, if any of you saw this, way back in like the late 80s or mid-80s, there was this paper done at SGI about graphics cults and it was called the Wheel of Reincarnation which I'm sure a million things have been called. Does anybody have a copy of that paper? Okay. There's a tentative. You do? You actually do? Wow. Okay. I think we're supposed to give away the big computer to the woman with the biggest boobs. I didn't. That's not me. That's actually what we were told. Yeah, constap. Yeah, constap. We need evidence. The IPX, however, is yours. Please email me a copy of that paper. So the Wheel of Reincarnation basically described how you started out with these really special purpose things like DSPs, the graphics processors, and then eventually the host processors got more powerful and you discovered that you could do a lot more with host processing. And the graphics cards became less powerful and but over time what would happen is that people would realize that there'd be another generation of graphics chips and they'd take it away and it'd be more powerful and people would start using high end graphics cards and it would cycle like this and that's kind of what we're doing with DSPs and telephony too. We kind of started out with doing everything in, well actually we started out doing everything analog. We didn't have a whole lot of digital stuff. We've gone through a cycle of digital signal processing and we're heading towards a cycle of host processing and it's kind of an interesting thing to notice. So other projects that I should really mention, let me just see if I have a slide on that. Oh really? That was rude. Okay, so other projects that I should mention are, no that's cool. Asterisk which is a Linux and FreeBSD compatible based PBX type system. Asterisk is a sort of an all-in-one server. It will do primarily switching and primarily uses the channel bank methodology currently that I described to you before, where you have a computer controlling an interface that's a channel bank. It's a little different. A channel bank is a piece of equipment that you might buy from AdTran or somebody like that, whereas a computer telepathy card is something you'd stick in a computer. It's not a standalone box. You get a little bit more flexibility maybe with a standalone computer, but it's a viable, what they're doing is a viable way of doing things, and it's a very interesting project. You can purchase switching equipment that runs Asterisk. I should also mention Vocal, which is an entire suite of voice over IP based applications. It's actually by a company that was bought by Cisco. So they're a considerable force in open source within Cisco, and all their stuff is based on a session protocol called SIP. For a long time there was a controversy between two protocols for voice over IP. Well, not that long, but there was this controversy, and there are different camps. SIP is the more recent protocol. H323 is the older one. H323 is complex as hell, and it's an ITU protocol. SIP is really simple, ASCII based, IETF protocol, and we see it was. Now it's getting more and more complicated. So IETF stuff at least starts out kind of cool and simple, but it's not really that simple anymore. The base out there is H323, but everybody's developing SIP stuff. We're going to show you an H323 thing because it's just what we're using. Let's see, what are... Good H323 client, GNOMO phone, and GNOME meeting. GNOME meeting is basically an equivalent to Microsoft NetMe. H323, like I said, is a complex protocol. It covers everything from white board to video to audio. It covers little talking heads if you wanted to have a little talking head up here and how the mouth would move if you didn't want your face to appear. You name it. So anyway, GNOME meeting and NetMe support a small fraction of that stuff and are compatible. The only thing that's not compatible, and we're kind of getting back around the same problem we mentioned before, is the default codec that NetMe uses is proprietary codec. So you have to set up NetMe to use an open codec, which the GNOME meeting people have kindly created a one button installer for. So you download GNOME meeting, you can get that, send it to your friends at NetMe, and they'll be using an open codec. Still be compatible with whatever else you're using probably. How you doing? Okay, I'm going to give Jason the mic. This is Jason Spence. He's not only working on Bayone and H323 apps, but he also works on a lot of drivers, and he's working on our next switching gatekeeper Ipswich. Hi, I'm Jason, and I'm a technical consultant with Open Source Telecom Corporation, the company that Rich and I work for. What I have here is I have NetMe running on my laptop. Sorry. What I have here is I have NetMe running on my laptop, and NetMe is going to establish to a program named PSTN Gateway on this machine, which listens on TCP port 1720. Once the session is established, they're going to start sending UDP packets with audio data between them, and well, you'll see. Over here on your right, you should see PSTN Gateway calling this phone here. Where's my... Hold on. Rich is going to say hi. It's beautiful. It's beautiful. Wonderful. There's a lot of different hardware you can choose for doing voice over IP. A lot of it's very expensive. That's just the way the market is. People are used to paying for telephone service. The internet has a lot... very different economics. People are used to getting things for free. There's a problem with the telephone industry these days in that it's become so competitive that it's no longer possible for the telephone company to provide the quality of service that we've been used to over the past 10 years. So you have issues like in San Francisco. Does anybody here live in San Francisco? I'm sure you should know there's a problem with getting DSL in some of the high density areas. Okay. Well, the telephone company provides a connection to their network using copper. Now this copper sometimes ends up below the water table and it gets soaked and you get a bad connection. Your DSL goes down. Your phone connections get crackly. Now these days we have NATO 2.11. In San Francisco there are huge wireless networks put up by communities and volunteers. These serve the same purpose that the phone company does. They provide a connection to the network and allow people to send data between two endpoints on the network. Now we're starting a program called OpenTelco. OpenTelco is a community run telephone network. It takes advantage of internet economics and inexpensive telephony hardware done by companies like VoiceTronics in order to enable you to do total bypass using H323. You can get more information about OpenTelco at I think we might have a link on our website. I found out when we set up today that we don't have internet access up here so I can't show you on the laptop but you can get more information about OpenTelco at the Unix surplus booth tomorrow in the vendor area. So I guess we're over time but I've got a few other little things I just want to explain because I assume there are some application developers out there. Damn, I just had it. Okay, so I wanted to explain the next oh, hey I found it process of elimination. The next step is actually to allow developers of applications that have nothing to do with our telephony servers to use a simple API to develop. Basically we have this thing called Fritter and that's an API library that has extremely simple commands like open, device you know, dial, play, stuff like CC script only in an API method you get callbacks and so forth then we've got a protocol that is corresponding called glazed and the protocol can broker API commands from your application say it's a calendar app and it's supposed to page people at a certain time or call them all to do a teleconference or whatever. If you have telephony resources on your box you would just use a library like Fritter with your calendaring app to talk to say your voice modem or something. If you have telephony resources say in the next office a big band sort of running your phone system you would probably have to use Fritter and glazed which would protocol the API to be on. That's kind of the next step. The other thing that we're kind of excited about doing is Bayon NG which is our next generation voice response server has split out largely split out all of its drivers for the many cards that it supports and it supports most of the cards that are supported on open source systems and we're going to split out that as a standalone library that you can use on applications as well and that we can use throughout CanUcom and we call that phone streamer junior. There was a more advanced attempted back called phone streamer that was based on G streamer that actually did everything multiplexed audio and so forth that turned out to be a little heavyweight and complex so we're going to start out with the library. So that's the main thing. So if you look at the library there's a lot of books. It stands alone. I don't know, you have to show us this is sad. We only have one those are kind of who about dimes maybe. Here I have no idea. That's part of it. It's a surprise. We'll set up for big nipples. There's a SCSI card on the back and it's got to be worth something. That's one of high density adapters there. We're going to take this down to the UNIX surplus booth and you can go ahead and claim it there if you're the person with the biggest nipples today. The box will be down there. I hope you enjoyed the talk. I know our hacks on the video system were annoying but hey that's what we do. What's that? ganucom.org and you should be able to get a reading from there. Let me point at it with the pointer. I hope I'm actually pointing at something. Ganucom. GNUCOM. See that little X there? Let's move around. Ganucom.org Got it. And actually I'm willing to take questions until they kick us out. So who's got questions? Oh jeez Oh wow. We've got to give you something else man. We have a bag of chips ahoy here if you like cooking. Anybody who asks a question from now on gets a chip ahoy. That card if you've got a card wait and listen to this that card I can buy in bulk for five dollars and it's a host processing modem it's a tiny little modem that doesn't do anything much. All it has is a line interface and a tiny little DSP that will generate and detect DTMF and it'll buffer audio back and forth to the PCI box. Now a number of people have worked on this in the past and had some success in using it as a five dollar computer telephony card but progress is really stalled on it and frankly I don't have the time and you've seen my code I don't have the skill to make this thing a viable alternative for hackers who want to set up a phone system that can do anything one of these that it can do for five bucks but it would really improve the ability it would make developing phone applications more accessible if somebody would finish off the open source driver for that it's been reverse engineered almost completely enough to do all the stuff we want to do what's that yeah somebody just said something anyway yeah yeah that was before the DMCA it wasn't me I'm only joking come have a cookie and we'll talk oh jeez I didn't even mention those CMU wrote a great open source voice recognition system and a great text to speed system they're what's that they're pretty clear Sphinx is the name as in the Sphinx Egypt of the voice recognition system and it doesn't have a big vocabulary but it will certainly work for a lot of these applications if you just wanted to recognize numbers and a discrete set of data speech recognition has got a few problems festival is a great text to speech engine that's totally open source it's got a lot of language support the guys who wrote it actually have a company they'll make custom voices for you for festivals so if you want a voice that sounds just like you know night rider or I was trying to get them to do resorts of war but the yeah max yeah that kind of stuff so it's called SEPSTRA and it's really cool and these guys are doing some great work they still support the open source stuff and yeah there's lots of good software out there for that yeah you can some of it is easier than other stuff they own it for voice response we've got the system that people make write applications quick for doing things like routers and switches we haven't got there yet Jason's working on one called Ipswich we'll probably have a prototype out real soon now there are relatively inexpensive cards generally these cards here by the way they cost well over $100 per port so you buy a 12 port card you're probably spending one to $200 per port maybe two grand and some of them go way hard a female are we talking about the box here? male's cap yeah okay yeah these cards for instance let's take an example the V12 PCI is generally referred to as a PBX card each group of four ports on it, it's a 12 port card is switchable as either trunk or station so you can have 8 phones and 4 trunk lines to the telco or 12 trunk lines, 12 station lines go around whatever you want and a lot of them do work that way that's kind of a good way to do it to jump around doing it in software is really dangerous you don't want to have the phone company send 100 volts into your station side interface usually so that's a trunk side thing that'll allow you to do say voice response and so forth there's also a little tiny problem on check we have a little tiny voice over IP client for an old version of a reverse engine or driver for that it's pretty cool yeah behind that guy does it wet support? yeah basically anything that needs card support we've probably implemented a feature the guys with the biggest feature set are intel dialogic and we haven't implemented all that but there are people working on it oh I'm sorry dude it's in my pocket I stole somebody's leisure pointer no okay you got it yeah who else you know what the software that we're writing we started on a voice modem driver and never finished it and that is probably the biggest pain in our butt that we've just never taken care of is finishing the voice modem driver it's not that hard we can basically talk AT commands there are just a few maybe a day of coding or two days of coding to finish that driver and we get that on the mail and it's all day long so I have no idea why we haven't finished it sorry dude did we get this away? yeah we gave this away and the dude took off wow I wonder if he's going to send me the document is the guy who won this still here he's not going to send me the document does anybody else have that document from SGI about the wheel reincarnation it's in the document um okay has anybody here ever delivered a ninja burger has anyone ever received a ninja burger um okay is anyone willing to deliver a ninja egg through young uh uh uh this is a cruel system very compact oh why our ninja come get it whoo so um whoo begin alright we've been told to shut up so I guess that's it if you guys have questions you can ask us afterwards thanks man where's the egg with the young dude where's the egg