Network
There are a number of elements in network for PTT service.
Transport
TCP and UDP
advantage | disadvantage | |
---|---|---|
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.
Signaling
IMPTTP | IMPTT Protocol | |
---|---|---|
SIP | Session Initiation Protocol | RFC 3261 |
RTSP | Real Time Streaming Protocol | RFC 2236 |
Session
SDP | Session Description Protocol | RFC 4566 |
---|
Media track
RTP | Real-time Transport Protocol | RFC 1889, 3550 |
---|---|---|
RTCP | RTP Control Protocol | RFC 3550 |
Bluetooth
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 |
Security
PTT service must support several security functions.
Please see the detail at System.security
ID/Password | Account Authentication | |
---|---|---|
Session Key | One Time Session Key | |
Crypto | Data Encryption | AES128/256 (wikipedia), ARIA256 (wikipedia) |
TLS/SSL | Secure Communication | |
VPN | Virtual Private Network |
Transmission
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.
https://en.wikipedia.org/wiki/Packet_loss_concealment
Adaptive Jitter Buffer
Jitter Buffer is very important point in quality. PTT client must have good algorithms
https://en.wikipedia.org/wiki/Jitter_buffer
Reduce packet transmission
For quality, PTT need to reduce packet transmission.