comparison sip-in/invite.c @ 66:5beb51de1bae

sip-in: got as far as propagating GSM CC CONNECT to INVITE 200
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 18 Sep 2022 16:17:31 -0800
parents 7c0309df59f8
children 21276f045026
comparison
equal deleted inserted replaced
65:7c0309df59f8 66:5beb51de1bae
10 #include <stdint.h> 10 #include <stdint.h>
11 #include <stdlib.h> 11 #include <stdlib.h>
12 #include <string.h> 12 #include <string.h>
13 #include <strings.h> 13 #include <strings.h>
14 #include <syslog.h> 14 #include <syslog.h>
15 #include "../include/gsm48_const.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 "../libsip/grok_from.h" 18 #include "../libsip/grok_from.h"
18 #include "../libsip/req_supp.h" 19 #include "../libsip/req_supp.h"
19 #include "../libsip/sdp.h" 20 #include "../libsip/sdp.h"
363 sip_tx_packet(&resp, &call->udp_sin); 364 sip_tx_packet(&resp, &call->udp_sin);
364 call->sip_state = SIP_STATE_RINGING; 365 call->sip_state = SIP_STATE_RINGING;
365 } 366 }
366 367
367 void 368 void
369 signal_invite_200(call)
370 struct call *call;
371 {
372 struct sip_msg_out resp;
373 int rc;
374
375 rc = fill_invite_200_resp(&resp, call);
376 if (rc < 0) {
377 syslog(LOG_ERR, "INVITE 200 response length exceeded");
378 call->sip_state = SIP_STATE_MSG_SIZE_ERR;
379 call->overall_state = OVERALL_STATE_TEARDOWN;
380 disconnect_mncc(call, GSM48_CAUSE_LOC_PRN_S_LU,
381 GSM48_CC_CAUSE_INTERWORKING);
382 disconnect_tmgw(call);
383 /* TODO: transition from TEARDOWN to DEAD_SIP */
384 return;
385 }
386 sip_tx_packet(&resp, &call->udp_sin);
387 call->sip_state = SIP_STATE_INVITE_200;
388 call->sip_tx_count = 1;
389 }
390
391 void
368 signal_invite_error(call) 392 signal_invite_error(call)
369 struct call *call; 393 struct call *call;
370 { 394 {
371 struct sip_msg_out resp; 395 struct sip_msg_out resp;
372 int rc; 396 int rc;