Быстрое подключение iOS и РЕГИСТРАЦИЯ на SIP-сервере
Используя URLSessionWebSocketTask, я могу подключиться к моему SIP-серверу следующим образом:
var request: URLRequest = URLRequest(url: url)
request.addValue("websocket", forHTTPHeaderField: "Upgrade")
request.addValue("sip", forHTTPHeaderField: "Sec-WebSocket-Protocol")
request.addValue("permessage-deflate; client_max_window_bits", forHTTPHeaderField: "Sec-WebSocket-Extensions")
request.addValue("13", forHTTPHeaderField: "Sec-WebSocket-Version")
request.addValue(key, forHTTPHeaderField: "Sec-WebSocket-Key")
request.httpMethod = "GET"
socketTask = session?.webSocketTask(with: request)
socketTask?.resume()
а затем, когда срабатывает метод делегата ....
func urlSession(_ session: URLSession, webSocketTask: URLSessionWebSocketTask, didOpenWithProtocol protocol: String?) {}
Я отправляю это сообщение РЕГИСТРАТОР:
REGISTER sip:\(host) SIP/2.0
Via: SIP/2.0/WSS ij5094obipus.invalid;branch=\(branch)
Max-Forwards: 69
To: <sip:\(username)@\(host)>
From: <sip:\(username)@\(host)>;tag=\(tag)
Call-ID: \(callID)
CSeq: 2 REGISTER
Contact: <sip:pqqr773g@3tb56aj0gkb8.invalid;transport=ws>;+sip.ice;reg-id=1;+sip.instance="<urn:uuid:\(uuid)>";expires=60
Expires: 60
Allow: INVITE,ACK,CANCEL,BYE,UPDATE,MESSAGE,OPTIONS,REFER,INFO,NOTIFY
Supported: path,gruu,outbound
User-Agent: CoNameWebRTC-v1.5
Content-Length: 0
Но на самом деле я никогда не получаю правильное сообщение 401 от сервера - я не получаю сообщений от сервера, а затем мой веб-сокет закрывается через 30 секунд.
Кто-нибудь знает, как использовать SIP-сервер с URLSessionWebSocketTask?