FreeCalypso > hg > themwi-system-sw
view mtctest/disconnect.c @ 152:7176dc850d7a
sip-in hold/retr error handling: simply send BYE
Because we know that the SIP state is CONNECTED at the time of any
such error event, we can call initiate_bye() instead of disconnect_sip(),
and thereby get rid of struct gsm_mncc_cause which will never be used
in this scenario anyway.
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Oct 2022 16:11:21 -0800 |
parents | cc0e1c6e33c3 |
children |
line wrap: on
line source
/* * In this module we implement the sending of MNCC_DISC_REQ, * signaling a caller-requested disconnect aka hang-up. * It is the graceful way of signaling disconnect, * as opposed to simply killing the test call process with ^C * and letting themwi-mncc handle the broken socket. */ #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> #include <stdint.h> #include <stdlib.h> #include <string.h> #include <strings.h> #include "../include/mncc.h" #include "../include/gsm48_const.h" int disconnect_mode; send_disconnect_req() { struct gsm_mncc msg; printf("Sending disconnect request\n"); bzero(&msg, sizeof(struct gsm_mncc)); msg.msg_type = MNCC_DISC_REQ; msg.callref = 1; mncc_set_cause(&msg, GSM48_CAUSE_LOC_USER, GSM48_CC_CAUSE_NORM_CALL_CLEAR); send_mncc_to_gsm(&msg, sizeof(struct gsm_mncc)); disconnect_mode = 1; }