FreeCalypso > hg > themwi-system-sw
comparison sip-in/mncc_handle.c @ 153:99fd4ae573ae
sip-in: split mncc_sig_out.c from mncc_handle.c
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Tue, 11 Oct 2022 16:23:44 -0800 |
parents | e499e8db8b82 |
children |
comparison
equal
deleted
inserted
replaced
152:7176dc850d7a | 153:99fd4ae573ae |
---|---|
22 static struct gsm_mncc_cause default_cause = { | 22 static struct gsm_mncc_cause default_cause = { |
23 .coding = GSM48_CAUSE_CODING_GSM, | 23 .coding = GSM48_CAUSE_CODING_GSM, |
24 .location = GSM48_CAUSE_LOC_PRN_S_LU, | 24 .location = GSM48_CAUSE_LOC_PRN_S_LU, |
25 .value = GSM48_CC_CAUSE_NORMAL_UNSPEC, | 25 .value = GSM48_CC_CAUSE_NORMAL_UNSPEC, |
26 }; | 26 }; |
27 | |
28 void | |
29 send_mncc_connect_ack(call) | |
30 struct call *call; | |
31 { | |
32 struct gsm_mncc ack; | |
33 | |
34 bzero(&ack, sizeof(struct gsm_mncc)); | |
35 ack.msg_type = MNCC_SETUP_COMPL_REQ; | |
36 ack.callref = call->mncc_callref; | |
37 send_mncc_to_gsm(&ack, sizeof(struct gsm_mncc)); | |
38 call->mncc_state = MNCC_STATE_CONNECTED; | |
39 call->overall_state = OVERALL_STATE_CONNECTED; | |
40 } | |
41 | |
42 void | |
43 mncc_dtmf_start_ok(call) | |
44 struct call *call; | |
45 { | |
46 struct gsm_mncc msg; | |
47 | |
48 bzero(&msg, sizeof(struct gsm_mncc)); | |
49 msg.msg_type = MNCC_START_DTMF_RSP; | |
50 msg.callref = call->mncc_callref; | |
51 msg.fields |= MNCC_F_KEYPAD; | |
52 msg.keypad = call->dtmf_digit; | |
53 send_mncc_to_gsm(&msg, sizeof(struct gsm_mncc)); | |
54 } | |
55 | |
56 void | |
57 mncc_dtmf_start_err(call) | |
58 struct call *call; | |
59 { | |
60 struct gsm_mncc msg; | |
61 | |
62 bzero(&msg, sizeof(struct gsm_mncc)); | |
63 msg.msg_type = MNCC_START_DTMF_REJ; | |
64 msg.callref = call->mncc_callref; | |
65 mncc_set_cause(&msg, GSM48_CAUSE_LOC_PRN_S_LU, | |
66 GSM48_CC_CAUSE_PROTO_ERR); | |
67 send_mncc_to_gsm(&msg, sizeof(struct gsm_mncc)); | |
68 } | |
69 | |
70 void | |
71 mncc_dtmf_stop_ok(call) | |
72 struct call *call; | |
73 { | |
74 struct gsm_mncc msg; | |
75 | |
76 bzero(&msg, sizeof(struct gsm_mncc)); | |
77 msg.msg_type = MNCC_STOP_DTMF_RSP; | |
78 msg.callref = call->mncc_callref; | |
79 send_mncc_to_gsm(&msg, sizeof(struct gsm_mncc)); | |
80 } | |
81 | |
82 void | |
83 mncc_send_hold_ack(call) | |
84 struct call *call; | |
85 { | |
86 struct gsm_mncc msg; | |
87 | |
88 bzero(&msg, sizeof(struct gsm_mncc)); | |
89 msg.msg_type = MNCC_HOLD_CNF; | |
90 msg.callref = call->mncc_callref; | |
91 send_mncc_to_gsm(&msg, sizeof(struct gsm_mncc)); | |
92 } | |
93 | |
94 void | |
95 mncc_send_retrieve_ack(call) | |
96 struct call *call; | |
97 { | |
98 struct gsm_mncc msg; | |
99 | |
100 bzero(&msg, sizeof(struct gsm_mncc)); | |
101 msg.msg_type = MNCC_RETRIEVE_CNF; | |
102 msg.callref = call->mncc_callref; | |
103 send_mncc_to_gsm(&msg, sizeof(struct gsm_mncc)); | |
104 } | |
105 | 27 |
106 static void | 28 static void |
107 send_rtp_connect(call) | 29 send_rtp_connect(call) |
108 struct call *call; | 30 struct call *call; |
109 { | 31 { |