Linphone改变"替换+ 00和#34; funcation

时间:2017-10-28 06:06:11

标签: voip linphone sip-server linphone-sdk

我正在使用linphone制作一个项目,可以选择"将+替换为00"。
示例: - 如果编号,则号码保存在我们的手机中 + 91-12345678使用此选项"替换+ 00"它的确将这个数字改为0091-12345678 我需要的是我想改变"替换+ 00"到"取代+ 900"意味着
该号码应为90091-12345678我无法找到该字符串的位置,我可以将00更改为900.如果有人使用linphone或任何其他用户,请帮助我。 感谢

1 个答案:

答案 0 :(得分:1)

我担心配置只支持用'+'更改ICP(国际呼叫前缀)。

struct _LinphoneDialplan在core_utils.h

中定义
typedef struct _LinphoneDialPlan {
    const char *country;
    const char* iso_country_code; /* ISO 3166-1 alpha-2 code, ex: FR for France*/
    char  ccc[8]; /*country calling code*/
    int nnl; /*maximum national number length*/
    const char * icp; /*international call prefix, ex: 00 in europe*/
} LinphoneDialPlan;

在dial_plan.c中,ICP是每个国家/地区的常量

static LinphoneDialPlan const dial_plans[]={
    //Country                   , iso country code, e164 country calling code, number length, international usual prefix
...
    {"India"                        ,"IN"       , "91"      , 10    , "00"  },
...
};

从confiuguration中获取的值dial_escape_plus仅以这种方式用于proxy.c:

result = ms_strdup_printf("%s%s%s"
                        , tmpproxy->dial_escape_plus ? dialplan.icp : "+"
                        , dialplan.ccc
                        , nationnal_significant_number_start);

这一切都在linphone的3.11版中,在以前的版本中,“+”和“00”之间的转换更“明确”。

因此,如果没有修补库,我认为你不能以你想要的方式更改数字。始终可以根据您的需要操作字符串