Network

There are a number of elements in network for PTT service.

Transport

TCP and UDP

advantagedisadvantage
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

IMPTTPIMPTT Protocol
SIPSession Initiation ProtocolRFC 3261
RTSPReal Time Streaming ProtocolRFC 2236

Session

SDPSession Description ProtocolRFC 4566

Media track

RTPReal-time Transport ProtocolRFC 1889, 3550
RTCPRTP Control ProtocolRFC 3550

Bluetooth

PTT service must support several profile to use Bluetooth devices

A2DPAdvanced Audio Distribution ProfileBluetooth 1.0
HFPHands-Free ProfileBluetooth 1.5
HSPHeadset ProfileBluetooth 1.1
SPPSerial Port ProfileBluetooth 1.1
HIDHuman Interface Device ProfileBluetooth 1.1
GATTGeneric Attribute ProfileBluetooth 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/PasswordAccount Authentication
Session KeyOne Time Session Key
CryptoData EncryptionAES128/256 (wikipedia), ARIA256 (wikipedia)
TLS/SSLSecure Communication
VPNVirtual 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.

And so on