Skip to content

Commit c7f3a1a

Browse files
committedMay 20, 2023
Add Twilio websocket
1 parent 838be7f commit c7f3a1a

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed
 

‎requirements.txt

+1
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ uvicorn==0.20.0
55
pydantic~=1.10.4
66
twilio
77
python-multipart
8+
boto3

‎src/index.py

+20-9
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import json
77
import base64
88
from pydantic import BaseModel
9+
import boto3
10+
from botocore.exceptions import NoCredentialsError
911

1012
url_api = "https://apps.beam.cloud/e928s"
1113
url_webhook = "wss://twilio-asphere.herokuapp.com"
@@ -17,6 +19,17 @@
1719
"Content-Type": "application/json"
1820
}
1921

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+
2033
app = FastAPI()
2134

2235
@app.get("/")
@@ -37,29 +50,27 @@ class StreamData(BaseModel):
3750
media: dict = None
3851

3952
@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))
4260
response = VoiceResponse()
43-
print(2)
4461
#gather = Gather(input='dtmf', num_digits=4)
4562
#gather.say('Please enter the 4 digit code on your screen to get started.')
4663
#response.append(gather)
47-
print(3)
4864
#response.say("Bienvenue, je suis en train d'écouter et de transcrire ce que vous dites.", voice='alice')
4965
response.say("Hello world. Bonjour, bienvenue Benjamin.", voice='alice')
50-
print(4)
5166
#response.play('https://demo.twilio.com/docs/classic.mp3')
52-
print(5)
5367
start = Connect()#Start()
5468
start.stream(url=url_webhook)
5569
response.append(start)
56-
print(6)
5770
# Use <Record> to record the caller's message
5871
#response.record()
59-
print(7)
6072
# End the call with <Hangup>
6173
#response.hangup()
62-
print(8)
6374
# Créer une instance de `Response` avec le type de contenu correct
6475
print(str(response))
6576
xml_response = Response(content=str(response), media_type="application/xml")

1 commit comments

Comments
 (1)

vercel[bot] commented on May 20, 2023

@vercel[bot]
Please sign in to comment.