Asterisk is one of the most common open-source frameworks for running IP (Internet protocol) PBXs and VOIP gateways. Here we list a few cool tricks that can be done with SIP (session initiation protocol) phone systems running Asterisk. Many other open-source and proprietary platforms allow you to do some or all of these, so ask your manufacturer’s rep about these features if you are using a different platform.
- Calendar integration: Asterisk allows you to integrate your SIP phone system with different calendar formats (e.g., iCal, MS Exchange, CalDAV etc.). This allows you to establish call routing rules based on your current calendar information. For example, you can create a rule that automatically sends calls to voicemail when your calendar says you’re busy, or re-direct calls to your mobile phone when your calendar says you’re out of the office. You can also program reminder calls. For example, you can have your phone system call you 5 minutes before a scheduled conference call or meeting on your calendar.
- Call forking: Call forking is like a hunt group on steroids. It splits a call so that it rings on multiple endpoints. The forking can either be parallel, where all endpoints ring simultaneously, or sequential, where endpoints ring one at a time until the call is answered or sent to voicemail. There are a number of uses for this. At the simplest level, you could have calls ring at your desk and at your assistant’s desk at the same time. Or, if you have a call center, only idle phones will ring and the call goes to the first person to answer. Furthermore, by integrating your phone system with the calendar platform as mentioned above, calls can be routed even more intelligently according to users’ specified availability. Call forking can be implemented even in environments with many remote sites, routing calls across state or country lines.
- Distributed device state: Related to call forking, distributed device state allows Asterisk and the users to know the state of each connected device. This tells the phone system whether calls can be routed to a specific endpoint, and tells users whether a particular agent is available for more calls (through the use of indication lights, for example). For devices on the same LAN (local area network), OpenAIS is the method used to distribute device states. With higher-latency networks like WANs (wide area networks), the XMPP protocol is used.
- Speech recognition: Asterisk can be integrated with leading automatic speech recognition (ASR) and text-to-speech (TTS) software. The most common use of this is with IVR (interactive voice response) which allows callers to select menu options, transfer their call or input information verbally, without the use of their telephone keypad. It can also allow things like hands-free voice dialing and other voice-activated call routing functions. Integrated with email, it can turn voice messages into text and send them to the recipient’s email inbox.
- User authentication: Asterisk can connect to the enterprise directory on the LDAP server to authenticate users. This allows you to have just one set of credentials for user logins, and use the existing infrastructure to manage users (e.g., Open LDAP, Microsoft ActiveDirectory, Apple OpenDirectory, etc.).
Bonus: Here’s a fun feature we found in a presentation by Leif Madsen delivered at AstriCon. The PITCH_SHIFT function allows you to change the pitch of an audio channel. You can do funny things with this like make a caller sound like he just sucked in helium. Apparently the Asterisk programmers had some free time on their hands!
What other cool features have you programmed into your IP phone system, and what framework did you use? Let us know in the comments.