#include "asterisk.h"
#include <signal.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
#include <search.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <dirent.h>
#include <ctype.h>
#include <sys/time.h>
#include <sys/file.h>
#include <sys/ioctl.h>
#include <sys/io.h>
#include <sys/vfs.h>
#include <math.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <termios.h>
#include "asterisk/utils.h"
#include "asterisk/lock.h"
#include "asterisk/file.h"
#include "asterisk/logger.h"
#include "asterisk/channel.h"
#include "asterisk/callerid.h"
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/translate.h"
#include "asterisk/features.h"
#include "asterisk/options.h"
#include "asterisk/cli.h"
#include "asterisk/config.h"
#include "asterisk/say.h"
#include "asterisk/localtime.h"
#include "asterisk/cdr.h"
#include "asterisk/dahdi_compat.h"
#include "asterisk/tonezone_compat.h"
Include dependency graph for app_rpt.c:

Go to the source code of this file.
Data Structures | |
| struct | function_table_tag |
| struct | morse_bits |
| struct | nodelog |
| struct | rpt |
| struct | rpt_chan_stat |
| struct | rpt_link |
| struct | rpt_lstat |
| struct | rpt_tele |
| struct | rpt_xlat |
| struct | sysstate |
| struct | telem_defaults |
Defines | |
| #define | ACTIONSIZE 32 |
| #define | ALLOW_LOCAL_CHANNELS |
| #define | AUTHLOGOUTTIME 25000 |
| #define | AUTHTELLTIME 7000 |
| #define | AUTHTXTIME 1000 |
| #define | DEFAULT_CIV_ADDR 0x58 |
| #define | DEFAULT_IOBASE 0x378 |
| #define | DEFAULT_MONITOR_MIN_DISK_BLOCKS 10000 |
| #define | DEFAULT_REMOTE_INACT_TIMEOUT (15 * 60) |
| #define | DEFAULT_REMOTE_TIMEOUT (60 * 60) |
| #define | DEFAULT_REMOTE_TIMEOUT_WARNING (3 * 60) |
| #define | DEFAULT_REMOTE_TIMEOUT_WARNING_FREQ 30 |
| #define | DELIMCHR ',' |
| #define | DISC_TIME 10000 |
| #define | DTMF_LOCAL_STARTTIME 500 |
| #define | DTMF_LOCAL_TIME 250 |
| #define | DTMF_TIMEOUT 3 |
| #define | ENDCHAR '#' |
| #define | EXTNODEFILE "/var/lib/asterisk/rpt_extnodes" |
| #define | EXTNODES "extnodes" |
| #define | FUNCCHAR '*' |
| #define | FUNCTDELAY 1500 |
| #define | FUNCTIONS "functions" |
| #define | HANGTIME 5000 |
| #define | IC706_PL_MEMORY_OFFSET 50 |
| #define | IDTIME 300000 |
| #define | KENWOOD_RETRIES 5 |
| #define | LINKLISTSHORTTIME 200 |
| #define | LINKLISTTIME 10000 |
| #define | MACRO "macro" |
| #define | MACROPTIME 500 |
| #define | MACROTIME 100 |
| #define | MAX_RETRIES 5 |
| #define | MAX_RETRIES_PERM 1000000000 |
| #define | MAX_STAT_LINKS 32 |
| #define | MAX_SYSSTATES 10 |
| #define | MAXCONNECTTIME 5000 |
| #define | MAXDTMF 32 |
| #define | MAXLINKLIST 512 |
| #define | MAXMACRO 2048 |
| #define | MAXNODESTR 300 |
| #define | MAXPATCHCONTEXT 100 |
| #define | MAXPEERSTR 31 |
| #define | MAXREMSTR 15 |
| #define | MAXRPTS 20 |
| #define | MAXXLAT 20 |
| #define | MAXXLATTIME 3 |
| #define | MEMORY "memory" |
| #define | MONITOR_DISK_BLOCKS_PER_MINUTE 38 |
| #define | MORSE "morse" |
| #define | MSWAIT 200 |
| #define | NODES "nodes" |
| #define | NRPTSTAT 7 |
| #define | OLDKEY |
| #define | POLITEID 30000 |
| #define | QUOTECHR 34 |
| #define | REDUNDANT_TX_TIME 2000 |
| #define | REM_SCANTIME 100 |
| #define | RETRY_TIMER_MS 5000 |
| #define | rpt_mutex_lock(x) ast_mutex_lock(x) |
| #define | rpt_mutex_unlock(x) ast_mutex_unlock(x) |
| #define | START_DELAY 2 |
| #define | TELEMETRY "telemetry" |
| #define | TELEPARAMSIZE 256 |
| #define | TOTIME 180000 |
Enumerations | |
| enum | { REM_OFF, REM_MONITOR, REM_TX } |
| enum | { ID, PROC, TERM, COMPLETE, UNKEY, REMDISC, REMALREADY, REMNOTFOUND, REMGO, CONNECTED, CONNFAIL, STATUS, TIMEOUT, ID1, STATS_TIME, STATS_VERSION, IDTALKOVER, ARB_ALPHA, TEST_TONE, REV_PATCH, TAILMSG, MACRO_NOTFOUND, MACRO_BUSY, LASTNODEKEY, FULLSTATUS, MEMNOTFOUND, INVFREQ, REMMODE, REMLOGIN, REMXXX, REMSHORTSTATUS, REMLONGSTATUS, LOGINREQ, SCAN, SCANSTAT, TUNE, SETREMOTE, TIMEOUT_WARNING, ACT_TIMEOUT_WARNING, LINKUNKEY, UNAUTHTX } |
| enum | { REM_SIMPLEX, REM_MINUS, REM_PLUS } |
| enum | { REM_LOWPWR, REM_MEDPWR, REM_HIPWR } |
| enum | { DC_INDETERMINATE, DC_REQ_FLUSH, DC_ERROR, DC_COMPLETE, DC_COMPLETEQUIET, DC_DOKEY } |
| enum | { SOURCE_RPT, SOURCE_LNK, SOURCE_RMT, SOURCE_PHONE, SOURCE_DPHONE } |
| enum | { DLY_TELEM, DLY_ID, DLY_UNKEY, DLY_CALLTERM, DLY_COMP, DLY_LINKUNKEY } |
| enum | { REM_MODE_FM, REM_MODE_USB, REM_MODE_LSB, REM_MODE_AM } |
| enum | { HF_SCAN_OFF, HF_SCAN_DOWN_SLOW, HF_SCAN_DOWN_QUICK, HF_SCAN_DOWN_FAST, HF_SCAN_UP_SLOW, HF_SCAN_UP_QUICK, HF_SCAN_UP_FAST } |
| enum | { TOP_TOP, TOP_WON, WON_BEFREAD, BEFREAD_AFTERREAD } |
Functions | |
| static void | __kickshort (struct rpt *myrpt) |
| static void | __mklinklist (struct rpt *myrpt, struct rpt_link *mylink, char *buf) |
| AST_MODULE_INFO (ASTERISK_GPL_KEY, AST_MODFLAG_DEFAULT,"Radio Repeater/Remote Base Application",.load=load_module,.unload=unload_module,.reload=reload,) | |
| AST_MUTEX_DEFINE_STATIC (nodelookuplock) | |
| AST_MUTEX_DEFINE_STATIC (nodeloglock) | |
| int | ast_playtones_start (struct ast_channel *chan, int vol, const char *tonelist, int interruptible) |
| void | ast_playtones_stop (struct ast_channel *chan) |
| static int | attempt_reconnect (struct rpt *myrpt, struct rpt_link *l) |
| static int | check_freq (struct rpt *myrpt, int m, int d, int *defmode) |
| static int | check_freq_ft897 (int m, int d, int *defmode) |
| static int | check_freq_ic706 (int m, int d, int *defmode) |
| static int | check_freq_kenwood (int m, int d, int *defmode) |
| static int | check_freq_rbi (int m, int d, int *defmode) |
| static char | check_tx_freq (struct rpt *myrpt) |
| static int | civ_cmd (struct rpt *myrpt, unsigned char *cmd, int cmdlen) |
| static int | closerem (struct rpt *myrpt) |
| static int | closerem_ft897 (struct rpt *myrpt) |
| static int | collect_function_digits (struct rpt *myrpt, char *digits, int command_source, struct rpt_link *mylink) |
| static int | connect_link (struct rpt *myrpt, char *node, int mode, int perma) |
| static int | decimals2int (char *fraction) |
| static long | diskavail (struct rpt *myrpt) |
| static void | do_dtmf_local (struct rpt *myrpt, char c) |
| static void | do_dtmf_phone (struct rpt *myrpt, struct rpt_link *mylink, char c) |
| static void | do_scheduler (struct rpt *myrpt) |
| static void | donodelog (struct rpt *myrpt, char *str) |
| static char * | eatwhite (char *s) |
| static int | finddelim (char *str, char *strp[], int limit) |
| static char | func_xlat (struct rpt *myrpt, char c, struct rpt_xlat *xlat) |
| static int | function_autopatchdn (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | function_autopatchup (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | function_cop (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | function_ilink (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | function_macro (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | function_remote (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | function_status (struct rpt *myrpt, char *param, char *digitbuf, int command_source, struct rpt_link *mylink) |
| static int | get_wait_interval (struct rpt *myrpt, int type) |
| static void | handle_link_data (struct rpt *myrpt, struct rpt_link *mylink, char *str) |
| static void | handle_link_phone_dtmf (struct rpt *myrpt, struct rpt_link *mylink, char c) |
| static int | handle_remote_data (struct rpt *myrpt, char *str) |
| static int | handle_remote_dtmf_digit (struct rpt *myrpt, char c, char *keyed, int phonemode) |
| static int | handle_remote_phone_dtmf (struct rpt *myrpt, char c, char *keyed, int phonemode) |
| static int | ic706_pltocode (char *str) |
| static int | kenwood_pltocode (char *str) |
| static int | load_module (void) |
| static void | load_rpt_vars (int n, int init) |
| static void | local_dtmf_helper (struct rpt *myrpt, char c) |
| static int | matchkeyword (char *string, char **param, char *keywords[]) |
| static void | mdc1200_notify (struct rpt *myrpt, char *fromnode, unsigned int unit) |
| static int | mem2vfo_ic706 (struct rpt *myrpt) |
| static int | multimode_bump_freq (struct rpt *myrpt, int interval) |
| static int | multimode_bump_freq_ft897 (struct rpt *myrpt, int interval) |
| static int | multimode_bump_freq_ic706 (struct rpt *myrpt, int interval) |
| static int | multimode_capable (struct rpt *myrpt) |
| static int | myatoi (char *str) |
| static int | mycompar (const void *a, const void *b) |
| static char * | node_lookup (struct rpt *myrpt, char *digitbuf) |
| static int | openserial (char *fname) |
| static int | play_silence (struct ast_channel *chan, int duration) |
| static int | play_tone (struct ast_channel *chan, int freq, int duration, int amplitude) |
| static int | play_tone_pair (struct ast_channel *chan, int f1, int f2, int duration, int amplitude) |
| static void | queue_id (struct rpt *myrpt) |
| static int | rbi_mhztoband (char *str) |
| static void | rbi_out (struct rpt *myrpt, unsigned char *data) |
| static void | rbi_out_parallel (struct rpt *myrpt, unsigned char *data) |
| static int | rbi_pltocode (char *str) |
| static int | reload (void) |
| static int | retreive_memory (struct rpt *myrpt, char *memory) |
| static int | retrieve_astcfgint (struct rpt *myrpt, char *category, char *name, int min, int max, int defl) |
| static void * | rpt (void *this) |
| static void * | rpt_call (void *this) |
| static int | rpt_do_debug (int fd, int argc, char *argv[]) |
| static int | rpt_do_dump (int fd, int argc, char *argv[]) |
| static int | rpt_do_fun (int fd, int argc, char *argv[]) |
| static int | rpt_do_lstats (int fd, int argc, char *argv[]) |
| static int | rpt_do_nodes (int fd, int argc, char *argv[]) |
| static int | rpt_do_reload (int fd, int argc, char *argv[]) |
| static int | rpt_do_restart (int fd, int argc, char *argv[]) |
| static int | rpt_do_stats (int fd, int argc, char *argv[]) |
| static int | rpt_exec (struct ast_channel *chan, void *data) |
| static void | rpt_localtime (time_t *t, struct tm *lt) |
| static void * | rpt_master (void *ignore) |
| static void * | rpt_tele_thread (void *this) |
| static void | rpt_telemetry (struct rpt *myrpt, int mode, void *data) |
| static int | saycharstr (struct ast_channel *mychannel, char *str) |
| static int | sayfile (struct ast_channel *mychannel, char *fname) |
| static int | saynum (struct ast_channel *mychannel, int num) |
| static int | select_mem_ic706 (struct rpt *myrpt, int slot) |
| static void | send_link_dtmf (struct rpt *myrpt, char c) |
| static int | send_morse (struct ast_channel *chan, char *string, int speed, int freq, int amplitude) |
| static int | send_tone_telemetry (struct ast_channel *chan, char *tonestring) |
| static int | sendkenwood (struct rpt *myrpt, char *txstr, char *rxstr) |
| static int | sendrxkenwood (struct rpt *myrpt, char *txstr, char *rxstr, char *cmpstr) |
| static int | serial_remote_io (struct rpt *myrpt, unsigned char *txbuf, int txbytes, unsigned char *rxbuf, int rxmaxbytes, int asciiflag) |
| static int | service_scan (struct rpt *myrpt) |
| static int | set_ctcss_freq_ft897 (struct rpt *myrpt, char *txtone, char *rxtone) |
| static int | set_ctcss_mode_ft897 (struct rpt *myrpt, char txplon, char rxplon) |
| static int | set_ctcss_mode_ic706 (struct rpt *myrpt, char txplon, char rxplon) |
| static int | set_freq_ft897 (struct rpt *myrpt, char *newfreq) |
| static int | set_freq_ic706 (struct rpt *myrpt, char *newfreq) |
| static int | set_ft897 (struct rpt *myrpt) |
| static int | set_ic706 (struct rpt *myrpt) |
| static int | set_mode_ft897 (struct rpt *myrpt, char newmode) |
| static int | set_mode_ic706 (struct rpt *myrpt, char newmode) |
| static int | set_offset_ft897 (struct rpt *myrpt, char offset) |
| static int | set_offset_ic706 (struct rpt *myrpt, char offset) |
| static int | setkenwood (struct rpt *myrpt) |
| static int | setrbi (struct rpt *myrpt) |
| static int | setrbi_check (struct rpt *myrpt) |
| static int | setrem (struct rpt *myrpt) |
| static int | simple_command_ft897 (struct rpt *myrpt, char command) |
| static int | simple_command_ic706 (struct rpt *myrpt, char command, char subcommand) |
| static char * | skipchars (char *string, char *charlist) |
| static int | split_ctcss_freq (char *hertz, char *decimal, char *freq) |
| static int | split_freq (char *mhz, char *decimals, char *freq) |
| static void | stop_scan (struct rpt *myrpt) |
| static int | telem_any (struct rpt *myrpt, struct ast_channel *chan, char *entry) |
| static int | telem_lookup (struct rpt *myrpt, struct ast_channel *chan, char *node, char *name) |
| static int | unload_module (void) |
| static int | vfo_ic706 (struct rpt *myrpt) |
| static void | wait_interval (struct rpt *myrpt, int type, struct ast_channel *chan) |
Variables | |
| static char * | app = "Rpt" |
| static struct ast_cli_entry | cli_debug |
| static struct ast_cli_entry | cli_dump |
| static struct ast_cli_entry | cli_fun |
| static struct ast_cli_entry | cli_lstats |
| static struct ast_cli_entry | cli_nodes |
| static struct ast_cli_entry | cli_reload |
| static struct ast_cli_entry | cli_restart |
| static struct ast_cli_entry | cli_stats |
| static int | debug = 0 |
| static char | debug_usage [] |
| static char * | descrip |
| char * | discstr = "!!DISCONNECT!!" |
| static char | dump_lstats [] |
| static char | dump_nodes [] |
| static char | dump_stats [] |
| static char | dump_usage [] |
| static char | fun_usage [] |
| static struct function_table_tag | function_table [] |
| int | max_chan_stat [] = {22000,1000,22000,100,22000,2000,22000} |
| static int | nrpts = 0 |
| static char | reload_usage [] |
| static char | remdtmfstr [] = "0123456789*#ABCD" |
| static char * | remote_rig_ft897 = "ft897" |
| static char * | remote_rig_ic706 = "ic706" |
| static char * | remote_rig_kenwood = "kenwood" |
| static char * | remote_rig_rbi = "rbi" |
| static char | restart_usage [] |
| static pthread_t | rpt_master_thread |
| static struct rpt | rpt_vars [MAXRPTS] |
| static time_t | starttime = 0 |
| static char * | synopsis = "Radio Repeater/Remote Base Control System" |
| static char * | tdesc = "Radio Repeater / Remote Base version 0.73 09/04/2007" |
| static struct telem_defaults | tele_defs [] |
Repeater / Remote Functions: "Simple" Mode: * - autopatch access, # - autopatch hangup Normal mode: See the function list in rpt.conf (autopatchup, autopatchdn) autopatchup can optionally take comma delimited setting=value pairs:
context=string : Override default context with "string" dialtime=ms : Specify the max number of milliseconds between phone number digits (1000 milliseconds = 1 second) farenddisconnect=1 : Automatically disconnect when called party hangs up noct=1 : Don't send repeater courtesy tone during autopatch calls quiet=1 : Don't send dial tone, or connect messages. Do not send patch down message when called party hangs up
Example: 123=autopatchup,dialtime=20000,noct=1,farenddisconnect=1
To send an asterisk (*) while dialing or talking on phone, use the autopatch acess code.
status cmds:
1 - Force ID 2 - Give Time of Day 3 - Give software Version
cop (control operator) cmds:
1 - System warm boot 2 - System enable 3 - System disable 4 - Test Tone On/Off 5 - Dump System Variables on Console (debug) 6 - PTT (phone mode only) 7 - Time out timer enable 8 - Time out timer disable 9 - Autopatch enable 10 - Autopatch disable 11 - Link enable 12 - Link disable 13 - Query System State 14 - Change System State 15 - Scheduler Enable 16 - Scheduler Disable 17 - User functions (time, id, etc) enable 18 - User functions (time, id, etc) disable 19 - Select alternate hang timer 20 - Select standard hang timer
ilink cmds:
1 - Disconnect specified link 2 - Connect specified link -- monitor only 3 - Connect specified link -- tranceive 4 - Enter command mode on specified link 5 - System status 6 - Disconnect all links 11 - Disconnect a previously permanently connected link 12 - Permanently connect specified link -- monitor only 13 - Permanently connect specified link -- tranceive 15 - Full system status (all nodes) 16 - Reconnect links disconnected with "disconnect all links" 200 thru 215 - (Send DTMF 0-9,*,#,A-D) (200=0, 201=1, 210=*, etc)
remote cmds:
1 - Recall Memory MM (*000-*099) (Gets memory from rpt.conf) 2 - Set VFO MMMMM*KKK*O (Mhz digits, Khz digits, Offset) 3 - Set Rx PL Tone HHH*D* 4 - Set Tx PL Tone HHH*D* (Not currently implemented with DHE RBI-1) 5 - Link Status (long) 6 - Set operating mode M (FM, USB, LSB, AM, etc) 100 - RX PL off (Default) 101 - RX PL On 102 - TX PL Off (Default) 103 - TX PL On 104 - Low Power 105 - Med Power 106 - Hi Power 107 - Bump Down 20 Hz 108 - Bump Down 100 Hz 109 - Bump Down 500 Hz 110 - Bump Up 20 Hz 111 - Bump Up 100 Hz 112 - Bump Up 500 Hz 113 - Scan Down Slow 114 - Scan Down Medium 115 - Scan Down Fast 116 - Scan Up Slow 117 - Scan Up Medium 118 - Scan Up Fast 119 - Transmit allowing auto-tune 140 - Link Status (brief) 200 thru 215 - (Send DTMF 0-9,*,#,A-D) (200=0, 201=1, 210=*, etc)
'duplex' modes: (defaults to duplex=2)
0 - Only remote links key Tx and no main repeat audio. 1 - Everything other then main Rx keys Tx, no main repeat audio. 2 - Normal mode 3 - Normal except no main repeat audio. 4 - Normal except no main repeat audio during autopatch only
Definition in file app_rpt.c.
| #define DEFAULT_CIV_ADDR 0x58 |
| #define DEFAULT_IOBASE 0x378 |
| #define DEFAULT_MONITOR_MIN_DISK_BLOCKS 10000 |
| #define DEFAULT_REMOTE_INACT_TIMEOUT (15 * 60) |
| #define DEFAULT_REMOTE_TIMEOUT (60 * 60) |
| #define DEFAULT_REMOTE_TIMEOUT_WARNING (3 * 60) |
| #define DEFAULT_REMOTE_TIMEOUT_WARNING_FREQ 30 |
| #define DELIMCHR ',' |
| #define DTMF_LOCAL_STARTTIME 500 |
| #define DTMF_LOCAL_TIME 250 |
| #define DTMF_TIMEOUT 3 |
| #define ENDCHAR '#' |
| #define EXTNODEFILE "/var/lib/asterisk/rpt_extnodes" |
| #define EXTNODES "extnodes" |
| #define FUNCCHAR '*' |
| #define FUNCTIONS "functions" |
| #define HANGTIME 5000 |
| #define IC706_PL_MEMORY_OFFSET 50 |
| #define IDTIME 300000 |
| #define KENWOOD_RETRIES 5 |
| #define LINKLISTSHORTTIME 200 |
| #define MACRO "macro" |
| #define MACROTIME 100 |
Definition at line 160 of file app_rpt.c.
Referenced by do_scheduler(), function_macro(), rpt(), and rpt_do_fun().
| #define MAX_RETRIES 5 |
| #define MAX_RETRIES_PERM 1000000000 |
| #define MAX_STAT_LINKS 32 |
| #define MAX_SYSSTATES 10 |
| #define MAXDTMF 32 |
Definition at line 155 of file app_rpt.c.
Referenced by handle_link_data(), handle_link_phone_dtmf(), handle_remote_dtmf_digit(), and local_dtmf_helper().
| #define MAXLINKLIST 512 |
Definition at line 157 of file app_rpt.c.
Referenced by __mklinklist(), connect_link(), function_ilink(), rpt(), rpt_do_nodes(), and rpt_tele_thread().
| #define MAXMACRO 2048 |
Definition at line 156 of file app_rpt.c.
Referenced by do_scheduler(), function_macro(), rpt(), and rpt_do_fun().
| #define MAXNODESTR 300 |
| #define MAXPATCHCONTEXT 100 |
Definition at line 216 of file app_rpt.c.
Referenced by function_autopatchup(), and local_dtmf_helper().
| #define MAXPEERSTR 31 |
| #define MAXREMSTR 15 |
Definition at line 184 of file app_rpt.c.
Referenced by check_tx_freq(), function_remote(), multimode_bump_freq_ft897(), multimode_bump_freq_ic706(), rpt_do_lstats(), rpt_tele_thread(), service_scan(), set_ctcss_freq_ft897(), set_freq_ft897(), set_freq_ic706(), setkenwood(), setrbi(), setrbi_check(), split_ctcss_freq(), and split_freq().
| #define MAXXLAT 20 |
| #define MAXXLATTIME 3 |
| #define MEMORY "memory" |
| #define MORSE "morse" |
| #define MSWAIT 200 |
| #define NODES "nodes" |
| #define NRPTSTAT 7 |
| #define POLITEID 30000 |
| #define QUOTECHR 34 |
| #define REM_SCANTIME 100 |
| #define rpt_mutex_lock | ( | x | ) | ast_mutex_lock(x) |
Definition at line 867 of file app_rpt.c.
Referenced by attempt_reconnect(), connect_link(), do_dtmf_local(), function_autopatchdn(), function_autopatchup(), function_ilink(), function_macro(), handle_link_data(), handle_link_phone_dtmf(), handle_remote_dtmf_digit(), local_dtmf_helper(), queue_id(), rpt(), rpt_call(), rpt_do_fun(), rpt_do_lstats(), rpt_do_nodes(), rpt_do_stats(), rpt_tele_thread(), and rpt_telemetry().
| #define rpt_mutex_unlock | ( | x | ) | ast_mutex_unlock(x) |
Definition at line 868 of file app_rpt.c.
Referenced by attempt_reconnect(), connect_link(), do_dtmf_local(), function_autopatchdn(), function_autopatchup(), function_ilink(), function_macro(), handle_link_data(), handle_link_phone_dtmf(), handle_remote_dtmf_digit(), local_dtmf_helper(), queue_id(), rpt(), rpt_call(), rpt_do_fun(), rpt_do_lstats(), rpt_do_nodes(), rpt_do_stats(), rpt_tele_thread(), and rpt_telemetry().
| #define START_DELAY 2 |