switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s [%s]\n", var, val);
- if (!strcasecmp(var, "debug")) {
+ if (!strcasecmp(var, "debug") && val) {
profile->debug = atoi(val);
} else if (!strcasecmp(var, "parse-invite-tel-params")) {
profile->parse_invite_tel_params = switch_true(val);
- } else if (!strcasecmp(var, "keepalive-method")) {
- if (!zstr(val)) {
- if (!strcasecmp(val, "info")) {
- profile->keepalive = KA_INFO;
- } else {
- profile->keepalive = KA_MESSAGE;
- }
+ } else if (!strcasecmp(var, "keepalive-method") && !zstr(val)) {
+ if (!strcasecmp(val, "info")) {
+ profile->keepalive = KA_INFO;
+ } else {
+ profile->keepalive = KA_MESSAGE;
}
} else if (!strcasecmp(var, "bind-attempts") && val) {
int ba = atoi(val) - 1;
} else {
profile->mndlb &= ~SM_NDLB_NEVER_PATCH_REINVITE;
}
- } else if (!strcasecmp(var, "registration-thread-frequency")) {
+ } else if (!strcasecmp(var, "registration-thread-frequency") && !zstr(val)) {
profile->ireg_seconds = atoi(val);
if (profile->ireg_seconds < 0) {
profile->ireg_seconds = IREG_SECONDS;
}
- } else if (!strcasecmp(var, "ping-mean-interval")) {
+ } else if (!strcasecmp(var, "ping-mean-interval") && !zstr(val)) {
profile->iping_seconds = atoi(val);
if (profile->iping_seconds < 0) {
profile->iping_seconds = IPING_SECONDS;
}
- } else if (!strcasecmp(var, "ping-thread-frequency")) {
+ } else if (!strcasecmp(var, "ping-thread-frequency") && !zstr(val)) {
profile->iping_freq = atoi(val);
if (profile->iping_freq < 0) {
profile->iping_freq = IPING_FREQUENCY;
} else {
sofia_clear_pflag(profile, PFLAG_LIBERAL_DTMF);
}
- } else if (!strcasecmp(var, "rtp-digit-delay")) {
+ } else if (!strcasecmp(var, "rtp-digit-delay") && !zstr(val)) {
int delay = atoi(val);
if (delay < 0) {
delay = 0;
profile->rtp_digit_delay = (uint32_t) delay;
} else if (!strcasecmp(var, "watchdog-enabled")) {
profile->watchdog_enabled = switch_true(val);
- } else if (!strcasecmp(var, "watchdog-step-timeout")) {
+ } else if (!strcasecmp(var, "watchdog-step-timeout") && !zstr(val)) {
profile->step_timeout = atoi(val);
- } else if (!strcasecmp(var, "watchdog-event-timeout")) {
+ } else if (!strcasecmp(var, "watchdog-event-timeout") && !zstr(val)) {
profile->event_timeout = atoi(val);
-
} else if (!strcasecmp(var, "in-dialog-chat")) {
if (switch_true(val)) {
sofia_set_pflag(profile, PFLAG_IN_DIALOG_CHAT);
sofia_clear_pflag(profile, PFLAG_PRESENCE_PROBE_ON_REGISTER);
}
} else if (!strcasecmp(var, "send-presence-on-register")) {
- if (switch_true(val) || !strcasecmp(val, "all")) {
+ if (val && (switch_true(val) || !strcasecmp(val, "all"))) {
sofia_set_pflag(profile, PFLAG_PRESENCE_ON_REGISTER);
- } else if (!strcasecmp(val, "first-only")) {
+ } else if (val && !strcasecmp(val, "first-only")) {
sofia_clear_pflag(profile, PFLAG_PRESENCE_ON_REGISTER);
sofia_set_pflag(profile, PFLAG_PRESENCE_ON_FIRST_REGISTER);
} else {
} else {
sofia_clear_pflag(profile, PFLAG_CID_IN_1XX);
}
-
} else if (!strcasecmp(var, "disable-hold")) {
if (switch_true(val)) {
sofia_set_media_flag(profile, SCMF_DISABLE_HOLD);
} else {
sofia_clear_media_flag(profile, SCMF_DISABLE_HOLD);
}
- } else if (!strcasecmp(var, "auto-jitterbuffer-msec")) {
+ } else if (!strcasecmp(var, "auto-jitterbuffer-msec") && !zstr(val)) {
int msec = atoi(val);
if (msec > 19) {
profile->jb_msec = switch_core_strdup(profile->pool, val);
}
} else if (!strcasecmp(var, "dtmf-type")) {
- if (!strcasecmp(val, "rfc2833")) {
+ if (val && !strcasecmp(val, "rfc2833")) {
profile->dtmf_type = DTMF_2833;
- } else if (!strcasecmp(val, "info")) {
+ } else if (val && !strcasecmp(val, "info")) {
profile->dtmf_type = DTMF_INFO;
} else {
profile->dtmf_type = DTMF_NONE;
} else {
sofia_clear_flag(profile, TFLAG_ZRTP_PASSTHRU);
}
- } else if (!strcasecmp(var, "force-subscription-expires")) {
+ } else if (!strcasecmp(var, "force-subscription-expires") && !zstr(val)) {
int tmp = atoi(val);
if (tmp > 0) {
profile->force_subscription_expires = tmp;
}
- } else if (!strcasecmp(var, "force-publish-expires")) {
+ } else if (!strcasecmp(var, "force-publish-expires") && !zstr(val)) {
int tmp = atoi(val);
if (tmp > 0) {
profile->force_publish_expires = tmp;
} else if (!strcasecmp(var, "send-message-query-on-register")) {
if (switch_true(val)) {
sofia_set_pflag(profile, PFLAG_MESSAGE_QUERY_ON_REGISTER);
- } else if (!strcasecmp(val, "first-only")) {
+ } else if (val && !strcasecmp(val, "first-only")) {
sofia_clear_pflag(profile, PFLAG_MESSAGE_QUERY_ON_REGISTER);
sofia_set_pflag(profile, PFLAG_MESSAGE_QUERY_ON_FIRST_REGISTER);
} else {
}
} else if (!strcasecmp(var, "user-agent-filter")) {
profile->user_agent_filter = switch_core_strdup(profile->pool, val);
- } else if (!strcasecmp(var, "max-registrations-per-extension")) {
+ } else if (!strcasecmp(var, "max-registrations-per-extension") && !zstr(val)) {
profile->max_registrations_perext = atoi(val);
- } else if (!strcasecmp(var, "rfc2833-pt")) {
+ } else if (!strcasecmp(var, "rfc2833-pt") && !zstr(val)) {
profile->te = (switch_payload_t) atoi(val);
- } else if (!strcasecmp(var, "cng-pt") && !sofia_test_media_flag(profile, SCMF_SUPPRESS_CNG)) {
+ } else if (!strcasecmp(var, "cng-pt") && !sofia_test_media_flag(profile, SCMF_SUPPRESS_CNG) && !zstr(val)) {
profile->cng_pt = (switch_payload_t) atoi(val);
- } else if (!strcasecmp(var, "sip-port")) {
+ } else if (!strcasecmp(var, "sip-port") && !zstr(val)) {
if (!strcasecmp(val, "auto")) {
sofia_set_pflag(profile, PFLAG_AUTO_ASSIGN_PORT);
} else {
profile->sip_port = (switch_port_t) atoi(val);
if (!profile->extsipport) profile->extsipport = profile->sip_port;
}
- } else if (!strcasecmp(var, "vad")) {
+ } else if (!strcasecmp(var, "vad") && !zstr(val)) {
if (!strcasecmp(val, "in")) {
profile->vflags |= VAD_IN;
} else if (!strcasecmp(val, "out")) {
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid ext-rtp-ip\n");
}
- } else if (!strcasecmp(var, "rtp-ip")) {
+ } else if (!strcasecmp(var, "rtp-ip") && val) {
char *ip = mod_sofia_globals.guess_ip;
char buf[64];
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Max IPs configured for profile %s.\n", profile->name);
}
}
- } else if (!strcasecmp(var, "sip-ip")) {
+ } else if (!strcasecmp(var, "sip-ip") && val) {
char *ip = mod_sofia_globals.guess_ip;
char buf[64];
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid ext-sip-ip\n");
}
} else if (!strcasecmp(var, "local-network-acl")) {
- if (!strcasecmp(var, "none")) {
+ if (val && !strcasecmp(val, "none")) {
profile->local_network = NULL;
} else {
profile->local_network = switch_core_strdup(profile->pool, val);
profile->timer_name = switch_core_strdup(profile->pool, val);
} else if (!strcasecmp(var, "hold-music")) {
profile->hold_music = switch_core_strdup(profile->pool, val);
- } else if (!strcasecmp(var, "outbound-proxy")) {
+ } else if (!strcasecmp(var, "outbound-proxy") && val) {
if (strncasecmp(val, "sip:", 4) && strncasecmp(val, "sips:", 5)) {
profile->outbound_proxy = switch_core_sprintf(profile->pool, "sip:%s", val);
} else {
profile->rtcp_audio_interval_msec = switch_core_strdup(profile->pool, val);
} else if (!strcasecmp(var, "rtcp-video-interval-msec")) {
profile->rtcp_video_interval_msec = switch_core_strdup(profile->pool, val);
- } else if (!strcasecmp(var, "session-timeout")) {
+ } else if (!strcasecmp(var, "session-timeout") && !zstr(val)) {
int v_session_timeout = atoi(val);
if (v_session_timeout >= 0) {
profile->session_timeout = v_session_timeout;
}
- } else if (!strcasecmp(var, "max-proceeding")) {
+ } else if (!strcasecmp(var, "max-proceeding") && !zstr(val)) {
int v_max_proceeding = atoi(val);
if (v_max_proceeding >= 0) {
profile->max_proceeding = v_max_proceeding;
}
- } else if (!strcasecmp(var, "rtp-timeout-sec")) {
+ } else if (!strcasecmp(var, "rtp-timeout-sec") && !zstr(val)) {
int v = atoi(val);
if (v >= 0) {
profile->rtp_timeout_sec = v;
}
- } else if (!strcasecmp(var, "rtp-hold-timeout-sec")) {
+ } else if (!strcasecmp(var, "rtp-hold-timeout-sec") && !zstr(val)) {
int v = atoi(val);
if (v >= 0) {
profile->rtp_hold_timeout_sec = v;
} else {
profile->mflags |= MFLAG_REGISTER;
}
- } else if (!strcasecmp(var, "media-option")) {
+ } else if (!strcasecmp(var, "media-option") && !zstr(val)) {
if (!strcasecmp(val, "resume-media-on-hold")) {
profile->media_options |= MEDIA_OPT_MEDIA_ON_HOLD;
} else if (!strcasecmp(val, "bypass-media-after-att-xfer")) {
} else if (!strcasecmp(var, "pnp-provision-url")) {
profile->pnp_prov_url = switch_core_strdup(profile->pool, val);
} else if (!strcasecmp(var, "manage-presence")) {
- if (!strcasecmp(val, "passive")) {
+ if (val && !strcasecmp(val, "passive")) {
profile->pres_type = PRES_TYPE_PASSIVE;
- } else if (!strcasecmp(val, "pnp")) {
+ } else if (val && !strcasecmp(val, "pnp")) {
profile->pres_type = PRES_TYPE_PNP;
} else if (switch_true(val)) {
profile->pres_type = PRES_TYPE_FULL;
profile->pres_type = 0;
}
} else if (!strcasecmp(var, "presence-hold-state")) {
- if (!strcasecmp(val, "confirmed")) {
+ if (val && !strcasecmp(val, "confirmed")) {
profile->pres_held_type = PRES_HELD_CONFIRMED;
- } else if (!strcasecmp(val, "terminated")) {
+ } else if (val && !strcasecmp(val, "terminated")) {
profile->pres_held_type = PRES_HELD_TERMINATED;
} else {
profile->pres_held_type = 0;
profile->pres_type = PRES_TYPE_FULL;
sofia_set_pflag(profile, PFLAG_MULTIREG);
- } else if (!strcasecmp(val, "sylantro")) {
+ } else if (val && !strcasecmp(val, "sylantro")) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR,
"Sylantro support has been removed.\n"
"It was incomplete anyway, and we fully support the broadsoft SCA shared line spec.");
} else {
sofia_clear_pflag(profile, PFLAG_UNREG_OPTIONS_FAIL);
}
- } else if (!strcasecmp(var, "sip-user-ping-max")) {
+ } else if (!strcasecmp(var, "sip-user-ping-max") && !zstr(val)) {
profile->sip_user_ping_max = atoi(val);
- } else if (!strcasecmp(var, "sip-user-ping-min")) {
+ } else if (!strcasecmp(var, "sip-user-ping-min") && !zstr(val)) {
profile->sip_user_ping_min = atoi(val);
} else if (!strcasecmp(var, "require-secure-rtp")) {
if (switch_true(val)) {
if (found) continue;
if (!strcasecmp(var, "multiple-registrations")) {
- if (!strcasecmp(val, "call-id")) {
+ if (val && !strcasecmp(val, "call-id")) {
sofia_set_pflag(profile, PFLAG_MULTIREG);
- } else if (!strcasecmp(val, "contact") || switch_true(val)) {
+ } else if (val && (!strcasecmp(val, "contact") || switch_true(val))) {
sofia_set_pflag(profile, PFLAG_MULTIREG);
sofia_set_pflag(profile, PFLAG_MULTIREG_CONTACT);
} else if (!switch_true(val)) {
} else if (!strcasecmp(var, "contact-user")) {
profile->contact_user = switch_core_strdup(profile->pool, val);
} else if (!strcasecmp(var, "nat-options-ping")) {
- if (!strcasecmp(val, "udp-only")) {
+ if (val && !strcasecmp(val, "udp-only")) {
sofia_set_pflag(profile, PFLAG_UDP_NAT_OPTIONS_PING);
} else if (switch_true(val)) {
sofia_set_pflag(profile, PFLAG_NAT_OPTIONS_PING);
sofia_clear_pflag(profile, PFLAG_ALL_REG_OPTIONS_PING);
}
} else if (!strcasecmp(var, "inbound-codec-negotiation")) {
- if (!strcasecmp(val, "greedy")) {
+ if (val && !strcasecmp(val, "greedy")) {
sofia_set_media_flag(profile, SCMF_CODEC_GREEDY);
- } else if (!strcasecmp(val, "scrooge")) {
+ } else if (val && !strcasecmp(val, "scrooge")) {
sofia_set_media_flag(profile, SCMF_CODEC_GREEDY);
sofia_set_media_flag(profile, SCMF_CODEC_SCROOGE);
} else {
} else {
sofia_clear_pflag(profile, PFLAG_EXTENDED_INFO_PARSING);
}
- } else if (!strcasecmp(var, "nonce-ttl")) {
+ } else if (!strcasecmp(var, "nonce-ttl") && !zstr(val)) {
profile->nonce_ttl = atoi(val);
- } else if (!strcasecmp(var, "max-auth-validity")) {
+ } else if (!strcasecmp(var, "max-auth-validity") && !zstr(val)) {
profile->max_auth_validity = atoi(val);
} else if (!strcasecmp(var, "accept-blind-reg")) {
if (switch_true(val)) {
} else {
sofia_clear_pflag(profile, PFLAG_ENABLE_RFC5626);
}
- } else if (!strcasecmp(var, "minimum-session-expires")) {
+ } else if (!strcasecmp(var, "minimum-session-expires") && !zstr(val)) {
profile->minimum_session_expires = atoi(val);
/* per RFC 4028: minimum_session_expires must be > 90 */
if (profile->minimum_session_expires < 90) {
sofia_clear_pflag(profile, PFLAG_PARSE_ALL_INVITE_HEADERS);
}
} else if (!strcasecmp(var, "bitpacking")) {
- if (!strcasecmp(val, "aal2")) {
+ if (val && !strcasecmp(val, "aal2")) {
profile->codec_flags = SWITCH_CODEC_FLAG_AAL2;
} else {
profile->codec_flags = 0;
profile->sdp_username = switch_core_strdup(profile->pool, val);
} else if (!strcasecmp(var, "context")) {
profile->context = switch_core_strdup(profile->pool, val);
- } else if (!strcasecmp(var, "apply-nat-acl")) {
+ } else if (!strcasecmp(var, "apply-nat-acl") && !zstr(val)) {
if (!strcasecmp(val,"none")) {
profile->nat_acl_count = 0;
} else if (profile->nat_acl_count < SOFIA_MAX_ACL) {
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Max acl records of %d reached\n", SOFIA_MAX_ACL);
}
- } else if (!strcasecmp(var, "apply-inbound-acl")) {
+ } else if (!strcasecmp(var, "apply-inbound-acl") && !zstr(val)) {
if (!strcasecmp(val,"none")) {
profile->acl_count = 0;
} else if (profile->acl_count < SOFIA_MAX_ACL) {
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Max acl records of %d reached\n", SOFIA_MAX_ACL);
}
- } else if (!strcasecmp(var, "apply-proxy-acl")) {
+ } else if (!strcasecmp(var, "apply-proxy-acl") && !zstr(val)) {
if (!strcasecmp(val,"none")) {
profile->proxy_acl_count = 0;
} else if (profile->proxy_acl_count < SOFIA_MAX_ACL) {
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Max acl records of %d reached\n", SOFIA_MAX_ACL);
}
- } else if (!strcasecmp(var, "apply-register-acl")) {
+ } else if (!strcasecmp(var, "apply-register-acl") && !zstr(val)) {
if (!strcasecmp(val,"none")) {
profile->reg_acl_count = 0;
} else if (profile->reg_acl_count < SOFIA_MAX_ACL) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Max acl records of %d reached\n", SOFIA_MAX_ACL);
}
- } else if (!strcasecmp(var, "apply-candidate-acl")) {
+ } else if (!strcasecmp(var, "apply-candidate-acl") && !zstr(val)) {
if (!strcasecmp(val,"none")) {
profile->cand_acl_count = 0;
} else if (profile->cand_acl_count < SWITCH_MAX_CAND_ACL) {
}
} else if (!strcasecmp(var, "dialplan")) {
profile->dialplan = switch_core_strdup(profile->pool, val);
- } else if (!strcasecmp(var, "max-calls")) {
+ } else if (!strcasecmp(var, "max-calls") && !zstr(val)) {
profile->max_calls = atoi(val);
} else if (!strcasecmp(var, "codec-prefs")) {
profile->inbound_codec_string = switch_core_strdup(profile->pool, val);
profile->outbound_codec_string = switch_core_strdup(profile->pool, val);
} else if (!strcasecmp(var, "challenge-realm")) {
profile->challenge_realm = switch_core_strdup(profile->pool, val);
- } else if (!strcasecmp(var, "dtmf-duration")) {
+ } else if (!strcasecmp(var, "dtmf-duration") && !zstr(val)) {
uint32_t dur = atoi(val);
if (dur >= switch_core_min_dtmf_duration(0) && dur <= switch_core_max_dtmf_duration(0)) {
profile->dtmf_duration = dur;
sofia_clear_pflag(profile, PFLAG_TLS);
}
} else if (!strcasecmp(var, "tls-bind-params")) {
- if (switch_stristr("transport=tls", val)) {
+ if (val && switch_stristr("transport=tls", val)) {
profile->tls_bind_params = switch_core_strdup(profile->pool, val);
} else {
profile->tls_bind_params = switch_core_sprintf(profile->pool, "%s;transport=tls", val);
profile->tls_only = switch_true(val);
} else if (!strcasecmp(var, "tls-verify-date")) {
profile->tls_verify_date = switch_true(val);
- } else if (!strcasecmp(var, "tls-verify-depth")) {
+ } else if (!strcasecmp(var, "tls-verify-depth") && !zstr(val)) {
profile->tls_verify_depth = atoi(val);
} else if (!strcasecmp(var, "tls-verify-policy")) {
profile->tls_verify_policy = sofia_glue_str2tls_verify_policy(val);
- } else if (!strcasecmp(var, "tls-sip-port")) {
+ } else if (!strcasecmp(var, "tls-sip-port") && !zstr(val)) {
if (!strcasecmp(val, "auto")) {
sofia_set_pflag(profile, PFLAG_AUTO_ASSIGN_TLS_PORT);
} else {
profile->tls_version |= SOFIA_TLS_VERSION_TLSv1_2;
ps=pe+1;
}
- } else if (!strcasecmp(var, "tls-timeout")) {
+ } else if (!strcasecmp(var, "tls-timeout") && !zstr(val)) {
int v = atoi(val);
profile->tls_timeout = v > 0 ? (unsigned int)v : 300;
- } else if (!strcasecmp(var, "timer-T1")) {
+ } else if (!strcasecmp(var, "timer-T1") && !zstr(val)) {
int v = atoi(val);
if (v > 0) {
profile->timer_t1 = v;
} else {
profile->timer_t1 = 500;
}
- } else if (!strcasecmp(var, "timer-T1X64")) {
+ } else if (!strcasecmp(var, "timer-T1X64") && !zstr(val)) {
int v = atoi(val);
if (v > 0) {
profile->timer_t1x64 = v;
} else {
profile->timer_t1x64 = 32000;
}
- } else if (!strcasecmp(var, "timer-T2")) {
+ } else if (!strcasecmp(var, "timer-T2") && !zstr(val)) {
int v = atoi(val);
if (v > 0) {
profile->timer_t2 = v;
} else {
profile->timer_t2 = 4000;
}
- } else if (!strcasecmp(var, "timer-T4")) {
+ } else if (!strcasecmp(var, "timer-T4") && !zstr(val)) {
int v = atoi(val);
if (v > 0) {
profile->timer_t4 = v;
} else {
profile->timer_t4 = 4000;
}
- } else if (!strcasecmp(var, "sip-options-respond-503-on-busy")) {
- if (switch_true(val)) {
- sofia_set_pflag(profile, PFLAG_OPTIONS_RESPOND_503_ON_BUSY);
- } else {
- sofia_clear_pflag(profile, PFLAG_OPTIONS_RESPOND_503_ON_BUSY);
- }
- } else if (!strcasecmp(var, "sip-expires-late-margin")) {
+ } else if (!strcasecmp(var, "sip-options-respond-503-on-busy")) {
+ if (switch_true(val)) {
+ sofia_set_pflag(profile, PFLAG_OPTIONS_RESPOND_503_ON_BUSY);
+ } else {
+ sofia_clear_pflag(profile, PFLAG_OPTIONS_RESPOND_503_ON_BUSY);
+ }
+ } else if (!strcasecmp(var, "sip-expires-late-margin") && !zstr(val)) {
int32_t sip_expires_late_margin = atoi(val);
if (sip_expires_late_margin >= 0) {
profile->sip_expires_late_margin = sip_expires_late_margin;
} else {
profile->sip_expires_late_margin = 60;
}
- } else if (!strcasecmp(var, "sip-force-expires-min")) {
+ } else if (!strcasecmp(var, "sip-force-expires-min") && !zstr(val)) {
int32_t sip_force_expires_min = atoi(val);
if (sip_force_expires_min >= 0) {
profile->sip_force_expires_min = sip_force_expires_min;
} else {
profile->sip_force_expires_min = 0;
}
- } else if (!strcasecmp(var, "sip-force-expires-max")) {
+ } else if (!strcasecmp(var, "sip-force-expires-max") && !zstr(val)) {
int32_t sip_force_expires_max = atoi(val);
if (sip_force_expires_max >= 0) {
profile->sip_force_expires_max = sip_force_expires_max;
} else {
profile->sip_force_expires_max = 0;
}
- } else if (!strcasecmp(var, "sip-force-expires")) {
+ } else if (!strcasecmp(var, "sip-force-expires") && !zstr(val)) {
int32_t sip_force_expires = atoi(val);
if (sip_force_expires >= 0) {
profile->sip_force_expires = sip_force_expires;
} else {
profile->sip_force_expires = 0;
}
- } else if (!strcasecmp(var, "sip-expires-max-deviation")) {
+ } else if (!strcasecmp(var, "sip-expires-max-deviation") && !zstr(val)) {
int32_t sip_expires_max_deviation = atoi(val);
if (sip_expires_max_deviation >= 0) {
profile->sip_expires_max_deviation = sip_expires_max_deviation;
} else {
profile->sip_expires_max_deviation = 0;
}
- } else if (!strcasecmp(var, "sip-subscription-max-deviation")) {
+ } else if (!strcasecmp(var, "sip-subscription-max-deviation") && !zstr(val)) {
int32_t sip_subscription_max_deviation = atoi(val);
if (sip_subscription_max_deviation >= 0) {
profile->sip_subscription_max_deviation = sip_subscription_max_deviation;
sofia_clear_pflag(profile, PFLAG_NO_CONNECTION_REUSE);
}
} else if (!strcasecmp(var, "p-asserted-id-parse")) {
- if (!strncasecmp(val, "default", 7)) {
+ if (!val) {
+ profile->paid_type = PAID_DEFAULT;
+ } else if (!strncasecmp(val, "default", 7)) {
profile->paid_type = PAID_DEFAULT;
} else if (!strncasecmp(val, "user-only", 9)) {
profile->paid_type = PAID_USER;
} else {
sofia_clear_pflag(profile, PFLAG_FIRE_TRANFER_EVENTS);
}
- } else if (!strcasecmp(var, "enforce-blind-auth-result")) {
- if(switch_true(val)) {
- sofia_set_pflag(profile, PFLAG_BLIND_AUTH_ENFORCE_RESULT);
- } else {
- sofia_clear_pflag(profile, PFLAG_BLIND_AUTH_ENFORCE_RESULT);
- }
- } else if (!strcasecmp(var, "proxy-hold")) {
- if(switch_true(val)) {
- sofia_set_pflag(profile, PFLAG_PROXY_HOLD);
- } else {
- sofia_clear_pflag(profile, PFLAG_PROXY_HOLD);
- }
+ } else if (!strcasecmp(var, "enforce-blind-auth-result")) {
+ if(switch_true(val)) {
+ sofia_set_pflag(profile, PFLAG_BLIND_AUTH_ENFORCE_RESULT);
+ } else {
+ sofia_clear_pflag(profile, PFLAG_BLIND_AUTH_ENFORCE_RESULT);
+ }
+ } else if (!strcasecmp(var, "proxy-hold")) {
+ if(switch_true(val)) {
+ sofia_set_pflag(profile, PFLAG_PROXY_HOLD);
+ } else {
+ sofia_clear_pflag(profile, PFLAG_PROXY_HOLD);
+ }
}
}