Download presentation
Presentation is loading. Please wait.
1
RTMM, VoIP, VVoIP, NGN, Convergence?
Alfredo Terzoli / Mosioua Tsietsi
2
PLAN Admin Real time communication today: your experience
A bit of terminology The Internet for transport of real-time data An initial smattering of protocols Convergence What do you expect from this module?
3
Admin Length of each lecture: 1 to 1.5 hours
Expected study time, for each lecture: at least 3 hours (this excludes practicals) Schedule: most days of the week, starting at 8:30 or 9:00 Main practical will be the creation of service, which will be presented to the class
4
Real time communication today
Skype (desktop / cell) Gtalk (desktop / cell) MSN Fring (mobile) Yeigo (mobile) … PC to telephone / cellphone Telephone/cellphone to telephone/cellphone
5
RTMM RealTime MultiMedia:
all media, obviously (smell anybody? The power of digitization!) in particular, naturally, voice and video the way we are proceeding we should call it RTMMoIP. (or RTMMoATM?) BTW, how do you conceptualize the Internet?
6
VoIP/VVoIP Voice/video over the Internet Protocol
two classic ways of deploying VoIP, for the enterprise or for the long haul (they can be combined) we will use this term as equivalent to RTMM are we going to talk just about real-time multimedi? Actually not. An important part of the course is to talk about service provision in a converged telecommunication environment
7
IP to transport voice Can the Internet transport voice?
(This is a major change! Up to recently only Telco's have been doing it.) Let’s be more precise: can the INTERNET PROTOCOL be used to transport voice?
8
Realtime communication
Two problems: (easy!) how can a telephone conversation become DATA? does this type of DATA have special requirements?
9
A conversation becomes DATA
10
And it is transported…
11
Another view!
12
Digitized voice: demanding DATA!
13
So, is VoIP possible or not?
Yes, it is possible, but things do need some work here and there, depending on the setting. Once the stuff is done, though, we will get Video transport almost for free too!
14
Different settings… Internet LAN
15
RTP, RVSP, DiffServ, IPv6 RTP: Realtime Transport Protocol (has a companion, RTCP) RSVP: Resource Reservation Protocol DiffServ: Differentiated Services IPv6: IP version 6, the next version of the Internet
16
(Video) Telephony vs Streaming
Real-time communication is the next frontier of the Internet Telephony, Video telephony, Audio and Videoconferencing are more demanding than STREAMING, which has ‘softer’ real-time constraints.
17
Why VoIP/Convergence? Packet based networks are in general more bandwidth-efficient than legacy voice networks
18
Why VoIP/Convergence? Much easier to create ‘services’
Services need DATA, and data is much easier to access and distribute if your network is already a data network. Example: create a a service to read end-of-the-year marks to students phoning in (put in at Rhodes in by Jason Penton)
19
Why VoIP/Convergence? Much easier to extend later to other media
Because of digitization, other media can be treated very much in the same way: once digitized, they are just data Example: extend the system to support video. (And let’s not forget smells! ;-)
20
Typical deployment iLanga Core Local VoIP Endpoints SIP IAX Internet
H.323 MGCP Internet Asterisk GnuGK SER iLanga proxy Legacy PBX BRI PRI PSTN BRI PRI iLanga Core
21
Legacy service provider use
TDM network 1 TDM network 2 Asterisk GnuGK iLanga proxy iLanga Core SER Asterisk GnuGK iLanga proxy iLanga Core SER IP Network (Typically not the Internet)
22
NGN Next Generation Network (replaces and extends IN, the Intelligent Network) telecommunication network, such a Telco network, where service creation is easy and can be done by third parties (that is, not directly by the Telco owning the network) the ‘opening’ of the network is done introducing elements such OSA/Parlay gateways loved by telecommunication engineers!
23
NGN and Internet The Internet is a good candidate to be the ‘de facto’ realization of a NGN big statement, of course and maybe the Internet is going to change name… to say the least, it won’t be the ‘legacy network’ that NGN will have to carry into the future
24
Questions?
25
URLs to follow (an overview on convergence in telecommunication and a springboard for many other related topics; in particular, follow up the link ) (clear explanation of what an overlay network is) (an idea of interconnection on the Internet: and how the Internet is actually formed, but helps with the idea of an overlay too)
26
Alfredo Terzoli / Mosioua Tsietsi
RTMMoIP Alfredo Terzoli / Mosioua Tsietsi
27
PLAN Did you read the hand-out? A few important acronyms
A call is more than a conversation: signalling! Timeline & general organization
28
A few acronyms for you to expand
PBX TDM PSTN T1 SS7 SIP
29
Solutions PBX : Private Branch Exchange
TDM : Time Division Multiplexing PSTN : Public Switched Telephone Network T1 : Trunk (level) 1 (ok, a bit strange); btw, in SA is normally E1 – 2 Mbps SS7 : Signalling System 7 SIP : Session Initiation Protocol
30
Legacy service provider use
TDM network 1 TDM network 2 Asterisk GnuGK iLanga proxy iLanga Core SER Asterisk GnuGK iLanga proxy iLanga Core SER IP Network (Typically not the Internet)
31
Enterprise setting iLanga Core Local VoIP Endpoints SIP IAX Internet
H.323 MGCP Internet Asterisk GnuGK SER iLanga proxy Legacy PBX BRI PRI PSTN BRI PRI iLanga Core
32
VoIP signalling protocols
SIP: Session Initiation Protocol IETF, Internet Engineering Task Force H.323 ITU, International Telecommunication Union MGCP: Media Gateway Control Protocol - ITU H.248/MEGACO: MEdia GAteway COntrol – ITU / IETF
33
SIP In a sense the child of SMTP (Simple Mail Transport Protocol) and HTTP (Hyper Text Transfer Protocol) Simple: establishes the session only uses SDP, for the description of the session RTP for the transport of the media
34
User Agent UAS – server UAS – server UAC – client UAC – client
35
A simple SIP network
36
A SIP conversation
37
Some experiments First, let’s get ourselves a SIP UA besides the one embedded in the telephone: SJphone, (& in the software resources for this module)
38
Experiments Experiment 1: let’s call directly the hardphone, using its IP address Experiment 2: let’s call the hardphone via iLanga, but without being part of iLanga (btw, this is the way the rest of the world can contact you) Experiment 3: let’s join iLanga and start using the extensions and dialling out to the PSTN
39
Got a packet sniffer? A good idea not to get bored with networks is to use a packet analyzer If you don’t have one already, use WireShark, or in the software resources of this module
40
The INVITE message
41
Rough timeline First week: general VoIP concepts + SIP
your work: reading, playing with SIP UA, analyzing SIP and RTP packets Second week: more SIP + Asterisk your work: reading, experimenting with Asterisk; thinking about a service you want to create Third week: more Asterisk, presentation of your service idea your work: reading, starting putting together your service,
42
Questions?
43
Alfredo Terzoli / Mosioua Tsietsi
RTMMoIP Alfredo Terzoli / Mosioua Tsietsi
44
PLAN Getting to know SIP better: essential structure of SIP messages
Beyond the single User Agent: more complex SIP networks Have you played with SJPhone? Some thoughts on your ‘telecommunication status’ right now
45
SIP messages Either a REQUEST or a RESPONSE Uniform structure:
Start line Headers (some mandatory, most optional) (optional) Body Request: start line carries a method Response: start line carries a status
46
User Agents UAS – server UAS – server UAC – client UAC – client
Request Response UAC – client UAC – client
47
Requests/Methods INVITE REGISTER BYE ACK CANCEL INFO
48
Responses / Status(es)
1xx provisional information 2xx success 3xx redirection 4xx client error 5xx server failure 6xx global failure
49
Headers Quite a few: To, From, Cseq, Contact, Subject, Via, Accept, Accept-Language, Accept-Encoding, Authorization, Content-Type, Content-Length, Date, Encryption, Expires, Hide, In-Reply-To, Organization, Max-Forwards, etc
50
Body Not compulsory Typically a description of the session, typically done using SDP, Session Description Protocol BTW, the session description includes what other protocols to use for the actual session. For voice/video session, typically RTP (Real Time Protocol)
51
While exploring… A very useful resource while making sense of SIP and related protocols is the RFC sourcebook that you can find at (folllow the links ‘RFC sourcebook>Protocols’)
52
Ok, we are ready for some fun!
Let’s go checking SIP messages in a UA-to-UA situation, using Ethereal. We won’t be exhaustive in our analysis: SIP is simple, but it is still a full blown protocols for real entities living in a complex environment! Naturally, we will quickly check some of the related protocols (SDP, RTP)
53
Introducing the server
54
Types of SIP servers Proxy (as in the previous slide) Redirect
Stateful, stateless Redirect Registration
55
Our SIP server, SER Sip Express Router (sip.ict.ru.ac.za) in our system acts as proxy & registration server, never as a redirect server Open source, large volume Info about it at
56
Your telecommunication ‘status’
Your SIP soft/hard phones Internet Asterisk SER iLanga Core Rhodes PBX Telkom
57
Call through a proxy
58
Questions?
59
Alfredo Terzoli / Mosioua Tsietsi
RTMMoIP Alfredo Terzoli / Mosioua Tsietsi
60
A conversation becomes DATA
61
And it is tranported…
62
Another view!
63
VoIP bandwith calculation
Let’s get more specific on B/W usage, for AUDIO transmission Two families of CODECS: wave coding unrestricted, any sound (sound engineering) vocoding good for voice, can reach very low bitrates kbps: kilo bits per second (here kilo=1000, not 1024!)
64
‘Vocoders’ for Videos?
65
Voice Synthesisers & Vocoders
A voice synthesiser includes a vocoder of some type, naturally In fact, using a voice synthesiser one can substantially reduce the bandwidth needed for the transmission of voice. HOW? (BTW, who knows how MIDI works?)
66
B/W consumption of a few codecs
67
VoIP bandwith calculation
68
VoIP bandwith calculation
69
Bandwidth calculators at:
(btw, the white paper distributed to you on b/w calculation comes from newport-networks)
70
Reducing overhead cRTP compact RTP (RFC 2508):
From 40 to 2 to 4 bytes, substantial Trunking: same packet transport more than one conversation (of course, can be used only if on a trunk)
71
Questions?
72
Alfredo Terzoli / Mosioua Tsietsi
RTMMoIP Alfredo Terzoli / Mosioua Tsietsi
73
A conversation becomes DATA
74
And it is tranported…
75
Another view!
76
VoIP bandwith calculation
Let’s get more specific on B/W usage, for AUDIO transmission Two families of CODECS: wave coding unrestricted, any sound (sound engineering) vocoding good for voice, can reach very low bitrates kbps: kilo bits per second (here kilo=1000, not 1024!)
77
‘Vocoders’ for Videos?
78
Voice Synthesisers & Vocoders
A voice synthesiser includes a vocoder of some type, naturally In fact, using a voice synthesiser one can substantially reduce the bandwidth needed for the transmission of voice. HOW? (BTW, who knows how MIDI works?)
79
B/W consumption of a few codecs
80
VoIP bandwith calculation
81
VoIP bandwith calculation
82
Bandwidth calculators at:
(btw, the white paper distributed to you on b/w calculation comes from newport-networks)
83
Reducing overhead cRTP compact RTP (RFC 2508):
From 40 to 2 to 4 bytes, substantial Trunking: same packet transport more than one conversation (of course, can be used only if on a trunk)
84
Questions?
85
Real-time multimedia and communication in packet networks
Asterisk The open source IP PBX 85
86
Some House Rules Practical component of the course
Workings and power of asterisk, an IP Private Branch eXchange (PBX) Small tutorials will be given on a daily basis before each lecture Large practical – write your own application that adds value to an Asterisk PBX This will be demonstrated to the class at the end of the course. Practical to be done on a Linux machine you can ssh into cc 86
87
Some Admin You should have by now:
- found your extension on pbx.ict.ru.ac.za - registered on iLanga your two phones (sj and hardphone) - explored the messaging between the two phones and the SIP proxy server in iLanga at least in these situations: 1. Registration 2. Call establishment with callee answering and without answer (voic ) - checked the media stream in iLanga and discovered possible difference with respect to the case of calling directly an end point. What happens if you call a telephone registered with iLanga directly via its IP number? Please make sure that problems that you had yesterday are cleared in the first part of the lecture. Enjoy Asterisk! 87
88
Some House Rules Practical component of the course
Workings and power of asterisk, an IP Private Branch eXchange (PBX) Small tutorials will be given on a daily basis before each lecture Large practical – write your own application that adds value to an Asterisk PBX This will be demonstrated to the class at the end of the course. Practical to be done on a Linux machine you can ssh into cc 88
89
What is Asterisk (*)? A private or enterprise grade exchange generally referred to as a private branch exchange (PBX) Designed to interface telephony hardware or software with any telephony application seamlessly and consistently i.e. Asterisk can be moulded to fit any telephony application Asterisk can be used in any of these applications Heterogeneous Voice over IP gateway (MGCP, SIP, IAX, H.323) Private Branch eXchange (PBX) Custom Interactive Voice Response (IVR) server Conferencing server Softswitch? 89
90
What is Asterisk (*)? A private or enterprise grade exchange generally referred to as a private branch exchange (PBX) Designed to interface telephony hardware or software with any telephony application seamlessly and consistently i.e. Asterisk can be moulded to fit any telephony application Asterisk can be used in any of these applications Heterogeneous Voice over IP gateway (MGCP, SIP, IAX, H.323) Private Branch eXchange (PBX) Custom Interactive Voice Response (IVR) server Conferencing server Softswitch? 90
91
What is Asterisk (*)? A private or enterprise grade exchange generally referred to as a private branch exchange (PBX) Designed to interface telephony hardware or software with any telephony application seamlessly and consistently i.e. Asterisk can be moulded to fit any telephony application Asterisk can be used in any of these applications Heterogeneous Voice over IP gateway (MGCP, SIP, IAX, H.323) Private Branch eXchange (PBX) Custom Interactive Voice Response (IVR) server Conferencing server Softswitch? 91
92
Asterisk – Supported Communication Technologies
Asterisk is designed to allow new interfaces and technologies to be added easily Asterisk’s goal is to support every kind of telephony technology possible Asterisk interfaces divided into 3: Zaptel hardware Non-Zaptel hardware Packet voice 92
93
Zaptel Hardware Check out http://www.zapatatelephony.org/
Provide integration with traditional and legacy analogue and digital telephone interfaces Zaptel interfaces available from Digium ( Zaptel interfaces available for a number of telephony interfaces ISDN Basic Rate Interface (BRI) ISDN Primary Rate Interface (PRI) Analog FXS interface – connect to a station i.e. analogue phone Analog FXO interface – connect to an office i.e. PBX 93
94
Zaptel Hardware Digium 4 x FXS card $342 USD
Digium 2 x FXS, 2 x FXO card $360 USD Digium BRI card $469 USD Digium BRI card $1345 USD
95
Packet Voice Protocols
Standard protocols for communication over packet networks Only interfaces that do not require specialised hardware E.g. SIP IAX H.323 MGCP 95
96
Asterisk’s Architecture
96
97
Modules and Applications
Asterisk’s core contains several engines that play a critical role in the software’s operation At startup, Dynamic module loader loads various modules for: Channel drivers File formats Codecs Applications Custom applications launcher i.e. the iLanga Prepaid Application Asterisk’s switching core accepts calls from any of the various interfaces and routes them according to the dialplan Codec translator permits channels which are compressed with different codecs to talk to each other Scheduler and IO Manager which can be used by applications and drivers 97
98
Asterisk’s Architecture
Modular API for Asterisk responsible for Asterisk’s success Channel API, File Format API, Codec API, Application API 98
99
Some Asterisk configurations (basic)
Asterisk box contains 1 analog interface for telephone (FXS interface) 1 analog interface to PSTN (FXO interface) Ethernet interface for VoIP 99
100
Some Asterisk configurations
Asterisk box contains One E1 or (PRI) interface connected to a digital to analog converter or channel bank 15 phones connected channel bank 15 lines to PSTN (i.e. Telkom) 100
101
Some Asterisk configurations
In this example we illustrate the possibility of distributing a number of Asterisk boxes Each Asterisk box can be interconnected using TDM technology e.g. BRI or PRI Data technology/VoIP e.g. Inter Asterisk Exchange (IAX) 101
102
Asterisk Filesystem Organisation
/etc/asterisk Contains Asterisk configuration files – NB directory /usr/sbin Contains Asterisk binaries /usr/lib/asterisk/modules Contains runtime modules for channel drivers, codecs, file formats, applications /usr/include/asterisk Contains Asterisk C header files for the building the software /var/lib/asterisk/agi-bin Location of Asterisk Gateway Interface (AGI) for use in dialplan 102
103
Asterisk Filesystem Organisation
/var/lib/asterisk/astdb Asterisk internal database Roughly equivalent to Windows registry /var/lib/asterisk/mohmp3 Storage directory mp3s – used for music on hold /var/lib/asterisk/sounds Storage directory for Asterisk audio files e.g. voice prompts to be used in IVR menus /var/spool/asterisk/outgoing Spooling directory for making outgoing calls Can be used for callback function /var/spool/asterisk/voic Storage directory for Asterisk voic boxes, announcements, etc 103
104
Asterisk Channels Channel naming convention in Asterisk is standard
Outgoing channel names (used in Dial application) named in format: <technology>/<dialstring> <technology> represents type of interface you want to address or use E.g. Zap, SIP, IAX2, etc <dialstring> is a driver-specific string representing destination desired 104
105
Asterisk Channels (Zap)
<technology>/<dialstring> Zap / [g] <identifier> <identifier> = number of the channel you are trying to address If <identifier> prefixed by ‘g’ then number is interpreted as a group instead of as a channel e.g. Zap/g1/ (Any available line in group 1) Zap/1/ (TDM channel 1) 105
106
Asterisk Channels (SIP)
Outgoing channels typical of the form SIP / <domain> [:<portno>] E.g. SIP/mos 106
107
Asterisk Channels (IAX)
IAX2 / [<user> <domain> [:<portno>] Where <user> and <secret> are optional username and secret to connect to the host identified by <peer> and <portno> = optional port number, <exten> = specific extension at an optional context <context>, and optionally with <options> connection options E.g Call to voiptalk.org using “authname” as username and “secretpass” as password, and requesting extension in default context 107
108
Running Asterisk and Environment
Asterisk can be run in console mode or as a daemon process E.g. asterisk –vvvgc (console mode with verbose=3 debugging Asterisk (daemon) – started by typing asterisk Please always run asterisk as daemon and connect to daemon process using: asterisk –r asterisk -vvvvvr When connecting to daemon process you will be connected to the command line interface of Astrerisk (CLI) vitalstatistix*CLI> 108
109
Asterisk CLI When connected to the Asterisk CLI there are a number of commands you can use Go and test them out, see what they do, familiarise yourself with the environment E.g. ‘help’ ‘show applications’ ‘show application x’ ‘show codecs' ‘show translation' ‘extensions reload’ ‘sip reload’ CLI include command completion via the tab key 109
110
sip.conf Please set your phones up to connect to your development box
Create a sip.conf file in your home directory, you can use the reference 110
111
Tomorrow’s Tutorial Create an account for your phone
Play around with some of the settings in the sip.conf file 111
112
Alfredo Terzoli / Mosioua Tsietsi
RTMMoIP Alfredo Terzoli / Mosioua Tsietsi
113
PLAN: tiding up… ENUM: a few more words B/W calculation for VoIP
Plan for the rest of the week
114
PSTN to VoIP Call via SIP
DNS-Server Query e164.arpa.? Response “Call setup” Dial Sip Gateway Sip server (slide by Steven D. Lind,AT&T)
115
VoIP via SIP to VoIP SIP-Server DNS-Server “ENUM” SIP-Server Gateway
116
ENUM ‘strange’ format…
My telephone at home in ENUM format: e164.arpa Why not (it seems more logical!): e164.arpa
117
ENUM ‘strange’ format The second way of representing makes explicit in the DNS search the current format of e.164, which might change in future Using the first one (fully dotted), we isolate ENUM from changes in the e.164 format by the ITU. The only assumption is that e.164 will be numbers, which is safe
118
A conversation becomes DATA
119
And it is tranported…
120
Another view!
121
VoIP bandwith calculation
Let’s get more specific on B/W usage, for AUDIO transmission Two families of CODECS: wave coding unrestricted, any sound (sound engineering) vocoding good for voice, can reach very low bitrates kbps: kilo bits per second (here kilo=1000, not 1024!)
122
‘Vocoders’ for Videos?
123
Voice Synthesisers & Vocoders
A voice synthesiser includes a vocoder of some type, naturally In fact, using a voice synthesiser one can substantially reduce the bandwidth needed for the transmission of voice. HOW? (BTW, who knows how MIDI works?)
124
B/W consumption of a few codecs
125
VoIP bandwith calculation
126
VoIP bandwith calculation
127
Bandwidth calculators at:
(btw, the white paper distributed to you on b/w calculation comes from newport-networks)
128
Reducing overhead cRTP compact RTP (RFC 2508):
From 40 to 2 to 4 bytes, substantial Trunking: same packet transport more than one conversation (of course, can be used only if on a trunk)
129
Main Prac Building a service in Asterisk Possible dates:
WEDNESDA 16s: presentation of your idea TUESDAY 29: demo of the implemented service
130
A few URLs to follow (by Friday)
(blog with comparison of skype and googletalk) (broadband providers VoIP dilemma) (P2P SIP)
131
Questions?
132
Real-time multimedia and communication in packet networks
Asterisk AGI and Manager Interface
133
Last Practical Create a calculator application using the Asterisk dialplan E.g. phone an extension * answers and provide an IVR menu saying press 1 to go to the calculator, 2 to go somewhere else, and 3 to go somewhere further If I press 1 – must be routed to calculator where I am prompted to choose to go to multiplication menu, division menu, add menu or subtraction menu 1,2,3,4 Within each menu – prompt user for expression separated by star (*) So in addition menu, pressing 100*20 should return 120 While in multiplication menu pressing 100*20 will return 2000 Results can be played using Festival After each result should have option of another operation or going to one of the other menus (+-/*) Remember to check out - Check out the Cut function!
134
Controlling Asterisk Number of ways Asterisk can be controlled
Dialplan Asterisk scheduling (call me) Asterisk Gateway Interface (AGI) Manager Interface
135
AGI AGI allows us to add functionality to Asterisk with many different programming languages Java, Perl, PHP, C, Pascal – Anything! Provides a standard interface through which programs may control asterisk Used for advanced logic or to communicate with resources such as relational databases and external devices Allows asterisk to perform tasks that would be otherwise difficult or impossible
136
AGI – How it works The AGI script is called from the dialplan
Asterisk and your program communicate via the STDIN, STDOUT and STDERR communications channels (file handles in programming) Your AGI scripts reads input via its STDIN file handle Your AGI script writes back to asterisk via its STDOUT file handle Your AGI program writes error message back to asterisk via its STDERR file handle
137
Starting your AGI program
Syntax: exten => extennumber,priority,application,arguments The application is “AGI” The argument is the filename of your program The script must be: executable (chmod +x filename) located in /var/lib/asterisk/agi-bin in source versions of asterisk Located in /usr/share/asterisk/agi-bin in binary vesions of asterisk Example: Run a perl script agi-test.agi exten => 1,2,AGI, agi-test.agi
138
Passing args exten 1,2,AGI,agi-test.agi|${ARG1}|${ARG2}
AGI programs always receive two args 1 – path to the AGI script 2 – Arguments passed from the dialplan Notes about arguments: If no arg is given – the arg is empty. Consists of everything on the line following the verticle bar after the file name, up until the final vertical bar Quotes are taken as being part of the argument
139
Communicating with * Use 'show agi' at the CLI will give you a list of commands At script startup time, * sends a group of variables to your script which you have to read in Each item is sent on a line terminated with a newline. The last item is followed by an empty line agi_request: agi-test.agi agi_channel: SIP/1000-bcgd162 agi_language: en agi_context: mtsietsi agi_extention: 105 agi_priority: 2 Commands sent to * must be terminated with newline
140
AGI examples Perl - /usr/share/asterisk/agi-bin/agi-test.agi
Java - /usr/share/asterisk/agi-bin/mosJava.java /usr/share/asterisk/agi-bin/mosJava.agi
141
Manager API A client/server module that allows us to interact with * via TCP/IP Similar to SMTP and HTTP Communicates using tags “header:value” terminated with a newline First tag must be one of the following Action: an action requested by the client. Response: A response to an action from Asterisk Event: An event reported by Asterisk to the client
142
Manager interface (login)
telnet into on port 5038 Login Action: Login Username: voipuser Secret: voipuser Events: off /r/n
143
Manager interface (Originate)
Action: Originate Channel: SIP/1000 Exten: s Context: mtsietsi Priority: 1 Timeout: 10000
144
Manager interface (Monitor)
Action: Monitor Channel: SIP/ab5s51182s File: monitor Mix: 1
145
Today's Practical 1) Extend your calculator to incorporate an AGI program Do the calculation Parse the numbers Take a number to a power Solve complex problems i.e. y = ax4 + ax3 = ax2 + ax + a
146
Real-time multimedia and communication in packet networks
iLanga
147
The Big Idea The flexibility of Asterisk what we have learnt
Working in the software domain bridge between software and hardware closing open environment; more flexible to change Allows us to create something very functional yet simple - iLanga
149
SIP Express Router Focuses only on SIP messaging
Performs forking properly Is able to handle high volumes of SIP traffic Has forked into two separate open source projects: OpenSER Kamailio
150
Registration with SER REGISTER 401 UNAUTHORISED (nonce,realm)
REGISTER (with MD5Hash(user+nonce+pwd)) 200 OK
151
User Devices
152
Example Call Set-up Asterisk 3001 Hangup OK Hangup 3000 3021
Asterisk 3001 Hangup OK Hangup 3000 3021
153
Asterisk The core of iLanga Speaks RTP IAX2 Zap (1 QUADBRI)
4 channels to markreader premium line 2 to Telkom and 2 to Rhodes PBX
154
Asterisk Uses AGI Prepaid application Mark reader application
Extensive use of the Dialplan Routing to Telkom and Rhodes Routing to applications Conferencing Directory Voic etc;
155
MySQL Database We have been configuring asterisk via files in /etc/asterisk You can also provide configuration via a Database using /etc/asterisk/extconfig.conf IAX registrations SIP registrations (SER talks to the database) Voic Extensions still configured in extensions.conf! We added “usercontext.conf”
156
Web Frontend Provides a second way of accessing iLanga
Accessing your PBX from anything other than a telephone is a new concept – Made easy by soft switches. Update your details Edit ring-able devices Listen to and control voice mail Add prepaid credit View call log View the directory – click to dial Everything you can do on the site – you should be able to do on a phone
157
Web Frontend Hosted by an Apache web server Written in Flash
Also allows us to make the web site dynamic! Talks to Perl (CGI) PHP Java Proxy (used to be Python)
158
iLanga Proxy Many entities talking to the manager interface caused problems A Proxy was built First in Python, now in Java Passes messages from the web interface to Asterisk Passes messages from Asterisk to the MySQL DB Some actions Icon information Extension state information Dynamic content on the front end
160
Short tutorial on Services
Develop (in your head / on paper) a brief action plan for how you would develop one of the following services: SPIT (Spam over Internet Telephony) generator Application to curb SPIT in telephony applications Asterisk-based markreader that integrates with ROSS to deliver marks to calling students over a phone Audio database for storing and replaying all the telephone conversations that you make Meeting scheduler for setting up meetings with other iLanga users A ‘Hangman’ game that is played over the phone between two players Present your ideas to the rest of the class
161
Real-time multimedia and communication in packet networks
Mobicents Service Delivery Platform
162
Our Background Apache Flash C, Perl and PHP scripts
Rhodes VOIP Platform: Asterisk IP PBX SIP Express Router Web front end Apache Flash C, Perl and PHP scripts Java Proxy
163
Asterisk Architecture
164
Analysing the System Service Creation
Dial plan (Apache-like configuration) AGI (programming scripts) i.e. bash, Java, C, etc .. SER configuration (combo of prog lang and UNIX-like config file format) Asterisk Application API (C only) Tight coupling of services and control layer
165
Next Generation Networks
Definition: “A Next Generation Networks (NGN) is a packet-based network able to provide Telecommunication Services to users and able to make use of multiple broadband, QoS-enabled transport technologies and in which service-related functions are independent of the underlying transport-related technologies. It enables unfettered access for users to networks and to competing service providers and services of their choice. It supports generalised mobility which will allow consistent and ubiquitous provision of services to users”. [ITU-T Recommendation Y.2001 (12/2004) - General overview of NGN]
166
Service Delivery Platform
167
JAIN SLEE and JAIN APIs
168
JAIN SIP Applet Phone: An example JAIN System
Origins: Born out of JAIN SIP Initiative Developed by NIST labs Open source Java softphone based on JAIN SIP 1.2 API Planned Extensions: Video services Interop testing Customisation for inhouse projects
169
JAIN SLEE and JAIN APIs JAIN Service Logic and Execution Environment
Defines component model for structuring applications through reusable OO components
170
JAIN SLEE Component Architecture
171
JAIN SLEE Service Instantiation
172
JAIN SLEE Service Instantiation
173
JAIN SLEE Service Example: Call Controller
174
JAIN SLEE Service Example: Call Controller
Profile Name Called User Blocked Addresses Backup Address Voic State torosvi sip:torosvi sip:mobicents sip:hugo null true mobicents false victor sip:victor vhros2 sip:vhros2 vmail sip:vmail
175
JAIN SLEE Service Example: Call Controller
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.