VOIP Software Architecture - PowerPoint PPT Presentation

voip software architecture n.
Skip this Video
Loading SlideShow in 5 Seconds..
VOIP Software Architecture PowerPoint Presentation
Download Presentation
VOIP Software Architecture

play fullscreen
1 / 23
VOIP Software Architecture
Download Presentation
Download Presentation

VOIP Software Architecture

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. VOIP Software Architecture Shengdong Shu BeiJing Embedded System Key Lab 2004/9/13

  2. VoIP System Block Diagram

  3. VoIP Applications DSP SW Load Manager VoIP Packetization Application Jitter Buffer Interface DSP Tone Interface VoIP Signaling RTP/ FTP/ SNMP/ MGCP/SIP RTCP DHCP TFTP HTTP DSP Management DSP HPI and Voice Driver Configuration Interface TCP, UDP DSP IP Interface Boot Monitor, Diagnos- Flash LED Serial 100baseT Initialization, tics Driver Driver Drivers Driver & Download OS Independent Layer Real-Time Operating System (VxWorks) CPU Software Architecture

  4. Client Applications Data Command Host DSP APIs Configuration Data Events Resource Manager VXD VXD VXD VXD UTILITIES EXECUTIVE Service Service Service Service Switchboard PXD Functions Hardware Abstraction Layer DSP Software Architecture

  5. Key Software Components • VxWorks -- real time OS • MGCP – media gateway control protocol • MPC -- media port controller • RTP -- real-time transport protocol • BSP -- board support package • HPI -- DSP host port interface driver

  6. Media Port Controller • Between gateway call control tasks and DSP processor communications • Accept function calls from extension, trunk, channel manager, or configuration • Send commands to DSP, POTS driver, or T1/E1 framer • Receive events from DSP, POTS driver, or T1/E1 framer

  7. Cont. • Internal MPC • Create media port handler • Initialize and configure DSP processors, PXD ports, VXD ports • Connect VXDs and PXDs • Parse CLASS into a structure • Send tone, ring command

  8. Endpoint Controller Switch board SBControlLocal() Media Port Controller SBControlNetwork() DSP Driver List DSPInit() ListCreate() SLIC Control DSPBoot() ListTaskItem() SendDSP() ListInsertItemAfter() DSPTaskWork() HPI Driver construct packets send/rcv packets Cont. HPI Buffer

  9. Layered Blocks Communication Application Layer Gateway_Task Switch_Task MPC_event_pipe MPC_Command_pipe MPC Layer MPC_Event_Task Function hapi_command and task DSPtaskwork() Hapi_Command_Resp Hapi_Event_Task onse_Task DSP Layer DSP_Task

  10. HPI Operation • HPI is DSP on chip memory shared by both DSP and CPU • Divided by two sections – voice payload and control packet sections • The voice payload section is divided into From DSP and From CPU sections with four channels each • Each channel contains 5ms samples • The control section is divided into command and event sections

  11. Cont.

  12. CPU Switchboard Example

  13. Endpoint Controller (gateway.cpp) • Initialize and configure a voice gateway via MPC • MGCP VoIP protocol translation • Send events to the call agent (or call manager or softswitch) via Socket • Receive commands from the call agent via Socket • Call MPC functions to execute commands • Maintain each endpoint state machine

  14. Call Agent (Manager) • A central intelligent call manager • Maintain a list of active call connections • Configure all endpoint controllers • Identify called endpoint ID within its domain • Setup call paths • Support add-on services

  15. MGCP • Control VoIP gateways from external call control server (call agent) • Endpoint Configuration such as extension or trunk • Notification request such as DTMF digits • Creation connection • Modify connection such as call transfer • Delete connection • Audit endpoint for SNMP • Audit connection for SNMP • Notify to call agent for occurring of the requested events • Restart in progress from endpoint gateway

  16. Real Time Protocol • RTP - carry data that has real-time properties • A timestamp and sequence number for synchronizing different streams • RTCP -monitor the quality of service and convey information about the participants

  17. Cont.

  18. Socket Communication • Used for machine-to-machine • socket() to create a socket • bind() to connect a UDP port with a physical IP address • sendto() • recvfrom() • shutdown()

  19. Simplified Call State Walkthrough • A user picks up a phone, PXD detects an off hook action • ends the event to its VXD • The VXD sends the event to the host • The host sends a dial tone command to DSP • The VXD generates dial tone samples and put into the receiver’s buffer of the PXD • The caller then hears the dial tone and presses a phone number • The VXD detects the digits by applying DTMF detector and stops sending dial tone samples • The VXD collects all digits and sends to the host • The host call manager sends a ring command to the callee’s VXD

  20. Cont. • The callee’s VXD receives the command and commands the PXD to generate a ring • The called party’s phone is ringing • The call manager sends a ring back tone command to the caller’s VXD. • The caller’s VXD then sends a ring back tone to the PXD • The callee picks up the phone • The callee’s PXD detects off hook event from the callee and sends back to the VXD • The VXD sends the event to the call manager • The call manager sends a stop ring command to the caller’s VXD • The VXD sends the command to the PXD • It then connects two parties duplex channels.

  21. Call Processing Flow

  22. Call State Machine

  23. The End