Count Count - 2 months ago 15
Java Question

Unable to get Registration to text-secure server working

I am trying to integrate Signal chat to my android application. I have successfully set up the server-side (i.e.Push server and Text-secure server) successfully in the meaning that there are no error in the server logs (back-end). but the android application is failing on the registration step, however I am able to receive and verify SMS successfully, generating keys step is also working fine .

After successful verification and key generation , I get "Connectivity error: unable to connect to server" on the screen

Below is the exception that I am getting on the Android application log

org.thoughtcrime.securesms E/Surface: getSlotFromBufferLocked: unknown buffer: 0xb9f3e948
org.thoughtcrime.securesms W/TextSecurePreferences: Setting push registered: false
org.thoughtcrime.securesms W/PushServiceSocket: Push service URL: http://<my_server_ip>:8080
org.thoughtcrime.securesms W/PushServiceSocket: Opening URL: http://<my_server_ip>:8080/v1/accounts/sms/code/+918130927259
org.thoughtcrime.securesms W/SMSListener: Got SMS broadcast...
org.thoughtcrime.securesms W/SmsListener: Got challenge!
org.thoughtcrime.securesms W/RegistrationService: Got a challenge broadcast...
org.thoughtcrime.securesms W/PushServiceSocket: Push service URL: http://<my_server_ip>:8080
org.thoughtcrime.securesms W/PushServiceSocket: Opening URL: http://<my_server_ip>:8080/v1/accounts/code/392553
org.thoughtcrime.securesms W/PushServiceSocket: Push service URL: http://<my_server_ip>:8080
org.thoughtcrime.securesms W/PushServiceSocket: Opening URL: http://<my_server_ip>:8080/v2/keys/
org.thoughtcrime.securesms W/PushServiceSocket: Push service URL: http://<my_server_ip>:8080
org.thoughtcrime.securesms W/PushServiceSocket: Opening URL: http://<my_server_ip>:8080/v1/accounts/gcm/
org.thoughtcrime.securesms W/PhoneNumberFormatter: Got local CC: IN
org.thoughtcrime.securesms W/PhoneNumberFormatter: Error type: TOO_LONG. The string supplied is too long to be a phone number.
org.thoughtcrime.securesms W/PhoneNumberFormatter: at com.google.i18n.phonenumbers.PhoneNumberUtil.parseHelper(PhoneNumberUtil.java:2895)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at com.google.i18n.phonenumbers.PhoneNumberUtil.parse(PhoneNumberUtil.java:2687)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at com.google.i18n.phonenumbers.PhoneNumberUtil.parse(PhoneNumberUtil.java:2677)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.whispersystems.signalservice.api.util.PhoneNumberFormatter.formatNumber(PhoneNumberFormatter.java:99)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.database.TextSecureDirectory.getPushEligibleContactNumbers(TextSecureDirectory.java:190)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.util.DirectoryHelper.refreshDirectory(DirectoryHelper.java:91)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService.handleCommonRegistration(RegistrationService.java:254)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService.handleSmsRegistrationIntent(RegistrationService.java:208)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService.access$000(RegistrationService.java:63)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService$1.run(RegistrationService.java:95)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at java.lang.Thread.run(Thread.java:818)
org.thoughtcrime.securesms W/ContactsSyncAdapter: onPerformSync(com.android.contacts)
org.thoughtcrime.securesms W/PhoneNumberFormatter: Got local CC: IN
org.thoughtcrime.securesms W/PhoneNumberFormatter: Got local CC: IN
org.thoughtcrime.securesms W/PhoneNumberFormatter: Got local CC: IN
org.thoughtcrime.securesms W/PhoneNumberFormatter: Error type: TOO_LONG. The string supplied is too long to be a phone number.
org.thoughtcrime.securesms W/PhoneNumberFormatter: at com.google.i18n.phonenumbers.PhoneNumberUtil.parseHelper(PhoneNumberUtil.java:2895)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at com.google.i18n.phonenumbers.PhoneNumberUtil.parse(PhoneNumberUtil.java:2687)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at com.google.i18n.phonenumbers.PhoneNumberUtil.parse(PhoneNumberUtil.java:2677)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.whispersystems.signalservice.api.util.PhoneNumberFormatter.formatNumber(PhoneNumberFormatter.java:99)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.database.TextSecureDirectory.getPushEligibleContactNumbers(TextSecureDirectory.java:190)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.util.DirectoryHelper.refreshDirectory(DirectoryHelper.java:91)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService.handleCommonRegistration(RegistrationService.java:254)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService.handleSmsRegistrationIntent(RegistrationService.java:208)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService.access$000(RegistrationService.java:63)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at org.thoughtcrime.securesms.service.RegistrationService$1.run(RegistrationService.java:95)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
org.thoughtcrime.securesms W/PhoneNumberFormatter: at java.lang.Thread.run(Thread.java:818)
org.thoughtcrime.securesms W/PhoneNumberFormatter: Got local CC: IN
org.thoughtcrime.securesms W/PhoneNumberFormatter: Got local CC: IN
org.thoughtcrime.securesms W/PushServiceSocket: Push service URL: http://<my_server_ip>:8080
org.thoughtcrime.securesms W/PushServiceSocket: Opening URL: http://<my_server_ip>:8080/v1/directory/tokens
org.thoughtcrime.securesms W/Directory: Adding active token: +919999555808, X8WadrTVTDs9lw
org.thoughtcrime.securesms W/Directory: Adding active token: +919555277550, +e9lhGZ8Fzb/jw
org.thoughtcrime.securesms W/PushServiceSocket: Push service URL: http://<my_server_ip>:8080
org.thoughtcrime.securesms W/PushServiceSocket: Opening URL: http://<my_server_ip>:8080/v1/accounts/token
org.thoughtcrime.securesms W/RegistrationService: org.whispersystems.signalservice.api.push.exceptions.NotFoundException: Not found
org.thoughtcrime.securesms W/RegistrationService: at org.whispersystems.signalservice.internal.push.PushServiceSocket.makeRequest(PushServiceSocket.java:510)
org.thoughtcrime.securesms W/RegistrationService: at org.whispersystems.signalservice.internal.push.PushServiceSocket.getAccountVerificationToken(PushServiceSocket.java:146)
org.thoughtcrime.securesms W/RegistrationService: at org.whispersystems.signalservice.api.SignalServiceAccountManager.getAccountVerificationToken(SignalServiceAccountManager.java:259)
org.thoughtcrime.securesms W/RegistrationService: at org.thoughtcrime.securesms.service.RegistrationService.handleCommonRegistration(RegistrationService.java:260)
org.thoughtcrime.securesms W/RegistrationService: at org.thoughtcrime.securesms.service.RegistrationService.handleSmsRegistrationIntent(RegistrationService.java:208)
org.thoughtcrime.securesms W/RegistrationService: at org.thoughtcrime.securesms.service.RegistrationService.access$000(RegistrationService.java:63)
org.thoughtcrime.securesms W/RegistrationService: at org.thoughtcrime.securesms.service.RegistrationService$1.run(RegistrationService.java:95)
org.thoughtcrime.securesms W/RegistrationService: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
org.thoughtcrime.securesms W/RegistrationService: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
org.thoughtcrime.securesms W/RegistrationService: at java.lang.Thread.run(Thread.java:818)


below is my Pushserver.yml

redis:
url: redis://localhost:6379/2

authentication:
servers:
-
name: 123
password: 123
gcm:
xmpp: false
apiKey: A####################s
senderId: 1#######1
redphoneApiKey: A########################i4

server:
applicationConnectors:
- type: http
port: 9999
adminConnectors:
- type: http
port: 9998
gzip:
enabled: true

logging:
level: INFO
appenders:
- type: file
currentLogFilename: /tmp/pushserver.log
archivedLogFilenamePattern: /tmp/pushserver-%d.log.gz
archivedFileCount: 5
- type: console


below is my Textsecure server.yml or production.yml

twilio: # Twilio SMS gateway configuration
accountId: AC##############51
accountToken: 8####################7
numbers:
-
+12132414380 #fake
# numbers:
# -
# +12015975380
localDomain: 127.0.0.1 # The domain Twilio can call back to.

push: # GCM/APN push server configuration
host: localhost
port: 9999
username: 123
password: 123

s3: # AWS S3 configuration
accessKey: A#####################Q
accessSecret: 0##########################9

# Name of the S3 bucket (needs to have been created)
# for attachments to go. Should be configured with
# correct permissions.
attachmentsBucket: signale

directory: # Redis server configuration for TS directory
url: "redis://localhost:6379/0"

cache: # Redis server configuration for general purpose caching
url: "redis://localhost:6379/1"

server:
applicationConnectors:
- type: http
port: 8080
#keyStorePath: config/example.keystore
# #keyStorePassword: example
# #validateCerts: true
adminConnectors:
- type: http
port: 8081
# #keyStorePath: config/example.keystore
# #keyStorePassword: example
# #validateCerts: true
websocket:
enabled: true

messageStore: # Postgres database configuration for message store
driverClass: org.postgresql.Driver
user: "textsecure"
password: "postgres"
url: "jdbc:postgresql://127.0.0.1:5432/textsecure_msg"

database: # Postgres database configuration for account store
# the name of your JDBC driver
driverClass: org.postgresql.Driver

# the username
user: "uname"

# the password
password: "mypas"

# the JDBC URL
url: "jdbc:postgresql://127.0.0.1:5432/textsecure_accounts"

# any properties specific to your JDBC driver:
properties:
charSet: UTF-8

Answer

In the testsecure server YML the redphone authkey is required even functionality is not needed at all because the server register itself using the same for this one need to create a project in google developer account and the use the numeric part as authkey in the yml file.

for ex project name "my_readphone-112312" then the authkey will be 112312

then add the below entry in yml

redphone:
authKey: 112312