私はlibjingle_peerconnection
とココアポッドがインストールされています。iOSのwebRTC:RTCPeerConnection.setRemoteDescription()がSDP応答を送信できませんでした
Error Domain=RTCSDPError Code=-1 "(null)" UserInfo={error=Failed to set remote answer sdp: Called in wrong state: STATE_INIT}
:私は私の呼び出し側からサーバーをシグナリングによりSDP提供を受けるとき、私はエラーでRTCSessionDescriptionDelegate
peerConnection:didSetSessionDescriptionWithError:
をトリガーリモート説明、としてこれを設定しようとしています。
私のコードは次のとおりです。
- (void)transportChanell:(TransportChannel *)channel didReceivedSignalWithSessionDescription:(NSString *)sessionDescription withType:(NSString *)type {
RTCSessionDescription *remoteDesc = [[RTCSessionDescription alloc] initWithType:@"answer" sdp:sessionDescription];
[_peerConnection setRemoteDescriptionWithDelegate:self sessionDescription:remoteDesc];
}
私が問題に非常に多くのことを調査し、のWebRTCのソースコードで場所を見つけ、私が思うように、このエラーがBadRemoteSdp(type, BadStateErrMsg(state()), err_desc);
から来ているとWebRtcSession
のすべての可能な状態がありました:
STATE_INIT = 0,
STATE_SENTOFFER, // Sent offer, waiting for answer.
STATE_RECEIVEDOFFER, // Received an offer. Need to send answer.
STATE_SENTPRANSWER, // Sent provisional answer. Need to send answer.
STATE_RECEIVEDPRANSWER, // Received provisional answer, waiting for answer.
STATE_INPROGRESS, // Offer/answer exchange completed.
STATE_CLOSED, // Close() was called.
どのような提案がありますか、私は発信者または着信側で何が欠けていますか?
私はすべてを明確に記述して欲しいと思います。発信者から申し出を受けたとき、問題は被呼側にあります。呼び出し側のストリームを呼び出し側に見たいだけで、呼び出し側を呼び出し元にストリームを送信しないようにするにはどうしたらよいですか?着メロを作成する必要がありますか、または私はただ受け取ったオファー(これは私が今試しているもの)に答えを送るべきです。 –
私は 'setLocalDescription'を呼び出すことを忘れてしまったでしょう - 私は成功したシグナリングサーバを通してSDPオファーを送ることができませんでした。しかし、私がすでに言ったように、私は呼び出し側でのみオファーを生成し、失敗した呼び出し側から回答を得たいと考えています。私は間違ったことをしていますか? –