Я довольно новичок в webrtc и довольно опытен в iOS.
У нас есть медиасервер на AWS (все порты открыты) с клиентом kurento one2one . Все работает хорошо, когда я звоню с рабочего стола на рабочий стол. когда я звоню с настольного компьютера на iOS, он работает (т.е. входящие звонки на iOS).
Проблема в том, что при исходящем звонке с iOS на рабочий стол он не работает.
Ниже приведены журналы сервера, поэтому я думаю, что вызов подключается ...
Полученное сообщение: {"id": "comingCall "," from ":" qqq "}
spec: {"audio": true, "video": {"width": 640, "framerate": 15}}
chrome: {"audio": true, "video": {"необязательный": [{"minWidth": 640}, {"maxWidth": 640}, {"minFramerate": 15}, {"maxFramerate" : 15}]}}
Отправка сообщения: {"id": "comingCallResponse "," from ":" qqq "," callResponse ":" accept "," sdpOffer ":” огромный текст, удален ”}
Полученное сообщение: {"id": "startCommunication", "sdpAnswer": "огромный текст, удалено"}} 1020 *
Когда нажимается звонок, я делаю ниже на iOS:
[peerConnection offerForConstraints:[self defaultOfferConstraints] completionHandler:^(RTCSessionDescription * _Nullable sdp, NSError * _Nullable error) {
[peerConnection setLocalDescription:sdp completionHandler:^(NSError * _Nullable error) {
NSLog(@"%@",error.description);
}];
[[NSOperationQueue mainQueue] addOperationWithBlock:^ {
NSDictionary *registerMessage = @{
@"id": @"call",
@"from": @"qqq",
@"to": @"www",
@"sdpOffer" : sdp.description,
};
NSData *messageData = [NSJSONSerialization dataWithJSONObject:registerMessage
options:NSJSONWritingPrettyPrinted
error:nil];
NSString *messageString =
[[NSString alloc] initWithData:messageData encoding:NSUTF8StringEncoding];
[webSocket send:messageString];
}];
}];
и после получения ответа я делаю ниже,
if ([answerID isEqualToString:@"callResponse"]) {
NSString *answerRespose = [wssMessage objectForKey:@"response"];
if ([answerRespose isEqualToString:@"accepted"]) {
description = [[RTCSessionDescription alloc] initWithType:RTCSdpTypeAnswer sdp:sdpAnswer];
[peerConnection setRemoteDescription:description completionHandler:^(NSError * _Nullable error) {
}];
}
}
Я также забочусь о кандидатах ICEC ...
Поскольку входящие сообщения работают без проблем, я предполагаю, что при создании потока не было допущено никакой ошибки.
Я что-то пропускаю для исходящего звонка?