mirror of
https://github.com/signalapp/Signal-Server
synced 2026-04-21 07:58:05 +01:00
Deliver upgrade link to stale clients
This commit is contained in:
@@ -36,6 +36,10 @@ public class SmsSender {
|
||||
this.twilioSender = twilioSender;
|
||||
}
|
||||
|
||||
public void deliverUpdatetoSignalSms(String destination) {
|
||||
twilioSender.deliverArbitrarySms(destination, "To continue installing, update to Signal: https://play.google.com/store/apps/details?id=org.thoughtcrime.securesms");
|
||||
}
|
||||
|
||||
public void deliverSmsVerification(String destination, Optional<String> clientType, String verificationCode) {
|
||||
// Fix up mexico numbers to 'mobile' format just for SMS delivery.
|
||||
if (destination.startsWith("+52") && !destination.startsWith("+521")) {
|
||||
|
||||
@@ -55,6 +55,7 @@ public class TwilioSmsSender {
|
||||
private static final Logger logger = LoggerFactory.getLogger(TwilioSmsSender.class);
|
||||
|
||||
private final MetricRegistry metricRegistry = SharedMetricRegistries.getOrCreate(Constants.METRICS_NAME);
|
||||
private final Meter arbitraryMeter = metricRegistry.meter(name(getClass(), "arbitrary", "delivered"));
|
||||
private final Meter smsMeter = metricRegistry.meter(name(getClass(), "sms", "delivered"));
|
||||
private final Meter voxMeter = metricRegistry.meter(name(getClass(), "vox", "delivered"));
|
||||
private final Meter priceMeter = metricRegistry.meter(name(getClass(), "price"));
|
||||
@@ -97,6 +98,32 @@ public class TwilioSmsSender {
|
||||
this("https://api.twilio.com", twilioConfiguration);
|
||||
}
|
||||
|
||||
public CompletableFuture<Boolean> deliverArbitrarySms(String destination, String message) {
|
||||
Map<String, String> requestParameters = new HashMap<>();
|
||||
requestParameters.put("To", destination);
|
||||
|
||||
if (Util.isEmpty(messagingServicesId)) {
|
||||
requestParameters.put("From", getRandom(random, numbers));
|
||||
} else {
|
||||
requestParameters.put("MessagingServiceSid", messagingServicesId);
|
||||
}
|
||||
|
||||
requestParameters.put("Body", message);
|
||||
|
||||
HttpRequest request = HttpRequest.newBuilder()
|
||||
.uri(smsUri)
|
||||
.POST(FormDataBodyPublisher.of(requestParameters))
|
||||
.header("Content-Type", "application/x-www-form-urlencoded")
|
||||
.header("Authorization", "Basic " + Base64.encodeBytes((accountId + ":" + accountToken).getBytes()))
|
||||
.build();
|
||||
|
||||
arbitraryMeter.mark();
|
||||
|
||||
return httpClient.sendAsync(request, HttpResponse.BodyHandlers.ofString())
|
||||
.thenApply(this::parseResponse)
|
||||
.handle(this::processResponse);
|
||||
}
|
||||
|
||||
public CompletableFuture<Boolean> deliverSmsVerification(String destination, Optional<String> clientType, String verificationCode) {
|
||||
Map<String, String> requestParameters = new HashMap<>();
|
||||
requestParameters.put("To", destination);
|
||||
|
||||
Reference in New Issue
Block a user