Roaming PBX with Raspberry Pi, Asterisk and chan_dongle
As an frequent tralveller, I well understand the needs of another travelers and citizens of the world in telecommunications ;) While ago I’ve decided to spent my free time building Roaming PBX solution.
Why create AGI?
You can manipulate database data through func_odbc, you can call a Linux system script and process result, in case if you want to send a notice about event to a web application, you can use a curl function.
No problem to send out email or jabber/google talk notification...
So, why and when you should use AGI? I believe, correct answers are:
- Dial-plan is complex, you have a growing amount of huge macros and contexts;
- System are hosted or cluster with various customers with different needs and functions;
- You do integration with another application or web app and have to process inbound events (and send outbound);
- Want to create an API to support 3rd apps;
- Application API of another application;
- And most important – database is a core part of application and should access data permanently.
Sharing one my ancient projects with Asterisk: click-to-call library with client and server part. Windows user could activate
callto.rb script, the customer just integrated it with their CRM application; after user start script, his SIP phone rings. Here it is: https://github.com/andrius/asterisk-click-to-call-windows.
How to unlock Huawei modemAfter last post about GSM gateway based on Raspberry Pi and Huawei modem, I have received few questions like "how to unlock it?" Below is YouTube video describing process.
Asterisk on Raspberry Pi as GSM gatewayYesterday I've installed chan\_dongle for Asterisk PBX running at Raspberry Pi. What is chan\_dongle? It is driver for Asterisk PBX, that allow to use some Huawei 3G USB dongles as a voice "board" to handle voice, SMS and USSD. Kind of your own self-made single-channel GSM gateway.
Time based conditions in voice (AGI) applicationTypical telephony system process incoming call-flow based on different times (and of course customer do want to have control on that, handle time-ranges; also whole platform could be an multi-tenant server with different virtual PBX'es).
Delete voice recordings older than N-daysDisk space running out fast in loaded telephony systems with instant call recording or either with heavy usage of voicemail. It's good to purge them on regular basis.
Questionnaire application with Asterisk PBX AGI + RubyQuestionnaire application were in production for long time for one small project, now I've decided to share with VoIP community. It's based on AsteriskRuby gem. How it works: for new caller system would play welcome announcement, for returned caller "welcome back" announcement (caller authentication based on callerid number and PIN); upon successful authentication, system will continue from last unanswered question (or will start with first question for new caller); Amount of attempts is unlimited, answers and amount of calls are stored into DB.
Telephony system for remote locations
Who is living far away from home country. Or working remotely. Who is travelling a lot, or have presence in another country — such people or businesses need some telecommunication system, that will keep them connected to the world.