[asterisk-dev] sdpversion handling

Freddi Hansen fh at danovation.dk
Thu Nov 12 10:43:41 CST 2009


I have a situation where I think that we are not handling things correct 
with regards to the sdpversion.

outbound INVITE to sip proxy (Siemens SurPass).
...
gets 183 with SDP back.
..
Gets 200 OK with SDP

sends ACK and BYE.    (asterisk disconnects the call on B-answer)

what happens is that the sdpversion we receive in the 183 and in the 200 
OK have same version number so we should as I understand it simply 
ignore the SDP with the 200 OK as there is no new info.
The sdpversioncheck  in process_sdp fails  and causes  the  
SIP_PENDINGBYE to be set  so outbound call  fails.
with ignoresdpversion=yes  then  this works perfect.

        case 200:       /* 200 OK on invite - someone's answering our 
call */
                if (!req->ignore && (p->invitestate != INV_CANCELLED) && 
sip_cancel_destroy(p))
                        ast_log(LOG_WARNING, "Unable to cancel SIP 
destruction.  Expect bad things.\n");
                p->authtries = 0;
                if (find_sdp(req)) {
                        if ((res = process_sdp(p, req, SDP_T38_ACCEPT)) 
&& !req->ignore) {
                                if (!reinvite)
                                        /* This 200 OK's SDP is not 
acceptable, so we need to ack, then hangup */
                                        /* For re-invites, we try to 
recover */
                                        ast_set_flag(&p->flags[0], 
SIP_PENDINGBYE);
                        }
                }
b.r.
Freddi



More information about the asterisk-dev mailing list