import socket
import ssl
//Создание TCP-соединения:
def create_tcp_connection(host, port):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
return s
//Создание TLS-соединения:
def create_tls_connection(host, port):
context = ssl.create_default_context()
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
conn = context.wrap_socket(s, server_hostname=host)
conn.connect((host, port))
return conn
//Модификация svmap для использования TCP/TLS:
//Пример изменения функции, которая работает с UDP:
def send_sip_request(host, port, use_tls=False):
if use_tls:
conn = create_tls_connection(host, port)
else:
conn = create_tcp_connection(host, port)
sip_request = "OPTIONS sip:100@{} SIP/2.0\r\n".format(host)
sip_request += "Via: SIP/2.0/{} {}:{};branch=z9hG4bK776asdhds\r\n".format(
'TCP' if use_tls else 'UDP', host, port)
sip_request += "Max-Forwards: 70\r\n"
sip_request += "From: <sip:100@{}>;tag=456248\r\n".format(host)
sip_request += "To: <sip:100@{}>\r\n".format(host)
sip_request += "Call-ID: 843817637684230@{}\r\n".format(host)
sip_request += "CSeq: 1 OPTIONS\r\n"
sip_request += "Contact: <sip:100@{}>\r\n".format(host)
sip_request += "Accept: application/sdp\r\n"
sip_request += "Content-Length: 0\r\n\r\n"
conn.sendall(sip_request.encode('utf-8'))
response = conn.recv(4096)
conn.close()
return response