SIP: Fix incoming re-invite
[lcr.git] / callerid.c
index 47b51da..2f12ac1 100644 (file)
@@ -9,20 +9,22 @@
 **                                                                           **
 \*****************************************************************************/ 
 
-#include "main.h"
+#include <string.h>
+#include <time.h>
+#include "extension.h"
+#include "message.h"
+#include "callerid.h"
 
 /* create caller id from digits by comparing with national and international
  * prefixes.
  */
-char *nationalize_callerinfo(char *string, int *ntype, char *national, char *international)
+const char *nationalize_callerinfo(const char *string, int *ntype, const char *national, const char *international)
 {
-       if (!strncmp(options.international, string, strlen(options.international)))
-       {
+       if (!strncmp(international, string, strlen(international))) {
                *ntype = INFO_NTYPE_INTERNATIONAL;
                return(string+strlen(international)); 
        }
-       if (!strncmp(options.national, string, strlen(options.national)))
-       {
+       if (!strncmp(national, string, strlen(national))) {
                *ntype = INFO_NTYPE_NATIONAL;
                return(string+strlen(national)); 
        }
@@ -33,26 +35,32 @@ char *nationalize_callerinfo(char *string, int *ntype, char *national, char *int
 /* create number (including access codes) from caller id
  * prefixes.
  */
-char *numberrize_callerinfo(char *string, int ntype, char *national, char *international)
+const char *numberrize_callerinfo(const char *string, int ntype, const char *national, const char *international)
 {
        static char result[256];
 
-       switch(ntype)
-       {
+       switch(ntype) {
+               case INFO_NTYPE_NOTPRESENT:
+               return("");
+
                case INFO_NTYPE_INTERNATIONAL:
-               UCPY(result, international);
-               SCAT(result, string);
+               strcpy(result, international);
+               strncat(result, string, sizeof(result)-1);
+               result[sizeof(result)-1] = '\0';
                return(result);
                break;
 
                case INFO_NTYPE_NATIONAL:
-               UCPY(result, national);
-               SCAT(result, string);
+               strcpy(result, national);
+               strncat(result, string, sizeof(result)-1);
+               result[sizeof(result)-1] = '\0';
                return(result);
                break;
 
                default:
-               return(string);
+               strncpy(result, string, sizeof(result)-1);
+               result[sizeof(result)-1] = '\0';
+               return(result);
        }
 }