diff sip-manual-out/sdp_in.c @ 214:10a4b0b0a239

sip-manual-out: parse SDP for all responses, not just 200
author Mychaela Falconia <falcon@freecalypso.org>
date Sat, 08 Jul 2023 13:32:32 -0800
parents fbfa72b114e8
children
line wrap: on
line diff
--- a/sip-manual-out/sdp_in.c	Sun Jun 25 14:16:53 2023 -0800
+++ b/sip-manual-out/sdp_in.c	Sat Jul 08 13:32:32 2023 -0800
@@ -17,7 +17,7 @@
 extern char *extract_to_tag();
 
 struct sockaddr_in rtp_remote_addr;
-int pcma_selected, rtp_out_enable;
+int got_sdp_answer, pcma_selected, rtp_out_enable;
 
 static
 check_sdp_present(msg)
@@ -43,10 +43,8 @@
 	struct sdp_parse sdp_parse;
 	int rc;
 
-	if (!check_sdp_present(msg)) {
-		printf("INVITE response has no SDP!\n");
+	if (!check_sdp_present(msg))
 		return;
-	}
 	rc = parse_incoming_sdp(msg->msg_body, msg->msg_body_len, &sdp_parse);
 	if (rc < 0) {
 		printf("SDP parse error: %d\n", rc);
@@ -71,6 +69,16 @@
 	rtp_remote_addr.sin_family = AF_INET;
 	rtp_remote_addr.sin_addr = sdp_parse.ip_addr;
 	rtp_remote_addr.sin_port = htons(sdp_parse.audio_port);
+	got_sdp_answer = 1;
+}
+
+void
+invite_200_rtpout()
+{
+	if (!got_sdp_answer) {
+		printf("INVITE response has no SDP!\n");
+		return;
+	}
 	rtp_out_enable = 1;
 	assign_rtpout_ssrc();
 	init_pcm_fill_octet();