-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Voicinn article is added #54
base: gh-pages
Are you sure you want to change the base?
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,57 @@ | ||
--- | ||
layout: post | ||
title: "A Telephony Application - VoiceInn and Its Architecture" | ||
author: achyut_devkota | ||
modified: 2015-09-29 | ||
tags: [telephone application, asterisk, adhearsion, sip, voip, call, IVR, PSTN, E1,] | ||
--- | ||
|
||
VoiceInn is an internal project of YoungInnovations to provide an interactive telephony service with user friendly web interface. It includes three main telephony services - Vsurvey, Vboard and Vsupport. A modular feature of VoiceInn allows client to take service they need and also provide a customizable feature as required. | ||
![voiceinn logo](/images/voiceinn/voiceinn.jpg) | ||
|
||
Normally telephone service with IVR supports incoming call only but VoiceInn provides inbound as well as outbound call IVR. Outbound call can be set immediately as well as can be scheduled to a single or multiple numbers at once. | ||
<!--more--> | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. needs an image before more. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i have added new image and request new pull request. |
||
Any changes made by client after login will instantly effect in telephone application when saving changes. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "will take instant effect in telephone application after it is saved." might be better |
||
|
||
###Services | ||
**Vsurvey** *- is a voice survey unlike normal survey in form.* | ||
|
||
![Vsurvey service](/images/voiceinn/vsurvey.jpg) | ||
|
||
Clients create voice survey from web interface by uploading audio file or recording from web page. When they have done uploading audio questions they have to make a dialplan by arranging questions. There are two method of getting response from survey participants - either by audio answer or by dialing digit from keypad of phone set. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
Response can be collected from participants either by receiving call from participants or by calling the participants. The system can call participants individually as well as in a group. | ||
|
||
**Vboard** *- is a Noticeboard service.* | ||
![Vboard service](/images/voiceinn/vboard.jpg) | ||
|
||
Clients can broadcast noticeboard by recording from phone or uploading audio file from VoiceInn website. When clients set broadcast then it becomes effective. Broadcast can be scheduled in any future time. Unlike other noticeboard services it supports outbound call as well. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
This sentence is a bit confusing.
|
||
|
||
**Vsupport** *- is a voice support service.* | ||
![Vsupport service](/images/voiceinn/vsupport.jpg) | ||
|
||
Users call to a support number and record complaints/ queries. For those who want to get instant support there is a live operator forward option. If first operator needs help to solve users’ complains, s/he can add other individuals and can make it as a conference call or s/he can simply forward the call to other relevant numbers. All queries and complains appear in support dashboard for further followup. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
###VoiceInn Components | ||
Asterisk, adhearsion and flask are the major components used to build VoiceInn. Asterisk, is a communication server, handles all kinds of telephone functionalities whereas adhearsion, is a telephone application framework, that control calls dialplan. Flask, a web microframework build in python, is used to make user interface. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
please check plurals and comma positions. |
||
|
||
###VoiceInn Architecture | ||
Call channels (SIP trunk, PSTN, E1) are connected to asterisk from telecom providers. The calls are asynchronously transferred to adhearsion application through a Asterisk Manager Interface(AMI) connection. Then all the call flows are controlled by adhearsion callcontroller. | ||
|
||
![VoiceInn Architecture](/images/voiceinn/architecture.jpg) | ||
|
||
Each call logs and activity logs are stored in MySQL database from asterisk, adhearsion and flask. Open DataBase Connectivity(ODBC) is used to store Call Details Report (CDR) in database from asterisk. Except CDR, all call logs are handled by adhearsion and stored in database. Both telephone system and web interface (Flask) share same database. So any changes from client dashboard directly affects telephone call flow. Beside same database, Some APIs are used to connected application with client web UI. Handler handles all kind of APIs and parse data. This handler is primarily used for originating outbound call from client UI. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
|
||
|
||
![Call Handler](/images/voiceinn/handler.jpg) | ||
|
||
Different APIs are handled by API handler. If there is an API request for a single call then it immediately sends a request to originate call. If call request is more than one then it checks for time of call. If time is immediate then call takes place, or else handler starts scheduler. Queue handler makes queue for multiple call before sending requests to originate call to asterisk through adhearsion. | ||
|
||
![Adhearsion Architecture](/images/voiceinn/adhearsion_call_controller.jpg) | ||
|
||
Adhearsion has very flexible call controller to handle calls. Incoming as well as outgoing calls are routed by router to a specific callcontroller. Each controller has ability to include other controllers. In this case call passes to included call controller and returns to original controller after execution is completed. And also call can pass to other call controller with parameter. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Call can be passed to other call There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good going :) Warm Regards,
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. i have made changes accordingly. |
||
|
||
<script async class="speakerdeck-embed" data-id="3a9e1922f56d44bba98f0bbfdb326aff" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script> | ||
|
||
*** | ||
|
||
VoiceInn has modular call controllers for each service and feature. So that services and features can be enabled and disabled according to clients’ need. Individual client maintains his/her own set of available features. For instance, a client can use only Vboard service with inbound and outbound call feature. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The modular feature