如何对语音信箱的多个号码设置不同的默认值

来源:互联网 发布:mac下载软件如何用 编辑:程序博客网 时间:2024/05/17 08:56
1.1 如何对语音信箱的多个号码设置不同的默认值 
MTK平台的机制是如果sim卡中有6F17这只文件,那么语音信息将会被保存在sim卡上,如果sim卡没有这只文件,语音信息则会被保存在nvram上。换sim卡时,会初始化手机上的语音信息栏位 
 如果sim卡支持语音信息的栏位,则会将sim卡中的语音信息存入手机,sim卡上没存语音信息,手机初始为空。如果sim卡不支持语音信息的栏位,初始为空。如何查看sim卡是否支持语音信息栏位:连上catcher,进advance/sim
editor里,在file id里输入6f17(用来存储语音信息),send后,看status的显示,如果是sim_file_not_found则表明这张sim卡不支持语音信息,如果是sim_cmd_success则表明支持。 
 如果存储在NVRAM中,重新插入一张sim卡机时,系统会检测是否与上次插入的sim卡为同一张,如果是,就不会清掉nvram上保存的语音信息值。如果不是,既sim卡更换了,我们就会把nvram上的值清掉。 
 在NVRAM中其对应的LID为NVRAM_EF_SMSAL_MAILBOX_ADDR_LID。 
 如果要对nvram的多个record设定不同默认值,需要对该Nvram增加NVRAM_CATEGORY_MULTI_DEFAULT属性。 
 定制的建议如下: 
1.在nvram_common_config.c中修改 
NVRAM_EF_SMSAL_MAILBOX_ADDR_LID, 
 NVRAM_EF_SMSAL_MAILBOX_ADDR_SIZE, 
 NVRAM_EF_SMSAL_MAILBOX_ADDR_TOTAL, 
 NVRAM_EF_ZERO_DEFAULT, 
 NVRAM_ATTR_AVERAGE, 
 NVRAM_CATEGORY_USER | NVRAM_CATEGORY_CUSTPACK |
NVRAM_CATEGORY_SHADOW, 
 "MP13", 
 VER(NVRAM_EF_SMSAL_MAILBOX_ADDR_LID),  
"SMSAL MAILBOX\0", 
 NVRAM_RESERVED_VALUE 
为NVRAM_EF_SMSAL_MAILBOX_ADDR_LID, 
 NVRAM_EF_SMSAL_MAILBOX_ADDR_SIZE, 
 NVRAM_EF_SMSAL_MAILBOX_ADDR_TOTAL, 
 NVRAM_EF_SMSAL_MAILBOX_ADDR_DEFAULT, 
 NVRAM_ATTR_AVERAGE, 
 NVRAM_CATEGORY_USER | NVRAM_CATEGORY_CUSTPACK |
NVRAM_CATEGORY_SHADOW|NVRAM_CATEGORY_MULTI_DEFAULT, 
 "MP13", 
 VER(NVRAM_EF_SMSAL_MAILBOX_ADDR_LID),  
"SMSAL MAILBOX\0", 
 NVRAM_RESERVED_VALUE 
2.在nvram_cust_pack.c中修改 
NVRAM_EF_SMSAL_MAILBOX_ADDR_DEFAULT 默認值的定义如下: 
const kal_uint8 NVRAM_EF_SMSAL_MAILBOX_ADDR_DEFAULT[] =  

// 語音信箱的名稱,使用 ASC II 表示每個字母 
0x4b, 0x4f, 0x4e, 0x47, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* Alpha ID */ 
// 語音信箱號碼 bcd 碼的長度 +1,如果號碼長度是9位 則該值為 (9+1)/2+1 
0x04, /* Length of BCD number */ 
// 名稱的存儲格式 
0x81, /* TON and NPI */ 
// 號碼的 bcd 碼,不足位全部使用f補齊 
0x21, 0x43, 0x65, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, /* Dailling number */ 
// 客戶不需要修改 
0xff, /* capability/configuration identifier */ 
0xff /* extension 1 record identifier */ 

 上边的这个例子即为mailbox名字为KONG,号码为123456。 
 若为双卡,所以应该定义四个缺省值,每个值直接用","隔开即可。不用的可以定义为空。