def handle_member_answer( event_number: str, member_number: str, origin_conversation_uuid: str, origin_call_uuid: str, client: nexmo.Client, ): """Connects an organizer to a call-in-progress when they answer.""" # Members can actually be part of multiple events, so look up the event # separately. member = db.get_member_by_number(member_number) event = db.get_event_by_number(event_number) if member is None or event is None: error_ncco = [{ "action": "talk", "text": common_text.voice_answer_error }] return error_ncco client.send_speech( origin_call_uuid, text=common_text.voice_answer_announce.format(member=member)) ncco = [ { "action": "talk", "text": common_text.voice_answer_greeting.format(member=member, event=event), }, { "action": "conversation", "name": origin_conversation_uuid, "startOnEnter": True, "endOnExit": True, }, ] audit_log.log( audit_log.Kind.VOICE_CONVERSATION_ANSWERED, description=f"{member.name} answered {origin_conversation_uuid[-12:]}.", user="******", event=event, ) return ncco
def handle_member_answer( event_number: str, member_number: str, origin_conversation_uuid: str, origin_call_uuid: str, client: nexmo.Client, ): """Connects an organizer to a call-in-progress when they answer.""" # Members can actually be part of multiple events, so look up the event # separately. member = db.get_member_by_number(member_number) event = db.get_event_by_number(event_number) if member is None or event is None: error_ncco = [{ "action": "talk", "text": ("Oh no, an error occurred and we couldn't find the event or " "member entry for this call."), }] return error_ncco client.send_speech(origin_call_uuid, text=f"{member.name} is joining this call.") ncco = [ { "action": "talk", "text": f"Hello {member.name}, connecting you to {event.name}.", }, { "action": "conversation", "name": origin_conversation_uuid, "startOnEnter": True, "endOnExit": True, }, ] return ncco