X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=interface.c;h=7619294c752bbf0c28d0a65007222de53be491e0;hp=ce05173739f74868edc8ca49e9c2ad5010c924c2;hb=cdca6a713587f88a357147569dd5b2103923ad72;hpb=6cae175d728ed2df1f418ee18eb52c55c39db8fd diff --git a/interface.c b/interface.c index ce05173..7619294 100644 --- a/interface.c +++ b/interface.c @@ -907,18 +907,23 @@ static int inter_gsm_bs(struct interface *interface, char *filename, int line, c #else struct interface *searchif; + interface->gsm_bs = 1; + + if (!value) + interface->gsm_bs_name[0] = '\0'; + else + SCPY(interface->gsm_bs_name, value); + + /* check if name is used multiple times */ searchif = interface_newlist; while(searchif) { - if (searchif->gsm_bs) { - SPRINT(interface_error, "Error in %s (line %d): interface '%s' already uses gsm BS side.\n", filename, line, searchif->name); + if (searchif != interface && searchif->gsm_bs && !strcmp(searchif->gsm_bs_name, interface->gsm_bs_name)) { + SPRINT(interface_error, "Error in %s (line %d): network '%s' already uses the given MS name '%s', choose a different one.\n", filename, line, interface->gsm_bs_name, searchif->gsm_bs_name); return(-1); } searchif = searchif->next; } - /* goto end of chain again to set gsmflag */ - interface->gsm_bs = 1; - return(0); #endif } @@ -953,7 +958,7 @@ static int inter_gsm_ms(struct interface *interface, char *filename, int line, c /* check if name is used multiple times */ searchif = interface_newlist; while(searchif) { - if (searchif != interface && !strcmp(searchif->gsm_ms_name, interface->gsm_ms_name)) { + if (searchif != interface && searchif->gsm_bs && !strcmp(searchif->gsm_ms_name, interface->gsm_ms_name)) { SPRINT(interface_error, "Error in %s (line %d): mobile '%s' already uses the given MS name '%s', choose a different one.\n", filename, line, interface->gsm_ms_name, searchif->gsm_ms_name); return(-1); } @@ -1097,8 +1102,17 @@ static int inter_ss5(struct interface *interface, char *filename, int line, char if (!strcasecmp(element, "delay")) ifport->ss5 |= SS5_FEATURE_DELAY; else - if (!strcasecmp(element, "suppress")) - ifport->ss5 |= SS5_FEATURE_SUPPRESS; + if (!strcasecmp(element, "release")) + ifport->ss5 |= SS5_FEATURE_RELEASE; + else + if (!strcasecmp(element, "mute-rx")) + ifport->ss5 |= SS5_FEATURE_MUTE_RX; + else + if (!strcasecmp(element, "mute-tx")) + ifport->ss5 |= SS5_FEATURE_MUTE_TX; + else + if (!strcasecmp(element, "quality")) + ifport->ss5 |= SS5_FEATURE_QUALITY; else { SPRINT(interface_error, "Error in %s (line %d): parameter '%s' does not allow value element '%s'.\n", filename, line, parameter, element); return(-1); @@ -1343,15 +1357,15 @@ struct interface_param interface_param[] = { {"gsm", &inter_gsm, "", ""}, - {"gsm-bs", &inter_gsm_bs, "", - "Sets up GSM base station interface for using OpenBSC."}, + {"gsm-bs", &inter_gsm_bs, "[]", + "Sets up GSM base station interface for using OpenBSC.\n" + "The socket is /tmp/bsc_mncc by default. If socket name is given, the socket will be\n" + "extended to /tmp/bsc_mncc_."}, {"hr", &inter_gsm_bs_hr, "", "Enable and prefer half rate for mobile terminating calls."}, - {"gsm-ms", &inter_gsm_ms, "", + {"gsm-ms", &inter_gsm_ms, "", "Sets up GSM mobile station interface for using Osmocom-BB.\n" - "The name of the MS folows the interface name.\n" - "The socket is /tmp/osmocom_l2 by default and need to be changed when multiple\n" - "MS interfaces are used."}, + "The socket will be /tmp/ms_mncc_."}, {"sip", &inter_sip, " ", "Sets up SIP interface that represents one SIP endpoint.\n" "Give SIP configuration file."}, @@ -1387,8 +1401,9 @@ struct interface_param interface_param[] = { " bell - Allow releasing and pulse-dialing via 2600 Hz like old Bell systems.\n" " pulsedialing - Use pulse dialing on outgoing exchange. (takes long!)\n" " delay - Use on incomming exchange, to make you feel a delay when blueboxing.\n" - " starrelease - Pulse dialing a star (11 pulses per digit) clears current call.\n" - " suppress - Suppress received tones, as they will be recognized."}, + " release - Pulse dialing a star (11 pulses per digit) clears current call.\n" + " mutes-rx - Mute received 2600 and 2400 Hz tones when detected. (more realistic)\n" + " mutes-tx - Mute received 2600 and 2400 Hz tones while transmitting reply tone. (more hackable)"}, #endif {"remote", &inter_remote, "", @@ -1687,7 +1702,7 @@ void relink_interfaces(void) #endif #ifdef WITH_GSM_BS if (interface->gsm_bs) - gsm_bs_exit(0); + gsm_bs_delete(interface->gsm_bs_name); #endif #ifdef WITH_SIP if (interface->sip) @@ -1722,7 +1737,7 @@ void relink_interfaces(void) #endif #ifdef WITH_GSM_BS if (interface->gsm_bs) - gsm_bs_init(interface); + gsm_bs_new(interface); #endif #ifdef WITH_SIP if (interface->sip)