1 RTMM, VoIP, VVoIP, NGN, Convergence?Alfredo Terzoli / Mosioua Tsietsi
2 PLAN Admin Real time communication today: your experienceA 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 hoursExpected 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 todaySkype (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 Protocoltwo 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 communicationTwo 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 StreamingReal-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 mediaBecause 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 InternetH.323 MGCP Internet Asterisk GnuGK SER iLanga proxy Legacy PBX BRI PRI PSTN BRI PRI iLanga Core
21 Legacy service provider useTDM 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 TsietsiRTMMoIP Alfredo Terzoli / Mosioua Tsietsi
27 PLAN Did you read the hand-out? A few important acronymsA call is more than a conversation: signalling! Timeline & general organization
28 A few acronyms for you to expandPBX TDM PSTN T1 SS7 SIP
29 Solutions PBX : Private Branch ExchangeTDM : 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 useTDM 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 InternetH.323 MGCP Internet Asterisk GnuGK SER iLanga proxy Legacy PBX BRI PRI PSTN BRI PRI iLanga Core
32 VoIP signalling protocolsSIP: 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 + SIPyour 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 TsietsiRTMMoIP Alfredo Terzoli / Mosioua Tsietsi
44 PLAN Getting to know SIP better: essential structure of SIP messagesBeyond 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 – clientRequest 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) RedirectStateful, 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 TsietsiRTMMoIP Alfredo Terzoli / Mosioua Tsietsi
60 A conversation becomes DATA
61 And it is tranported…
62 Another view!
63 VoIP bandwith calculationLet’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 & VocodersA 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 TsietsiRTMMoIP Alfredo Terzoli / Mosioua Tsietsi
73 A conversation becomes DATA
74 And it is tranported…
75 Another view!
76 VoIP bandwith calculationLet’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 & VocodersA 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 networksAsterisk The open source IP PBX 85
86 Some House Rules Practical component of the courseWorkings 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 courseWorkings 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 TechnologiesAsterisk 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 (www.digiumcards.com) 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 USDDigium 2 x FXS, 2 x FXO card $360 USD Digium BRI card $469 USD Digium BRI card $1345 USD
95 Packet Voice ProtocolsStandard 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 Architecture96
97 Modules and ApplicationsAsterisk’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 ArchitectureModular 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 configurationsAsterisk 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 configurationsIn 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 standardOutgoing channel names (used in Dial application) named in format:
105 Asterisk Channels (Zap)
106 Asterisk Channels (SIP)Outgoing channels typical of the form SIP /
107 Asterisk Channels (IAX)IAX2 / [
108 Running Asterisk and EnvironmentAsterisk 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 boxCreate a sip.conf file in your home directory, you can use the reference 110
111 Tomorrow’s Tutorial Create an account for your phonePlay around with some of the settings in the sip.conf file 111
112 Alfredo Terzoli / Mosioua TsietsiRTMMoIP Alfredo Terzoli / Mosioua Tsietsi
113 PLAN: tiding up… ENUM: a few more words B/W calculation for VoIPPlan for the rest of the week
114 PSTN to VoIP Call via SIPDNS-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 calculationLet’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 & VocodersA 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 networksAsterisk 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 controlledDialplan 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 dialplanAsterisk 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 programSyntax: 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.agiJava - /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 networksiLanga
147 The Big Idea The flexibility of Asterisk what we have learntWorking 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
148
149 SIP Express Router Focuses only on SIP messagingPerforms 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 applicationExtensive 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 iLangaAccessing 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 FlashAlso 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
159
160 Short tutorial on ServicesDevelop (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 networksMobicents Service Delivery Platform
162 Our Background Apache Flash C, Perl and PHP scriptsRhodes 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 CreationDial 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 NetworksDefinition: “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 SystemOrigins: 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 EnvironmentDefines 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 ControllerProfile 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