P2P VoIP Speaker : Ching Chen Chang Date: 2007/09/27
2 Outline Motivation Related Work P2P Enum GSM 6.10 P2P VoIP beta 1.1 Description Protocol Scenario Update Packages Conclusion Reference
3 Motivation SIP Proxy Server SIP UA1 UA2 If we use SIP, we usually need a SIP server to handle the signaling. RTP
4 Motivation(2/2) CalleeCaller INVITE 180 Ringing SIP Server ACK INVITE 180 Ringing 200 OK ACK RTP BYE 200 OK
5 Related Work P2P Point To Point. Enum Enumeration, a user-defined type of C/C++. GSM 6.10 An audio codec is usually used by the cell phone.
6 P2P P2P(Point To Point). A link commonly used to establish a direct connection between two nodes.
7 Enum An enumeration is a user-defined type consisting of a set of named constants called enumerators. #define SPRING 0 #define SUMMER 1 #define FALL 2 #define WINTER 3 enum { SPRING, SUMMER, FALL, WINTER };
8 GSM 6.10(1/2) GSM(Global System for Mobile Communications) A lossy CBR(Constant Bit Rate) audio compression codec. GSM is also a popular global mobile phone standard.
9 GSM 6.10(2/2) FormatPCMGSM 6.10 Samples per second8000 HZ Bit Rate (bits/second)128kbs13kbs Channelmono Bits per sample
10 Description(1/2) P2P Internet Phone. Open Source code. Only work in a local network. It works without SIP and RTP. It defines its own communication protocol. Simultaneous work with maximal 5 clients
11 Connect RecordReceive Send Play Call out Encode Decode End call The voice packages are transmitted in a format GSM6.10. Voice packages and service information use one and the same UDP port: Description(2/2)
12 Protocol(1/2) enum _PROTOCOL { _NULL_ = 0,_PROGRAMM_ABORT, _CONTACT_REFRESH,_CONTACT_ERASE, _CONTACT_ADD,_CONTACT_PING, _CONTACT_PING_IN,_CONTACT_PING_OUT, _CONTACT_PONG,_CONTACT_PONG_IN, _CONTACT_PONG_OUT, _CONTACT_OFFLINE,_CONTACT_OFFLINE_IN, _CONTACT_OFFLINE_OUT,_CLIENT_SHEET_SHOW, _CLIENT_SHEET_HIDE,_CLIENT_SHEET_NAME, _CLIENT_SHEET_IMAGEINDEX,_CLIENT_CONNECT_DURATION, _CLIENT_PROTOCOL,_TIME_OUT, CALL_IN_,CALL_OUT_,_I_,_I_180_,_I_200_, _I_480_,_A_,_G_,_G_200_,_G_486_, _C_,_C_200_,_C_480_,_LA_,_LG_, _ERROR_PLAY, };
13 Protocol(2/2) _CONTACT_PING 5 10 5 16 _CONTACT_PONG 8 10 8 16 _CONTACT_OFFLINE b 16 _I_ _I_180_ _I_200_ _A_ 1b 16 _C_ 1f 16 _C_200_ _LA_ 22 16
14 Ping(1/2) User online _CONTACT_PONG _CONTACT_PING _CONTACT_PING_IN _CONTACT_PONG_OUT _CONTACT_PING_OUT _CONTACT_PONG_IN Ping all contacts on the contact list per minute. ……
15 Ping(2/2) User offlineUser online _CONTACT_PING _CONTACT_PING_OUT _CONTACT_PING Resend two times if the contact doesn’t respond. …… _CONTACT_PING …… 1 minutes
16 Call _I_ _I_180_ _I_200_ CalleeCaller _C_200_ _C_ _A_ _I_180_ _I_200_ _A_ _I_ Voice transmission _C_ _C_200_ state == CALL OUT state == CALL IN
17 Cancel _I_ _I_180_ CalleeCaller _C_200_ _C_ _I_180_ _I_ _C_ _C_200_ state == CALL OUT state == CALL IN
18 No answer _I_ _I_180_ CalleeCaller _I_180_ _I_ _LA_ If state == CALL IN && receive _LA_ state == CALL OUT state == CALL IN If state == CALL OUT && 6 seconds _LA_ …….… …… If state == CALL OUT && 6 seconds If state == CALL IN && receive _LA_
19 Log out User 2 would modify the information of User 1. If two users are on the phone, User 2 would pretend to receive an _C_ protocol to terminate the call. _CONTACT_OFFLINE_IN User 2 User 1 _CONTACT_OFFLINE
20 Packages Signaling – 4 bytes of the data contains the protocol. Voice packages – 33 bytes data. The first message of the call has the data including the 4-byte protocol and the caller’s account.
21 Update 2 Timers Timer1 (Interval 100ms) Contacts List Clients List Speaker & Microphone Volume Timer2 (Interval 500ms) Ring Start Voice
22 Conclusion SIP server can provide more service. P2P would produce less delay.
23 Reference Phonesnd - Network&Sound Software Audio Compression Manager -- Wave File Compression Codecs Compared