210 likes | 332 Views
Internet Telephony System implementation (SIP User Agent, MGCP Library and RTP Replicator). AT&T Research Lab Xiaotao Wu. Overview.
E N D
Internet Telephony System implementation(SIP User Agent, MGCP Library and RTP Replicator) AT&T Research Lab Xiaotao Wu
Overview • This project is part of ECLIPSE (Extended Communications Layered on I.P. * Synthesis Environment). ECLIPSE is an implementation of the DFC architecture for communications services in an I.P. setting. • SIP (Session Initiation Protocol) User Agent, MGCP(Media Gateway Control Protocol), RTP (Real time Transport Protocol) Replicator can be used in SIP-DFC (Distributed Feature Composition) call
SIP-DFC Call FB1 FB2 LIS LIS SIP User Agent SIP User Agent MGCP++ LIB RTP Rep LIB RTP Rep media streams media streams DFC Signaling SIP Signaling MGCP++
Project Goals • SIP User Agent (sipc) • Call signaling • Handle Quicknet card in Windows • MGCP Library • Based on MGCP and Packet Cable NCS • Demo on call waiting • RTP Replicator • Control RTP flows
Description of SIP User Agent • SIP User Agent (sipc) • What is SIP? • What SIP User Agent is used to do? • What is Quicknet Card? • What should be handled for Quicknet Card • Make an Internet phone call • SIP bake off (Inter-operability test) http://www.ietf.org/rfc2543.txt; http://www.quicknet.org http://www.cs.columbia.edu/~hgs/sip FOR MORE INFO...
SIP User Agent Implementation • SIP User Agent Implementation • Implemented in Tcl/Tk and C++ • Easy to build GUI and handle parsing • So far, need install Tcl/Tk before using • Support both UNIX and Windows • Use different ring style for different priority • Use RAT as audio application. RAT use RTP • Provide packets monitor FOR MORE INFO... http://www-mice.cs.ucl.ac.uk/multimedia/software/rat-4.0/ http://www.ietf.org/rfc/rfc1889.txt
Status of SIP User Agent • Status of SIP User Agent (sipc) • Support INVITE, REGISTER, CANCEL, BYE, ACK methods. Handle multiple phone call. • Support Basic and Digest authentication • Use POTS phone to make Internet phone call. • Registrations automatically refreshed http://www.pulver.com/sip; http://www.ietf.org/rfc/rfc2327.txt http://www.ietf.org/rfc/rfc1321.txt FOR MORE INFO...
Further Work of SIP User Agent • Further Work • Integrate MGCP and RTP replicator into SIP User Agent to provide services • Build interface between SIP UA and DFC LI box • Add accounting function into SIP User Agent • Make SIP User Agent independent of Tcl/Tk environment • Bug fixing FOR MORE INFO...
Description of MGCP Library • MGCP Library • What is MGCP and MGCI? • What is the MGCP library used for? • Call Agent and Gateway • Call, Connection and Endpoint • Design of the MGCP Library • Demo of the MGCP Library (Simple call and call waiting) FOR MORE INFO... http://search.ietf.org/internet-drafts/draft-huitema-megaco-mgcp-v0r1-05.txt http://livelink.cablelabs.com/Livelink/livelink.exe?func=ll&objId=333051&objAction=browse&sort=name
Design of MGCP Library MGCI Call Agent MGCI Gateway setHandler callHandler callHandler setHandler MGCP class MGCP class MGCP packets Endpoint RTP stream RTP Replicator
Demo of MGCP Library Endpoint1 Endpoint2 Gateway CallAgent | | | register | | -------------------------> | <------------------------- | RTP rep port | | | | | | register | | ---------> | | <--------- | | RTP rep port | | | AuditEndpoints | | <========== | | ==========> | | 200 OK with Endpoint list | | | | | NotificationRequest | | <========== | | ==========>
Demo of MGCP Library Endpoint1 Endpoint2 Gateway CallAgent | | 200 OK | | | DTMF digit | | -----------------------> | ......... | collecting | DTMF digit | DTMF digits | -----------------------> call ep2 | | | Notify | | ==========> | | <========== | | 200 OK | | | | | CreateConnection (ep1, ep2) | | <=============== | | ===============> | | 200 OK Start RAT app | Add endpoint1's | <----------------------port to RTP rep | | | | | | |
Demo of MGCP Library Endpoint1 Endpoint2 Gateway CallAgent | Start RAT app | | <------------Add endpoint2's | | | port to RTP rep | | | | ==================================================================================== Endpoint3 Endpoint2 Gateway CallAgent | | | DTMF digit | | -----------------------> | ......... | collecting | DTMF digit | DTMF digits | -----------------------> call ep2 | | | Notify | | ==========> | | <========== | | 200 OK | | |
Demo of MGCP Library Endpoint3 Endpoint2 Gateway CallAgent | | | | | CreateConnection (ep3, ep2) | | <=============== | | ===============> | | 200 OK Start RAT app | Add endpoint3's | <----------------------port to RTP rep | | | | | | | | | Endpoint2 is on call | | New Call | | <------- | | | | | flash hook | | ----------------> | | | Notify | | ================> | | <================ | | 200 OK
Demo of MGCP Library Endpoint3 Endpoint2 Gateway CallAgent | | | | | ModifyConnection(ep1, ep2) (mute) | | ModifyConnection(ep2, ep3) (enable) | | switch RTP <=============== | | rep's conn ===============> | | from 1 to 3 200 OK | | | | | | | flash hook | | ----------------> | | | Notify | | ================> | | <================ | | 200 OK | | | | | ModifyConnection(ep2, ep3) (mute) | | ModifyConnection(ep1, ep2) (enable) | | switch RTP <=============== | | rep's conn ===============> | | from 3 to 1 200 OK | | | ===================================================================================
MGCP Library Implementation • MGCP Library • Implemented in C++ • Hide MGCP class. Programmer build their own call agent and gateway by inheriting from MGCI_CallAgent and MGCI_Gateway classes • The handler functions are virtual function. Programmer can re-implement them. FOR MORE INFO...
Status of MGCP Library • Status of MGCP Library • Support basic commands • Supporting for NCS spec. is not finished • Working on demo implementation FOR MORE INFO...
Description of RTP Replicator • RTP Replicator • What is RTP and RTCP? • What is RTP Replicator used for? • Replicator and Switch • Do we need to generate RTCP? • If switched to another endpoint, do we need to keep sending RTCP to the original endpoint? • If no RTCP, do we need to generate RTCP? FOR MORE INFO... http://www.ietf.org/rfc/rfc1889.txt
RTP Replicator Implementation • RTP Replicator • Define replicating group, packets are transferred among the members of the group. • Define the style of the group, 0 for one way from source to all the destinations, 1 for one way to one of the destinations, 2 for two way between source and all the destinations, 3 for two way to one of the destinations, 4 for fully-meshed. FOR MORE INFO... http://www.cs.columbia.edu/~hgs/rtptools
Implementation of RTP Replicator • RTP Replicator • Define echo mode • Initiate a group with the source URL • Add destination to the group • Switch between the destinations FOR MORE INFO...
Status of RTP Replicator • RTP Replicator • One way replicator is finished • Working on two way replicator and switch FOR MORE INFO...