1 / 21

Internet Telephony System implementation (SIP User Agent, MGCP Library and RTP Replicator)

Internet Telephony System implementation (SIP User Agent, MGCP Library and RTP Replicator). AT&T Research Lab Xiaotao Wu. Overview.

kaiya
Download Presentation

Internet Telephony System implementation (SIP User Agent, MGCP Library and RTP Replicator)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Internet Telephony System implementation(SIP User Agent, MGCP Library and RTP Replicator) AT&T Research Lab Xiaotao Wu

  2. 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

  3. 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++

  4. 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

  5. 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...

  6. 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

  7. 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...

  8. 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...

  9. 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

  10. Design of MGCP Library MGCI Call Agent MGCI Gateway setHandler callHandler callHandler setHandler MGCP class MGCP class MGCP packets Endpoint RTP stream RTP Replicator

  11. Demo of MGCP Library Endpoint1 Endpoint2 Gateway CallAgent | | | register | | -------------------------> | <------------------------- | RTP rep port | | | | | | register | | ---------> | | <--------- | | RTP rep port | | | AuditEndpoints | | <========== | | ==========> | | 200 OK with Endpoint list | | | | | NotificationRequest | | <========== | | ==========>

  12. 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 | | | | | | |

  13. 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 | | |

  14. 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

  15. 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 | | | ===================================================================================

  16. 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...

  17. 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...

  18. 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

  19. 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

  20. 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...

  21. Status of RTP Replicator • RTP Replicator • One way replicator is finished • Working on two way replicator and switch FOR MORE INFO...

More Related