- Timestamp:
- May 20, 2015 8:46:11 AM (9 years ago)
- Location:
- pjproject/trunk/pjsip/src/pjsua-lib
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjsip/src/pjsua-lib/pjsua_call.c
r5096 r5099 3890 3890 /* Update media channel with the new SDP */ 3891 3891 status = pjsua_media_channel_update(call->index, local_sdp, remote_sdp); 3892 3893 /* If this is not the initial INVITE, don't disconnect call due to 3894 * no media after SDP negotiation. 3895 */ 3896 if (status == PJMEDIA_SDPNEG_ENOMEDIA && 3897 call->inv->state == PJSIP_INV_STATE_CONFIRMED) 3898 { 3899 status = PJ_SUCCESS; 3900 } 3901 3902 /* Disconnect call after failure in media channel update */ 3892 3903 if (status != PJ_SUCCESS) { 3893 3904 pjsua_perror(THIS_FILE, "Unable to create media session", -
pjproject/trunk/pjsip/src/pjsua-lib/pjsua_media.c
r5048 r5099 2650 2650 "for call_id %d media %d", 2651 2651 call_id, mi)); 2652 continue;2652 goto on_check_med_status; 2653 2653 } 2654 2654 … … 2708 2708 "for call_id %d media %d", 2709 2709 call_id, mi)); 2710 continue;2710 goto on_check_med_status; 2711 2711 } 2712 2712 status = pjmedia_transport_media_create(call_med->tp, … … 2718 2718 "for call_id %d media %d", 2719 2719 call_id, mi)); 2720 continue;2720 goto on_check_med_status; 2721 2721 } 2722 2722 } … … 2731 2731 "for call_id %d media %d", 2732 2732 call_id, mi)); 2733 continue;2733 goto on_check_med_status; 2734 2734 } 2735 2735 … … 2756 2756 "for call_id %d media %d", 2757 2757 call_id, mi)); 2758 continue;2758 goto on_check_med_status; 2759 2759 } 2760 2760 } … … 2826 2826 "for call_id %d media %d", 2827 2827 call_id, mi)); 2828 continue;2828 goto on_check_med_status; 2829 2829 } 2830 2830 … … 2861 2861 "for call_id %d media %d", 2862 2862 call_id, mi)); 2863 continue;2863 goto on_check_med_status; 2864 2864 } 2865 2865 … … 2886 2886 "for call_id %d media %d", 2887 2887 call_id, mi)); 2888 continue;2888 goto on_check_med_status; 2889 2889 } 2890 2890 } … … 2951 2951 } 2952 2952 2953 on_check_med_status: 2953 2954 if (status != PJ_SUCCESS) { 2955 /* Stop stream */ 2956 stop_media_stream(call, mi); 2957 2958 /* Close the media transport */ 2959 if (call_med->tp) { 2960 pjsua_set_media_tp_state(call_med, PJSUA_MED_TP_NULL); 2961 pjmedia_transport_close(call_med->tp); 2962 call_med->tp = call_med->tp_orig = NULL; 2963 } 2964 2965 /* Update media states */ 2966 call_med->state = PJSUA_CALL_MEDIA_ERROR; 2967 call_med->dir = PJMEDIA_DIR_NONE; 2968 2954 2969 PJ_PERROR(1,(THIS_FILE, status, "Error updating media call%02d:%d", 2955 2970 call_id, mi)); 2956 2971 } else { 2957 got_media = PJ_TRUE; 2972 /* Only set 'got_media' flag if this media is not disabled */ 2973 if (local_sdp->media[mi]->desc.port != 0) 2974 got_media = PJ_TRUE; 2958 2975 } 2959 2976 }
Note: See TracChangeset
for help on using the changeset viewer.