#dialmax 20
-# Example of an ISDN interface on port 1, with alternate tones_dir to use.
+# Example of an ISDN interface on port 1, with alternate tones-dir to use.
# In this case, the tones are "german" tones generated by mISDN_dsp.ko.
# It is possible to give different sample sets, like "tones_german".
#[Int]
#extension
#msn 201,202,203
-#tones_dir german
+#tones-dir german
#portnum 1
#nt
}
static int inter_tones_dir(struct interface *interface, char *filename, int line, char *parameter, char *value)
{
- struct interface_port *ifport;
-
- /* port in chain ? */
- if (!interface->ifport) {
- SPRINT(interface_error, "Error in %s (line %d): parameter '%s' expects previous 'port' definition.\n", filename, line, parameter);
+ if (!value || !value[0]) {
+ SPRINT(interface_error, "Error in %s (line %d): Missing tones directory.\n", filename, line);
return(-1);
}
- /* goto end of chain */
- ifport = interface->ifport;
- while(ifport->next)
- ifport = ifport->next;
- SCPY(ifport->tones_dir, value);
+ SCPY(interface->tones_dir, value);
+
return(0);
}
static int inter_gsm(struct interface *interface, char *filename, int line, char *parameter, char *value)
{"tones_dir", &inter_tones_dir, "<path>",
"Overrides the given tone_dir in options.conf.\n"
"To used kernel tones in mISDN_dsp.ko, say 'american', 'german', or 'oldgerman'."},
+ {"tones-dir", &inter_tones_dir, "<path>",
+ "Overrides the given tone_dir in options.conf.\n"
+ "To used kernel tones in mISDN_dsp.ko, say 'american', 'german', or 'oldgerman'."},
{"gsm", &inter_gsm, "",
""},
// int tout_hold;
// int tout_park;
int dialmax; /* maximum number of digits to dial */
- char tones_dir[128];
int nonotify; /* blocks outgoing notify messages */
int pots_flash; /* allow flash button / keypulse to hold active call */
int pots_ring; /* after hangup let calls on hold ring the phone */
struct interface_screen *ifscreen_in; /* link to screening list */
struct interface_screen *ifscreen_out; /* link to screening list */
int tx_gain, rx_gain; /* filter gain */
+ char tones_dir[128];
char pipeline[256]; /* filter pipeline */
unsigned char bf_key[56]; /* filter blowfish */
int bf_len; /* filter length of blowfish */
/* if no directory is given (by extension), we use interface.conf or options.conf */
if (!dir || !dir[0]) {
- if (p_m_mISDNport->ifport->tones_dir[0])
- dir = p_m_mISDNport->ifport->tones_dir;
+ if (p_tones_interface[0])
+ dir = p_tones_interface;
else if (options.tones_dir[0])
dir = options.tones_dir;
}
memset(&p_settings, 0, sizeof(p_settings));
}
SCPY(p_name, portname);
- if (interface)
+ if (interface) {
SCPY(p_interface_name, interface->name);
+ SCPY(p_tones_interface, interface->tones_dir);
+ }
p_tone_dir[0] = '\0';
p_type = type;
p_serial = port_serial++;
name = "";
if (!dir || !dir[0])
+ if (p_tones_interface[0])
+ dir = p_tones_interface;
dir = options.tones_dir; /* just in case we have no PmISDN instance */
/* no counter, no eof, normal speed */
char p_interface_name[64];
/* tone */
+ char p_tones_interface[256]; /* directory of tones of interface */
char p_tone_dir[256]; /* name of current directory */
char p_tone_name[256]; /* name of current tone */
char p_tone_fh; /* file descriptor of current tone or -1 if not open */
- aufzeichnung der ansage mit 0 ohne beep beenden
- gain, pipeline, crypt
- polling
+- sip
+
+sip:
+
+- blockiert der prozess beim lookup? (also invite oder register bei dns-unerreichbarkeit)
+- feste ip statt stun
+- ankommende registrierung
+- earlyb testen (siehe interface.conf)
+- callerid als display-info
+
+routing:
+- ersetzten-operator
+- bei einem sending-complete muss ein timeout als abgelaufen behandelt werden
+
+lcradmin:
+- mncc status (socket-connection) anzeigen
+- sip status (register) anzeigen