Hi, At least one correction: add next line, see below >> pjsua_acc *acc = &pjsua_var.acc[call->acc_id]; Arie From: arie_velthoen@xxxxxxxxxxx To: pjsip at lists.pjsip.org Date: Mon, 15 Nov 2010 16:43:31 +0100 Subject: Re: Bug-report: Unable to create local SDP at reinvite with SRTP Hi PJSIP-maintainers, I have made a fix, which appears to work. I am not 100% sure through whether it is ok for all cases. Can you give me some comment, or if it is ok, add it to the trunk? My solution based on release 1.8.5 is as follows: In pjsua_media.c in pjsua_media_channel_create_sdp add the marked lines before the pj_assert pjsua_media_channel_create_sdp call find_audio_index ro remote-sdp. >> // Determine audio_idx from rem_sdp >> // [Code copied from pjsua_media_channel_init] >> if (rem_sdp && rem_sdp->media_count != 0) >> { >> /* Find out the candidate audio media line in SDP */ >> pj_bool_t srtp_active; >> >>#if defined(PJMEDIA_HAS_SRTP) && (PJMEDIA_HAS_SRTP != 0) >>>> pjsua_acc *acc = &pjsua_var.acc[call->acc_id]; >> srtp_active = acc->cfg.use_srtp && srtp != NULL; >>#else >> srtp_active = PJ_FALSE; >>#endif >> call->audio_idx = find_audio_index(rem_sdp, srtp_active); >> } /* Media index must have been determined before */ pj_assert(call->audio_idx != -1); Thank you, Arie From: arie_velthoen@xxxxxxxxxxx To: pjsip at lists.pjsip.org Date: Mon, 15 Nov 2010 11:31:18 +0100 Subject: Bug-report: Unable to create local SDP at reinvite with SRTP Hi PJSIP-maintainers, I have a reproducable problem with PJSUA at receiving a reinvite with 2 media-lines. At a re-INVITE with new SDP PJSUA (release 1.8.5) gives next error: 10:42:56.092 pjsua_call.c Call 0: received updated media offer 10:42:56.092 pjsua_call.c Unable to create local SDP: Invalid SDP media transport protocol (PJMEDIA_SDP_EINPROTO) [status=220036] Call scenario: First INVITE has been answered succesfully with 200, RTP is flowing Next at the re-INVITE with new remote SDP, no local SDP could be created. The remote SDP contains 2 media-lines, first one with SRTP, next without: v=0 o=- 21 21 IN IP4 192.168.9.42 s=Polycom IP Phone c=IN IP4 192.168.9.42 t=0 0 m=audio 49212 RTP/SAVP 8 0 18 96 a=crypto:55 AES_CM_128_HMAC_SHA1_80 inline:yLw6kigvfpbr6T/aPxuTHZJLz4aj65xEf2Fo/0D/ a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:96 telephone-event/8000 m=audio 49212 RTP/AVP 8 0 18 96 a=rtpmap:8 PCMA/8000 a=rtpmap:0 PCMU/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=no a=rtpmap:96 telephone-event/8000 The complete PJSUA-log is attached. I have disabled SRTP in PJSUA by the following line in config_site.h : #define PJMEDIA_HAS_SRTP 0 [Note: enabling SRTP by removing this line did not solve the problem, only gave another error "Invalid SDP media transport for SRTP (PJMEDIA_SRTP_ESDPINTRANSPORT) [status=220227]"] I found that with callstack: transport_udp.c - transport_encode_sdp transport.h - pjmedia_transport_encode_sdp pjsua_media.c - pjsua_media_channel_create_sdp pjsua_call.c - pjsua_call_on_rx_offer ?transport_udp.c - transport_encode_sdp? returns PJMEDIA_SDP_EINPROTO because it is called with media_index 0, and rem_sdp->media[media_index]->desc.transport contains ?RTP/SAVP? instead of ?RTP/AVP?. Can you give me some guidance how to solve this problem? Thank you, Aire _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip at lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org _______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip at lists.pjsip.org http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/attachments/20101115/39f4f1a9/attachment-0001.html>