|
|
|
@ -121,11 +121,13 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
|
|
|
|
|
if (inRoom) {
|
|
|
|
|
// we're already in the room, do nothing
|
|
|
|
|
logger.debug("Room " + roomName + " already joined.");
|
|
|
|
|
setSMSRoomPowerLevels(res.room_id);
|
|
|
|
|
callback(res.room_id);
|
|
|
|
|
} else {
|
|
|
|
|
// not in the room, join it
|
|
|
|
|
client.joinRoom(res.room_id).then((room) => {
|
|
|
|
|
logger.debug("Room " + roomName + " joined.");
|
|
|
|
|
setSMSRoomPowerLevels(res.room_id);
|
|
|
|
|
callback(room.room_id);
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
@ -141,6 +143,7 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
|
|
|
|
|
topic: "SMS conversation with " + formatPhoneNumber(tel, "(NNN) NNN-NNNN") + " (using " + formatPhoneNumber(ournumber, "(NNN) NNN-NNNN") + ")"
|
|
|
|
|
}).then((room) => {
|
|
|
|
|
logger.debug("Room" + roomName + " created with ID " + room.room_id);
|
|
|
|
|
setSMSRoomPowerLevels(res.room_id);
|
|
|
|
|
|
|
|
|
|
// The first message or two we send doesn't go through unless we do this.
|
|
|
|
|
// It just spits out "Error sending event M_FORBIDDEN: Unknown room" instead.
|
|
|
|
@ -149,6 +152,29 @@ function createOrJoinSMSRoom(tel, ournumber, callback) {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function setSMSRoomPowerLevels(roomid) {
|
|
|
|
|
var userPowerLevels = {};
|
|
|
|
|
for (var i = 0; i < settings.inviteusers.length; i++) {
|
|
|
|
|
userPowerLevels[settings.inviteusers[i]] = 50;
|
|
|
|
|
}
|
|
|
|
|
client.sendEvent(roomid, "m.room.power_levels", {
|
|
|
|
|
"events": {
|
|
|
|
|
"m.room.name": 50,
|
|
|
|
|
"m.room.power_levels": 50
|
|
|
|
|
},
|
|
|
|
|
"events_default": 0,
|
|
|
|
|
"invite": 50,
|
|
|
|
|
"kick": 50,
|
|
|
|
|
"notifications": {
|
|
|
|
|
"room": 50
|
|
|
|
|
},
|
|
|
|
|
"redact": 50,
|
|
|
|
|
"state_default": 50,
|
|
|
|
|
"users": userPowerLevels,
|
|
|
|
|
"users_default": 0
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getAndUploadFile(url, callback) {
|
|
|
|
|
logger.info("Downloading MMS media " + url);
|
|
|
|
|
// download
|
|
|
|
@ -357,6 +383,9 @@ client.login("m.login.password", {"user": settings.matrixuser, "password": setti
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
} else if (event.getContent().body.startsWith("!fixperms")) {
|
|
|
|
|
sendMatrixNotice(event.getRoomId(), "Resetting power levels for this room.");
|
|
|
|
|
setSMSRoomPowerLevels(event.getRoomId());
|
|
|
|
|
}
|
|
|
|
|
const matches = room.name.match(/([1-9][0-9]+)/g);
|
|
|
|
|
if (matches.length == 1) {
|
|
|
|
|