Логер всех вызовов.  Лог разделяется на 3 файла: исходящие, входящие, пропущенные. На каждый день создается отдельная папка по адресу /other/Call Logger/ на карте памяти. 
 Формат записи: 
 Имя абонента (номер) - время инициализации вызова, время разговора 
 Пример: 
 Вася (79281234567) - 16:18:35, 07:42 
 Для работы эльфа необходимо наличие в константах: 
 ON_CALLMANAGER_EVENT 
 v.1.92 
 - Поправил определение дневного/ночного тарифа 
 - Убрал продолжительность у пропущенных 
 - Call Logger, v.1.95 
 - Конфиг теперь в bcfg 
 пример *.ini в архиве! 
 В библиотеке функций должны присутствовать следующие: 
 
Code
K800 R8BF003 
 A54: 00000000 E1CAEB44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 A58: 00000000 05C1EB44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 A5C: 00000000 05FA2B45 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
K790 R8BF003 
 0A54: 00000000 99B7D844 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 41AED844 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 EDBD1745 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
W610 R6BC002 
 0A54: 00000000 3D85DB44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 E57BDB44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 E5F51A45 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
W880 R8BA024 
 0A54: 00000000 5574ED44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 796AED44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 E90C2D45 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
W580 R8BA024 
 0A54: 00000000 C1F1DA44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 69E8DA44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 D5441B45 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
Z610 R6DA001 
 0A54: 00000000 1D33EA44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 4129EA44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 051F2945 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
K770 R8BA024 
 0A54: 00000000 BDBEEE44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 E1B4EE44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 B9172F45 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   
Code
W660 R8BB001 
 0A54: 00000000 4991ED44 ; 295: void * CallID_GetCallStatusDesc(int CallID); 
 0A58: 00000000 6D87ED44 ; 296: u16 * CallStatusDesc_GetName(void * CallStatusDesc); 
 0A5C: 00000000 05E72D45 ; 297: void List_FreeElements(LIST *,int * filter,void * freefunc);
   (с)IronMaster