270 likes | 442 Views
Development of E-learning and VoIP over IPv6. Ren-Hung Hwang Jenq-Muh Hsu National Chung Cheng University Taiwan, R.O.C. Outline. Native IPv6 Network in CCU Porting e-Learning to IPv6 Porting Open H.323 to IPv6 Future Works. IPv6 Development in CCU. 6BONE. Tunnel. NBEN. HiNet.
E N D
Development of E-learning and VoIP over IPv6 Ren-Hung Hwang Jenq-Muh Hsu National Chung Cheng University Taiwan, R.O.C.
Outline • Native IPv6 Network in CCU • Porting e-Learning to IPv6 • Porting Open H.323 to IPv6 • Future Works
IPv6 Development in CCU 6BONE Tunnel NBEN HiNet Native IPv6 Tunnel Tunnel CS CCU
Services • DNS • Bind-9.2.1 • WWW • Apache 1.3.24 • Apache-1.3.24-v6-20020405.diff.gz • FTP • Proftpd1.21 • Proftpd-1.2.1-v6-20010303.patch.gz • News • inn-2.3.2 • inn-2.3.2-v6-20010807.diff.gz • tin-1.5.12.tar.bz2
Mobile IPv6 • Mobile IPv6 for Linux (MIPL)
e-Learning System for IPv6 • A SCORM-compliant e-Learning system ported to IPv6 networks
Wireless Campus –m-Learning • Objectives: e-Learning activities on following platforms • Tablet PC • PDA (Pocket PC/WebPAD) • Issues • Develop a pen-based discussion tool: e-Board • Develop a PDA-based Walkie-Talkie • Enable SCORM API on handheld devices (limited function of Javascript) • Enable streaming media on handheld devices
VoIP for IPv6 • Objective: VoIP over IPv6 Network • PWLib and OpenH323 – OpenSource VoIP Softwares • Porting PWLib and OpenH323 to IPv6 • Porting H.323 Components to IPv6
H.323 System Architecture Components: Terminal, Gateway, MCU, Answer Machine
OpenH323 Applications • SimpleH323 • H.323 Terminal (EndPoint) • Command-Line/Voice Phone • GNOMEMeeting • H.323 Terminal (EndPoint) • Video Phone/Video Conferencing • OpenMCU • Multiple Control Unit • OpenAM • Answering Machine • OpenGK • GateKeeper
VoIPv6 Porting Components (Conti.) OpenAM OpenMCU SimpleH323 GnomeMeeting OpenH323 (Porting to IPv6) PWLIB (Porting to IPv6) Multiple ControlUnit H323 Terminal(command line) H323 Terminal(support UI) Answer Machine
PWLib Classes • PWLib • PSocket • PIPSocket • PTCPSocket • PIPDatagramSocket • PUDSocket
PWLib Classes Modified • PSocket • A network communications channel • PIPSocket • Describes a type of socket that will communicate using the Internet Protocol • PTCPSocket • A socket that uses the TCP transport on the Internet Protocol • PIPDatagramSocket • Internet Protocol Datagram Socket class • PUDPSocket • A socket channel that uses the UDP transport on the Internet Protocol
Modification Details class PIPCacheData(src/ptlib/common/sockets.cxx) const PString & GetHostName_v6() const { return hostname; } const PIPSocket::Address6 & GetHostAddress_v6() const { return address6; } class PHostByName(src/ptlib/common/sockets.cxx) BOOL GetHostName_v6(const PString & name, PString & hostname); BOOL GetHostAddress_v6(const PString & name, PIPSocket::Address6 & address); PIPCacheData * GetHost_v6(const PString & name); class PHostByAddr(src/ptlib/common/sockets.cxx) BOOL GetHostName_v6(const PIPSocket::Address6 & addr, PString & hostname); BOOL GetHostAddress_v6(const PIPSocket::Address6 & addr, PIPSocket::Address6 & address); BOOL GetHostAliases_v6(const PIPSocket::Address6 & addr, PStringArray & aliases); PIPCacheData * GetHost_v6(const PIPSocket::Address6 & addr);
Modification Details class PIPSocket(src/ptlib/common/sockets.cxx、src/ptlib/unix/socket.cxx) Class Address6 virtual PString GetName_v6() const virtual BOOL Connect_v6() virtual BOOL Listen_v6() static PString GetHostName_v6() static BOOL GetHostAddress_v6() virtual BOOL GetLocalAddress_v6() virtual BOOL GetPeerAddress_v6() PString GetLocalHostName_v6() PString GetPeerHostName_v6() static BOOL GetInterfaceTable_v6() class PSocket(src/ptlib/common/sockets.cxx) virtual BOOL OpenSocket_v6() = 0;
Modification Details class PTCPSocket(src/ptlib/common/sockets.cxx) virtual BOOL Listen_v6() virtual BOOL Accept_v6() virtual BOOL OpenSocket_v6() class PUDPSocket(src/ptlib/common/sockets.cxx) BOOL Connect_v6() void SetSendAddress_v6() void GetSendAddress_v6() void GetLastReceiveAddress_v6() virtual BOOL OpenSocket_v6()
PObject H323Connection MyH323Connect PThread -OpenAudioChannel(BOOL, unsigned, H323AudioCodec & codec); -OnAnswerCall(const PString &, const H323SignalPDU &, H323SignalPDU &); -OnStartLogicalChannel(H323Channel & channel); ConsoleThread -StartRecording(); -Main(); H323EndPoint PProcess MyH323EndPoint OpenAM -Initialise(PConfigArgs & args); +Main(); -CreateConnection(unsigned callReference) +RecordFile(PArgList & args); +PlayFile(PArgList & args); PChannel -GetCodec(const PString & codecname); -GetDevice(const PString & device); PObject PIndircetChannel PObject PCM_OGMChannel G7231_File_Codec -AdjustFrame(void * buffer, PINDEX amount); -GetFrameLen(int val); -Read(BYTE * buffer, unsigned & length, RTP_DataFrame &); -CreateSilenceFrame(PINDEX amount); -Write(const BYTE * buffer, unsigned length, const RTP_DataFrame & rtp, unsigned & frames); -QueueFile(const PString & cmd); -Synchronise(PINDEX amount); -Read(void * buffer, PINDEX amount); H323Capability G7231_OGMChannel -CreateSilenceFrame(PINDEX amount); PCM_RecordFile H323RealTimeCapability -Synchronise(PINDEX amount); -Write(const void * buf, PINDEX len); H323AudioCapability G7231_RecordFile G7231_File_Capability -WriteFrame(const void * buf, PINDEX len); -......... OpenH323 Classes
OpenH323 Classes Modified • H323TransportAddress • H323Transport • H323ListenerTCP • H323TransportIP • H323TransportTCP • H323TransportUDP
Changing the IP Addressing Format in OpenH323 • The Original IP Address Format for IPv4 • ip$xxx.xxx.xxx.xxx:oooo • ip$IPv4 Address:Port Number • The Modified IP Address Format for IPv6 • ip$[xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx]oooo • ip$[IPv6 Address]Port Number • Change the delimitation between IP address and port number • : [ ]
OpenH323 Applications IPv6 Porting • Ported Components • SimpleH323 • GNOMEMeeting • OpenMCU • OpenAM • In Progress • OpenGK
Snapshot of the GnomeMeeting for IPv6 IPv6 Address
Conclusion • Experimental IPv6 network in CCU • IPv6 applications • e-Learning, m-Learning • VoIP • Future works • IPv6/v4 Transition • IPv6 multicast • IPv6 QoS (broadband, WLAN, MANET)