FreeCalypso > hg > themwi-system-sw
annotate sip-manual-out/rtp_tx.c @ 259:9f96e5b14755
sip-out: implement E911 special handling
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Tue, 15 Aug 2023 11:28:30 -0800 | 
| parents | b3aeacc5722a | 
| children | 
| rev | line source | 
|---|---|
| 192 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 1 /* | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 2 * In this module we implement outgoing RTP stream generation. | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 3 */ | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 4 | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 5 #include <sys/types.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 6 #include <sys/socket.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 7 #include <sys/time.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 8 #include <netinet/in.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 9 #include <stdio.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 10 #include <stdint.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 11 #include <stdlib.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 12 #include <string.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 13 #include <strings.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 14 #include <unistd.h> | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 15 #include "../include/tmgw_const.h" | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 16 #include "../include/rtp_defs.h" | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 17 #include "../libutil/osmo_bits.h" | 
| 192 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 18 | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 19 extern struct sockaddr_in rtp_local_addr, rtp_remote_addr; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 20 extern int rtp_udp_fd, rtcp_udp_fd, pcma_selected; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 21 extern struct timeval cur_event_time; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 22 | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 23 static uint32_t rtp_ssrc; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 24 static uint32_t rtp_out_ts; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 25 static uint16_t rtp_out_seq; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 26 | 
| 211 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 27 static uint8_t pcm_fill_octet; | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 28 | 
| 201 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 29 static uint16_t tfo_fill_buf[9], tfo_req_buf[7]; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 30 static uint16_t *is_out_ptr; | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 31 static unsigned is_out_count; | 
| 202 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 32 static int tfo_stop_req; | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 33 | 
| 192 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 34 void | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 35 assign_rtpout_ssrc() | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 36 { | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 37 rtp_ssrc = cur_event_time.tv_sec ^ cur_event_time.tv_usec ^ getpid(); | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 38 } | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 39 | 
| 201 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 40 void | 
| 211 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 41 init_pcm_fill_octet() | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 42 { | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 43 if (pcma_selected) | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 44 pcm_fill_octet = 0xD5; | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 45 else | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 46 pcm_fill_octet = 0xFF; | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 47 } | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 48 | 
| 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 49 void | 
| 201 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 50 prepare_tfo_fill() | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 51 { | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 52 tfo_fill_buf[0] = 0x15A; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 53 tfo_fill_buf[1] = 0x1A9; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 54 tfo_fill_buf[2] = 0x129; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 55 tfo_fill_buf[3] = 0x15A; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 56 tfo_fill_buf[4] = 0x1A9; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 57 tfo_fill_buf[5] = 0x129; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 58 tfo_fill_buf[6] = 0x15A; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 59 tfo_fill_buf[7] = 0x1A9; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 60 tfo_fill_buf[8] = 0x129; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 61 } | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 62 | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 63 static void | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 64 insert_is_msg(payload, word) | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 65 uint8_t *payload; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 66 uint16_t word; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 67 { | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 68 ubit_t is_bits[10]; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 69 uint8_t *bytep; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 70 unsigned n; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 71 | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 72 uint16_to_bits(word, is_bits, 10); | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 73 for (n = 0; n < 10; n++) { | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 74 bytep = payload + n * 16; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 75 *bytep &= 0xFE; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 76 *bytep |= is_bits[n]; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 77 } | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 78 } | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 79 | 
| 192 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 80 void | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 81 generate_rtp_packet() | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 82 { | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 83 struct rtp_packet pkt; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 84 socklen_t addrlen; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 85 | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 86 pkt.v_p_x_cc = 0x80; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 87 pkt.m_pt = pcma_selected ? PSTN_CODEC_PCMA : PSTN_CODEC_PCMU; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 88 pkt.seq = htons(rtp_out_seq++); | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 89 pkt.tstamp = htonl(rtp_out_ts); | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 90 rtp_out_ts += 160; | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 91 pkt.ssrc = rtp_ssrc; | 
| 211 
fbfa72b114e8
sip-manual-out: prep for making PCM fill octet changeable
 Mychaela Falconia <falcon@freecalypso.org> parents: 
202diff
changeset | 92 memset(pkt.payload, pcm_fill_octet, RTP_MAX_PAYLOAD); | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 93 if (is_out_count) { | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 94 insert_is_msg(pkt.payload, *is_out_ptr++); | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 95 is_out_count--; | 
| 202 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 96 if (!is_out_count && !tfo_stop_req) { | 
| 201 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 97 is_out_ptr = tfo_req_buf; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 98 is_out_count = 7; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 99 } | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 100 } | 
| 192 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 101 addrlen = sizeof(struct sockaddr_in); | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 102 sendto(rtp_udp_fd, &pkt, RTP_PACKET_SIZE_PSTN, 0, | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 103 (struct sockaddr *) &rtp_remote_addr, addrlen); | 
| 
f8a33603288f
sip-manual-out: generate outgoing RTP stream with PCM silence
 Mychaela Falconia <falcon@freecalypso.org> parents: diff
changeset | 104 } | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 105 | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 106 void | 
| 212 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 107 set_pcm_fill_octet(oct) | 
| 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 108 unsigned oct; | 
| 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 109 { | 
| 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 110 pcm_fill_octet = oct; | 
| 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 111 } | 
| 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 112 | 
| 
b3aeacc5722a
sip-manual-out: add pcm-fill command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
211diff
changeset | 113 void | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 114 send_tfo_req(sig, codec) | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 115 unsigned sig, codec; | 
| 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 116 { | 
| 201 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 117 tfo_req_buf[0] = 0x15A; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 118 tfo_req_buf[1] = 0x1A9; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 119 tfo_req_buf[2] = 0x05D; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 120 tfo_req_buf[3] = 0x14E; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 121 tfo_req_buf[4] = 0x14B; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 122 encode_tfo_ext_words(sig, codec, 0, tfo_req_buf + 5); | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 123 is_out_ptr = tfo_fill_buf; | 
| 
d3c99b41fb04
sip-manual-out TFO: rework for continuous output of TFO_REQ
 Mychaela Falconia <falcon@freecalypso.org> parents: 
195diff
changeset | 124 is_out_count = 9; | 
| 202 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 125 tfo_stop_req = 0; | 
| 195 
a3d71489672f
sip-manual-out: implement tfo-req command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
192diff
changeset | 126 } | 
| 202 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 127 | 
| 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 128 void | 
| 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 129 stop_tfo_out() | 
| 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 130 { | 
| 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 131 tfo_stop_req = 1; | 
| 
f3164f732b84
sip-manual-out: add tfo-stop command
 Mychaela Falconia <falcon@freecalypso.org> parents: 
201diff
changeset | 132 } | 
