There are a number of elements in network for PTT service.
TCP and UDP
|TCP||- Easy session control|
- No NAT issue
|- High latency|
|UDP-unicast||- Low latency||- Hard session control|
- NAT traversal
- Packet loss
|UDP-multicast||- Low latency|
- No order
|- Hard session control|
- Only work in same network
ProPTT2 is supporting all types(TCP/UDP/Multicast) at same time. According to client's network, one or two types are selected at the login time.
|SIP||Session Initiation Protocol||RFC 3261|
|RTSP||Real Time Streaming Protocol||RFC 2236|
|SDP||Session Description Protocol||RFC 4566|
|RTP||Real-time Transport Protocol||RFC 1889, 3550|
|RTCP||RTP Control Protocol||RFC 3550|
PTT service must support several profile to use Bluetooth devices
|A2DP||Advanced Audio Distribution Profile||Bluetooth 1.0|
|HFP||Hands-Free Profile||Bluetooth 1.5|
|HSP||Headset Profile||Bluetooth 1.1|
|SPP||Serial Port Profile||Bluetooth 1.1|
|HID||Human Interface Device Profile||Bluetooth 1.1|
|GATT||Generic Attribute Profile||Bluetooth 4.0, Android 4.3 (API Level 18), iOS 6|
PTT service must support several security functions.
Please see the detail at System.security
|Session Key||One Time Session Key|
|Crypto||Data Encryption||AES128/256 (wikipedia), ARIA256 (wikipedia)|
|VPN||Virtual Private Network|
In real-time streaming PTT, Transmission technology would be very important. So we are using several methods of transmission technology(TCP/UDP/IP).
PLC(Packet Loss Concealment)
PLC can be applied in TCP and UDP both.
- Zero insertion: the lost speech frames are replaced with zero
- Waveform substitution: the missing gap is reconstructed by repeating a portion of already received speech. The simplest form of this would be to repeat the last received frame. Other techniques account for fundamental frequency, gap duration etc. Waveform substitution methods are popular because of their simplicity to understand and implement. An example of such an algorithm is proposed in ITU recommendation G.711 Appendix I.
- Model-based methods: an increasing number of algorithms that take advantage of speech models of interpolating and extrapolating speech gaps are being introduced and developed.
Adaptive Jitter Buffer
Jitter Buffer is very important point in quality. PTT client must have good algorithms
Reduce packet transmission
For quality, PTT need to reduce packet transmission.