13

I am trying to start my custom TextSecure (Signal) server. I want to use it for all functions that Signal has (both SMS and telephony). I believe that I also need redphone server to run telephony. I've found github repos for TextSecure server only https://github.com/WhisperSystems/TextSecure-Server but no repos for redphone server.

I think that I also need to run this server https://github.com/WhisperSystems/PushServer to properly operate Signal.

I have tried downloading whole TextSecure server from github and adding it to intelijidea as maven repository but it doesnt allow me to run it and therefore to compile it.

Anyone with experience of running a cusotm TextSecure server? I need a little guide because I am totaly stuck at this.

Thanks in forward

horin
  • 1,664
  • 6
  • 23
  • 52

1 Answers1

17

You can run your own TextSecure server, but first of all you need to create accounts at Twilio, AWS S3, Google Developer and Apple Developer.

Twilio - for sms broadcasting(for registration in TextServer).
AWS - for documents in TextSecure.
Google developer - for push notifications.
Apple Developer - for push notifications(i didn't reg this one because i did hack Push server).

After thay you need to install: JDK and Cryptography extension, Maven, Postgresql, Redis.

With Maven install: Dropwizard-simpleauth, WebSocket-Resources.
With Maven compile PushServer and start it with your settings (redis, auth, gcm, apn).
With Maven compile TextServer with -DskipTests key.
After that you can use your own TextServer but without RedPhone. The RedPhone repo was deleted from github.

Hope this helps you.

Arash Hatami
  • 5,297
  • 5
  • 39
  • 59
Oleksa
  • 594
  • 5
  • 19
  • After installation which I explained above, you can install my code [link](https://github.com/skal1ozz/RedPhoneServer) to add call feature to the server. – Oleksa Jan 23 '16 at 15:54
  • Can you tell exact commands to Start the Push Server. All I can see is a .jar file and don't know what to do with it. Please HELP!! – Muhammad Ali May 27 '16 at 07:20
  • 1
    You can start it with a command like this: "/path/to/java/java -jar /path/to/push/Push-Server.jar server /path/to/config/production.yml" – Oleksa May 27 '16 at 11:41
  • What was the exact syntax. I installed PushServer through Maven and it has three jar files in target directory. One is simple pushserver jar and others are named like pushserver-capsule. And there in no yml file in my PushServer directory. It also says 'No Main Attribute in Jar File' when i run PushServer-0.9.8.jar – Muhammad Ali May 31 '16 at 04:02
  • 1
    You should start the capsule jar. [Here](https://github.com/skal1ozz/RedPhoneServer/blob/master/PushServer_production.yml) the sample of yml config file for the pushserver – Oleksa May 31 '16 at 09:26
  • I have run the Capsule Jar File. But following error is given Failed to find Premain-Class manifest attribute in C:\Users\Muhammad Ali\Documents\GitHub\PushServer\target\Push-Server-0.12.0-capsule-fat.jar Error occurred during initialization of VM agent library failed to init: instrument – Muhammad Ali May 31 '16 at 09:30
  • 1
    Check all of the paths to your environment (java, maven, dropwizard-simpleauth, WebSocket-Resources, e.t.c) – Oleksa May 31 '16 at 09:38
  • And also what version of Maven and Java do you use? Try to update it. – Oleksa May 31 '16 at 09:39
  • what are the "auth" settings as you mentioned in configuring PushServer? – Muhammad Ali Jun 01 '16 at 07:11
  • Auth settings are for TextServer to connect with PushServer. – Oleksa Jun 01 '16 at 13:36
  • Please do next: java xf Push-Server-0.12.0-capsule-fat.jar in the working directory you should see a list of files. Show me the file "META-INF/MANIFEST.MF" and the list of other files from decompressed jar – Oleksa Jun 01 '16 at 13:41
  • Please paste the code for local.yml, config.yml and production.yml because these files are required and not availble on PushServer GitHub page now. – Muhammad Ali Jun 03 '16 at 18:14
  • 1
    This file are not required. You should choose only one as settings for your push server. If you have some problems with it, try to rename config dir and compile/install your server. This should helps. – Oleksa Jun 05 '16 at 19:05
  • Will it work with Signal Messenger because I don't have code for RedPhone. Another question is that before starting push server, do I need to configure settings for both TextSecure Server and Signal Messenger? – Muhammad Ali Jun 07 '16 at 10:18
  • 1
    >>> Will it work with Signal Messenger because I don't have code for RedPhone. Yes it will work. >>> Another question is that before starting push server, do I need to configure settings for both TextSecure Server and Signal Messenger? To start the push server you don't have to configure TextSecure server and Signal messenger. – Oleksa Jun 08 '16 at 11:04
  • @SkalTmn : what do you mean when you say "i didn't reg this one because i did hack Push server" did you change some code there ? can you point us how did u do it. I also do not need for apple – Count Sep 14 '16 at 09:25
  • 1
    You should edit src/main/java/org/whispersystems/pushserver/PushServer.java at line 58 comment this line: // environment.lifecycle().manage(apnSender); – Oleksa Sep 14 '16 at 15:39
  • I am able to get sms ,verification is also working corrrectly and generating keys also works . but on "registering with server" step it fails and I get "Connectivity error. unable to connect to the server " Please help – Count Sep 15 '16 at 11:43
  • What does Android debug log say? Did you set "redphone: AuthKey:" in the TextSecure's production.yml file? What about REDPHONE_MASTER_URL is it the same server or not ? Did you hack /api/ requests with "200 ok" ? – Oleksa Sep 16 '16 at 09:25
  • I have posted the issue as a question here [link](http://stackoverflow.com/questions/39532987/unable-to-get-registration-to-text-secure-server-working) – Count Sep 16 '16 at 13:43
  • What does Android debug log say? >>NotFoundException: || Did you set "redphone: AuthKey,REDPHONE_MASTER_URL >> I need only message functionality so didnt thought its needed. || /api/ requests with "200 ok" ? >>can you tell me how to do that – Count Sep 17 '16 at 05:48
  • 1
    You should fill up all the fields in the build.gradle. If you did not enter authKey, your phone wouldn't get token for a RedPhone server. And if you will not change the REDPHONE_MASTER_URL your phone will try to reg with your TextServer's token on the original RedPhone server and will get an Error. You should set up "redphone: AuthKey:" in the TextSecure's production.yml. Thange REDPHONE_MASTER_URL and other urls to your real server and return 200 ok for all "/api/" request. [Here the instructions](https://github.com/skal1ozz/RedPhoneServer/blob/master/TextSecure-Server_Installation.txt) – Oleksa Sep 18 '16 at 11:11
  • @SkalTmn can you provide me the redphone repository. I dont find any code which relevant with call routing and switching – manmatha.roy Feb 10 '17 at 13:31
  • a docker-container would me nice, that use this configuration :-) does anyone know? – J.Root Nov 01 '21 at 10:20
  • @J.Root this is irrelevant already. Signal improved a lot since then, for example they dropped RedPhone and implemented WebRTC also they've merged PushServer and TextServer into a SignalServer. So the configuration and installation is different from what you've seen here. – Oleksa Nov 02 '21 at 20:14