Slashdot Mirror


Interview with Mark Spencer of Asterisk

comforteagle writes "OSDir has published an interview with Mark Spencer of Asterisk and Gaim about why and how he got started coding up the software platform PBX system and how it has become much more than -just- another phone system. He also shares his insights for the opportunities within the telecom industry for open source."

124 comments

  1. And PBX is...? by The+Lerneaen+Hydra · · Score: 1, Interesting

    Would someone care to enlighten we the proletarians as to what PBX is?

    1. Re:And PBX is...? by Qwell · · Score: 2, Informative

      Private Branch eXchange.
      A telephone system.

      --
      As of 10/06/03, I hate COBOL developers.
    2. Re:And PBX is...? by dud83 · · Score: 4, Informative

      Officially it means: "Private Branch Exchange (private telephone switchboard)" In reality it is a switchboard placed inside your house or office commonly. You know, "press 1 for an outbound line" sort of thing!
      It's like a router with a NAT... Only for telephones not the internet...

    3. Re:And PBX is...? by Anonymous Coward · · Score: 0

      It is a Public Branch eXchange system. Think of it as a big router for phones. Calls are routed internally by the PBX and when needed the calls are then routed externally.

    4. Re:And PBX is...? by Anonymous Coward · · Score: 0

      Private Branch Exchange. A phone system that separate from the public telephone network, but may interface it.

      Or, that thing that makes you dial "9" first.

    5. Re:And PBX is...? by Chyeld · · Score: 4, Insightful

      PBX - Private Branch eXchange. Sometimes also called Postbox exchange, or Private Business Exchange. I'm not sure what the 'official' meaning is.

      Basically it's a voicemail/call routing system. Almost every company that handles more than one incoming line has a PBX. It's the internal phone system. Extensions, voicemail boxes, hold music, voice menus, etc. are all run by your companies PBX.

      Asterix is an open source PBX designed to be run off any system that can run Linux. It's fairly extensible and because it runs on commodity hardware, very popular. Normal PBX systems can cost in the $10k amounts to do half of what a $5k Asterix system can. Plus, if you are truly a geek, you can setup your own home PBX off normal phone lines.

      Another reason Asterix is becoming popular is that it can handle Voice Over IP (VOIP) calls. This means you can setup a small home machine (many times people hook it into their router, PC or embedded) to work with a VOIP account such as Vontage and let you have more control with it.

    6. Re:And PBX is...? by amliebsch · · Score: 3, Informative

      Generally, though, for services like Vonage or Phone Over Cable, you must use the supplied analog telephone adapter. So despite the fact that the VOIP is coming in over the internet, you actually can't just handle them with an Asterisk server. You would need to instead get a second analog-to-digital converter, and use your VOIP line as though it were an ordinary analog telephone line.

      --
      If you don't know where you are going, you will wind up somewhere else.
    7. Re:And PBX is...? by TedCheshireAcad · · Score: 1

      Three letters that can convince a PHB to spend hundred of thousands of your salary/bonus dollars.

    8. Re:And PBX is...? by Corydon76 · · Score: 4, Informative

      While there certainly are the Vonages of the world, there are far more VoIP services that permit you to connect any phone you like.

    9. Re:And PBX is...? by hackstraw · · Score: 1

      Officially it means: "Private Branch Exchange (private telephone switchboard)" In reality it is a switchboard placed inside your house or office commonly. You know, "press 1 for an outbound line" sort of thing!
      It's like a router with a NAT... Only for telephones not the internet...


      A side note about being "behind" a PBX, is that the lines are not regular phones anymore. Typically, they are digital and not analog, which can be a pain if you need an analog phone line for things like a modem or fax machine.

      Does anyone know if asterisk supports faxes?

    10. Re:And PBX is...? by Dare+nMc · · Score: 1

      >Does anyone know if asterisk supports faxes?
      yes, I have sent, and recieved faxs through asterisk, but it depends highly on what your voice provider/hardware is, especially in-terms of throughput. my asterisk setup is using digium hardware to analog lines, and with asteriskathome (availble on sourceforge) it automatically wraps up faxs into a pdf, and emails them to you. for sending fax's, I used a linux fax driver on a seperate card, seperate install, installed as a samba printer.

    11. Re:And PBX is...? by grenthal · · Score: 1
      Does anyone know if asterisk supports faxes?
      Yes through spandsp http://www.soft-switch.org/installing-spandsp.html
    12. Re:And PBX is...? by SIGPrez · · Score: 1

      Asterisk supports both normal analog phones or PBX digital phones "behind" the PBX, as well as VOIP softphones.

      I use Asterisk at home with a Digium card, and use regular analog phones with the regular house wiring. I also use softphones on each PC within my home network.

      Asterisk does support faxes. In my case, when a fax comes in, it is immediately recognized and routed to the fax machine, WITHOUT ringing any home phones, even if it comes in on my regular home phone line. I plan to change this so that faxes are routed to Hylafax in the future.

    13. Re:And PBX is...? by Flagg0204 · · Score: 2, Funny

      God I feel old

    14. Re:And PBX is...? by grasshoppa · · Score: 2, Informative

      Let us not forget some of my personal favorites.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    15. Re:And PBX is...? by mla_anderson · · Score: 1

      Or another favorite. Their setup instructions are for Asterisk. Bad points? Well they don't really take into account that someone may want to go straight to an ATA (like my father-in-law). Oh well, service is very good.

      --
      Sig is on vacation
    16. Re:And PBX is...? by mla_anderson · · Score: 1

      Oops. Make that http://telasip.com/

      --
      Sig is on vacation
    17. Re:And PBX is...? by Anonymous Coward · · Score: 0
      Asterix is
      a comic strip, about the eponymous Gaul's experience of the Roman invasion of turn-of-the-first-millennium France. It was never very funny but the similarity between the sound of x and sk caused confusion to many for 2000 years. q.v. nucular (sic), Bush II.
    18. Re:And PBX is...? by DrZaius · · Score: 1
      Normal PBX systems can cost in the $10k amounts to do half of what a $5k Asterix system can. Plus, if you are truly a geek, you can setup your own home PBX off normal phone lines.

      Wow, what does 10K get you in the world of phone systems (outside of asterisk)? The last install I did was $80K *before* handsets.. That was for about 40 people -- expandible to 80ish..

      --
      -- DrZaius - Minister of Sciences and Protector of the Faith
    19. Re:And PBX is...? by excaldera · · Score: 1

      An fxo fxs ports and an ata from packet8 or any provider will fix that. A number of fxs ports and more possibilities abound! Like extentions in the home. This is just using asterisk@home!

  2. * is the killer linux app by grasshoppa · · Score: 5, Informative

    I have used and deployed * in a number of setups ( from large businesses to home ), and you folks should really understand something: This is the killer linux app.

    Samba is great. qmail/sendmail/ect...is wonderful as well. But, as far as getting linux in the door, this is the application that will do it. For example, my first * implementation cost about 8grand ( parts and service ).

    For a similar, but far less featured pbx from avaya, I was quoted 40grand. And that was a quote. Anybody here that has worked with phone venders should be chuckling right now at that number, as it amounts to a pie in the sky dream.

    So, for my small business, I saved them 30 grand right up front ( likely more ). On top of that, as their needs change, so can the phone system. Just the other day they found out I was taking my desk phone home ( to play with, but also get my phone calls ). When I told them why, they were floored that the system could do that, no matter how many times I told them it could.

    Larger businesses will see far more dramatic cost savings, and get more features to boot.

    --
    Mod me down with all of your hatred and your journey towards the dark side will be complete!
    1. Re:* is the killer linux app by silentbozo · · Score: 1

      8k for your first implementation - would you care to share how that was broken down? I have a small collection of PC parts I'd like to recycle into a phone system - what do I need to get?

    2. Re:* is the killer linux app by grasshoppa · · Score: 2, Informative

      Most of that was server and related costs. I spent about 6k on twin servers with a beefy UPS. If one goes down, I'll lose all current calls, but the phones and everything will be right back up as the second server takes over.

      About 2k was for phones. This was a small installation with some very specific needs.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    3. Re:* is the killer linux app by BESTouff · · Score: 1

      For non-techies out there, the key to understand the parent post is that "*" in this text can always be replaced by the linux app du jour. Try it, you'll see for yourself that it works well.

    4. Re:* is the killer linux app by grasshoppa · · Score: 0

      You post displays a delightful amount of ignorance, combine with a fruity blend of idiocy.

      Well done.

      ( for the laymen: * is short term for asterisk )

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    5. Re:* is the killer linux app by syphax · · Score: 1


      Dude, I think it was a joke.

      --
      Simple Unexpected Concrete Credible Emotional Stories
    6. Re:* is the killer linux app by J0nne · · Score: 5, Funny

      I have used and deployed * in a number of setups...

      The copy/paste trolls are getting lazier by the day. In earlier times they bothered to alter the post to fit the subject, but now they just use a wildcard...

      <insert monty python foot here>

    7. Re:* is the killer linux app by mstefanus · · Score: 1

      I heard that * has some quirks; problems such as echo's, unstable after a couple of days. Do you experience that also? Or is it stable like Apache or linux kind of stability?

      Thanks.

    8. Re:* is the killer linux app by Anonymous Coward · · Score: 0

      haha, mod parent anal

    9. Re:* is the killer linux app by grasshoppa · · Score: 1

      I heard that * has some quirks;

      It does, but mostly you run in to them when dealing with the telco side of things.

      problems such as echo's, unstable after a couple of days.

      Echo isn't a problem if you get quality hardware, and my current asterisk server ( which I am talking on right now as a matter of fact ) has an uptime of over a month.

      Or is it stable like Apache or linux kind of stability?

      I would say it's about as stable as apache, if not more so. I can't remember the last time I had * just crash out for no reason. It'll either segment fault out at start or when you do something funky to the underlying system, but not during normal operation.

      --
      Mod me down with all of your hatred and your journey towards the dark side will be complete!
    10. Re:* is the killer linux app by porkThreeWays · · Score: 3, Insightful

      Comparing Apache and Asterisk is difficult. The most often changed item of apache is the html. You can't make apache unstartable by having garbage html in your htdocs directory. Really, once the initial configuration of Apache is done, you probably won't make that many changes (for most sites). For asterisk, the thing you change the most is extensions. Extensions live in the Asterisk configuration. You _can_ break your Asterisk config this way and make it unstartable. The software itself is pretty rock solid, but because you will be activly making changes to the asterisk config (whether with vi or a front-end), it does lend itself to more human error. I tend to make any asterisk changes in batches at night because there's less "bitching factor" if the phone system is down for 30 seconds at 11pm than at 11am. If you are in a small business and will rarely add extensions, you could run your asterisk system for years without a problem.

      The biggest thing you want is your hardware on multiple battery backups and make sure your extensions config to make e-911 calls. There'd be nothing worse than a power outage and resulting emergency, and not being able to call 911.

      --
      If an officer ever threatens to taze you, say you have a pacemaker.
    11. Re:* is the killer linux app by Anonymous Coward · · Score: 0

      Maybe becasue it is "free".

      But as far as Linux being in the PBX world that has been true fro some time now.

      1. Avaya S* series
      2. Alcatel Omni Series

      And recently even Nortel has a BCM50 which is based on Linux

    12. Re:* is the killer linux app by mla_anderson · · Score: 1

      I am currently deploying Asterisk in a mid sized business, about 100 employees but only about 70 phones. We were looking at a quoted cost of $55K - $60K for a bare bones system from any vendor. Our total costs with Asterisk are going to be less than $20K and probably more like $17K. The test users absolutely love the system and a number of users are forgoing the $250 phone for the X-Lite softphone.

      The costs include two Asterisk servers with T1 cards, the POE switches and the phones. The second server is a backup for the first and is rsync'd from the first every 5 minutes. If we lose our primary system we're back up in minutes.

      In addition, I can work from home and appear to be at my desk. <grin>

      --
      Sig is on vacation
    13. Re:* is the killer linux app by matuscak · · Score: 1

      So do the proprietary phone systems you mentioned include the redundancy your'e talking about with Asterisk? I'd expect not. We use Nortel (Norstar and BCM) systems and they dont even begin to think about redundant *anything*. Of course, that means that the cost difference should even be larger.

    14. Re:* is the killer linux app by slazar · · Score: 1

      you mean emergency and resulting power outage (much more devastating).

    15. Re:* is the killer linux app by mla_anderson · · Score: 1

      You're absolutely correct, the proprietary systems do not include the redundancy but they do include onsite service for a fixed length of time. The redundnacy is one of the ways we were able to sell the system to management, well the cost helped to.

      --
      Sig is on vacation
    16. Re:* is the killer linux app by matuscak · · Score: 1

      FWIW, we have the on site support on the Nortels and they havent impressed me with their promptness. We have not had an entire system blow up (knock on wood), but one of the voice mail pieces wacked out and it took them 2 days to get it back. Your'e much, much better off with the Asterisk box. I'm jealous :-)

    17. Re:* is the killer linux app by Nevyn · · Score: 1
      Extensions live in the Asterisk configuration. You _can_ break your Asterisk config this way and make it unstartable.

      Interesting ... there's no way to move this to a DB? When you restart * does that drop all the current phone lines?

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
  3. RE: PBX by Anonymous Coward · · Score: 1, Insightful

    PBX is Provate Branch Exchange. Phone switches, basically.

    Are you sure it wasn't Mark Spencer from Marks and Spencers?

  4. I regret... by Tackhead · · Score: 1
    > OSDir.com: What do you advise people to bear in mind if they plan to deploy Asterisk for their PBX needs? What should they know about the features and limitations of the software's current version?
    >
    > Spencer: Asterisk, as its name implies, was designed to do everything in telecom -- the name comes from the wildcard symbol. It can do most anything that you need it to do.

    A good answer, but I half-expected to read...

    "Asterisk? As its name implies - I regret that I have but one asterisk for my company. That's why I went with an open source solution."

    But then I'm an invertebrate punster. (so slug me!)

    1. Re:I regret... by Savantissimo · · Score: 1

      Thanks for doing that- I was afraid I would have to.

      --
      "Is life so dear, or peace so sweet, as to be purchased at the price of chains and slavery?" - Patrick Henry
    2. Re:I regret... by JerkBoB · · Score: 1

      But then I'm an invertebrate punster. (so slug me!)

      Nice... *POW*

      --
      A host is a host from coast to coast...
      Unless it's down, or slow, or fails to POST!
  5. What an timing :) by Skal+Tura · · Score: 1

    Perfect timing for interview like this for me, i'm just building my first PBX system ever, and it ain't gonna be small :)
    I'm actually quite overwhelmed about that task, hopefulyl i get by fine :)

    1. Re:What an timing :) by dotslasher_sri · · Score: 2, Informative

      you might find this helpful

      http://revision3.com/systm/asterisk

    2. Re:What an timing :) by Skal+Tura · · Score: 1

      Thanks, got to watch it now :)

  6. Systm video cast on iTunes by pesc · · Score: 4, Informative

    If you have iTunes, you can check out the latest systm video cast which features a demonstration by John Todd. Shows how to set up Asterisk. 47 minutes in length. Go to iTunes and search for "systm".

    --

    )9TSS
    1. Re:Systm video cast on iTunes by Brian+Stretch · · Score: 4, Informative

      Better yet, go here and get the H.264 torrent (or whichever encoding you prefer). That page also gives you a slew of very useful Asterisk links.

    2. Re:Systm video cast on iTunes by Anonymous Coward · · Score: 0

      If you have iTunes, you can check out the latest systm video cast which features a demonstration by John Todd. Shows how to set up Asterisk. 47 minutes in length. Go to iTunes and search for "systm".

      Or even if you don't have itunes, you can get a feed here grab the large xvid torrent here

    3. Re:Systm video cast on iTunes by Anonymous Coward · · Score: 1, Informative

      Speaking of iTunes I saw this posted on Asterisk-Users today: Podcasting via Asterisk's native voicemail functionality.

      Speaking of Asterisk as a killer app because it saves business so much money is just one facet. Another equally if not more important facet is the new possibilities introduced with an open platform. IMHO it's the same reason that Linux has gone so far: Simply put, openness breeds innovation.

  7. Asterisk is something special by porkThreeWays · · Score: 4, Insightful

    I can not even begin to describe how great asterisk has been to the telecom industry. Asterisk will be (and is currently) just as important to the telecom industry as VoIP itself. I've delt with propietary telecom stuff before. It sucks ass. Take Nortel and Cisco for example. If you are going to buy Nortel IP phones, be prepared to use a Nortel soft switch. Up until recently you couldn't use Cisco power over ethernet with Nortel phones because of Nortel's non-standard implementation. Basically, every switch maker has made it as difficult as they can to use other comapanies equipment with theirs. Everything is expensive, non-extensible, and non-interoperable.

    Then there's asterisk. Asterisk uses open standards. Asterisk has an API for writing phone based applications. Asterisk has a clean code base to contribute to. Telecom has almost always wanted to stay as closed as possible. People thought VoIP would change this. It just brought new people to the secret game (Cisco and Nortel being the worst offenders). Asterisk has blown this door wide open. Now, I can use whatever SIP phone I want. I don't have to find a Unistim phone anymore. I can write my own programs to interact with callers. Waaaaaaaaay more than simple tree based IVR's. We're talking full fledged applications through the phone. Without paying a dime. Asterisk has blown the doors wide open on the secret game of telecom. Sure, there will be a lot of people who stick with their traditional telecom equipment. But for those of us willing to roll up our sleeves, Asterisk offers up a way more extensible and programmable soft switch than I've ever seen from the traditional guys.

    --
    If an officer ever threatens to taze you, say you have a pacemaker.
    1. Re:Asterisk is something special by Anonymous Coward · · Score: 0

      Actually if you buy nortel phones you can buy citel hardware to connect them to your asterisk server... Saves a great deal of money and you get to use the open standards...

    2. Re:Asterisk is something special by Qwell · · Score: 3, Insightful

      I'd like to add to this...

      Not only can you use whatever SIP phone you like, you can also use whatever IAX2 phone, SCCP phone, MGCP device, etc...and you can use them together.

      You can call from an SCCP phone (Cisco) through Asterisk, over the internet to an IAX2 provider, who in turn connects to their provider via SIP, and then terminates to the PSTN.

      The * really DOES mean everything. Asterisk does this all seemlessly to the end users.

      --
      As of 10/06/03, I hate COBOL developers.
    3. Re:Asterisk is something special by gst · · Score: 1

      "Asterisk has a clean code base to contribute to." - Good joke! Did you ever had a look at the SIP module? At the deadlock handling? Asterisk has one of the ugliest codes which I have ever seen.

    4. Re:Asterisk is something special by SoulDad570 · · Score: 2, Interesting
      the secret game (Cisco and Nortel being the worst offenders)

      Care to elaborate on this? Cisco also sells a lot of SIP gear and are very serious about standards.

      Cisco's proprietary thing is SCCP, but SCCP not secret. Cisco tried to take SCCP to the standards committees, but that got shot down by competitors on the committees.

      Cisco sells SCCP products out of necessity, it's the only way to support the "300 classic PBX features". Standard SIP cannot do it (yet), and SIP with proprietary extensions is no better than SCCP. When the SIP evolves to support the rich PBX feature set, Cisco will be right there (in fact CIsco is involved in the SIP standards).

  8. its ASTERISK by mogorman · · Score: 1

    not astrix or asstricks or even trixast etc please get it right....

    1. Re:its ASTERISK by Anonymous Coward · · Score: 0

      mogmogmogomg!!! :D

  9. Another Cool Thing Done with Asterisk by DaedalusLogic · · Score: 3, Interesting

    These guys built a digital voice recorder out of it:

    http://www.basesys.com/

    It's used to provide a dictation service for large medical facilities down to small private practices. Medical dictation systems can cost $40,000+ from the biggest provider. (Dictaphone) We use this service though, and are very happy with their reliability. They can even support some proprietary Dictaphone hardware which uses DTMF tones not found on normal phones. (ABCD or Flash, Flash Override etc. for you military types.)

    1. Re:Another Cool Thing Done with Asterisk by Anonymous Coward · · Score: 0

      Does BaseSystem's price include the hardware needed to support their system?

      Also I can't find anything on there that says that they actually do the transcription. It mentions "Out tools for transcriptionists" -- which implies to me that the medical facility still has to employ transcriptionists and that the doctor can't just speak into a microphone and have the words appear in front of him.

      What about templates where the doc can say "looks normal" and have a bunch of text plopped into the report?

      Anyway it might be promising, but it has to be extremely promising as these services (aka powerscribe) save doctors a lot of money as they can get rid of their transcriptionists, easily saving $40k per person ($250k for a typical shop). If it is $25k vs $40k that's not much of a savings over a couple of years.

  10. You don't even need Asterisk... by qualico · · Score: 4, Informative

    ...when you have a termination provider capable of connecting with SIP phones.

    Otherwise, when I go to a computer recycling depot, all I see is Asterisk boxes.

    I have run 4 lines on my 450MHz box with no degradation at all.

    You can buy cheap FXO cards for $10 and unlock Vonage Linksys PAP2s for $10 per FXS port.
    Slap that together with a $25 PowerMAC 9600 and bam!
    5 FXO + 10 FXS and witness the power of a fully operational PBX system for 175 bucks!

    1. Re:You don't even need Asterisk... by silentbozo · · Score: 1

      Wait, wait - a PowerMac 9600? Is there a write-up about this somewhere? I was about to sacrifice a spare PIII box to the altar of experimentation, but if I can find work for my old PowerMacs, I'd be extremely happy.

    2. Re:You don't even need Asterisk... by qualico · · Score: 1

      Lookup "benjk" at the IRC #asterisk channel on freenode.
      He's the guy that tuned me into them because they have 6 PCI slots that *don't* share IRQs!
      That is the way all PC hardware should be run.
      You can cram in a bunch of those cheap FXO cards.

      Yellow Dog Linux is what he suggested for the OS.

      Myself, I'm an LFS guy. (Linux From Scratch)

      Don't scrap that PowerMac, otherwise send it my way.

    3. Re:You don't even need Asterisk... by Libor+Vanek · · Score: 1

      Hi, where can you get those 10$ FXO cards?

    4. Re:You don't even need Asterisk... by mla_anderson · · Score: 1

      If you're going to use the cards use the following echo canceling settings:

      echocancel=yes ; can be 32, 64 or 128...tweak
      echocancelwhenbridged=yes
      echotraini ng=400
      --
      Sig is on vacation
    5. Re:You don't even need Asterisk... by qualico · · Score: 1

      good tip!

  11. Asterisk solutions work! by Martz · · Score: 1

    I am also evaluating Asterisk, I have it running at the moment in VMWare (Asterisk@Home) with Sipgate.co.uk

    Since I'm in the UK, that gives me an 0845 number which routes directly to the * server, where a digital receptionist prompts for choices 1, 2, 3 etc. It's been useful since I am starting my own small business, and I am able to have semi-professional numbers on my business cards, take voices mails and queue calls up coming in over my ADSL. Sure beats call waiting or investing all my money into a phone system, where really I need it to support me and the business during the early days.

    It is truely an amazing product, but it is quite complex and deep in the configuration files. Asterisk@Home provides a great way to slap an install on an old computer or in VMWare and get started with adding extensions. With the original Asterisk product it is very easy to get bogged down installation and basic configuration, when you don't know what your doing.

    Highly recommended - I am hoping to sell the Asterisk server rebranded as my own PBX solution to companies, with a support contract. One of the only draw backs I can see is due to codecs, and using thhe G.729 - a royalty must be paid since it is not open source. This is a real shame since it can get right down to 8Kbps (instead of a standard uncompress 64Kbps channel) and here in the UK - upstream bandwidth is expensive - so the more channels you can transcode and pack down the pipe the better.

    I'm also looking for technical information on how to link Asterisk up to UK ISDN30, I am assuming at the moment that it is a PRI connection on the ISDN30 which uses a PRI interface?

    If anyone knows any solutions or better codecs to use I would be most interested!

  12. Success by kirkb · · Score: 0, Offtopic

    Do you think Asterisk would still be successful if he didn't hang around with that fat guy who fell into the potion cauldron when he was a baby?

    --
    Slashdot: come for the pedantry, stay for the condescension.
    1. Re:Success by teaDrunk · · Score: 1

      No, I think things worked out well only when they were together; to the dismay of the legions.

      Here's a toast to the best (in technobabble "killer") comic/story/cartoon book ever !!
      (so says TeaDrunkiX, raises Tea cup, spills a little in the cauldron)

  13. Like others have said, it IS the killer Linux app by x.Draino.x · · Score: 4, Interesting

    Take it from me.. I work for one of those large close-sourced PBX companies. I love Asterisk. I think the initial jump in may be confusing to those who have never touched the command line before, but once you get the hang of it, it is much faster to configure than other PBX systems, and much more customizeable. Instead of having to use some special client to make a connection to the PBX server to make changes, all I have to do with Asterisk is SSH to the box and use vi ( of course ) on a couple of easy to understand text files. Asterisk can also interact with everything else on the box using perl or some of the built-in commands in Asterisk. So you could have it write to MySQL db, or email you everytime someone hits option "8" on the phone. All that is required for a simple VoIP system is an older machine ( preferrably 300mhz+ ), a NIC, and a sound card. This simple setup can get you up and running making phone calls from one softphone ( software based, no physical phone needed ) to another. Sign up with someone like nufone.net and start making outgoing calls. Or purchase a DID and have incoming as well.

  14. Asterisk@Home by TeeJS · · Score: 5, Informative

    For those wishing to play with Asterisk, you can't beat Asterisk@Home. Nearly instant setup & web-based GUI config makes easy to administer too. I had it up and running in uner 10 min!

  15. Old News - Newer interview here by Bentley · · Score: 4, Informative

    Here's a link to a newer interview done with Mark Spencer last week, Jan. 19, 2006.

    http://gabcast.com/index.php?a=episodes&query=&b=p lay&id=91&cast=585&castPage=

  16. Re: PBX by Corydon76 · · Score: 1

    Quite sure. Mark Spencer is a personal friend (I'm one of the core developers of Asterisk).

  17. application by ch-chuck · · Score: 2, Interesting

    My * application is to send streaming audio to my cell phone. That is, before going out I plug the * console sound card into my streaming audio client. Then I can call in and dial the '1234' extension and listen to Internet audio from the car, while hiking, etc.
    Plus it was fun to play with setting up ;)

    --
    try { do() || do_not(); } catch (JediException err) { yoda(err); }
  18. Re:Like others have said, it IS the killer Linux a by MacJedi · · Score: 1
    All that is required for a simple VoIP system is an older machine ( preferrably 300mhz+ ), a NIC, and a sound card. This simple setup can get you up and running making phone calls from one softphone ... to another.

    Please pardon my igonrance, but for pure VoIP, do you even need a sound card in the Asterisk box?

    --
    2^5
  19. Re:Like others have said, it IS the killer Linux a by x.Draino.x · · Score: 1

    I'm not *positive*, but I believe you are correct. I believe if you want any sort of other functionality, like voicemail, or any sort of menu system, it would be required. If you don't have those features, I don't really see the point of having a PBX though. You might as well use Skype or something similar.

  20. Re:Like others have said, it IS the killer Linux a by Anonymous Coward · · Score: 0

    No. No sound card is required.

  21. This is True! by Greyfox · · Score: 2, Informative
    I started playing with Asterisk a while back while experimenting with VOIP. I've recently purchased a digium FXO/FXS card and set up my landline with a voice menu system. The sky's the limit for what you can do with the system. Pretty much any small business could put a "professional" face on their company for the price of a moderately powerful machine, some network connections and a few SIP phones for their employees.

    It's not all that esoteric to set up, either. I didn't even bother with the various GUI configuration tools you can download. I did have better luck compiling it myself rather than using the one that Debian has packed for it, but that may have changed since I tried it.

    If I were in the business of making commercial PBX systems, I'd be shaking in my boots right now. I think Asterisk will end up putting the lot of them out of business.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  22. the only source of information you will ever need by nubbie · · Score: 4, Informative
    --
    'Go for the eyes, Boo, go for the eyes, aaarrrrrrrr!' -- Minsc
  23. Re:Like others have said, it IS the killer Linux a by Anonymous Coward · · Score: 0

    The only thing you would need a sound card for is to plug your overhead paging system into the asterisk system.

    If you run pure voip system, you will need OHCI usb to sync the timing for the realtime audio. If you don't have that then you will need to get some of that $10 telephony hardware, even for pure voip.

  24. Re:Like others have said, it IS the killer Linux a by amliebsch · · Score: 2, Informative
    I believe if you want any sort of other functionality, like voicemail, or any sort of menu system, it would be required.

    No, I don't think you do need one at all. All of the digital signal processing is handled in software. Digital/analog conversion is either done in the FXS/FXO cards, for traditional phones, or in the phone itself if you are using VOIP phones (that's why it matters what codecs the phone supports).

    --
    If you don't know where you are going, you will wind up somewhere else.
  25. Re:Like others have said, it IS the killer Linux a by Dare+nMc · · Score: 1

    no sound card required. U can still have voice menus,etc without.
    you would need the kernel module zapdummy to provide some sort of a timining interupt expected from the digium hardware by default, if you were running a pure VOIP box. That module now comes auto-setup with all the current asterisk auto installers.

  26. A killer app on its way... by starmeup · · Score: 2, Informative

    I'm in charge of replacing our to-old NEC PBX for a brand new Asterisk in our ISP.

    As a Unix sysop for long time, with some knowledge in general VoIP/H.323/SIP, I would say that the jump into Asterisk is not too dificult. We use SSH/vi/etc. in our day-to-day task, so one more system is not hard to swallow.

    However I would like to point out that unless you are a really small user, with standard needs, for example in a situation where Asterisk@Home resolves all your needs, or you can live using only SIP or IAX, you will have some problems.

    Asterisk will be a killer-app, but it is not there yet. Each new version tends to break something, configuration switches are added or removed, new features, are added changing the way things should be done, behavior of old functionality changes, etc. Its great, but its still evolving. Just check the mailing list and you will see the kind of problems that arise, and are resolved by the community.

    Evolving is a Good Thing, but you have to take that into account before jumping in.

    Pablo.

  27. What a bloody useless article! by Txiasaeia · · Score: 2, Funny

    It didn't tell me why Obelix is so quick despite his girth, what's in that magic potion, or why my favourite Asterix film, Asterix and the Twelve Tasks, hasn't received an NTSC-DVD release yet. Instead, the interview was all about technology or some such nonsense. Don't the submitters check their links before they turn them in?

    --
    Condemnant quod non intellegunt.
  28. Mark Spencer & Digium at SoCal Linux Expo by MrMorph · · Score: 2, Informative

    Mark Spencer will be speaking on Sunday at the Southern California Linux Expo. In addition Digium will be exhibiting Saturday and Sunday.

  29. You don't even need Geeks by Anonymous Coward · · Score: 0

    Geeks! Geeks! Geeks! Now read through all these Asterisk posts, and what will you notice? They require a geek to make them work From a computer, to add-in cards, ending with an installation that requires a video to explain. The common man is just shaking his head. Not much of a "killer app" if you have to go through all that. What you need for a home installation is a HEMA box that sits next to the demarcation point.* There should be only three wires going in, power, ethernet, and phone. Everything else is inside the house, and is as easy to plug and use as a regular phone.

    *What's in that box? Well the common man doesn't need to know, but for the geek it'll be an embedded computer with some analog hardware for connection to the phone line, and power supply for POE.(1) Naturally a preconfigured Asterisk set up with presets for the most common configurations. The interface could be everything from a browser front-end, all the way to a voice menu prompt (never assume that your users have, want, or feel comfortable with computers).

    (1) The engineers here will note some additional hardware for when the fancy setup goes bye-bye, and you're not left hanging (that and 911, naturally)

    1. Re:You don't even need Geeks by qualico · · Score: 1

      lol

      Yes, yes ... and I watch Star Trek, ( Days of our Lives with space suites).

      What the heck is HEMA?

      Gotta agree the solutions I install have to be turnkey.
      If you have the money, (most geeks don't), you could buy one of these:
      http://www.thevoipconnection.com/store/catalog/pro duct_16214_VS1trade_Asterisk_PBX_Voice_Server.html

  30. Asterisk Scales? by Doc+Ruby · · Score: 0, Interesting

    Who's got reliable info on Asterisk scaling requirements? Eg. what hardware is needed in a cluster to support 10,000 corporate users (with a featurelist), or even 10,000 simultaneous phonecalls? Or, how many simultaneous users can a 2-Xeon/4GHz/4GB/250GB server support?

    The useful answer to this question for a real network design is pretty detailed. Where are some actual scaled usage/support results?

    --

    --
    make install -not war

  31. My two cents... by mishehu · · Score: 1

    For what it is worth, I've been running Asterisk for a few years now. It promises a lot, but I always find that half of everything is literally broken in it. For example, recently we've been having lots of problems with app_queue.c and threads, and the monitor() function, and the mixmonitor() function (which completely segfaults asterisk on an x86_64). (The problem is not in my configuration, as when I don't change anything in the configuration, random things break between versions.)

    This wouldn't be a problem if telephony was only a hobbyist thing, but I was going to start setting systems up for small businesses using asterisk. I was in line communications in the military, and would never recommend Asterisk for anything requiring 5 nines or more (which covers telephony). I am not even talking about problems with transporting voice over the internet, I am speaking at a design and engineering level within asterisk itself. Change something in one file, and you can cause a cluster bomb to take out several other modules or the whole system. Agree or disagree with me, but I speak from experience. I hope that everybody sees this criticism for what it's worth... and it is not meant to start a ideology war.

    1. Re:My two cents... by Anonymous Coward · · Score: 0

      sniff sniff i smell a troll

  32. MythPhone by qualico · · Score: 2, Interesting

    Got to add this link:
    http://www.zen13655.zen.co.uk/mythphone.html

    Anyone tried this?

    The future of video phones is cerainly destined for the TV.

  33. Asterisk has helped by showing us what not to do. by anthm · · Score: 5, Interesting

    My name is Anthony Minessale, After considerable contribution to Asterisk I have learned a great deal about telephony here is a list of my personal contributions to Asterisk: http://www.cluecon.com/anthm.html

    The biggest lesson I have learned is that the fundamentals of Asterisk are built on assumptions and hard coded limitations. The flow chart for its code will make you dizzy:

    http://www.freeswitch.org/astdoc/structast__channe l__coll__graph.jpg
    http://www.freeswitch.org/astdoc/pbx_8c__incl.jpg

    People who use asterisk from the outside wouldn't know there is absolutely no structure or discipline in the code and may not care. But once they invest a ton of time trying to make their dream Telco or whatever their dreams may be, the truth is all too obvious. Spoken from experience, only a seasoned technical wizard with years of computer skills to boast will ever be able to successfully implement Asterisk beyond a modest implementation. To truly understand how Asterisk works holds only a slightly smaller prerequisite. To those who find this unimportant, I understand your point, but be aware that Asterisk, being an open source project, needs to have a somewhat easy learning curve to attract new developers especially considering the developer turnover they suffer due to the maddening politics their community has to offer. The development is focused on owning all the code even if it means re-inventing things that already exist just to maintain the right to sell the code. This practice is fine with me though I am less than pleased by the end result when the home-rolled version is a poor contender with several existing solutions. The modular intentions of Asterisk are great though there is no structure there either. Any module can dig its way into nearly all of the code of the core and often, inexperienced module programmers will re-implement existing functionality to the extent that even inside the same C source file, you may find multiple versions of the same functions with different names. The other problem with Asterisk modules are that many of the in-tree modules carry cross dependencies that make it impossible for the core to function without them. Some modules even depend on each other. This practice limits the portability since many operating systems will not tolerate one dynamic object from using symbols from another without hard linking them together. This is not the worst offense as far as portability; there are dozens more with many being accredited to Linux-specific assumptions. Apart from the technology problems the biggest remaining problem to consider is the community. The first experience for most Asterisk newcomers is an IRC channel where people fight for supremacy like information hungry pirates hording what they know and then sticking it to people for being so "stupid". (In other words, in the same boat they were in a few months back.) For those of us who are experienced developers, we are used to the l33t thing. The deal breaker is the issue management process. Submissions will generally be ignored for months then a one sentence overview will command the developer to fix minor issues and resubmit. This is almost tolerable if the submitted code was a new feature but more times than not it also happens with meaningful clean-up and repair of broken core functionality. I have heard this same complaint from countless ex-asterisk contributors over the past year and I am sure it is the number one cause of their ex status.

    In conclusion, I actively develop Asterisk code but now I only do it as a consultant. I am quite good at it and I know what I am talking about and I feel that the issues with Asterisk will never be addressed because there may be more Asterisk users every day but there are also less developers every day too and soon all the developers will be

  34. But... by davidc · · Score: 1

    ...Last time I looked, Marks and Spencer didn't sell Asterix books.

    /a shame.

  35. Re:Asterisk has helped by showing us what not to d by iamnotaclown · · Score: 2, Interesting
    Question:

    Why C and not C++? I've worked on a lot of large software projects (both C and C++), and although C++ is far from perfect, it is orders of magnitude better for something as dependent on extensions as as what freeswitch is proposing to be.

    You're losing out on many useful features (data hiding, polymorphism, inheritance, references, the STL, etc.) and risking the same problems of loosely defined structure by tying freespace to C.

  36. Local talk by digitalhermit · · Score: 2, Informative

    FYI - Mark Spencer will be talking at our local Linux group tomorrow. Check www.flux.org for details.

  37. Asterisk really sucks by Anonymous Coward · · Score: 0

    Honestly it does.

    1. Re:Asterisk really sucks by Anonymous Coward · · Score: 0

      thanks bkw_ ... Troll troll troll troll troll

  38. Re:Asterisk has helped by showing us what not to d by SoulDad570 · · Score: 1

    Well, I know nothing about the internals of Asterisk. But I am experienced with Linux and a couple of other OSS projects. In my opinion, a lot of OSS projects tend to be hair-balls. Evidently, the "Million monkeys in front of a million keyboards" principle is at play.

  39. Re:Asterisk has helped by showing us what not to d by r5t8i6y3 · · Score: 2, Informative

    from: http://www.freeswitch.org/docs/

    "Licensing
    Freeswitch is licensed under the terms of the MPL 1.1"

    this license is *not* compatible with the gpl. even mozilla.org has stopped using this license:

    Mozilla Relicensing FAQ
    http://www.mozilla.org/MPL/relicensing-faq.html

    mozilla is relicensing all of their code under a triple mpl/lgpl/gpl license in order to make their products compatible with the gpl. please consider doing the same with freeswitch.

    read this if you need some more convincing as to why to relicense:

    Make Your Open Source Software GPL-Compatible. Or Else.
    http://www.dwheeler.com/essays/gpl-compatible.html

    bottom line, if freeswitch isn't gpl-compatible it's much less likely to be successful.

  40. Re:Like others have said, it IS the killer Linux a by bastion_xx · · Score: 1

    Well, you don't need a card per se, but it is probably better to have the timing on a Digium card vs. using zapdummy.

    I have my home * server with an FXO card and then use IAX to talk to my co-lo server (zapdummy). It's a good box to then tie to VoIP providers such as NuFone and Voicepulse.

    I'm setting up a 50-odd user environment right now with the kicker being four different countries. Just try to get an Avaya or Nortel partner to quote project management and integration costs for two countries.

    Blessed be the markster and the OSS application *.

  41. Re:Asterisk has helped by showing us what not to d by mishehu · · Score: 1

    The core is in C, but extension modules can be in C++. I will be working on some of these in C++ in fact.

    Of the little code that I have had time to look at, I like anthm's design thus far. If only there were more hours in the day so I could spend more time familiarizing myself with it. Damn school getting in the way of real life!

  42. stuff to fix by r00t · · Score: 1

    The big screw-up is timing. Here I am, doing nothing but IAX2. There is no reason that I should have to load a zaptel driver! ("zaptel" being Digium's line of PCI cards) Asterisk refuses to use the normal Linux real-time clock features (POSIX timers, /dev/rtc, etc.) for timing. The zaptel driver is a crude piece of crap that was rejected by the kernel developers. It is unfit for serious use.

    Being Linux-only is really not the problem. You could call it an advantage even, since your code will be much simpler if you can rely on modern Linux 2.6.xx features.

    Being kind of tied to x86 is a problem. The code is filthy. At a minimum, proper code should tolerate: big-endian and little-endian, 32-bit and 64-bit, and "char" being either signed or unsigned by default.

    1. Re:stuff to fix by Corydon76 · · Score: 2, Informative
      Here I am, doing nothing but IAX2. There is no reason that I should have to load a zaptel driver!

      And if you're using IAX2, you don't need to use Zaptel normally. The only reason you'd need to use Zaptel with IAX2 is if you were doing IAX trunking, something which most people do not do.

      A little bit of background for those readers unfamiliar with the issues. Telephone systems use a very strict timer of 8000 Hz. Given that this is far too heavy of an interrupt load for the PCI bus, Asterisk compromises and uses a 1000Hz interrupt, moving 8 samples for each interrupt. The RTC is close to 1000, but really isn't: it generates a 1024Hz interrupt. We compensate for the RTC clock in systems which don't have Zaptel hardware by ignoring 24 interrupts per second, thus letting us move the same 8,000 samples per second. Unfortunately, because we have to ignore some interrupts, the samples spacing is not quite equidistant, so there's some audio jitter caused by using RTC. It's not terrible, but it's not optimal.

      Zaptel, in additional to the telephony interface needed, whether it be T1, E1, or analog, also generates that nice consistent 1000Hz interrupt. Note that in systems that especially interface to the PSTN digitally (i.e. T1 or E1), we absolutely MUST match the timing of the PSTN exactly. 1024 minus 24 is not "good enough". This is the primary reason why we must have an accurate timer and why Asterisk relies intrinsically upon having such a timer available. Given that you have an accurate timer available, why would you code to anything else?

      The zaptel driver is a crude piece of crap that was rejected by the kernel developers. It is unfit for serious use.

      I'm unaware that Zaptel has ever been submitted to the kernel developers, let alone rejected. Frankly, the code moves too quickly for us to consider letting it be maintained by the kernel developers. Even if it was in the kernel, the stock kernel driver would be unlikely to be ever used, given that it would almost always be out of date. That's quite simply just wasted effort on maintenance by kernel developers. I'm sure we can all agree that the kernel developers have more important issues to deal with. As to the zaptel driver being "unfit", well, it's used in thousands of Asterisk systems around the world with no problem at all. This declaration that it's unfit sounds suspiciously like FUD.

    2. Re:stuff to fix by Bert64 · · Score: 1

      I run Asterisk on 3 different 64-bit Alpha systems running linux, it runs flawlessly, much better than it ever did on an x86 machine... One of them even has a zaptel card installed, which also works perfectly...

      I did however have major trouble getting Asterisk to work on sparc.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    3. Re:stuff to fix by r00t · · Score: 1

      It seems you rely on zaptel for more than just trunking. There's something about conference calls. As for me, plain old IAX2 connections (no trunking, no conference, no analog) were suffering from horrible dropouts until I got that damn fake zaptel driver loaded.

      Either you're the one spreading FUD, or you really don't know much about timing.

      The RTC can operate at higher speeds like 2048, 4096, and 8192 HZ. You probably ought to offer that. Many computers can handle it just fine. The only reason why a modern PC would fail is if the BIOS was misbehaving.

      When the BIOS misbehaves, even a real zaptel card won't save you. You need to realize that you will be losing several zaptel interrupts in a row. That's just a fact of life, and you must deal with it as best as possible. Dropouts are not acceptable.

      I don't have an RTC. It just plain doesn't exist on a Mac. I do have a nice OS though, providing POSIX timers that RT apps are supposed to use. I expect Asterisk to work, purely in userspace.

      If I'm willing to tolerate 10 ms latency, I may run with the 100 HZ clock tick. If I tolerate 4 ms latency, I may run with the 250 HZ clock tick. It's my decision, not yours, to say how much latency I will tolerate.

      Zaptel does not move too quickly for Linux. If you have trouble keeping up with the pace of Linux development, you must be doing something wrong. The classic mistake is to have your own CVS. This leads you to have a giant blob of unreviewed changes. That will be rejected because it is unreviewable. Part of being in the kernel is getting feedback about crappy design and crappy code. It seems you are not receptive to such feedback. Do you think you are the world's best programmer, and all the kernel developers would be wrong to criticise you?

      Maybe you are used to using out-of-kernel drivers. Heck, maybe you even run binary-only ones. To some of us, it's like having a turd floating in our swimming pool. It doesn't belong. It ruins the purity of the OS. I don't even want a kernel to have module loading enabled; a traditional full-custom kernel is faster and leaner.

    4. Re:stuff to fix by tzanger · · Score: 1

      I don't even want a kernel to have module loading enabled; a traditional full-custom kernel is faster and leaner.

      You were doing alright until you threw that in there; it would have fooled the majority of the /. posters. Throw up some benchmarks to show everyone how much you're saving in ram and how much more efficient your kernel is. I'm afraid it's quite clearly you who are clueless. I'm going to hazard a guess that you run Gentoo and have at least 240 characters in your USE flags, claiming that it makes your system "teh most efficient system evar, lolz".

      Timing issues are very nontrivial in telephony. Throw in a nondeterministic PCI bus and it gets even harier. Just because you believe something to be true does not mean that it is. Ask the professional audio guys how difficult it is to maintain timing on standard PC hardware. While the zaptel timing can be reworked and eventually eliminated for most cases, it was selected as a least path of resistance method of moving ahead.

      Now please run along, I think your system's idle task could use some optimization.

    5. Re:stuff to fix by Corydon76 · · Score: 1
      I think I've already addressed that. Telephony needs a pure multiple of 1,000 to function correctly, and the Zaptel dummy driver that operates on top of RTC by dropping 24 interrupts gets a "close enough" heartbeat to be used. It's not perfect, not optimal, but it will work.

      Apparently you feel that because the RTC generates an interrupt, we ought to use that without going through Zaptel. Again, that's already been addressed: the PSTN requires a more exact source of interrupts. Consider trying to interface two Asterisk systems together, one using a 1024Hz clock, the other one using a 1000Hz clock. Sorry, the drift you're going to get is unacceptable. Using a 1000Hz clock everywhere is a much more reasonable approach.

    6. Re:stuff to fix by anthm · · Score: 1

      Looks like the thread full of insults and lookie heres RE: you timing post missed the point. I will assume you are referring to this:

      grep ZAPTEL `find . -name \*.c` ./apps/app_meetme.c:"Please note: A ZAPTEL INTERFACE MUST BE INSTALLED FOR CONFERENCING TO WORK!\n\n" ./apps/app_meetme.c:"A ZAPTEL INTERFACE MUST BE INSTALLED FOR CONFERENCING FUNCTIONALITY.\n"; ./channel.c:#ifdef ZAPTEL_OPTIMIZATIONS ./channel.c:#ifdef ZAPTEL_OPTIMIZATIONS ./channel.c:#ifdef ZAPTEL_OPTIMIZATIONS ./channel.c:#ifdef ZAPTEL_OPTIMIZATIONS ./channel.c:#ifdef ZAPTEL_OPTIMIZATIONS ./channel.c:#ifdef ZAPTEL_OPTIMIZATIONS ./file.c:#ifdef ZAPTEL_OPTIMIZATIONS ./file.c:#ifdef ZAPTEL_OPTIMIZATIONS ./file.c:#ifdef ZAPTEL_OPTIMIZATIONS ./file.c:#ifdef ZAPTEL_OPTIMIZATIONS

      More or less, the timing lesson you were given as a response is not untrue but is also not relevant to your question. Where it may be true that for TDM you have an enormous dependency on time sync you have much less with VoIP. The bigger reason for the Zaptel timing for non-hardware stuff comes from the hatred of threads that Asterisk has.

      In a typical call in Asterisk, 2 channels exist within 1 thread. This thread must poll both channels and service them based on socket events. The first problem is that not every channel type has a socket (most do but IAX2, for example, does not which is another can of worms). The second problem is that most routines in Asterisk make the assumption that if you read from the channel in a loop you can write to the channel on each pass and have perfect timing. Sorry, thanks for playing, but you cannot do that. Many protocols (SIP for example) have VAD (Voice Activity Detection) support.
      This means that the far end of your call may not send any voice because the other guy is not talking so why bother. When this occurs the poor Asterisk channel expecting reads to dictate writes simply halts in place DoH!

      This problem is fixed by a friendly "Don't use VAD" console message. And they are trying to improve on it by somehow trying to weave some logic in there to make that poll timeout and let it work still using good ol' Zaptel timer but it's like digging a hole too deep and just makes the mess bigger if both channels we in their own independent I/O thread the problem would be gone.

      The next place Zaptel is wedged into place is in the channel I/O routines. A pipe is opened inside the channel to allow the queuing of frames meaning you can write them as fast as you want and the channel will deliver them at a steady interval. Thank goodness Asterisk is hard coded to only operate at 8000hz! This also compensates for the channels with no socket you can just queue all the inbound frames instead of write them.
      This constant pulse is also courtesy of Zaptel timer.

      Next there is the file delivery system which is really the one place you really need a timer for sure since the file is simply a large collection of data so it must be fed at a timed interval this also is somewhere the Zaptel timer is used.

      The timer is also used by the external music on hold system. The default system uses an external pipe to an mp3 player that also spits the data out too fast since it has no soundcard for timing so the Zaptel timer to the rescue again!

      The one place you cannot avoid the timer is the MeetMe application. This is a conference system that depends on the Zaptel to do the audio buffering/muxing and the timing. There is, however, a purely soft-timed algorithm-based conference application available.

      http://www.voip-info.org/wiki-Asterisk+app_confere nce

      Nearly all of these uses can be replaced with low resolution timers and normalization techniques (gettimeofday with incremental waypoints) a

  43. surely you jest by r00t · · Score: 1
    Linux is in C, and it's very very readable code. It also performs well and isn't very buggy. The kernel is loaded with extensions. (every driver, including filesystem drivers and network protocols, is an extension) Follow the Linux coding style if you too want to write millions of lines of portable high-performance code that doesn't crash left and right.

    Where is the OS written in C++? There are a few failed experiments, and Windows using a C++ compiler to compile what is essentially plain C, but nothing like a successful OS actually written to use C++.

    For fun, compare the assemply language produced by:

    • int basicmin(int a, int b){return (a<b)?a:b;}
    • int fancymin(int a, int b){return std::min(a,b);}

    In case you are unable to read assembly: the second is typically a factor of two larger.

  44. Re:Asterisk has helped by showing us what not to d by Corydon76 · · Score: 1

    I have to remind people that C++ was originally implemented in C as a set of macros. While we certainly can miss many of the obscene features of C++, we disambiguate the code by going the simpler route. While C++ implements a lot of nice ideas, remember that these are programming techniques, to make the program easier to read and maintain. They are properly not language features. At the end of the day, it's all object code, anyway.

  45. other choices by r00t · · Score: 1
    The GPL isn't everything. There are some fairly standard GPL-like licenses out there that can be nice.

    • LGPL: now the "Lesser General Public License", it's not just for libraries anymore
    • Creative Commons has some very nice licenses
    • "Open Software License v1.1" as obtained from www.opensource.org

    Many of these are a nice middle ground between BSD and GPL. If somebody modifies your code and then includes it in a proprietary product, you get the right to any changes made to your code. You don't also get unrelated code unless the other party is feeling generous.

  46. Re:Asterisk has helped by showing us what not to d by Corydon76 · · Score: 4, Insightful
    I am also an Asterisk developer and the list of my contributions to Asterisk are about as long as anthm's. While I certainly agree that he's entitled to his opinion, I disagree with him on many of his points.

    The modular intentions of Asterisk are great though there is no structure there either.

    There is plenty of structure, here, and while in the past some of the lines between different concepts have been blurry, we are continually improving the definitions and coming up with yet better core structures. We're improving. Anthony even made some of these contributions, but we have rejected some of his more radical patches (mostly implementing the idea that everything, even the module loader itself, should be able to be unloaded). While we agree with modular design, there should be a limit; something has to be core, or all your product is is a module loader.

    The other problem with Asterisk modules are that many of the in-tree modules carry cross dependencies that make it impossible for the core to function without them.

    This isn't true. I'm not sure where he got this idea, but certainly some modules depend upon others. That should be a given, but the idea that the core depends upon a module isn't true. Perhaps we modularized something that he thought should be core?

    The first experience for most Asterisk newcomers is an IRC channel where people fight for supremacy like information hungry pirates hording what they know and then sticking it to people for being so "stupid".

    We cannot control how other people act in public. Certainly we have a very vibrant community, but the first experience for Asterisk newcomers is generally the mailing list, not the IRC channel. While we certainly try not to feed the trolls, anybody who has been reading Slashdot for more than a week knows that the trolls stick around. And while we might rebuke others for being cruel on IRC, we cannot control how our users interact. For one thing, we cannot monitor the IRC channel 24/7; for another thing, our work is on Asterisk, not on controlling other users.

    I would defy anyone to find a vibrant open source software community that does not have people who will respond in sometimes nasty ways to people who have not yet learned to ask Smart Questions.

    Submissions will generally be ignored for months then a one sentence overview will command the developer to fix minor issues and resubmit.

    I'll admit that this has been a problem in the past, but we are working hard to correct it. Bugs filed are generally addressed the next day or at least within 7 days of them being posted. While there are certainly bugs that we reject, quite frequently patches go into SVN within hours of them being submitted. There are also complex patches that require more thought and careful consultation with other developers, to ensure they take the code in directions that we wish to go. These are generally the types of bugs which remain open the longest -- not because we're ignoring them, but because we are carefully considering them.

    soon all the developers will be nothing but users who have no other choice but to try and be developers

    It's unfortunate to hear such an elitist attitude. We all were only users once. Those of us who were interested enough learned and progressed and became developers. It's terrible that some people have forgotten this.

    I could go on for ages documenting more issues but they tend to fall on deaf ears.

    They actually didn't fall on deaf ears. Many of anthm's criticisms were taken quite seriously and have been addressed. It's sad to see another developer take his ball and go home, but we continue to move forward, with or without him. We aren't his keeper, and it's certainly his right to develop whatever he likes.

  47. Yate by gst · · Score: 1

    Did you have a look at Yate (http://yate.null.ro/)? I have also used Asterisk long enough to learn to hate it, but Yate looks very nice. It doesn't have as many features as Asterisk, but the code base is very clean and it does look rather easy to extend.

  48. Mark can't code! by Anonymous Coward · · Score: 0

    Don't take this personally, but every piece of code written by Mark Spencer is a horrible mess. Asterisk? Look at the code - each undergraduate student can do better. Besides it is crashing regularly when under load. L2TPD? Muhahahaha. I'm glad I found rp-l2tpd so that I don't have to use the crap by Mark Spencer. And then GAIM: Ever had a look at the security history? Don't use it! Sorry Mark - you have good ideas - very good ideas, but you suck at coding. Open a Blog, write about your ideas and let others do the architecture and the code.

    1. Re:Mark can't code! by DarkDust · · Score: 1

      I so agree with you ! I have to code an Asterisk application, and for more than two month I'm trying to work my way through the Asterisk code to understand how Asterisk works internally.

      The design is not bad per se, but I find the code is very bad and frustrating in many ways:

      • Too few comments. The function/code section does something very complicated ? Don't expect any explanation on how and why. Granted, the header files are documented, and some of those documentations/comments are good, but the real code lacks comments all over the place.
      • Almost no documentation. For example, in the doc/ dir is a document called channel.txt. With a few words it explains what a channel is and who creates them. No word on how you use them (in an application), how they interact with the PBX, how to do something usefull with them. Many (important) details are totally undocumented (or impossible to find).
      • If your code contains single C files that are bigger than 100kB you know somethings wrong. And Asterisk has several of them. The biggest one is the SIP channel. A complete SIP implementation in just one file: 440kB.
      • Not only are the C files big, they are unsorted as well. You can encounter type definitions (structs, enums) in the middle of a C file, squeezed between two functions with no easy to spot marking comments or something. And you can encounter functions where you wonder how those particular functions relate to the others in the current C file and why they haven't made it into their own C files.
      • The code just leaves an unclean impression. It is not really bad, but nonetheless it just feels dirty ! It's hard to work your way through it.

      Don't get me wrong, I think Asterisk is an incredible piece of software and it works quite reliable. But I think the whole code should refactored, cleaned up and documented. E.g. almost every channel driver should get its own directory and be splitted into several files. Likewise all other big files that exceed say 100kB should be splitted (I counted 13...).

      By contrast, Asterisk is often used together with SER/OpenSER. Now look at that code and see the difference ! It's not the most beautiful code I've seen and it could use a bit more documentation as well, but the code is splitted into nice, consumable pieces and is documented all over the place. It's easy to work your way through it and work with it.

  49. Magic and Sparkle by bilgebag · · Score: 1

    Is his middle name Sand? ... I'll get me coat.

  50. feature request by r00t · · Score: 1

    For non-traditional connections, let me do 16-bit linear samples at 48 kHz.

    Conversion should happen as required.

    Whenever one side of a connection starts to get ahead or fall behind, let me choose how to fix it. I may wish to cut corners, doubling or dropping individual samples. I may wish to have a polynomial interpolation done for a temporary rate conversion. See the "sox" audio processing source code.

  51. Re:Asterisk has helped by showing us what not to d by anthm · · Score: 1

    Sir,

    I have respect for you so therefore I will simply address your concerns and move on. Please be aware that I am not taking my ball and going home. In fact, I currently have 2 or 3 issues open in the Asterisk bug tracker and I now have a policy not to submit any more until older ones are cleared up.

    http://bugs.digium.com/view.php?id=5161
    http://bugs.digium.com/view.php?id=5162

    I am not close-minded and I will use/develop for any software that I find a need for. I still have much more Asterisk code I can submit.

    Now, to adress the concerns:

    we have rejected some of his more radical patches (mostly implementing the idea that everything, even the module loader itself, should be able to be unloaded). While we agree with modular design, there should be a limit; something has to be core, or all your product is is a module loader.

    I believe he is referring to http://bugs.digium.com/view.php?id=3666

    This patch did not propose to make the module loader unloadable rather to make it possible to load an alternate implementation of the PBX functionality.

    At the time of that posting there was a general agreement that the Asterisk dialplan and the resulting codepath of traversing the PBX needed work but nobody wanted to break the program to fix it. With that patch one could build an alternate PBX callflow engine without disturbing the existing one. This is actually an important idea which i carried to FreeSwitch that the core would only deal with interfaces and pure low-level functionality. And to implement a PBX it would be done in higher level code supplied in the module API. I agree something has to be core and I have thousands of lines of code in my core already.

    The other problem with Asterisk modules are that many of the in-tree modules carry cross dependencies that make it impossible for the core to function without them.

    This isn't true. I'm not sure where he got this idea, but certainly some modules depend upon others. That should be a given, but the idea that the core depends upon a module isn't true. Perhaps we modularized something that he thought should be core?


    I'm sorry but it is true. Allow me to elaborate with specific examples but before I do, remember, in the previous paragraph I was accused of not wanting anything in the core and now my problem is that I want more in the core.

    EXHIBIT A
    http://bugs.digium.com/view.php?id=2998

    Here is a patch, written by me, that fixes a catch-22 in the Asterisk music on hold caused by the core being dependant on the loadable music on hold module.

    The symbols ast_moh_start and ast_moh_stop were referred to in the core in several places and these symbols only existed in the dynamic module object therefore if you did not load the music on hold module the entire application would fail to start. At the time I wrote this patch there were still several other such issues that may or may not have been addressed but it still demonstrates the design issues and the inability to define how the core interacts with the modules.

    EXHIBIT B
    There is a module called res_features.so which contains the actual code that is executed when two channels are bridged ast_bridge_call and the entire parking concept ast_park_call both of the functions are used in other modules causing a module cross dependancy. Many operating systems will not even let you do this because you must employ lazy linking where 1 dynamic object is forced to trust that certian symbols will exist when the time comes.

    soon all the developers will be nothing but users who have no other choice but to try and be developers

    It's unfortunate to hear such an elitist attitude. We all were only users once. Those of us who were interested enough l

  52. It's 1000 Hz or not by r00t · · Score: 1

    You gripe about having to skip a tick every now and then to use a 1024 Hz clock for a 1000 Hz tick.

    Meanwhile... the 1000 Hz clock isn't perfect. It varies from system to system, and even varies with temperature.

    To top it all off, you run packets OVER THE INTERNET and you're worried about a wee little bit of wobble from a 1024 Hz RTC?

    Come on, this is ridiculous.

    In any case, I don't have a RTC chip at all. It does not exist on Macintosh hardware. My kernel supports POSIX timers, which are intended for real-time use. Apps are expected to use the POSIX timers. Why in Hell do you think Linus added POSIX timers to the kernel? It's for you.

  53. not by r00t · · Score: 1

    Sorry dude, I'm not your Gentoo weenie. I've actually done OS development for real-time embedded systems. Imagine a computer that keeps an airborne laser focused on an incoming missle while both objects move wildly and even the air itself introduces enough distortion that you need to compensate by warping the mirror to focus your laser. Imagine a computer that controls and monitors a jet engine test stand. I've worked on the OS for both of those, the first being non-Linux and the second being Linux. I think I know a few things about real-time.

    I've done enough Linux kernel hacking to know that I don't like modules and proprietary crap. I know full well that modules aren't MUCH slower. They aren't MUCH bigger. I just don't feel that you should dictate how I run my system. If I want to save a few kB and a couple TLB slots, that's my business.

    A far greater problem is the annoyance and incompatibility. When Linus changes the driver interface, all standard drivers get updated. Your driver lags behind, failing to compile. That is, it fails to compile if I even remember it and decide to screw around with it. I want to untar the kernel, run "make oldconfig ; make install", and reboot. I don't want to mess around with a separate driver.