-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPhone_cmd.py
More file actions
73 lines (58 loc) · 2.89 KB
/
Copy pathPhone_cmd.py
File metadata and controls
73 lines (58 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import pjsua2
from datetime import datetime
import argparse
import sys
# Функция для чтения номеров из текстового файла
def read_phone_numbers(file_name):
with open(file_name, 'phone numbers.txt') as file:
numbers = file.readlines()
numbers = [number.strip() for number in numbers]
return numbers
# Функция для выполнения звонков
def make_calls(phone_numbers, call_time):
# Инициализация библиотеки SIP
pj.Lib.instance().init()
# Создание аккаунта SIP
acc_cfg = pj.AccountConfig()
acc_cfg.id = 'sip:admin@192.168.88.10' # имя пользователя и IP-адрес АТС
acc_cfg.reg_uri = 'sip:192.168.88.10' # IP-адрес АТС
acc_cfg.auth_cred = [pj.AuthCred('digest', 'admin', '@dmin!')] # ваши учетные данные
acc = pj.Account()
# Регистрация аккаунта
acc.create(acc_cfg)
acc.set_registration(True)
# Логирование результатов звонков в файл
log_file = open('call_log.txt', 'a') # Создание файла или открытие для добавления результатов
log_file.write(f"Звонки начаты в {call_time}:\n")
# Инициирование звонков для каждого номера из файла после указанного времени
for number in phone_numbers:
if datetime.now() < call_time: # Проверка времени звонка
break
call = acc.make_call('sip:' + number + '@192.168.88.10') # Замените на номер, на который хотите позвонить
log_file.write(f"Вызов {number}: ")
while True:
pj.Lib.instance().handle_events(10) # Обработка событий
call_state = call.info().state_text
log_file.write(f"{call_state}... ")
if call_state == 'DISCONNECTED':
log_file.write('\n')
break
# Закрытие файла лога
log_file.close()
# Завершение работы
acc.delete()
pj.Lib.instance().destroy()
def main():
parser = argparse.ArgumentParser(description='Автоматический звонок по списку номеров в определенное время')
parser.add_argument('file', help='phone numbers.txt')
parser.add_argument('file', help='time.txt')
args = parser.parse_args()
phone_numbers = read_phone_numbers(args.file)
try:
call_time = datetime.strptime(args.time, "%H:%M %Y-%m-%d")
except ValueError:
print("Неверный формат времени! Используйте ЧЧ:ММ ГГГГ-ММ-ДД")
sys.exit(1)
make_calls(phone_numbers, call_time)
if __name__ == '__main__':
main()