FreeCalypso > hg > themwi-system-sw
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; |