Client overview

There are client's features for PTT service.

PTT signalling

PTT signalling type

Touch/Click

PTT signalling by User Touch/Click.

Volume key

PTT signalling by smart phone's volume key.

Maker Model Supported Issues
SAMSUNG Galaxy S8 Note O
Galaxy S8 O
Galaxy S7 Edge O
Galaxy S7 O
Galaxy S6 Edge+ * Required on with "Allow using button when media is playing" option
Galaxy S5
Galaxy S4
Galaxy S3 X
Galaxy S2 X
Galaxy Alpha
Galaxy Note 4
Galaxy Note 3
Galaxy Note 2
LG V30
G5
G4
G3A
G2
Optimus View 2
Motolora MotoG X
SONY XPERIA Z2
Xiaomi Redmi Note 2

PTT key

PTT signalling by a dedicated device's PTT key. (Android only)
Belows are dedicated key and boradcast event

Type Key code Braodcast intent Remark
PTT lock 230 android.intent.action.PTT.down
PTT unlock 230 android.intent.action.PTT.up

Bluetooth

1) PTT signalling by Bluetooth's a dedicated PTT button.

2) PTT signalling by Bluetooth's a play button.

Please refer to Bluetooth document

Earset

PTT signalling by Earset's Play button.

Keyboard

PTT signalling by a space key.

In case of an android version, user can choice the key in setup.

Windows message

Window app can send a PTT event to ProPTT2 Windows client by Windows user message.

Lock : UM_EXTERNALPTTBUTTON_LOCK (WM_USER + 701)

Unlock : UM_EXTERNALPTTBUTTON_UNLOCK (WM_USER + 702)

VOX(Voice-Operated Switch)

PTT signalling by VAD(Voice Activity Detector).

In case of ProGate, is also support SAD(Scratch Activity Detector).

Emergency lock

PTT signalling by Administrator. User's PTT signal will be broken.

Competition lock

All user can request a lock before other user's unlock. When other user's lock is released, one of competition lock users can have the next lock. It would be depend on network and system status.

Master lock

In PTT, normally only a user can have lock. But in multi lock mode, channel owner can have another lock at the same time.

SOS signalling

SOS key

SOS signalling by a dedicated device's SOS key. (Android only)
Belows are dedicated key and boradcast event

Type Key code Braodcast intent Remark
SOS 229 android.intent.action.SOS.up
android.intent.action.SOS.longpress

USB SOS key

SOS signalling by a dedicated USB device's SOS key. (Windows only)

Channel changing

Channel changing key

Channel changing by a dedicated device's key. (Android version 3.0.8~, Embedded version 3.0.3~)
Belows are dedicated key and boradcast event

Type Key code Braodcast intent Remark
Move to Previous Channel 220 android.intent.action.channelup.up
android.intent.action.channel.up
Move to Next Channel 221 android.intent.action.channeldown.up
android.intent.action.channel.down

Android App Launch

Other app can launch ProPTT2 Android client by Intent.

Client Package name Remark
Android Client com.imptt.proptt
Android Embedded Client com.imptt.proptt.embedded​
Intent intent = this.getPackageManager().getLaunchIntentForPackage(packageName);
intent.setAction(Intent.ACTION_MAIN);
startActivity(intent);

Android standard event

ProPTT2 client fire events for device or external app. (Android version 3.1.0~, Embedded version 3.1.0~)
Belows are boradcast events

Braodcast intent Parameter Remark
android.intent.event.log.in userId(string), userName(string)
android.intent.event.log.out
android.intent.event.ptt.locked channelNo(string), lockerId(string), lockerName(string)
android.intent.event.ptt.unlocked channelNo(string), lockerId(string)
android.intent.event.sos.fired channelNo(string), senderId(string), senderName(string)
android.intent.event.alert.fired channelNo(string), message(string)
android.intent.event.channel.joined channelNo(string) It is for only current user.
android.intent.event.channel.leaved channelNo(string) It is for only current user.
android.intent.event.latency latency(int) millisecond. round-trip latency

Android device provisioning

ProPTT2 client support device provisioning. (Android version 3.1.0~, Embedded version 3.1.0~)
Device supplier can provision device for customer.
It would be usefull for non-screen device.

The provisioning is based on ProPTT2.ini. The ini file must be in {USB mounted}/ProPTT2.
ex)
/storage/emulated/0/ProPTT2/ProPTT2.ini
/sdcard/ProPTT2/ProPTT2.ini
* The rooting is not requried.

If you don't want to provision a field, you can remove the field, then the operation would be on default.

In Android 11 and above, Android device provisioning would not work anymore. Android 11 system restrict to access external file like the ini file on Android device.

Field Name Available Value Description
DisableService true/false, default false Disable service feature on log-in
CompanyLogo png file name Set logo image on log-in
ServerAddress Text Server's address. Domain name is possible.
UserID Text Android: User's ID without domain.
Embedded: UserID@Domain
Domain Text User's domain. Android only
UserPassword Text User's password
EncryptedUserPassword Text Encryped user's password. It will work with [AutoLogIn] option
Sha512(Password)
(Android 4.1.0~, Embedded 4.1.0~)
Please refer to https://passwordsgenerator.net/sha512-hash-generator/
UseSecureLogin true/false, default true Use secured login
UseSSAID true/false, default false Use SSAID for login authentication
(Android 4.3.4~, Embedded 4.3.4~)
UseIMEI true/false, default false Use IMEI authentication. Please note Android 11 and above is not support IMEI anymore.
UsePhoneNumber true/false, default false Use phone number authentication
UseMobileOnly true/false, default false Use mobile network only
AutoLogIn true, default false Use auto login
AutoReconnect true, default false Use auto reconnect
AutoStart true, default false Use auto start at boot
UseDeviceLogin true, default false Use device login. UseSSAID or UseIMEI or UsePhoneNumber must be true.
(Android 7.2.2~, Embedded 7.2.5~)
StartChannel 0 or above
0: The first channel,
1~: channel number to be joined
Use auto join to channel at boot
(Android version 3.1.10~, Embedded version 3.1.9~)
UseDisconnectSound false, default true Use a sound when disconnect
PTTMode "hold"/"toggle", default hold Select PTT button type
UseInterception true, default false User interception of channel owner
EarphoneMode "hold"/"toggle", default toggle Select earphone type
AudioQuality "high"/"medium"/"low", default medium Select audio quality
LocationSensitivity "high"/"medium"/"low", default medium Select location sensitivity
LocationSendingInterval 10~50 Set the interval of location sending
PTTKeycode Number Set android key code for PTT
ex)230
PTTBroadcastDown intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for PTT key down
ex)android.intent.action.PTT.down
PTTBroadcastUp intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for PTT key up
ex)android.intent.action.PTT.up
SOSKeycode Number Set android key code for SOS
ex)229
SOSBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for SOS fire
ex)android.intent.action.SOS.up
NextChannelKeycode Number Set android key code for NextChannel
NextChannelBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for NextChannel fire
PrevChannelKeycode Number Set android key code for PrevChannel
PrevChannelBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for PrevChannel fire
SkipConnectedChannel true/false, default false Whether skip the connected channel on channel moving
PlayKeycode Number Set android key code for playing of last PTT
PlayBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for last PTT playing fire
StartChannel 0:The first channel, 1~:Channel number Set channel number to be started at loading
(Android 3.1.9~, Embedded 3.1.8~)
UsePTTSendSound true/false, default true Use the PTT sound for sending time
(Android 3.4.10~, Embedded 3.4.5~)
UsePTTReceiveSound true/false, default true Use the PTT sousoundnf for receiving time
(Android 3.4.10~, Embedded 3.4.5~)
UsePTTEndSound true/false, default true Use the PTT sound for end time
(Android 3.4.10~, Embedded 3.4.5~)
UseSOSSendSound true/false, default true Use the SOS sound for sending time
(Android 3.4.10~, Embedded 3.4.5~)
UseSOSReceiveSound true/false, default true Use the SOS sound for receiving time
(Android 3.4.10~, Embedded 3.4.5~)
UseAlertReceiveSound true/false, default true Use the Alert sound for receiving time
(Android 3.4.10~, Embedded 3.4.5~)
TouchableDevice true/false, default false Does this device have a touchable LCD. Menus will be hide on screen.
(Only Embedded 4.0.2~)
NonScreenDevice true/false, default false Does this device have no LCD. Support TTS for the start channel
(Only Embedded 4.0.3~)
KioskMode true/false Use Kiosk Mode
(Only Embedded 4.0.5~)
CompanyName Text Login text on login screen wil be changed.
(Only Embedded 4.1.0~)
PTTHistoryBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Go to PTT history screen.
(Only Embedded 4.1.6~)
UseSetupEdit true/false, default true Use a edit control in setup. It is for non-touch device
(Only Embedded 4.1.6~)
UseAppForegroundWhenSendPTT true/false, default false When user send PTT, app would be popup
(Android 4.1.9~, Embedded 4.1.6~)
UseAppForegroundWhenReceivePTT true/false, default false When user is received PTT, app would be popup
(Android 4.1.9~, Embedded 4.1.6~)
UseAppForegroundWhenReceive11PTT true/false, default false When user is received 1:1 PTT, app would be popup
(Android 4.1.9~, Embedded 4.1.6~)
UseVolumeSync true/false, default false On VoIP mode, if system sound volume is changed, the call volume also would be changed. It is for non-touch devic
(Only Embedded 4.1.6~)
TouchScreenPTT Text It will be on main screen.
(Only Embedded 4.1.6~)
UseChannelNameOnMain true/false, default false The channel name will be on main screen. But TouchScreenPTT would have high priority
(Only Embedded 7.1.3~)
UseDisableAutoLockWhenAppRunning true/false, default true When the app is running, screen lock would be disabled.
(Android 4.1.9~, Embedded 4.1.6~)
UseAutoRotation true/false, default true Android: true(Vertical), false(Static)
Embedded true(Rotation), false(Static)
(Android 4.1.9~, Embedded 4.1.8~)
FunctionKeycode Number Set android key code for calling function
(Android 4.1.17~, Embedded 4.1.9~)
FunctionBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for calling function
(Android 4.1.17~, Embedded 4.1.9~)
CurrentChannelKeycode Number Set android key code for TTS reading currenr channel no
(Android 4.1.17~, Embedded 4.1.9~)
CurrentChannelBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Set android broadcast for TTS reading currenr channel no
(Android 4.1.17~, Embedded 4.1.9~)
MoveTo11ScreenWhenReceive11PTT permanent When user is received 1:1 PTT, channel would be move to 1:1 channel
(Embedded 4.2.2~ only)
MoveToLastChannelKeycode Number Move to last PTT channel
(Embedded 4.2.2~ only)
MoveToLastChannelBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Move to last PTT channel
(Embedded 4.2.2~ only)
MoveToLast11ChannelKeycode Number Move to last 1:1 channel
(Embedded 4.2.2~ only)
MoveToLast11ChannelBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Move to last 1:1 channel
(Embedded 4.2.2~ only)
VideoShareKeycode Number Move to video share
(Android 4.3.4~, Embedded 4.3.4~)
VideoShareBroadcast intent or intent:action:keycode
action - 0:ACTION_DOWN, 1:ACTION_UP
ex) android.intent.action.key.up
ex) android.intent.action.key:1:100
Move to video share
(Android 4.3.4~, Embedded 4.3.4~)
UseMP3mode true/false, default false Use MP3 mode for PTT play
(Android 7.0.4~, Embedded 7.0.2~)
UseGoToVibration true/false, default true When app's volume move to zero, the vibration mode would be On. But some devices hava a volume control issue on the vibration mode.
(Android 8.1.9~, Embedded 8.1.9~)
UseNumberKeyPad true/false, default true To use a number key pad.
(Only Embedded 8.2.4~)
UseNoiseReductionAtAudioInput true/false, default fase To use the AI base noise reduction at audio input.
(Android 9.1.4~, Embedded 9.1.4~)

< Sample ini files >
- Hytera PNC360S
- Hytera PNC370
- Hytera PNC380
- TeloSystem TE390
- Inrico T529A with KnobMap.ini

* KnobMap.ini can support mapping knob button and ProPTT2 channels.

PTT Call Model

PTT has several types of call.

1:N Channel

It is a general call model.

1:N Group

Group means a temporary channel for 1:N.

1:1 Peer

It is one of group.

Features

There are general features of PTT device.

TOT

It is "Time Out Timer".

DTMF

It is "Dual Tone Multiple Frequency". Some radio devices support DTMF. But smartphone app don't use DTMF directly.

PTT Processing Type

There are several processing types for PTT.

Type Record and send(Not real-time) Half real-time(MP3 mode) Full real-time(VOIP mode) Master's PTT(VOIP mode)
Advatage Support off-line PTT Good audio quality Best responsiblity
Can support full-duplex in multi-channel
No limitation of TOT
Can support full-duplex in same channel
Disadvatage Low responsiblity
Can not support full-duplex
Delayed PTT sound
Can not support full-duplex
Normal audio quality(VOIP) Required better jitter for long communication
Product Company V Company Z Company
ProPTT2(Android, Embedded)
ProPTT2 ProPTT2

Half real-time(MP3 mode)

Used half-duplex and delayed recieved audios until recording.

Half real-time

Full real-time(VOIP mode)

Used full-duplex and played recieved audios promptly.

Full real-time

Master's PTT(VOIP mode)

Used full-duplex and There are sending and receving in same channel at the same time.

Master's PTT