work on chan_lcr
[lcr.git] / callerid.c
1 /*****************************************************************************\
2 **                                                                           **
3 ** PBX4Linux                                                                 **
4 **                                                                           **
5 **---------------------------------------------------------------------------**
6 ** Copyright: Andreas Eversberg                                              **
7 **                                                                           **
8 ** caller id support file                                                    **
9 **                                                                           **
10 \*****************************************************************************/ 
11
12 #include "main.h"
13
14 /* create caller id from digits by comparing with national and international
15  * prefixes.
16  */
17 char *nationalize_callerinfo(char *string, int *ntype, char *national, char *international)
18 {
19         if (!strncmp(options.international, string, strlen(options.international)))
20         {
21                 *ntype = INFO_NTYPE_INTERNATIONAL;
22                 return(string+strlen(international)); 
23         }
24         if (!strncmp(options.national, string, strlen(options.national)))
25         {
26                 *ntype = INFO_NTYPE_NATIONAL;
27                 return(string+strlen(national)); 
28         }
29         *ntype = INFO_NTYPE_SUBSCRIBER;
30         return(string);
31 }
32
33 /* create number (including access codes) from caller id
34  * prefixes.
35  */
36 char *numberrize_callerinfo(char *string, int ntype, char *national, char *international)
37 {
38         static char result[256];
39
40         switch(ntype)
41         {
42                 case INFO_NTYPE_INTERNATIONAL:
43                 UCPY(result, international);
44                 SCAT(result, string);
45                 return(result);
46                 break;
47
48                 case INFO_NTYPE_NATIONAL:
49                 UCPY(result, national);
50                 SCAT(result, string);
51                 return(result);
52                 break;
53
54                 default:
55                 return(string);
56         }
57 }
58
59
60