comparison sip-in/sip_ack.c @ 109:9b87894704eb

sip-in: first step toward final call clearing
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 28 Sep 2022 16:32:13 -0800
parents 9e9034ef476c
children c1c94b7fc2e2
comparison
equal deleted inserted replaced
108:0d6435808bcd 109:9b87894704eb
3 * in the 3-way INVITE handshake. 3 * in the 3-way INVITE handshake.
4 */ 4 */
5 5
6 #include <sys/types.h> 6 #include <sys/types.h>
7 #include <sys/socket.h> 7 #include <sys/socket.h>
8 #include <sys/time.h>
8 #include <netinet/in.h> 9 #include <netinet/in.h>
9 #include <stdio.h> 10 #include <stdio.h>
10 #include <stdint.h> 11 #include <stdint.h>
11 #include <stdlib.h> 12 #include <stdlib.h>
12 #include <string.h> 13 #include <string.h>
15 #include "../libsip/parse.h" 16 #include "../libsip/parse.h"
16 #include "../libsip/uas_basic.h" 17 #include "../libsip/uas_basic.h"
17 #include "call.h" 18 #include "call.h"
18 19
19 extern struct call *find_call_by_sip_id(); 20 extern struct call *find_call_by_sip_id();
21
22 extern unsigned sip_linger_acked;
20 23
21 void 24 void
22 handle_sip_ack(req, ess, sin) 25 handle_sip_ack(req, ess, sin)
23 struct sip_pkt_rx *req; 26 struct sip_pkt_rx *req;
24 struct uas_parse_hdrs *ess; 27 struct uas_parse_hdrs *ess;
49 exit(1); 52 exit(1);
50 } 53 }
51 break; 54 break;
52 case SIP_STATE_INVITE_ERR: 55 case SIP_STATE_INVITE_ERR:
53 call->sip_state = SIP_STATE_ENDED; 56 call->sip_state = SIP_STATE_ENDED;
57 sip_mark_end_time(call, sip_linger_acked);
54 break; 58 break;
55 } 59 }
56 } 60 }