|
@@ 645-660 (lines=16) @@
|
| 642 |
|
room_id = in_message[VarNames.CHANNEL] |
| 643 |
|
content = in_message.get(VarNames.CONTENT) |
| 644 |
|
qued_id = in_message[VarNames.WEBRTC_QUED_ID] |
| 645 |
|
connection_id = id_generator(RedisPrefix.CONNECTION_ID_LENGTH) |
| 646 |
|
# use list because sets dont have 1st element which is offerer |
| 647 |
|
self.async_redis_publisher.hset(WEBRTC_CONNECTION, connection_id, self.id) |
| 648 |
|
self.async_redis_publisher.hset(connection_id, self.id, WebRtcRedisStates.READY) |
| 649 |
|
opponents_message = self.offer_webrtc(content, connection_id, room_id, in_message[VarNames.EVENT]) |
| 650 |
|
self_message = self.set_connection_id(qued_id, connection_id) |
| 651 |
|
self.ws_write(self_message) |
| 652 |
|
self.logger.info('!! Offering a webrtc, connection_id %s', connection_id) |
| 653 |
|
self.publish(opponents_message, room_id, True) |
| 654 |
|
|
| 655 |
|
def reply_call_connection(self, in_message): |
| 656 |
|
self.send_call_answer(in_message, WebRtcRedisStates.RESPONDED, Actions.REPLY_CALL_CONNECTION) |
| 657 |
|
|
| 658 |
|
def send_call_answer(self, in_message, status_set, reply_action): |
| 659 |
|
connection_id = in_message[VarNames.CONNECTION_ID] |
| 660 |
|
conn_users = self.sync_redis.shgetall(connection_id) |
| 661 |
|
if conn_users[self.id] == WebRtcRedisStates.OFFERED: |
| 662 |
|
self.async_redis_publisher.hset(connection_id, self.id, status_set) |
| 663 |
|
del conn_users[self.id] |
|
@@ 556-570 (lines=15) @@
|
| 553 |
|
self.async_redis_publisher.hset(connection_id, self.id, WebRtcRedisStates.CLOSED) |
| 554 |
|
|
| 555 |
|
def close_call_connection(self, in_message): |
| 556 |
|
connection_id = in_message[VarNames.CONNECTION_ID] |
| 557 |
|
conn_users = self.sync_redis.shgetall(connection_id) |
| 558 |
|
if conn_users[self.id] in [WebRtcRedisStates.READY, WebRtcRedisStates.RESPONDED]: |
| 559 |
|
self.async_redis_publisher.hset(connection_id, self.id, WebRtcRedisStates.CLOSED) |
| 560 |
|
del conn_users[self.id] |
| 561 |
|
message = { |
| 562 |
|
VarNames.EVENT: Actions.CLOSE_CALL_CONNECTION, |
| 563 |
|
VarNames.CONNECTION_ID: connection_id, |
| 564 |
|
VarNames.USER_ID: self.user_id, |
| 565 |
|
VarNames.WEBRTC_OPPONENT_ID: self.id, |
| 566 |
|
VarNames.HANDLER_NAME: HandlerNames.PEER_CONNECTION, |
| 567 |
|
} |
| 568 |
|
for user in conn_users: |
| 569 |
|
if conn_users[user] != WebRtcRedisStates.CLOSED: |
| 570 |
|
self.publish(message, user) |
| 571 |
|
else: |
| 572 |
|
raise ValidationError("Invalid channel status.") |
| 573 |
|
|