2017-02-12 3 views
2

PJSIP를 사용하여 iOS 응용 프로그램에서 SRTP를 실행하려고합니다. TLS가 작동하고 SRTP없이 전화를 걸고받을 수 있습니다. 그러나 SRTP를 사용하면 INVITE에서이 홀수 488 오류가 발생합니다. 미디어를 초기화 할 수 없습니다.SRTP 문제 : PJSIP 미디어 채널 초기화 오류 : 허용되지 않습니다. [status = 170488]

나는 코덱에 대해 언급 한 다른 기사를 읽었습니다. 그러나 나는 나의 별표 서버에 의해 사용되는 코드와 나의 iOS 응용 프로그램에서 PJSIP 라이브러리로 컴파일 된 코드가 동일하다는 것을 보증했다. 내가 여기서 본 유일한 사실은 내가 암호화를 사용할 수 있고 PJSIP가 그것을 좋아하지 않는다는 것이다. 이견있는 사람?

INVITE sip:[REDACTED]@[REDACTED]:47229;transport=TLS;ob SIP/2.0 

Via: SIP/2.0/TLS [REDACTED]:5161;rport;branch=z9hG4bKPj8ea1a332-0748-438f-ae74-5d17b038891d;alias 

From: "Test" <sip:[email protected]>;tag=7c3663cb-b5f5-4762-8526-8425d18b2466 

To: <sip:[REDACTED]@[REDACTED];ob> 

Contact: <sip:[email protected][REDACTED]:5161;transport=TLS> 

Call-ID: f454ef36-01ea-4f29-9482-4a10768bf1b7 

CSeq: 24942 INVITE 

Allow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REGISTER, MESSAGE, REFER 

Supported: 100rel, timer, replaces, norefersub, path 

Session-Expires: 1800 

Min-SE: 90 

Max-Forwards: 70 

User-Agent: FPBX-AsteriskNOW-13.0.190.12(13.13.1) 

Content-Type: application/sdp 

Content-Length: 398 



v=0 

o=- 1582453973 1582453973 IN IP4 172.31.18.138 

s=Asterisk 

c=IN IP4 [REDACTED] 

t=0 0 

m=audio 11410 RTP/AVP 3 110 9 97 101 

a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:84m7hqGvMjTU21xzkhBS3RQpQQjJ+aep0VwSlhx+ 

a=rtpmap:3 GSM/8000 

a=rtpmap:110 speex/8000 

a=rtpmap:9 G722/8000 

a=rtpmap:97 iLBC/8000 

a=rtpmap:101 telephone-event/8000 

a=fmtp:101 0-16 

a=ptime:20 

a=maxptime:60 

a=sendrecv 


--end msg-- 
19:10:11.601 pjsua_call.c .Incoming Request msg INVITE/cseq=24942 (rdata0x1421f0540) 
19:10:11.603 tsx0x1421fe0a8 ...Transaction created for Request msg INVITE/cseq=24942 (rdata0x1421f0540) 
19:10:11.603 tsx0x1421fe0a8 ..Incoming Request msg INVITE/cseq=24942 (rdata0x1421f0540) in state Null 
19:10:11.603 tsx0x1421fe0a8 ...State changed from Null to Trying, event=RX_MSG 
19:10:11.603 dlg0x1421fd8a8 ....Transaction tsx0x1421fe0a8 state changed to Trying 
19:10:11.603 dlg0x1421fd8a8 ..UAS dialog created 
19:10:11.603 dlg0x1421fd8a8 ..Module mod-invite added as dialog usage, data=0x141de7588 
19:10:11.603 dlg0x1421fd8a8 ...Session count inc to 3 by mod-invite 
19:10:11.603 inv0x1421fd8a8 ..UAS invite session created for dialog dlg0x1421fd8a8 
19:10:11.603 dlg0x1421fd8a8 ...Session count inc to 3 by mod-pjsua 
19:10:11.603 pjsua_media.c ..Call 0: initializing media.. 
19:10:11.603 pjsua_call.c ..Error initializing media channel: Not Acceptable Here [status=170488] 
19:10:11.604  endpoint ..Response msg 488/INVITE/cseq=24942 (tdta0x1421fe800) created 
19:10:11.604 dlg0x1421fd8a8 ...Sending Response msg 488/INVITE/cseq=24942 (tdta0x1421fe800) 
19:10:11.606 tsx0x1421fe0a8 ...Sending Response msg 488/INVITE/cseq=24942 (tdta0x1421fe800) in state Trying 
19:10:11.606 pjsua_core.c ....TX 429 bytes Response msg 488/INVITE/cseq=24942 (tdta0x1421fe800) to TLS [REDACTED]:5161: 
SIP/2.0 488 Not Acceptable Here 

Via: SIP/2.0/TLS [REDACTED]:5161;rport=5161;received=[REDACTED];branch=z9hG4bKPj8ea1a332-0748-438f-ae74-5d17b038891d;alias 

Call-ID: f454ef36-01ea-4f29-9482-4a10768bf1b7 

From: "Test" <sip:[email protected]>;tag=7c3663cb-b5f5-4762-8526-8425d18b2466 

To: <sip:[REDACTED]@[REDACTED];ob>;tag=5oFGceZO4ZaKpLFEg7piOrM7IV2yeDLT 

CSeq: 24942 INVITE 

Content-Length: 0 




--end msg-- 

답변

1

다른 누구에게나이 문제가있는 경우. 이 문제가 해결 된 것을 알려 드리겠습니다.

내 끝점 (pjsip show endpoint myendpoint) 설정에있는 별표에서 media_encryption_optimistic을 true로 설정했습니다. 내가 이것을 거짓으로 설정하면 모든 것이 작동하기 시작합니다.

별표를 사용하는 방법이이 기능을 사용하도록 명시된 이유는 확실하지 않습니다. 그러나 나는 실제로 트래픽이 실제 음성 데이터를 확인하기 위해 wireshark를 사용하여 암호화되었음을 확인했습니다.

이것이 왜 이것이 false로 설정되어야 하는지를 알면 누가 이것을 더 잘 이해하는 데 도움이 될 것입니다. 그러나 지금 당장 나는 운행하고있다.

0

488/불가 여기

나는 또한 내 서버와 같은 문제를 얻을 atlast 내가 코덱, 바로 코덱이나 비활성화 코덱을 사용하기 때문에 그것이 알고 지내는 솔루션 을 찾아 당신에게 좋은 작품.