Skip to content

Commit c3db853

Browse files
committed
add get info/control media voice snippets
1 parent 5809813 commit c3db853

9 files changed

+142
-85
lines changed

.env.dist

+1
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ START_DATE='START_DATE'
8080
CONFERENCE_NAME='NAME_OF_YOUR_CONFERENCE'
8181
YOUR_SECOND_NUMBER='YOUR_SECOND_NUMBER'
8282
RECORDING_URL='RECORDING_URL'
83+
CALL_UUID='CALL_UUID'
8384

8485
# Numbers
8586
COUNTRY_CODE='GB'

voice/earmuff-a-call.py

+19-16
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
#!/usr/bin/env python3
2-
import time
31
import os
42
from os.path import join, dirname
5-
from pprint import pprint
3+
from time import sleep
64
from dotenv import load_dotenv
7-
import vonage
85

9-
dotenv_path = join(dirname(__file__), "../.env")
6+
dotenv_path = join(dirname(__file__), '../.env')
107
load_dotenv(dotenv_path)
118

12-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
13-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
14-
UUID = os.environ.get("UUID")
15-
client = vonage.Client(
16-
application_id=VONAGE_APPLICATION_ID,
17-
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
9+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
11+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
1812
)
1913

20-
response = client.voice.update_call(UUID, action="earmuff")
21-
pprint(response)
22-
time.sleep(5)
23-
response = client.voice.update_call(UUID, action="unearmuff")
24-
pprint(response)
14+
CALL_UUID = os.environ.get('CALL_UUID')
15+
16+
from vonage import Auth, Vonage
17+
18+
client = Vonage(
19+
Auth(
20+
application_id=VONAGE_APPLICATION_ID,
21+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
22+
)
23+
)
24+
25+
client.voice.earmuff(CALL_UUID)
26+
sleep(5)
27+
client.voice.unearmuff(CALL_UUID)

voice/get-recording.py

-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
from pprint import pprint
21
import os
32
from os.path import join, dirname
43
from dotenv import load_dotenv

voice/mute-a-call.py

+18-16
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
1-
#!/usr/bin/env python3
2-
import time
31
import os
42
from os.path import join, dirname
5-
from pprint import pprint
6-
import vonage
3+
from time import sleep
74
from dotenv import load_dotenv
85

9-
dotenv_path = join(dirname(__file__), "../.env")
6+
dotenv_path = join(dirname(__file__), '../.env')
107
load_dotenv(dotenv_path)
118

12-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
13-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
14-
UUID = os.environ.get("UUID")
9+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
11+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
12+
)
13+
14+
CALL_UUID = os.environ.get('CALL_UUID')
15+
16+
from vonage import Auth, Vonage
1517

16-
client = vonage.Client(
17-
application_id=VONAGE_APPLICATION_ID,
18-
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH
18+
client = Vonage(
19+
Auth(
20+
application_id=VONAGE_APPLICATION_ID,
21+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
22+
)
1923
)
2024

21-
response = client.voice.update_call(UUID, action="mute")
22-
pprint(response)
23-
time.sleep(5)
24-
response = client.voice.update_call(UUID, action="unmute")
25-
pprint(response)
25+
client.voice.mute(CALL_UUID)
26+
sleep(5)
27+
client.voice.unmute(CALL_UUID)

voice/play-audio-stream-into-call.py

+25-10
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,34 @@
11
import os
22
from os.path import join, dirname
3+
from pprint import pprint
34
from dotenv import load_dotenv
4-
import vonage
55

6-
dotenv_path = join(dirname(__file__), "../.env")
6+
dotenv_path = join(dirname(__file__), '../.env')
77
load_dotenv(dotenv_path)
88

9-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
10-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
11-
VONAGE_CALL_UUID = os.environ.get("UUID")
9+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
11+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
12+
)
13+
14+
CALL_UUID = os.environ.get('CALL_UUID')
15+
16+
from vonage import Auth, Vonage
17+
from vonage_voice.models import AudioStreamOptions, CallMessage
18+
19+
20+
client = Vonage(
21+
Auth(
22+
application_id=VONAGE_APPLICATION_ID,
23+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
24+
)
25+
)
1226

13-
client = vonage.Client(
14-
application_id=VONAGE_APPLICATION_ID,
15-
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH
27+
response: CallMessage = client.voice.play_audio_into_call(
28+
CALL_UUID,
29+
audio_stream_options=AudioStreamOptions(
30+
stream_url=['https://example.com/ringtone.mp3']
31+
),
1632
)
1733

18-
stream_url = 'https://nexmo-community.github.io/ncco-examples/assets/voice_api_audio_streaming.mp3'
19-
client.voice.send_audio(VONAGE_CALL_UUID, stream_url=[stream_url])
34+
pprint(response)

voice/play-dtmf-into-call.py

+20-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,29 @@
11
import os
22
from os.path import join, dirname
3+
from pprint import pprint
34
from dotenv import load_dotenv
4-
import vonage
55

6-
dotenv_path = join(dirname(__file__), "../.env")
6+
dotenv_path = join(dirname(__file__), '../.env')
77
load_dotenv(dotenv_path)
88

9-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
10-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
11-
VONAGE_CALL_UUID = os.environ.get("UUID")
9+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
11+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
12+
)
13+
14+
CALL_UUID = os.environ.get('CALL_UUID')
15+
16+
from vonage import Auth, Vonage
17+
from vonage_voice.models import CallMessage
1218

13-
client = vonage.Client(
14-
application_id=VONAGE_APPLICATION_ID,
15-
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
19+
20+
client = Vonage(
21+
Auth(
22+
application_id=VONAGE_APPLICATION_ID,
23+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
24+
)
1625
)
1726

18-
client.voice.send_dtmf(VONAGE_CALL_UUID, digits='1234')
27+
response: CallMessage = client.voice.play_dtmf_into_call(uuid=CALL_UUID, dtmf='1234p*#')
28+
29+
pprint(response)

voice/play-tts-into-call.py

+22-9
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,31 @@
11
import os
22
from os.path import join, dirname
3+
from pprint import pprint
34
from dotenv import load_dotenv
4-
import vonage
55

6-
dotenv_path = join(dirname(__file__), "../.env")
6+
dotenv_path = join(dirname(__file__), '../.env')
77
load_dotenv(dotenv_path)
88

9-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
10-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
11-
VONAGE_CALL_UUID = os.environ.get("UUID")
9+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
11+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
12+
)
13+
14+
CALL_UUID = os.environ.get('CALL_UUID')
15+
16+
from vonage import Auth, Vonage
17+
from vonage_voice.models import CallMessage, TtsStreamOptions
18+
19+
20+
client = Vonage(
21+
Auth(
22+
application_id=VONAGE_APPLICATION_ID,
23+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
24+
)
25+
)
1226

13-
client = vonage.Client(
14-
application_id=VONAGE_APPLICATION_ID,
15-
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
27+
response: CallMessage = client.voice.play_tts_into_call(
28+
uuid=CALL_UUID, tts_options=TtsStreamOptions(text='Hello from Vonage.')
1629
)
1730

18-
client.voice.send_speech(VONAGE_CALL_UUID, text='Hello from Vonage')
31+
pprint(response)

voice/retrieve-info-for-a-call.py

+14-9
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
1-
#!/usr/bin/env python3
21
from pprint import pprint
32
import os
43
from os.path import join, dirname
54
from dotenv import load_dotenv
6-
import vonage
75

8-
dotenv_path = join(dirname(__file__), "../.env")
6+
dotenv_path = join(dirname(__file__), '../.env')
97
load_dotenv(dotenv_path)
108

11-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
12-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
13-
VONAGE_CALL_UUID = os.environ.get("UUID")
9+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
10+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
11+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
12+
)
1413

15-
client = vonage.Client(
14+
CALL_UUID = os.environ.get('CALL_UUID')
15+
16+
from vonage import Auth, Vonage
17+
from vonage_voice.models import CallInfo
18+
19+
client = Vonage(
20+
Auth(
1621
application_id=VONAGE_APPLICATION_ID,
1722
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
1823
)
24+
)
1925

20-
# Note call can be made to current call or a completed call
21-
response = client.voice.get_call(VONAGE_CALL_UUID)
26+
response: CallInfo = client.voice.get_call(CALL_UUID)
2227
pprint(response)

voice/retrieve-info-for-all-calls.py

+23-15
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,35 @@
1-
#!/usr/bin/env python3
2-
import os
1+
from datetime import datetime, timedelta, timezone
32
from pprint import pprint
3+
import os
44
from os.path import join, dirname
5-
from datetime import datetime, timedelta
6-
import vonage
75
from dotenv import load_dotenv
86

9-
dotenv_path = join(dirname(__file__), "../.env")
7+
dotenv_path = join(dirname(__file__), '../.env')
108
load_dotenv(dotenv_path)
119

12-
VONAGE_APPLICATION_ID = os.environ.get("VONAGE_APPLICATION_ID")
13-
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get("VONAGE_APPLICATION_PRIVATE_KEY_PATH")
10+
VONAGE_APPLICATION_ID = os.environ.get('VONAGE_APPLICATION_ID')
11+
VONAGE_APPLICATION_PRIVATE_KEY_PATH = os.environ.get(
12+
'VONAGE_APPLICATION_PRIVATE_KEY_PATH'
13+
)
14+
15+
from vonage import Auth, Vonage
16+
from vonage_voice.models import ListCallsFilter
1417

15-
client = vonage.Client(
16-
application_id=VONAGE_APPLICATION_ID,
17-
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
18+
client = Vonage(
19+
Auth(
20+
application_id=VONAGE_APPLICATION_ID,
21+
private_key=VONAGE_APPLICATION_PRIVATE_KEY_PATH,
22+
)
1823
)
1924

20-
NOW = datetime.utcnow()
21-
DATE_END = NOW.replace(microsecond=0).isoformat()+"Z"
22-
DATE_START = (NOW - timedelta(hours=24, minutes=00)).replace(microsecond=0).isoformat()+"Z"
2325

24-
response = client.voice.get_calls(date_start=DATE_START, date_end=DATE_END)
25-
calls = response['_embedded']['calls']
26+
NOW = datetime.now(timezone.utc)
27+
DATE_END = NOW.replace(microsecond=0).isoformat()
28+
DATE_START = (NOW - timedelta(hours=24, minutes=00)).replace(microsecond=0).isoformat()
29+
30+
calls, _ = client.voice.list_calls(
31+
ListCallsFilter(date_start=DATE_START, date_end=DATE_END)
32+
)
33+
2634
for call in calls:
2735
pprint(call)

0 commit comments

Comments
 (0)