comparison sip-manual-out/uac.c @ 73:d7b6b8973a83

sip-manual-out: handle To tag
author Mychaela Falconia <falcon@freecalypso.org>
date Tue, 20 Sep 2022 10:58:32 -0800
parents d74b545a3c2a
children a4450ae8fd09
comparison
equal deleted inserted replaced
72:9ca6f0708237 73:d7b6b8973a83
14 #include "../libsip/out_msg.h" 14 #include "../libsip/out_msg.h"
15 15
16 #define MAX_TO_TAG 63 16 #define MAX_TO_TAG 63
17 17
18 extern char *get_single_header(); 18 extern char *get_single_header();
19 extern char *extract_to_tag();
19 20
20 extern struct in_addr sip_bind_ip; 21 extern struct in_addr sip_bind_ip;
21 extern unsigned sip_bind_port; 22 extern unsigned sip_bind_port;
22 extern char call_id[], from_uri[], to_uri[]; 23 extern char call_id[], from_uri[], to_uri[];
23 24
86 static void 87 static void
87 handle_invite_response(msg, sin) 88 handle_invite_response(msg, sin)
88 struct sip_pkt_rx *msg; 89 struct sip_pkt_rx *msg;
89 struct sockaddr_in *sin; 90 struct sockaddr_in *sin;
90 { 91 {
92 char *tag;
93
91 printf("Response to INVITE: %s\n", msg->status_str); 94 printf("Response to INVITE: %s\n", msg->status_str);
95 tag = extract_to_tag(msg, to_uri);
96 if (tag) {
97 printf("To tag: %s\n", tag);
98 if (strlen(tag) <= MAX_TO_TAG)
99 strcpy(to_tag, tag);
100 else
101 printf("To tag exceeds length limit!\n");
102 }
92 if (msg->status_code >= 200) { 103 if (msg->status_code >= 200) {
93 printf("Sending ACK\n"); 104 printf("Sending ACK\n");
94 send_ack(sin); 105 send_ack(sin);
95 } 106 }
96 } 107 }