Example #1
0
int linphone_proxy_config_normalize_number(LinphoneProxyConfig *proxy, const char *username, char *result, size_t result_len){
	char *flatten;
	int numlen;
	if (is_a_phone_number(username)){
		flatten=flatten_number(username);
		ms_message("Flattened number is '%s'",flatten);
		numlen=strlen(flatten);
		if (numlen>10 || flatten[0]=='+' || proxy->dial_prefix==NULL || proxy->dial_prefix[0]=='\0'){
			ms_message("No need to add a prefix");
			/* prefix is already there */
			copy_result(flatten,result,result_len,proxy->dial_escape_plus);
			ms_free(flatten);
			return 0;
		}else if (proxy->dial_prefix && proxy->dial_prefix[0]!='\0'){
			char *prefixed;
			int skipped=0;
			ms_message("Need to prefix with %s",proxy->dial_prefix);
			if (numlen==10){
				/*remove initial number before prepending prefix*/
				skipped=1;
			}
			prefixed=append_prefix(flatten+skipped,proxy->dial_prefix);
			ms_free(flatten);
			copy_result(prefixed,result,result_len,proxy->dial_escape_plus);
			ms_free(prefixed);
		}
	}else strncpy(result,username,result_len);
	return 0;
}
 void add(std::string const & key, template_base const & T, statements_container const & statements)
 {
   if (kernels_.insert(container_type::value_type(key, T.clone())).second)
   {
     std::vector<std::string> sources = at(kernels_, key)->generate(append_prefix(key), statements, device_);
     assert(sources.size()<=2);
     for (unsigned int i = 0; i < sources.size(); ++i)
       lazy_programs_[i].add(sources[i]);
   }
 }
 void execute(container_type::key_type const & key, statements_container const & statements)
 {
   tools::shared_ptr<template_base> & template_pointer = at(kernels_, key);
   template_pointer->enqueue(append_prefix(key), lazy_programs_, statements);
 }