Exemple d'utilisation de la bibliothèque PytgVoIP avec Pyrogram
Espérons que le support de pytgvoip
sera intégré à Pyrogram lui - même, mais ce référentiel resterait disponible comme référence même après la fusion.
pytgvoip
guide d'utilisation détaillé de pytgvoip est également disponible Ici
# faire des appels sortants
from pyrogram import Client
from tgvoip_pyrogram import VoIPFileStreamService
app = Client('account')
app.start()
service = VoIPFileStreamService(app, receive_calls=False)
call = service.start_call('@bakatrouble')
call.play('input.raw')
call.play_on_hold(['input.raw'])
call.set_output_file('output.raw')
@call.on_call_ended
def call_ended(call):
app.stop()
app.idle()
# accepter les appels entrants
from pyrogram import Client
from tgvoip_pyrogram import VoIPFileStreamService, VoIPIncomingFileStreamCall
app = Client('account')
app.start()
service = VoIPFileStreamService(app)
@service.on_incoming_call
def handle_call(call: VoIPIncomingFileStreamCall):
call.accept()
call.play('input.raw')
call.play_on_hold(['input.raw'])
call.set_output_file('output.raw')
# you can use `call.on_call_ended(lambda _: app.stop())` here instead
@call.on_call_ended
def call_ended(call):
app.stop()
app.idle()
- Python 3.4 ou supérieur
- PytgVoIP (répertorié comme dépendance)
- Pyrogramme (répertorié comme dépendance)
pip3 install pytgvoip-pyrogram
Les flux consommés par libtgvoip
doivent être codés en audio PCM signé 16 bits.
$ ffmpeg -i input.mp3 -f s16le -ac 1 -ar 48000 -acodec pcm_s16le input.raw # encode
$ ffmpeg -f s16le -ac 1 -ar 48000 -acodec pcm_s16le -i output.raw output.mp3 # decode
- Droits d'auteur (C) 2019 bakatrouble
- Sous licence selon les termes de la licence publique générale limitée GNU v3 ou ultérieure (LGPLv3 +)