X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=extension.c;h=72ca1aa8c8947c6fba39342f7324546f5eaf9ff5;hp=391bb88ebad86c14e279ed44c8ec01729ca97ca4;hb=034d3a91404addedc1c7a3494862c79532b0b878;hpb=14f76f1e81f0a4e7a63e83136d1ac958bf85c8a5 diff --git a/extension.c b/extension.c index 391bb88..72ca1aa 100644 --- a/extension.c +++ b/extension.c @@ -13,7 +13,7 @@ /* extension */ -char *ext_rights[] = { +const char *ext_rights[] = { "none", "internal", "local", @@ -22,7 +22,7 @@ char *ext_rights[] = { NULL }; -char *ext_yesno[] = { +const char *ext_yesno[] = { "no", "yes", NULL @@ -51,10 +51,10 @@ int read_extension(struct extension *ext, char *num) if (number[0] == '\0') return(0); - SPRINT(filename, "%s/%s/%s/settings", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/settings", EXTENSION_DATA, number); - if (!(fp = fopen(filename, "r"))) - { + if (!(fp = fopen(filename, "r"))) { + printf("the given extension doesn't exist: \"%s\"\n", filename); PDEBUG(DEBUG_CONFIG, "the given extension doesn't exist: \"%s\"\n", filename); return(0); } @@ -68,15 +68,11 @@ int read_extension(struct extension *ext, char *num) ext->vbox_codec = CODEC_MONO; line=0; - while((fgets(buffer, sizeof(buffer), fp))) - { + while((GETLINE(buffer, fp))) { line++; - buffer[sizeof(buffer)-1] = '\0'; - if (buffer[0]) buffer[strlen(buffer)-1] = '\0'; p = buffer; - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -86,10 +82,8 @@ int read_extension(struct extension *ext, char *num) option[0]=0; i=0; /* read option */ - while(*p > 32) - { - if (i+1 >= sizeof(option)) - { + while(*p > 32) { + if (i+1 >= sizeof(option)) { PERROR_RUNTIME("Error in %s (line %d): option too long.\n",filename,line); break; } @@ -97,8 +91,7 @@ int read_extension(struct extension *ext, char *num) option[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -106,13 +99,10 @@ int read_extension(struct extension *ext, char *num) param[0]=0; param2[0]=0; - if (*p!=0 && *p!='#') /* param */ - { + if (*p!=0 && *p!='#') { /* param */ i=0; /* read param */ - while(*p > 32) - { - if (i+1 >= sizeof(param)) - { + while(*p > 32) { + if (i+1 >= sizeof(param)) { PERROR_RUNTIME("Error in %s (line %d): param too long.\n",filename,line); break; } @@ -120,20 +110,16 @@ int read_extension(struct extension *ext, char *num) param[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } - if (*p!=0 && *p!='#') /* param2 */ - { + if (*p!=0 && *p!='#') { /* param2 */ i=0; /* read param2 */ - while(*p >= 32) - { - if (i+1 >= sizeof(param2)) - { + while(*p >= 32) { + if (i+1 >= sizeof(param2)) { PERROR_RUNTIME("Error in %s (line %d): param too long.\n",filename,line); break; } @@ -146,105 +132,87 @@ int read_extension(struct extension *ext, char *num) /* at this point we have option and param */ /* check option */ - if (!strcmp(option,"name")) - { + if (!strcmp(option,"name")) { SCPY(ext->name, param); - if (param2[0]) - { - SCAT(ext->name, " "); + if (param2[0]) { + SCAT(ext->name, (char *)" "); SCAT(ext->name, param2); } PDEBUG(DEBUG_CONFIG, "name of extension: %s\n",param); } else - if (!strcmp(option,"prefix")) - { + if (!strcmp(option,"prefix")) { SCPY(ext->prefix, param); PDEBUG(DEBUG_CONFIG, "dial prefix on pickup: %s\n",param); } else - if (!strcmp(option,"next")) - { + if (!strcmp(option,"next")) { SCPY(ext->next, param); PDEBUG(DEBUG_CONFIG, "dial next on pickup: %s\n",param); } else - if (!strcmp(option,"alarm")) - { + if (!strcmp(option,"alarm")) { SCPY(ext->alarm, param); PDEBUG(DEBUG_CONFIG, "alarm message (if prefix): %s\n",param); } else - if (!strcmp(option,"cfu")) - { + if (!strcmp(option,"cfu")) { SCPY(ext->cfu, param); PDEBUG(DEBUG_CONFIG, "call forward unconditional: %s\n",param); } else - if (!strcmp(option,"cfb")) - { + if (!strcmp(option,"cfb")) { SCPY(ext->cfb, param); PDEBUG(DEBUG_CONFIG, "call forward when busy: %s\n",param); } else - if (!strcmp(option,"cfnr")) - { + if (!strcmp(option,"cfnr")) { SCPY(ext->cfnr, param); PDEBUG(DEBUG_CONFIG, "call forward on no response: %s\n",param); } else - if (!strcmp(option,"cfnr_delay")) - { + if (!strcmp(option,"cfnr_delay")) { ext->cfnr_delay = atoi(param); if (ext->cfnr_delay < 0) ext->cfnr_delay = 1; PDEBUG(DEBUG_CONFIG, "call forward no response delay: %d\n",ext->cfnr_delay); } else - if (!strcmp(option,"cfp")) - { + if (!strcmp(option,"cfp")) { SCPY(ext->cfp, param); PDEBUG(DEBUG_CONFIG, "call forward parallel: %s\n",param); } else - if (!strcmp(option,"change_forward")) - { + if (!strcmp(option,"change_forward")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->change_forward = i; PDEBUG(DEBUG_CONFIG, "allow the change of forwarding: %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "unknown parameter for change_forward: %s\n", param); } } else - if (!strcmp(option,"interfaces")) - { + if (!strcmp(option,"interfaces")) { SCPY(ext->interfaces, param); PDEBUG(DEBUG_CONFIG, "interfaces to ring calls to extension: %s %s\n",param,param2); } else - if (!strcmp(option,"callerid")) - { + if (!strcmp(option,"callerid")) { ext->callerid_present = INFO_PRESENT_ALLOWED; if (!strncasecmp(param2, "anonymous", 9)) ext->callerid_present = INFO_PRESENT_RESTRICTED; - if (!strncasecmp(param, "non", 3)) - { + if (!strncasecmp(param, "non", 3)) { ext->callerid[0] = '\0'; ext->callerid_present = INFO_PRESENT_NOTAVAIL; ext->callerid_type = INFO_NTYPE_UNKNOWN; PDEBUG(DEBUG_CONFIG, "caller id: ID NOT AVAILABLE\n"); } else - switch(param[0]) - { + switch(param[0]) { case 'i': case 'I': ext->callerid_type = INFO_NTYPE_INTERNATIONAL; @@ -270,25 +238,21 @@ int read_extension(struct extension *ext, char *num) } ext->callerid[sizeof(ext->callerid)-1] = 0; } else - if (!strcmp(option,"id_next_call")) - { + if (!strcmp(option,"id_next_call")) { ext->id_next_call_present = INFO_PRESENT_ALLOWED; if (!strncasecmp(param2, "anonymous", 9)) ext->id_next_call_present = INFO_PRESENT_RESTRICTED; - if (param[0] == '\0') - { + if (param[0] == '\0') { ext->id_next_call_present = -1; PDEBUG(DEBUG_CONFIG, "id next call: no id for next call\n"); } else - if (!strncasecmp(param, "none", 3)) - { + if (!strncasecmp(param, "none", 3)) { ext->id_next_call[0] = '\0'; ext->id_next_call_present = INFO_PRESENT_NOTAVAIL; ext->id_next_call_type = INFO_NTYPE_UNKNOWN; PDEBUG(DEBUG_CONFIG, "id next call: ID NOT AVAILABLE\n"); } else - switch(param[0]) - { + switch(param[0]) { case 'i': case 'I': ext->id_next_call_type = INFO_NTYPE_INTERNATIONAL; @@ -316,44 +280,35 @@ int read_extension(struct extension *ext, char *num) } else - if (!strcmp(option,"change_callerid")) - { + if (!strcmp(option,"change_callerid")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->change_callerid = i; PDEBUG(DEBUG_CONFIG, "allow the change of caller id: %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "unknown parameter for change_callerid: %s\n", param); } } else - if (!strcmp(option,"anon-ignore")) - { + if (!strcmp(option,"anon-ignore")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->anon_ignore = i; PDEBUG(DEBUG_CONFIG, "ignore restriction of CLIP & COLP %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "unknown parameter given anon-ignore: %s\n", param); } } else - if (!strcmp(option,"clip")) - { + if (!strcmp(option,"clip")) { if (!strcasecmp(param, "hide")) ext->clip = CLIP_HIDE; else @@ -361,8 +316,7 @@ int read_extension(struct extension *ext, char *num) PDEBUG(DEBUG_CONFIG, "clip: %d\n",ext->clip); } else - if (!strcmp(option,"colp")) - { + if (!strcmp(option,"colp")) { if (!strcasecmp(param, "hide")) ext->colp = COLP_HIDE; else if (!strcasecmp(param, "force")) @@ -372,105 +326,69 @@ int read_extension(struct extension *ext, char *num) PDEBUG(DEBUG_CONFIG, "colp: %d\n",ext->colp); } else - if (!strcmp(option,"clip_prefix")) - { + if (!strcmp(option,"clip_prefix")) { SCPY(ext->clip_prefix, param); PDEBUG(DEBUG_CONFIG, "clip prefix: %s\n",param); } else - if (!strcmp(option,"keypad")) - { + if (!strcmp(option,"keypad")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->keypad = i; PDEBUG(DEBUG_CONFIG, "use keypad to do call control %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "unknown parameter given keypad: %s\n", param); } } else - if (!strcmp(option,"centrex")) - { - i=0; - while(ext_yesno[i]) - { - if (!strcasecmp(param,ext_yesno[i])) - break; - i++; - } - if (ext_yesno[i]) - { - ext->centrex = i; - PDEBUG(DEBUG_CONFIG, "use centrex to display name %s\n", ext_yesno[i]); - } else - { - PDEBUG(DEBUG_CONFIG, "unknown parameter given centrex: %s\n", param); - } - } else - if (!strcmp(option,"rights")) - { + if (!strcmp(option,"rights")) { i=0; - while(ext_rights[i]) - { + while(ext_rights[i]) { if (!strcasecmp(param,ext_rights[i])) break; i++; } - if (ext_rights[i]) - { + if (ext_rights[i]) { ext->rights = i; PDEBUG(DEBUG_CONFIG, "rights to dial: %s\n", ext_rights[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given rights unknown: %s\n", param); } } else - if (!strcmp(option,"delete_ext")) - { + if (!strcmp(option,"delete_ext")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->delete_ext = i; PDEBUG(DEBUG_CONFIG, "enables the delete key function for external calls: %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "unknown parameter given delete: %s\n", param); } } else - if (!strcmp(option,"noknocking")) - { + if (!strcmp(option,"noknocking")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->noknocking = i; PDEBUG(DEBUG_CONFIG, "noknocking %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given noknocking param unknown: %s\n", param); } } else if (!strcmp(option,"rx_gain") - || !strcmp(option,"rxvol")) - { + || !strcmp(option,"rxvol")) { ext->rx_gain = atoi(param); if (ext->rx_gain<-8 || ext->rx_gain>8) ext->rx_gain = 0; @@ -478,106 +396,84 @@ int read_extension(struct extension *ext, char *num) PDEBUG(DEBUG_CONFIG, "receive volume: %d\n",ext->rx_gain); } else if (!strcmp(option,"tx_gain") - || !strcmp(option,"txvol")) - { + || !strcmp(option,"txvol")) { ext->tx_gain = atoi(param); if (ext->tx_gain<-8 || ext->tx_gain>8) ext->tx_gain = 0; PDEBUG(DEBUG_CONFIG, "transmit volume: %d\n",ext->tx_gain); } else - if (!strcmp(option,"own_setup")) - { + if (!strcmp(option,"own_setup")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->own_setup = i; PDEBUG(DEBUG_CONFIG, "own_setup %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given own_setup param unknown: %s\n", param); } } else - if (!strcmp(option,"own_proceeding")) - { + if (!strcmp(option,"own_proceeding")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->own_proceeding = i; PDEBUG(DEBUG_CONFIG, "own_proceeding %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given own_proceeding param unknown: %s\n", param); } } else - if (!strcmp(option,"own_alerting")) - { + if (!strcmp(option,"own_alerting")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->own_alerting = i; PDEBUG(DEBUG_CONFIG, "own_alerting %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given own_alerting param unknown: %s\n", param); } } else - if (!strcmp(option,"own_cause")) - { + if (!strcmp(option,"own_cause")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->own_cause = i; PDEBUG(DEBUG_CONFIG, "own_cause %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given own_cause param unknown: %s\n", param); } } else - if (!strcmp(option,"facility")) - { + if (!strcmp(option,"facility")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->facility = i; PDEBUG(DEBUG_CONFIG, "facility %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given facility param unknown: %s\n", param); } } else - if (!strcmp(option,"display_cause")) - { + if (!strcmp(option,"display_cause")) { if (!strcasecmp(param, "german")) ext->display_cause = DISPLAY_CAUSE_GERMAN; else if (!strcasecmp(param, "english")) @@ -594,8 +490,7 @@ int read_extension(struct extension *ext, char *num) PDEBUG(DEBUG_CONFIG, "display cause: %d\n",ext->display_cause); } else #if 0 - if (!strcmp(option,"display_ext")) - { + if (!strcmp(option,"display_ext")) { if (!strcasecmp(param, "number")) ext->display_ext = DISPLAY_CID_NUMBER; else if (!strcasecmp(param, "abbrev")) @@ -620,142 +515,112 @@ int read_extension(struct extension *ext, char *num) PDEBUG(DEBUG_CONFIG, "display ext: %d\n",ext->display_ext); } else #endif - if (!strcmp(option,"display_ext")) - { + if (!strcmp(option,"display_ext")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_ext = i; PDEBUG(DEBUG_CONFIG, "display ext %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_ext param unknown: %s\n", param); } } else - if (!strcmp(option,"display_int")) - { + if (!strcmp(option,"display_int")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_int = i; PDEBUG(DEBUG_CONFIG, "display int %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_int param unknown: %s\n", param); } } else - if (!strcmp(option,"display_fake")) - { + if (!strcmp(option,"display_fake")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_fake = i; PDEBUG(DEBUG_CONFIG, "display fake caller ids %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_fake param unknown: %s\n", param); } } else - if (!strcmp(option,"display_anon")) - { + if (!strcmp(option,"display_anon")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_anon = i; PDEBUG(DEBUG_CONFIG, "display anonymouse ids %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_anon param unknown: %s\n", param); } } else - if (!strcmp(option,"display_menu")) - { + if (!strcmp(option,"display_menu")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_menu = i; PDEBUG(DEBUG_CONFIG, "display menu %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_menu param unknown: %s\n", param); } } else - if (!strcmp(option,"display_dialing")) - { + if (!strcmp(option,"display_dialing")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_dialing = i; PDEBUG(DEBUG_CONFIG, "display dialing %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_dialing param unknown: %s\n", param); } } else - if (!strcmp(option,"display_name")) - { + if (!strcmp(option,"display_name")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->display_name = i; PDEBUG(DEBUG_CONFIG, "display name %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given display_name param unknown: %s\n", param); } } else - if (!strcmp(option,"tones_dir")) - { + if (!strcmp(option,"tones_dir")) { if (param[strlen(param)-1] == '/') param[strlen(param)-1]=0; SCPY(ext->tones_dir, param); PDEBUG(DEBUG_CONFIG, "directory of tones: %s\n",param); } else - if (!strcmp(option,"record")) - { + if (!strcmp(option,"record")) { if (!strcasecmp(param, "mono")) ext->record = CODEC_MONO; else if (!strcasecmp(param, "stereo")) @@ -768,14 +633,12 @@ int read_extension(struct extension *ext, char *num) ext->record = CODEC_OFF; PDEBUG(DEBUG_CONFIG, "given record param: %s\n", param); } else - if (!strcmp(option,"password")) - { + if (!strcmp(option,"password")) { SCPY(ext->password, param); PDEBUG(DEBUG_CONFIG, "password: %s\n",param); } else - if (!strcmp(option,"vbox_mode")) - { + if (!strcmp(option,"vbox_mode")) { if (!strcasecmp(param, "parallel")) ext->vbox_mode = VBOX_MODE_PARALLEL; else if (!strcasecmp(param, "announcement")) @@ -784,8 +647,7 @@ int read_extension(struct extension *ext, char *num) ext->vbox_mode = VBOX_MODE_NORMAL; PDEBUG(DEBUG_CONFIG, "given vbox mode: %s\n", param); } else - if (!strcmp(option,"vbox_codec")) - { + if (!strcmp(option,"vbox_codec")) { if (!strcasecmp(param, "stereo")) ext->vbox_codec = CODEC_STEREO; else if (!strcasecmp(param, "8bit")) @@ -796,16 +658,14 @@ int read_extension(struct extension *ext, char *num) ext->vbox_codec = CODEC_MONO; PDEBUG(DEBUG_CONFIG, "given record param: %s\n", param); } else - if (!strcmp(option,"vbox_time")) - { + if (!strcmp(option,"vbox_time")) { ext->vbox_time = atoi(param); if (ext->vbox_time < 0) ext->vbox_time = 0; PDEBUG(DEBUG_CONFIG, "vbox time to record: %d\n",ext->vbox_time); } else - if (!strcmp(option,"vbox_display")) - { + if (!strcmp(option,"vbox_display")) { if (!strcasecmp(param, "detailed") || !strcasecmp(param, "detailled")) ext->vbox_display = VBOX_DISPLAY_DETAILED; @@ -815,110 +675,116 @@ int read_extension(struct extension *ext, char *num) ext->vbox_display = VBOX_DISPLAY_BRIEF; PDEBUG(DEBUG_CONFIG, "given vbox mode: %s\n", param); } else - if (!strcmp(option,"vbox_language")) - { + if (!strcmp(option,"vbox_language")) { if (!strcasecmp(param, "german")) ext->vbox_language = VBOX_LANGUAGE_GERMAN; else ext->vbox_language = VBOX_LANGUAGE_ENGLISH; PDEBUG(DEBUG_CONFIG, "given vbox mode: %s\n", param); } else - if (!strcmp(option,"vbox_email")) - { + if (!strcmp(option,"vbox_email")) { SCPY(ext->vbox_email, param); PDEBUG(DEBUG_CONFIG, "given vbox email: %s\n", param); } else - if (!strcmp(option,"vbox_email_file")) - { + if (!strcmp(option,"vbox_email_file")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->vbox_email_file = i; PDEBUG(DEBUG_CONFIG, "attach audio file %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given vbox_email_file param unknown: %s\n", param); } } else - if (!strcmp(option,"vbox_free")) - { + if (!strcmp(option,"vbox_free")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->vbox_free = i; PDEBUG(DEBUG_CONFIG, "vbox_free %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given vbox_free param unknown: %s\n", param); } } else - if (!strcmp(option,"last_in")) - { - if (param[0] && last_in_countlast_in[last_in_count], param); last_in_count++; } PDEBUG(DEBUG_CONFIG, "last_in dialed number: %s\n",param); } else - if (!strcmp(option,"last_out")) - { - if (param[0] && last_out_countlast_out[last_out_count], param); last_out_count++; } PDEBUG(DEBUG_CONFIG, "last_out dialed number: %s\n",param); } else - if (!strcmp(option,"datacall")) - { + if (!strcmp(option,"datacall")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->datacall = i; PDEBUG(DEBUG_CONFIG, "datacall %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "given datacall param unknown: %s\n", param); } } else - if (!strcmp(option,"seconds")) - { + if (!strcmp(option,"seconds")) { i=0; - while(ext_yesno[i]) - { + while(ext_yesno[i]) { if (!strcasecmp(param,ext_yesno[i])) break; i++; } - if (ext_yesno[i]) - { + if (ext_yesno[i]) { ext->no_seconds = 1-i; PDEBUG(DEBUG_CONFIG, "seconds %s\n", ext_yesno[i]); - } else - { + } else { PDEBUG(DEBUG_CONFIG, "unknown param for seconds: %s\n", param); } } else - { + if (!strcmp(option,"otp-ident")) { + SCPY(ext->otp_ident, param); + PDEBUG(DEBUG_CONFIG, "otp-ident: %s\n",param); + } else + if (!strcmp(option,"dov_ident")) { + if (param[0]) { + SCPY(ext->dov_ident, param); + PDEBUG(DEBUG_CONFIG, "dov_ident string: %s\n",param); + } + } else + if (!strcmp(option,"dov_log")) { + if (param[0]) { + SCPY(ext->dov_log, param); + PDEBUG(DEBUG_CONFIG, "dov_log filename: %s\n",param); + } + } else + if (!strcmp(option,"dov_type")) { + if (!strcasecmp(param, "pcm")) + ext->dov_type = DOV_TYPE_PCM; + else + ext->dov_type = DOV_TYPE_PWM; + PDEBUG(DEBUG_CONFIG, "given dov type: %s\n", param); + } else + if (!strcmp(option,"dov_level")) { + if (atoi(param)) { + ext->dov_level = atoi(param); + PDEBUG(DEBUG_CONFIG, "dov_level: %s\n",param); + } + } else { PERROR_RUNTIME("Error in %s (line %d): wrong option keyword %s.\n",filename,line,option); } } @@ -941,10 +807,9 @@ int write_extension(struct extension *ext, char *number) if (number[0] == '\0') return(0); - SPRINT(filename, "%s/%s/%s/settings", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/settings", EXTENSION_DATA, number); - if (!(fp = fopen(filename, "w"))) - { + if (!(fp = fopen(filename, "w"))) { PERROR("Cannot open settings: \"%s\"\n", filename); return(0); } @@ -966,7 +831,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# Interface(s) to ring on calls to extension (as named in interface.conf)\n"); fprintf(fp,"# Seperate multiple interfaces by using komma without spaces\n"); - fprintf(fp,"# Example: Int would ring on the interface with the name \"Int\""); + fprintf(fp,"# Example: Int would ring on the interface with the name \"Int\"\n"); fprintf(fp,"# Int1,Int2 would ring incoming calls on both interfaces Int1 and Int2.\n"); fprintf(fp,"interfaces %s\n\n",ext->interfaces); @@ -1006,10 +871,8 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# use prefix 's' for TYPE SUBSCRIBER (s)\n"); if (ext->callerid_present == INFO_PRESENT_NOTAVAIL) fprintf(fp,"callerid none\n\n"); - else - { - switch(ext->callerid_type) - { + else { + switch(ext->callerid_type) { case INFO_NTYPE_INTERNATIONAL: fprintf(fp,"callerid i%s%s\n\n",ext->callerid, (ext->callerid_present==INFO_PRESENT_RESTRICTED)?" anonymous":""); break; @@ -1029,10 +892,8 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"id_next_call \n\n"); else if (ext->id_next_call_present == INFO_PRESENT_NOTAVAIL) fprintf(fp,"id_next_call none\n\n"); - else - { - switch(ext->id_next_call_type) - { + else { + switch(ext->id_next_call_type) { case INFO_NTYPE_INTERNATIONAL: fprintf(fp,"id_next_call i%s%s\n\n",ext->id_next_call, (ext->id_next_call_present==INFO_PRESENT_RESTRICTED)?" anonymous":""); break; @@ -1054,8 +915,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# clip (asis|hide)\n"); fprintf(fp,"# asis: On forwarded calls the CLIP is used as presented by the calling party.\n"); fprintf(fp,"# hide: Always use extension's caller id, even on forwared calls.\n"); - switch(ext->clip) - { + switch(ext->clip) { case CLIP_HIDE: fprintf(fp,"clip hide\n\n"); break; @@ -1069,8 +929,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# On forwarded calls the COLP is used as presented by the called party.\n"); fprintf(fp,"# hide: Always use extension's caller id, even on forwared calls.\n"); fprintf(fp,"# force: If COLP is not presented by forwarded calls the dialed number is used.\n"); - switch(ext->colp) - { + switch(ext->colp) { case COLP_HIDE: fprintf(fp,"colp hide\n\n"); break; @@ -1094,11 +953,6 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# DTMF tone, but the digit is transmitted via D-channel diaing info.\n"); fprintf(fp,"keypad %s\n\n",(ext->keypad)?"yes":"no"); - fprintf(fp,"# Called Name Identification Presentation (CNIP/CONP)\n"); - fprintf(fp,"# If supported by telephone, special information element on the d-channel are\n"); - fprintf(fp,"# used to show name of caller. It is supported by newer Siemens telephones\n# (Centrex).\n"); - fprintf(fp,"centrex %s #this is currently not working!!!\n\n",(ext->centrex)?"yes":"no"); - fprintf(fp,"# Ignore restriction of COLP and CLIP\n"); fprintf(fp,"# In this case even restricted numbers are presented to this extension.\n"); fprintf(fp,"# This also works for incoming external anonymous calls IF:\n"); @@ -1142,7 +996,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"own_cause %s\n\n",ext_yesno[ext->own_cause]); fprintf(fp,"# Allow facility information to be transfered to the telephone.\n"); - fprintf(fp,"# This is equired to receive advice of charge.\n"); + fprintf(fp,"# This is required to receive advice of charge.\n"); fprintf(fp,"facility %s\n\n",ext_yesno[ext->facility]); fprintf(fp,"# Display clear causes using display messages (Q.850)\n# This must be one of the following:\n"); @@ -1152,8 +1006,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# number (display cause number only)\n"); fprintf(fp,"# english-location (display cause text in english and location)\n"); fprintf(fp,"# german-location (display cause text in german and location)\n"); - switch(ext->display_cause) - { + switch(ext->display_cause) { case DISPLAY_CAUSE_ENGLISH: fprintf(fp,"display_cause english\n\n"); break; @@ -1205,7 +1058,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"display_dialing %s\n\n",(ext->display_dialing)?"yes":"no"); fprintf(fp,"# Tones directory for announcements and patterns\n"); - fprintf(fp,"# Enter nothing for default tones as selected by options.conf.\n"); + fprintf(fp,"# Enter nothing for default tones as selected by options.conf or interface.conf.\n"); fprintf(fp,"tones_dir %s\n\n",ext->tones_dir); fprintf(fp,"# Record calls to extension's directory. The file is written as wave.\n"); @@ -1215,8 +1068,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# stereo (records wave 32 bit stereo, 256kbits/s)\n"); fprintf(fp,"# 8bit (records wave 8 bit mono, 64kbits/s)\n"); fprintf(fp,"# law (records xLaw encoded, as specified in options.conf, 64kbps/s)\n"); - switch(ext->record) - { + switch(ext->record) { case CODEC_MONO: fprintf(fp,"record mono\n\n"); break; @@ -1242,8 +1094,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# normal (plays announcement and records after that)\n"); fprintf(fp,"# parallel (plays announcement and records also DURING announcement.)\n"); fprintf(fp,"# announcement (just plays announcement and hangs up)\n"); - switch(ext->vbox_mode) - { + switch(ext->vbox_mode) { case VBOX_MODE_PARALLEL: fprintf(fp,"vbox_mode parallel\n\n"); break; @@ -1260,8 +1111,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# mono (16 bit mono wave file)\n"); fprintf(fp,"# stereo (16 bit stereo wave file)\n"); fprintf(fp,"# 8bit (8 bit mono wave file)\n"); - switch(ext->vbox_codec) - { + switch(ext->vbox_codec) { case CODEC_LAW: fprintf(fp,"vbox_codec law\n\n"); break; @@ -1288,8 +1138,7 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# brief (displays brief information, for small displays)\n"); fprintf(fp,"# detailed (displays detailed information, for larger displays)\n"); fprintf(fp,"# off (don't display anything)\n"); - switch(ext->vbox_display) - { + switch(ext->vbox_display) { case VBOX_DISPLAY_OFF: fprintf(fp,"vbox_display off\n\n"); break; @@ -1324,23 +1173,36 @@ int write_extension(struct extension *ext, char *number) fprintf(fp,"# Include seconds (time) in the connect message. (Should be always enabled.)\n"); fprintf(fp,"seconds %s\n\n",ext_yesno[1-ext->no_seconds]); + fprintf(fp,"# Identity string for VoOTP encryption\n"); + fprintf(fp,"otp-ident %s\n\n", ext->otp_ident); + fprintf(fp,"# Last outgoing and incoming numbers (including prefix)\n"); i = 0; - while(i < MAX_REMEMBER) - { + while(i < MAX_REMEMBER) { if (ext->last_out[i][0]) fprintf(fp,"last_out %s\n",ext->last_out[i]); i++; } i = 0; - while(i < MAX_REMEMBER) - { + while(i < MAX_REMEMBER) { if (ext->last_in[i][0]) fprintf(fp,"last_in %s\n",ext->last_in[i]); i++; } fprintf(fp,"\n"); + fprintf(fp,"# Identify to/from remove via Data-Over-Voice feature.\n"); + fprintf(fp,"dov_ident %s\n", ext->dov_ident); + fprintf(fp,"dov_log %s\n", ext->dov_log); + switch(ext->dov_type) { + case DOV_TYPE_PWM: + fprintf(fp,"dov_type pwm\n"); + break; + case DOV_TYPE_PCM: + fprintf(fp,"dov_type pcm\n"); + break; + } + fprintf(fp,"dov_level %d\n\n", ext->dov_level); if (fp) fclose(fp); return(1); @@ -1352,18 +1214,17 @@ int write_extension(struct extension *ext, char *number) */ int write_log(char *number, char *callerid, char *calledid, time_t start, time_t stop, int aoce, int cause, int location) { - char *mon[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; + const char *mon[] = {"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"}; FILE *fp=NULL; char filename[256]; struct tm *tm; if (callerid[0] == '\0') - callerid = ""; + callerid = (char *)""; - SPRINT(filename, "%s/%s/%s/log", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/log", EXTENSION_DATA, number); - if (!(fp = fopen(filename, "a"))) - { + if (!(fp = fopen(filename, "a"))) { PERROR("Cannot open log: \"%s\"\n", filename); return(0); } @@ -1371,7 +1232,7 @@ int write_log(char *number, char *callerid, char *calledid, time_t start, time_t tm = localtime(&start); fprintf(fp,"%s %2d %04d %02d:%02d:%02d %s", mon[tm->tm_mon], tm->tm_mday, tm->tm_year+1900, tm->tm_hour, tm->tm_min, tm->tm_sec, number); if (stop) - fprintf(fp," %2ld:%02ld:%02ld", (stop-start)/3600, (((unsigned long)(stop-start))/60)%60, ((unsigned long)(stop-start))%60); + fprintf(fp," %2ld:%02d:%02d", (stop-start)/3600, (((unsigned int)(stop-start))/60)%60, ((unsigned int)(stop-start))%60); else fprintf(fp," --:--:--"); fprintf(fp," %s -> %s", callerid, calledid); @@ -1401,24 +1262,19 @@ int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, c char buffer[1024]; int found = 0, found_if_more_digits = 0; - SPRINT(filename, "%s/%s/%s/phonebook", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/phonebook", EXTENSION_DATA, number); - if (!(fp = fopen(filename, "r"))) - { + if (!(fp = fopen(filename, "r"))) { PERROR("Cannot open phonebook: \"%s\"\n", filename); return(0); } line=0; - while((fgets(buffer, sizeof(buffer), fp))) - { + while((GETLINE(buffer, fp))) { line++; - buffer[sizeof(buffer)-1] = '\0'; - if (buffer[0]) buffer[strlen(buffer)-1] = '\0'; p = buffer; - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -1431,10 +1287,8 @@ int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, c name[0]=0; i=0; /* read abbrev */ - while(*p > 32) - { - if (i+1 >= sizeof(abbrev)) - { + while(*p > 32) { + if (i+1 >= sizeof(abbrev)) { PERROR_RUNTIME("Error in %s (line %d): abbrev too long.\n",filename,line); break; } @@ -1442,41 +1296,33 @@ int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, c abbrev[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } - if (*p!=0 && *p!='#') /* phone */ - { + if (*p!=0 && *p!='#') { /* phone */ i=0; /* read phone */ - while(*p > 32) - { - if (i+1 >= sizeof(phone)) - { + while(*p > 32) { + if (i+1 >= sizeof(phone)) { PERROR_RUNTIME("Error in %s (line %d): phone too long.\n",filename,line); break; } phone[i+1] = '\0'; phone[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } } - if (*p!=0 && *p!='#') /* name */ - { + if (*p!=0 && *p!='#') { /* name */ i=0; /* read name */ - while(*p > 0) - { - if (i+1 >= sizeof(name)) - { + while(*p > 0) { + if (i+1 >= sizeof(name)) { PERROR_RUNTIME("Error in %s (line %d): name too long.\n",filename,line); break; } @@ -1485,10 +1331,8 @@ int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, c } } - if (*abbrev_pointer) - { - if (!strncmp(*abbrev_pointer, abbrev, strlen(*abbrev_pointer))) - { + if (*abbrev_pointer) { + if (!strncmp(*abbrev_pointer, abbrev, strlen(*abbrev_pointer))) { /* may match if abbreviation is longer */ found_if_more_digits = 1; } @@ -1508,15 +1352,13 @@ int parse_phonebook(char *number, char **abbrev_pointer, char **phone_pointer, c if (fp) fclose(fp); - if (found) - { + if (found) { *abbrev_pointer = abbrev; *phone_pointer = phone; *name_pointer = name; } - if (found == 0) - { + if (found == 0) { if (found_if_more_digits) found = -1; } @@ -1541,24 +1383,19 @@ int parse_secrets(char *number, char *remote_id, char **auth_pointer, char **cry char buffer[4096]; int found = 0; - SPRINT(filename, "%s/%s/%s/secrets", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/secrets", EXTENSION_DATA, number); - if (!(fp = fopen(filename, "r"))) - { + if (!(fp = fopen(filename, "r"))) { PERROR("Cannot open secrets: \"%s\"\n", filename); return(0); } line=0; - while((fgets(buffer, sizeof(buffer), fp))) - { + while((GETLINE(buffer, fp))) { line++; - buffer[sizeof(buffer)-1] = '\0'; - if (buffer[0]) buffer[strlen(buffer)-1] = '\0'; p = buffer; - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -1572,10 +1409,8 @@ int parse_secrets(char *number, char *remote_id, char **auth_pointer, char **cry key[0]=0; i=0; /* read auth */ - while(*p > 32) - { - if (i+1 >= sizeof(remote)) - { + while(*p > 32) { + if (i+1 >= sizeof(remote)) { PERROR_RUNTIME("Error in %s (line %d): remote too long.\n",filename,line); break; } @@ -1583,62 +1418,50 @@ int parse_secrets(char *number, char *remote_id, char **auth_pointer, char **cry remote[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } - if (*p!=0 && *p!='#') /* auth */ - { + if (*p!=0 && *p!='#') { /* auth */ i=0; /* read auth */ - while(*p > 32) - { - if (i+1 >= sizeof(auth)) - { + while(*p > 32) { + if (i+1 >= sizeof(auth)) { PERROR_RUNTIME("Error in %s (line %d): auth too long.\n",filename,line); break; } auth[i+1] = '\0'; auth[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } } - if (*p!=0 && *p!='#') /* crypt */ - { + if (*p!=0 && *p!='#') { /* crypt */ i=0; /* read crypt */ - while(*p > 32) - { - if (i+1 >= sizeof(crypt)) - { + while(*p > 32) { + if (i+1 >= sizeof(crypt)) { PERROR_RUNTIME("Error in %s (line %d): crypt too long.\n",filename,line); break; } crypt[i+1] = '\0'; crypt[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } } - if (*p!=0 && *p!='#') /* key */ - { + if (*p!=0 && *p!='#') { /* key */ i=0; /* read key */ - while(*p > 0) - { - if (i+1 >= sizeof(key)) - { + while(*p > 0) { + if (i+1 >= sizeof(key)) { PERROR_RUNTIME("Error in %s (line %d): key too long.\n",filename,line); break; } @@ -1657,8 +1480,7 @@ int parse_secrets(char *number, char *remote_id, char **auth_pointer, char **cry if (fp) fclose(fp); - if (found) - { + if (found) { *auth_pointer = auth; *crypt_pointer = crypt; *key_pointer = key; @@ -1684,24 +1506,19 @@ char *parse_directory(char *number, int type) char buffer[256]; int found = 0; - SPRINT(filename, "%s/directory.list", INSTALL_DATA); + SPRINT(filename, "%s/directory.list", CONFIG_DATA); - if (!(fp = fopen(filename, "r"))) - { + if (!(fp = fopen(filename, "r"))) { PERROR("Cannot open directory: \"%s\"\n", filename); return(NULL); } line=0; - while((fgets(buffer, sizeof(buffer), fp))) - { + while((GETLINE(buffer, fp))) { line++; - buffer[sizeof(buffer)-1] = '\0'; - if (buffer[0]) buffer[strlen(buffer)-1] = '\0'; p = buffer; - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -1713,10 +1530,8 @@ char *parse_directory(char *number, int type) name[0]=0; i=0; /* read number */ - while(*p > 32) - { - if (i+1 >= sizeof(phone)) - { + while(*p > 32) { + if (i+1 >= sizeof(phone)) { PERROR_RUNTIME("Error in %s (line %d): number too long.\n",filename,line); break; } @@ -1724,18 +1539,15 @@ char *parse_directory(char *number, int type) phone[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } i=0; /* read name */ - while(*p >= 32) - { - if (i+1 >= sizeof(name)) - { + while(*p >= 32) { + if (i+1 >= sizeof(name)) { PERROR_RUNTIME("Error in %s (line %d): name too long.\n",filename,line); break; } @@ -1743,67 +1555,55 @@ char *parse_directory(char *number, int type) name[i++] = *p++; } - if (phone[0] == 'i') - { + if (phone[0] == 'i') { if (type != INFO_NTYPE_INTERNATIONAL) continue; - if (!strcmp(number, phone+1)) - { + if (!strcmp(number, phone+1)) { found = 1; break; } continue; } - if (phone[0] == 'n') - { + if (phone[0] == 'n') { if (type != INFO_NTYPE_NATIONAL) continue; - if (!strcmp(number, phone+1)) - { + if (!strcmp(number, phone+1)) { found = 1; break; } continue; } - if (phone[0] == 's') - { + if (phone[0] == 's') { if (type==INFO_NTYPE_NATIONAL || type==INFO_NTYPE_INTERNATIONAL) continue; - if (!strcmp(number, phone+1)) - { + if (!strcmp(number, phone+1)) { found = 1; break; } continue; } - if (!strncmp(phone, options.international, strlen(options.international))) - { + if (!strncmp(phone, options.international, strlen(options.international))) { if (type != INFO_NTYPE_INTERNATIONAL) continue; - if (!strcmp(number, phone+strlen(options.international))) - { + if (!strcmp(number, phone+strlen(options.international))) { found = 1; break; } continue; } - if (!options.national[0]) /* no national prefix */ - { + if (!options.national[0]) { /* no national prefix */ if (type == INFO_NTYPE_INTERNATIONAL) continue; - if (!strcmp(number, phone)) - { + if (!strcmp(number, phone)) { found = 1; break; } continue; } - if (!strncmp(phone, options.national, strlen(options.national))) - { + if (!strncmp(phone, options.national, strlen(options.national))) { if (type != INFO_NTYPE_NATIONAL) continue; - if (!strcmp(number, phone+strlen(options.national))) - { + if (!strcmp(number, phone+strlen(options.national))) { found = 1; break; } @@ -1811,8 +1611,7 @@ char *parse_directory(char *number, int type) } if (type==INFO_NTYPE_NATIONAL || type==INFO_NTYPE_INTERNATIONAL) continue; - if (!strcmp(number, phone)) - { + if (!strcmp(number, phone)) { found = 1; break; } @@ -1840,24 +1639,19 @@ int parse_callbackauth(char *number, struct caller_info *callerinfo) static char caller_type[32], caller_id[64]; int found = 0; - SPRINT(filename, "%s/%s/%s/callbackauth", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/callbackauth", EXTENSION_DATA, number); - if (!(fp = fopen(filename, "r"))) - { + if (!(fp = fopen(filename, "r"))) { PDEBUG(DEBUG_EPOINT, "Cannot open callbackauth: \"%s\"\n", filename); return(0); } line=0; - while((fgets(buffer, sizeof(buffer), fp))) - { + while((GETLINE(buffer, fp))) { line++; - buffer[sizeof(buffer)-1] = '\0'; - if (buffer[0]) buffer[strlen(buffer)-1] = '\0'; p = buffer; - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; @@ -1869,10 +1663,8 @@ int parse_callbackauth(char *number, struct caller_info *callerinfo) caller_id[0]=0; i=0; /* read caller_type */ - while(*p > 32) - { - if (i+1 >= sizeof(caller_type)) - { + while(*p > 32) { + if (i+1 >= sizeof(caller_type)) { PERROR_RUNTIME("Error in %s (line %d): caller_type too long.\n",filename,line); break; } @@ -1880,20 +1672,16 @@ int parse_callbackauth(char *number, struct caller_info *callerinfo) caller_type[i++] = *p++; } - while(*p <= 32) /* skip spaces */ - { + while(*p <= 32) { /* skip spaces */ if (*p == 0) break; p++; } - if (*p!=0 && *p!='#') /* caller_id */ - { + if (*p!=0 && *p!='#') { /* caller_id */ i=0; /* read caller_id */ - while(*p > 32) - { - if (i+1 >= sizeof(caller_id)) - { + while(*p > 32) { + if (i+1 >= sizeof(caller_id)) { PERROR_RUNTIME("Error in %s (line %d): caller_id too long.\n",filename,line); break; } @@ -1932,15 +1720,13 @@ void append_callbackauth(char *number, struct caller_info *callerinfo) FILE *fp = NULL; char filename[256]; - SPRINT(filename, "%s/%s/%s/callbackauth", INSTALL_DATA, options.extensions_dir, number); + SPRINT(filename, "%s/%s/callbackauth", EXTENSION_DATA, number); - if (callerinfo->id[0]=='\0') - { + if (callerinfo->id[0]=='\0') { PERROR("caller has no id.\n"); return; } - if (!(fp = fopen(filename, "a"))) - { + if (!(fp = fopen(filename, "a"))) { PERROR("Cannot open callbackauth: \"%s\"\n", filename); return; }