Download presentation
Presentation is loading. Please wait.
Published byChester Goodwin Modified over 9 years ago
1
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Developing VoIP Enabled Applications using Host Processing Darren Cooper – Senior Software Engineer Michael Ward – Director, Product Line Management Trinity Convergence
2
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Trinity Convergence Developer of embedded communications software for VoIP and Wireless markets –VeriCall™ an Integrated VoIP Software Framework –VoIP-Enablement from the Edge to the Core Headquartered in Research Triangle Park, NC R&D located in Cambridge, England Partnered with ARM Ltd, Freescale, MIPS Technology & StarCore LLC ISO9001 Accredited
3
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Traditional Voice Enabled Applications
4
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Expanding Voice Enabled Applications Candidates for Host-Processing Solutions
5
August 3-4, 2004 San Jose, CA www.voipdeveloper.com The VoIP Enabled Client Expanding Array of Edge Products for VoIP Enablement –VoIP Desk phone –WiFi (802.11x) VoIP handset –Dual-mode Cell phone (TDMA/CDMA/GSM) & WiFi –VoIP application on PDA over WiFi –VoIP enabled workgroup hubs/routers –VoIP enabled broadband access boxes A Different Set of Requirements –Ultra cost sensitive –Low power consumption –Small footprint –Multiple services/applications hosted on the equipment
6
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Host Processor Reducing Cost and Power VoIP S/W Move VoIP to Host Processor Removes need for DSP Reduces Power Consumption Reduces Footprint Reduces Cost
7
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Expanding MIPS Enables VoIP MIPS 01 02 03 04 05 Available MIPS on Client MIPS for VoIP Channel Insufficient MIPS in client device – Additional external device (DSP) required Increased device capability means VoIP is now a software-only function, using a fraction of the available processing power
8
August 3-4, 2004 San Jose, CA www.voipdeveloper.com VoIP Application Requirements Matrix IP Phones Basic 10/100 IP Phone WLAN 802.11x IP Phone 1 – 2 ch VoIP G.711, G.723.1, G.726, G.729A/B, VAD, CNG, PLC, DTMF Detect/Generate, Adaptive Jitter Buffer,,Caller ID, Call Waiting, Call Hold, Call Transfer, Message Waiting Indicator, Call Progress Tones, SIP UA 10/100 MII, PCM i/f, WLAN, Video Codecs, LCD Driver, Keypad Driver USB 166MHz+ Media Processing Needs Application CPU Requirements Target BOM $20 - $35 Media Terminal Adapters Basic Voice/Fax Gateway No Routing 1 – 2 ch VoIP $15 - $25 Basic Voice Gateway Router/VPN/Firewall 1 – 4 ch VoIP Advanced Voice Gateway Router/VPN/Firewall ADSL/Cable/FTTH WLAN 802.11a/b/g G.711, G.723.1, G.726, G.729A/B, T.38 Fax Relay, VAD, CNG, PLC, DTMF Detect/Generate/Relay, Adaptive Jitter Buffer,,Caller ID, Call Waiting, Call Hold, Call Transfer, Message Waiting Indicator, Call Progress Tones, SIP UA 10/100 MII, PCM i/f 200MHz + $25 - $40 G.711, G.723.1, G.726, G.729A/B, T.38 Fax Relay, VAD, CNG, PLC, DTMF Detect/Generate/Relay, Adaptive Jitter Buffer,,Caller ID, Call Waiting, Call Hold, Call Transfer, Message Waiting Indicator, Call Progress Tones, SIP UA 10/100 MII, PCM i/f 200 MHz – 400MHz $30 - $50 G.711, G.723.1, G.726, G.729A/B, T.38 Fax Relay, VAD, CNG, PLC, DTMF Detect/Generate/Relay, Adaptive Jitter Buffer,,Caller ID, Call Waiting, Call Hold, Call Transfer, Message Waiting Indicator, Call Progress Tones, SIP UA 10/100 MII, PCM i/f 266MHz – 533 MHz
9
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Developing a Voice-Enabled Media Gateway
10
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Register Application(s) Register Application(s) Initialize VeriCall Edge Initialize VeriCall Edge Modify Default Configuration Modify Default Configuration Commit System Manage User System Management Call Management Channel Configuration Channel Configuration Step 1: Step 2: Step 3: Step 4: Step 5: Step 6: Step 7: Step 8: Initialization Phase Run time Phase Eight Stages to Creating a VoIP Application Initialize Application Initialize Media Processing engine Initialize Media Processing engine Apply or modify default Config data Apply or modify default Config data Provision channel call control stack Provision channel call control stack Manage User Interactions Manage User Interactions System Management Call Management Channel setup Channel setup Step 1: Step 2: Step 3: Step 4: Step 5: Step 6: Step 7: Step 8: Initialization Phase Run time Phase
11
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 1 – Application Initialization Support single or multi-threaded environment, without imposing constraints on the gateway solutions architecture. Support capability for Multiple Applications Manage the routing of messages to the appropriate application –without increasing the complexity of the user level application design.
12
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 1 – Application Initialization
13
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 2 – Initialize Media Engine Should be simple to initialize and configure Should apply factory default configurations – to simplify the user application –allows the user application designer to concentrate on value added services Should allow user application to change or remove any factory default configurations
14
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 3 – Modify the Configuration Default configuration and user supplied data may be subsequently: –Over-written by the user application –Read by the user application –Removed by the user application Set customized configuration for application –SIP Address –Desired Codec selections
15
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 3 – Modify the Configuration VE_RemoveSystemAttribute()
16
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 3 – Modify the Configuration VE_GetSystemAttribute()
17
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 3 – Modify the Configuration VE_SetSystemAttribute()
18
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 4 – Provision Media & Call Control Stacks The Media Stack should : –Define the data path for all audio / packet data –Configure the algorithms, which provide functional blocks within the data path The Call Control Stack should: –The call control stack should take the default user and user configuration data to provision configuration
19
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 4 – Provision Media & Call Control Stacks Common Requirements for Media & Call Control –Creation of the channels should be transparent to the user application software –Perform all memory allocations before processing begins –limit its memory consumption to a pre-set user defined value
20
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 5 – Manage User Interactions Handle multiple user’s and channels Each user should be able to make and receive calls independently. The user application should be able to associate each user to a logical data path The user application should be able to associate default information to a user, which is applied every time a makes or receives a call.
21
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 5 – Manage User Interactions
22
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 6 – System Management The Media and Call Control stacks: –should not block the calling application to allow the application to provide other functionality –must allow the user application to retrieve the events and alarms –must not allow the user application delay or stall the media or call processing capability. –provide a simple interface to enable shutdown and resource release
23
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 7 – Call Management Decouple Media and Call Control stacks The Media Stack should have no dependency on the Call Control stack The Media Stack should provide a flexible framework to enable easy integration of 3 rd party Call Control stacks
24
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 8 – Channel Setup The media stack should: –Allow the user application the ability to configure a media channel independently of the call control stack –Enable independent activation and de- activation of each media channel –Provide a simple interface to support all media channel configuration capability
25
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Flow of Example Application
26
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Example Media & Call Control Processing Architecture
27
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Thank You… Come see the VeriCall™ Edge Demo in Booth 406 www.TrinityConvergence.com
28
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Supplemental Material Details on APIs used in example application
29
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 1 – Register Application(s) VeriCall Edge’s Solution –VeriCall Edge provides a flexible media engine framework, providing VoIP services to the providers of VoIP gateway and IP phone solutions. –VeriCall Edge imposes minimal design restrictions on the designer of the VoIP solution, allowing the user to architecture their solution as either single or multi-threaded. –VeriCall Edge provides this flexible approach by provision of a application registration service, thus allowing one or more applications to use the services that VeriCall Edge provides. –Each application will be provided with a unique application ID. This is used to authenticate future transactions and provide a route for messaging. –API: VE_RegisterApp ()
30
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 2 – Initialize VeriCall Edge VeriCall Edge’s solution –VeriCall Edge meets the requirements by providing the user application a simple interface which: –Creates internal storage in which user configuration may be applied –Populates the internal storage with default (factory) configuration data, providing the most commonly used media configurations –VeriCall Edge must be initialized, before any subsequent operations are performed. –API: VE_Initialize();
31
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 3 – Modify Default Configuration Modifying the configuration –Default configuration and user supplied data may be subsequently: Over-written by the user application Read by the user application Removed by the user application. –The following three API’s are provided for this purpose: VE_RemoveSystemAttribute(); VE_GetSystemAttribute(); VE_SetSystemAttribute();
32
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 4 – Commit System VeriCall Edge’s Solution –VeriCall Edge provides a simple API to: Declare to VeriCall Edge that the initialization phase is complete Create logical channels, based on the user / default configuration which defines a data path instance and that path’s configuration. Allocate memory, within use defined boundaries. Initialize the VeriCall Edge SIP call control stack.
33
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 4 – Commit System Activate all internal sub-components ready to handle calls. –API: VE_Commit()
34
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 5 – Manage User VeriCall Edge’s solution –VeriCall Edge provides a simple set of API’s to enable user management. –A user can be classified as any person that wishes to make or receive a call via VeriCall Edge. –Before any user can make or receive calls, that user must be registered with VeriCall Edge. –A user must be registered with VeriCall Edge regardless of the method of call control. A user is provided with a unique ID, which is used to identify the user, and ultimately, the channel on which to perform channel control functions
35
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 5 – Manage User –User registration data associates a user to a URI and an internal channel number. –Three user management functions: VE_AddUser() – This registers the user with VeriCall Edge VE_RemoveUser() – Removes a registered from VeriCall Edge. VE_UpdateUser() – Updates the registration data with VeriCall Edge.
36
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 6 – System Management VeriCall Edge’s solution. Two system management API’s provided to the user application: –System Tick To process Audio, transfer commands from the user application layer to VeriCall Edge and to process message from VeriCall Edge, VeriCall Edge must be ‘ticked’ on a regular basis. The ‘tick’ function performs is a non-blocking operation which acts as an internal scheduler, responsible for invoking all of VeriCall Edge’s sub-components. API: –VE_RunVericallEdge()
37
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 6 – System Management –Retrieve VeriCall Edge message All events and alarms placed on an internal queuing system, when the system is ‘ticked’, as a message. To enable the user to retrieve these message, a single API is provided. This API uses the application ID passed into the API, to determine which messages should be retreived: Used in conjunction with VE_RunVericallEdge(), needs only be invoked when function states that messages are available.
38
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 6 – System Management API: –VE_GetNextEvent()
39
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 6 – System Management VeriCall Edge Shutdown –Sends a request to all internal sub- components to shutdown and free resources –User must await for response, before terminating the application. –API: VE_Shutdown()
40
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 7 – Call Management VeriCall Edge Call control –VeriCall Edge is provided complete with an standards compliant SIP stack. The use of this SIP stack is optional. –VeriCall Edge provides a flexible framework to allow easy integration of a 3 rd party call control stack Integration of 3 rd Party Call Control stacks –The integration of such call control stacks are performed at the user application level. –VeriCall Edge is agnostic to the type of call control stack utilized.
41
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 7 – Call Management –VeriCall Edge SIP Call control Stack VeriCall Edge supplies a fully standards compliant SIP stack. The user of the SIP stack is optional and is decoupled from the media library. The VeriCall Edge SIP stack presents a number of high level API’s to the user application. This API allows the user application to easily handle call negotiation without detailed knowledge of the SIP protocol.
42
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 7 – Call Management The VeriCall SIP stack operates in the same thread as the rest of the VeriCall Edge system and is run by the user application invoked ‘tick’ function. APIs: –VE_RegisterUser() – Registers a previously added user with an external SIP registration server –VE_DeregisterUser() – Registers a previously added user with an external SIP registration server
43
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 7 – Call Management –VE_StartSIPSession() – Starts the negotiation of a SIP call with another SIP enabled gateway or phone. –VE_SIPSessionResponse() – Allows the user to respond to a incoming call request event. –VE_StopSIPSession() – Allows the application to terminate a SIP session.
44
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 8 – Channel Configuration VeriCall Edge channel Control –Upon successful negotiation of a call, by the user’s chosen call control stack, a media channel must be configured an invoked to set up the voice path. VeriCall Edge provides two simple API’s to allow initiation or termination of an audio (voice) stream. –Initiation of a audio stream must is performed with configuration data that the call control will have negotiated. This data will include information such as the media encoder / decoder type e.g., G711, destination address and port etc.
45
August 3-4, 2004 San Jose, CA www.voipdeveloper.com Step 8 – Channel Configuration APIs: –VE_StartStream() –VE_StopStream()
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.