6
6
import json
7
7
import base64
8
8
from pydantic import BaseModel
9
+ import boto3
10
+ from botocore .exceptions import NoCredentialsError
9
11
10
12
url_api = "https://apps.beam.cloud/e928s"
11
13
url_webhook = "wss://twilio-asphere.herokuapp.com"
17
19
"Content-Type" : "application/json"
18
20
}
19
21
22
+ # AWS Credentials - Ils doivent être stockés de manière sécurisée
23
+ aws_access_key_id = 'your_access_key_id'
24
+ aws_secret_access_key = 'your_secret_access_key'
25
+ aws_session_token = 'your_session_token' # facultatif
26
+ s3_client = boto3 .client ('s3' )#,
27
+ #aws_access_key_id=aws_access_key_id,
28
+ #aws_secret_access_key=aws_secret_access_key,
29
+ #aws_session_token=aws_session_token)
30
+ bucket_name = 'api-beam'
31
+ parent_folder = 'twilio'
32
+
20
33
app = FastAPI ()
21
34
22
35
@app .get ("/" )
@@ -37,29 +50,27 @@ class StreamData(BaseModel):
37
50
media : dict = None
38
51
39
52
@app .post ("/webhook/voice" )
40
- def answer_call ():
41
- print (1 )
53
+ async def answer_call ():
54
+ form_data = await request .form ()
55
+ call_sid = form_data .get ('CallSid' )
56
+ print (call_sid )
57
+ # Créer un dossier dans S3
58
+ folder_name = f"{ parent_folder } /{ call_sid } /"
59
+ s3_client .put_object (Bucket = bucket_name , Key = (folder_name ))
42
60
response = VoiceResponse ()
43
- print (2 )
44
61
#gather = Gather(input='dtmf', num_digits=4)
45
62
#gather.say('Please enter the 4 digit code on your screen to get started.')
46
63
#response.append(gather)
47
- print (3 )
48
64
#response.say("Bienvenue, je suis en train d'écouter et de transcrire ce que vous dites.", voice='alice')
49
65
response .say ("Hello world. Bonjour, bienvenue Benjamin." , voice = 'alice' )
50
- print (4 )
51
66
#response.play('https://demo.twilio.com/docs/classic.mp3')
52
- print (5 )
53
67
start = Connect ()#Start()
54
68
start .stream (url = url_webhook )
55
69
response .append (start )
56
- print (6 )
57
70
# Use <Record> to record the caller's message
58
71
#response.record()
59
- print (7 )
60
72
# End the call with <Hangup>
61
73
#response.hangup()
62
- print (8 )
63
74
# Créer une instance de `Response` avec le type de contenu correct
64
75
print (str (response ))
65
76
xml_response = Response (content = str (response ), media_type = "application/xml" )
1 commit comments
vercel[bot] commentedon May 20, 2023
Successfully deployed to the following URLs:
apis – ./
apis-as-phere-s-team.vercel.app
apis-git-main-as-phere-s-team.vercel.app
apis-xi.vercel.app