FreeCalypso > hg > themwi-system-sw
view sip-out/shutdown.c @ 176:f5c4f9a764be
osmo-bts-rtp-bfi.patch: updated version
This version of the osmo-bts patch sets the TAF bit correctly
in generated RTP BFI packets, correctly generates RTP BFI in the
case of FACCH stealing on sysmoBTS, and removes one EFR-specific
bogon from sysmoBTS code.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Fri, 17 Feb 2023 18:27:03 -0800 |
parents | baaa6c1a3d3b |
children |
line wrap: on
line source
/* * In this module we handle the scenarios of themwi-mncc and/or themwi-mgw * shutting down while we are connected to them. In both scenarios we * terminate all active calls (in the case of MNCC socket closing, only * those calls that came on that socket), but our themwi-sip-out process * itself stays running. This way once the other required processes restart, * outbound calls will start working once again, without needing to restart * themwi-sip-out. */ #include <sys/types.h> #include <sys/socket.h> #include <sys/time.h> #include <netinet/in.h> #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include <syslog.h> #include "../include/mncc.h" #include "../include/gsm48_const.h" #include "../include/out_routes.h" #include "call.h" extern struct call *call_list; void shutdown_mncc_socket(mncc) struct mncc_conn *mncc; { struct call *call; for (call = call_list; call; call = call->next) { if (call->mncc != mncc) continue; call->mncc = 0; if (call->overall_state < OVERALL_STATE_TEARDOWN) { call->overall_state = OVERALL_STATE_TEARDOWN; disconnect_tmgw(call); disconnect_sip(call); } check_dead_call(call); } } void shutdown_mgw_conn() { struct call *call; for (call = call_list; call; call = call->next) { call->mgw_state = MGW_STATE_NO_EXIST; call->mgw_xact = 0; if (call->overall_state < OVERALL_STATE_TEARDOWN) { call->overall_state = OVERALL_STATE_TEARDOWN; disconnect_mncc(call, GSM48_CAUSE_LOC_PRN_S_LU, GSM48_CC_CAUSE_NETWORK_OOO); disconnect_sip(call); } check_dead_call(call); } }