@@ 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 |