-
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
Open
achyutdev
wants to merge
3
commits into
younginnovations:gh-pages
Choose a base branch
from
achyutdev:YB-voiceinn
base: gh-pages
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
3 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
57 changes: 57 additions & 0 deletions
57
_posts/2015-09-14-a-telephony-application-VoiceInn-and-its-architecture.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. The 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--> | ||
Any changes made by client after login will take instant effect in telephone application after it is saved. | ||
|
||
###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 the questions. There are two methods of getting response from survey participants - either by audio answer or by dialing digit from keypad of phone set. | ||
|
||
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 at any time in the future. Unlike other noticeboard services it supports outbound calls as well. | ||
|
||
**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 conference call or s/he can simply forward the call to other relevant numbers. All queries and complains appear in support dashboard for further followups. | ||
|
||
###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 connect 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. | ||
|
||
![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 can be passed to included call controller and returns to original controller after execution is completed. And also call can pass to other call controller with parameter. | ||
|
||
<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. |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.
needs an image before more.
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.
i have added new image and request new pull request.