Клиент PyVoIP не отвечает на SIP OPTIONS, отправленный SIP-серверомPython

Программы на Python
Anonymous
Клиент PyVoIP не отвечает на SIP OPTIONS, отправленный SIP-сервером

Сообщение Anonymous »

Я пытаюсь создать SIP-клиент, который регистрирует все полученные вызовы.
Я использую Python с библиотекой pyVoIP, вот код:

Код: Выделить всё

from pyVoIP.VoIP import VoIPPhone, CallState, PhoneStatus, InvalidStateError
import time
import datetime

def answer(call): # This will be your callback function for when you receive a phone call

try:
print(call.state)
anum = call.request.headers["From"]["number"]
print(','+ datetime.datetime.now().strftime("%Y%m%d")+', '+ datetime.datetime.now().strftime("%X")+', '+ datetime.datetime.now().strftime("%f")+',,,,,,,'+anum+',0662279775,,,')
open('tmp.csv', 'w+')
f.write(','+ datetime.datetime.now().strftime("%Y%m%d")+', '+ datetime.datetime.now().strftime("%X")+', '+ datetime.datetime.now().strftime("%f")+',,,,,,,'+anum+',0662279775,,,')
print(anum)
call.answer()
call.hangup()
except InvalidStateError:
print(InvalidStateError)
pass

if __name__ == "__main__":
vp = VoIPPhone('79.98.45.133',5060,'06xxxxx','xxxxxxxx',callCallback=answer)
print('VOIP PHONE INIZIALIZATED: status = '+str(vp._status))
vp.start()
print('VoIP PHONE STARTED: status = '+str(vp._status))
while(vp._status==PhoneStatus.REGISTERING or vp._status==PhoneStatus.INACTIVE):
continue
print('WHILE LOOP STATUS ENDED: status = '+str(vp._status))
input('Press ENTER to stop')
time.sleep(5)
vp.stop()
print('STOPPED VOIP PHONE: status = '+str(vp._status))
time.sleep(5)
Фаза регистрации прошла успешно, клиент может зарегистрироваться на SIP-сервере, поэтому я получаю:

Код: Выделить всё

WHILE LOOP STATUS ENDED: status = PhoneStatus.REGISTERED
Когда я звоню на номер, связанный с учетной записью SIP, иногда клиент принимает вызов, а иногда нет.
Я отследил пакет SIP, полученный клиентом клиент и я вижу, что SIP-сервер отправляет сообщения OPTIONS клиенту, но клиент не отвечает на них.
Я думаю, в этом проблема: сервер не получает ответа на сообщения OPTIONS, поэтому он думает, что клиент не работает, поэтому не пересылает вызов клиенту.
Есть ли способ настроить pyVoIP для ответа на сообщения OPTIONS?

Подробнее здесь: https://stackoverflow.com/questions/790 ... sip-server

Вернуться в «Python»