Browse code

1. Fixed reporting wrong translated called numbers issue. 2. Replaced strcpy by strncpy.

git-svn-id: https://openser.svn.sourceforge.net/svnroot/openser/trunk@3474 689a6050-402a-0410-94f2-e92a70836424

Di-Shi Sun authored on 21/12/2007 04:11:46
Showing 13 changed files
... ...
@@ -42,8 +42,8 @@
42 42
 const str OSP_ORIGDEST_NAME = {"_osp_orig_dests_", 16};
43 43
 const str OSP_TERMDEST_NAME = {"_osp_term_dests_", 16};
44 44
 
45
-static int ospSaveDestination(osp_dest *dest, const str *name);
46
-static void ospRecordCode(int code, osp_dest *dest);
45
+static int ospSaveDestination(osp_dest* dest, const str* name);
46
+static void ospRecordCode(int code, osp_dest* dest);
47 47
 static int ospIsToReportUsage(int code);
48 48
 
49 49
 /*
... ...
@@ -51,8 +51,8 @@ static int ospIsToReportUsage(int code);
51 51
  * param dest Destination data structure
52 52
  * return initialized destination sturcture
53 53
  */
54
-osp_dest *ospInitDestination(
55
-    osp_dest *dest)
54
+osp_dest* ospInitDestination(
55
+    osp_dest* dest)
56 56
 {
57 57
     memset(dest, 0, sizeof(osp_dest));
58 58
 
... ...
@@ -73,8 +73,8 @@ osp_dest *ospInitDestination(
73 73
  * return 0 success, -1 failure
74 74
  */
75 75
 static int ospSaveDestination(
76
-    osp_dest *dest, 
77
-    const str *name)
76
+    osp_dest* dest, 
77
+    const str* name)
78 78
 {
79 79
     str wrapper;
80 80
     int result = -1;
... ...
@@ -102,7 +102,7 @@ static int ospSaveDestination(
102 102
  * return 0 success, -1 failure
103 103
  */
104 104
 int ospSaveOrigDestination(
105
-    osp_dest *dest
105
+    osp_dest* dest
106 106
     )
107 107
 {
108 108
     return ospSaveDestination(dest, &OSP_ORIGDEST_NAME);
... ...
@@ -114,7 +114,7 @@ int ospSaveOrigDestination(
114 114
  * return 0 success, -1 failure
115 115
  */
116 116
 int ospSaveTermDestination(
117
-    osp_dest *dest)
117
+    osp_dest* dest)
118 118
 {
119 119
     return ospSaveDestination(dest, &OSP_TERMDEST_NAME);
120 120
 }
... ...
@@ -128,9 +128,9 @@ int ospSaveTermDestination(
128 128
  */
129 129
 int ospCheckOrigDestination(void)
130 130
 {
131
-    struct usr_avp *destavp = NULL;
131
+    struct usr_avp* destavp = NULL;
132 132
     int_str destval;
133
-    osp_dest *dest = NULL;
133
+    osp_dest* dest = NULL;
134 134
     int result = -1;
135 135
 
136 136
     for (destavp = search_first_avp(AVP_NAME_STR | AVP_VAL_STR, (int_str)OSP_ORIGDEST_NAME, NULL, 0);
... ...
@@ -171,12 +171,12 @@ int ospCheckOrigDestination(void)
171 171
  *     return it, and mark it as used (used==1).
172 172
  * return NULL on failure
173 173
  */
174
-osp_dest *ospGetNextOrigDestination(void)
174
+osp_dest* ospGetNextOrigDestination(void)
175 175
 {
176
-    struct usr_avp *destavp = NULL;
176
+    struct usr_avp* destavp = NULL;
177 177
     int_str destval;
178
-    osp_dest *dest = NULL;
179
-    osp_dest *result = NULL;
178
+    osp_dest* dest = NULL;
179
+    osp_dest* result = NULL;
180 180
 
181 181
     for (destavp = search_first_avp(AVP_NAME_STR | AVP_VAL_STR, (int_str)OSP_ORIGDEST_NAME, NULL, 0);
182 182
         destavp != NULL;
... ...
@@ -223,12 +223,12 @@ osp_dest *ospGetNextOrigDestination(void)
223 223
  *    be wrong for loop condition.
224 224
  *  return NULL on failure
225 225
  */
226
-osp_dest *ospGetLastOrigDestination(void)
226
+osp_dest* ospGetLastOrigDestination(void)
227 227
 {
228
-    struct usr_avp *destavp = NULL;
228
+    struct usr_avp* destavp = NULL;
229 229
     int_str destval;
230
-    osp_dest *dest = NULL;
231
-    osp_dest *lastdest = NULL;
230
+    osp_dest* dest = NULL;
231
+    osp_dest* lastdest = NULL;
232 232
 
233 233
     for (destavp = search_first_avp(AVP_NAME_STR | AVP_VAL_STR, (int_str)OSP_ORIGDEST_NAME, NULL, 0);
234 234
         destavp != NULL;
... ...
@@ -259,10 +259,10 @@ osp_dest *ospGetLastOrigDestination(void)
259 259
  *     There can be 0 or 1 term destinations. Find and return it.
260 260
  *  return NULL on failure (no terminate destination)
261 261
  */
262
-osp_dest *ospGetTermDestination(void)
262
+osp_dest* ospGetTermDestination(void)
263 263
 {
264 264
     int_str destval;
265
-    osp_dest *dest = NULL;
265
+    osp_dest* dest = NULL;
266 266
 
267 267
     if (search_first_avp(AVP_NAME_STR | AVP_VAL_STR, (int_str)OSP_TERMDEST_NAME, &destval, 0) != NULL) {
268 268
         /* OSP destination is wrapped in a string */
... ...
@@ -281,7 +281,7 @@ osp_dest *ospGetTermDestination(void)
281 281
  */
282 282
 static void ospRecordCode(
283 283
     int code, 
284
-    osp_dest *dest)
284
+    osp_dest* dest)
285 285
 {
286 286
     LM_DBG("code '%d'\n", code);
287 287
     dest->lastcode = code;
... ...
@@ -344,7 +344,7 @@ void ospRecordEvent(
344 344
     int clientcode, 
345 345
     int servercode)
346 346
 {
347
-    osp_dest *dest;
347
+    osp_dest* dest;
348 348
 
349 349
     LM_DBG("client status '%d'\n", clientcode);
350 350
     if ((clientcode != 0) && (dest = ospGetLastOrigDestination())) {
... ...
@@ -369,7 +369,7 @@ void ospRecordEvent(
369 369
  * Dump destination information
370 370
  * param dest Destination
371 371
  */
372
-void ospDumpDestination(osp_dest *dest)
372
+void ospDumpDestination(osp_dest* dest)
373 373
 {
374 374
     LM_DBG("dest->host..........'%s'\n", dest->host);
375 375
     LM_DBG("dest->used..........'%d'\n", dest->used);
... ...
@@ -384,9 +384,9 @@ void ospDumpDestination(osp_dest *dest)
384 384
  */
385 385
 void ospDumpAllDestination(void)
386 386
 {
387
-    struct usr_avp *destavp = NULL;
387
+    struct usr_avp* destavp = NULL;
388 388
     int_str destval;
389
-    osp_dest *dest = NULL;
389
+    osp_dest* dest = NULL;
390 390
     int count = 0;
391 391
 
392 392
     for (destavp = search_first_avp(AVP_NAME_STR | AVP_VAL_STR, (int_str)OSP_ORIGDEST_NAME, NULL, 0);
... ...
@@ -425,8 +425,8 @@ void ospDumpAllDestination(void)
425 425
  * param buffersize Size of dst buffer
426 426
  */
427 427
 void ospConvertAddress(
428
-    char *src,
429
-    char *dst,
428
+    char* src,
429
+    char* dst,
430 430
     int buffersize)
431 431
 {
432 432
     struct in_addr inp;
... ...
@@ -60,19 +60,20 @@ typedef struct _osp_dest {
60 60
     int used;
61 61
     int reported;
62 62
     unsigned int destinationCount;
63
+    char origcalled[OSP_STRBUF_SIZE];
63 64
 } osp_dest;
64 65
 
65
-osp_dest *ospInitDestination(osp_dest *dest);
66
-int ospSaveOrigDestination(osp_dest *dest);
67
-int ospSaveTermDestination(osp_dest *dest);
66
+osp_dest* ospInitDestination(osp_dest* dest);
67
+int ospSaveOrigDestination(osp_dest* dest);
68
+int ospSaveTermDestination(osp_dest* dest);
68 69
 int ospCheckOrigDestination(void);
69
-osp_dest *ospGetNextOrigDestination(void);
70
-osp_dest *ospGetLastOrigDestination(void);
71
-osp_dest *ospGetTermDestination(void);
70
+osp_dest* ospGetNextOrigDestination(void);
71
+osp_dest* ospGetLastOrigDestination(void);
72
+osp_dest* ospGetTermDestination(void);
72 73
 void ospRecordEvent(int clientcode, int servercode);
73
-void ospDumpDestination(osp_dest *dest);
74
+void ospDumpDestination(osp_dest* dest);
74 75
 void ospDumpAllDestination(void);
75
-void ospConvertAddress(char *src, char *dst, int buffersize);
76
+void ospConvertAddress(char* src, char* dst, int buffersize);
76 77
 
77 78
 #endif /* _OSP_MOD_DESTINATION_H_ */
78 79
 
... ...
@@ -34,18 +34,18 @@
34 34
 #include "osp_mod.h"
35 35
 
36 36
 unsigned int _osp_sp_number;
37
-char *_osp_sp_uris[OSP_DEF_SPS];
37
+char* _osp_sp_uris[OSP_DEF_SPS];
38 38
 unsigned long _osp_sp_weights[OSP_DEF_SPS] = {
39 39
     OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT,
40 40
     OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT,
41 41
     OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT,
42 42
     OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT, OSP_DEF_WEIGHT
43 43
 };
44
-char *_osp_device_ip = NULL;
45
-char *_osp_device_port = NULL;
46
-unsigned char *_osp_private_key = NULL;
47
-unsigned char *_osp_local_certificate = NULL;
48
-unsigned char *_osp_ca_certificate = NULL;
44
+char* _osp_device_ip = NULL;
45
+char* _osp_device_port = NULL;
46
+unsigned char* _osp_private_key = NULL;
47
+unsigned char* _osp_local_certificate = NULL;
48
+unsigned char* _osp_ca_certificate = NULL;
49 49
 int _osp_crypto_hw = OSP_DEF_HW;
50 50
 int _osp_validate_callid = OSP_DEF_CALLID;
51 51
 int _osp_token_format = OSP_DEF_TOKEN;
... ...
@@ -60,7 +60,7 @@ int _osp_redir_uri = OSP_DEF_REDIRURI;
60 60
 char _osp_PRIVATE_KEY[OSP_KEYBUF_SIZE];
61 61
 char _osp_LOCAL_CERTIFICATE[OSP_KEYBUF_SIZE];
62 62
 char _osp_CA_CERTIFICATE[OSP_KEYBUF_SIZE];
63
-char *_osp_snid_avp = OSP_DEF_SNIDAVP;
63
+char* _osp_snid_avp = OSP_DEF_SNIDAVP;
64 64
 int_str _osp_snid_avpname;
65 65
 unsigned short _osp_snid_avptype;
66 66
 
... ...
@@ -40,8 +40,8 @@
40 40
 #include "sipheader.h"
41 41
 #include "usage.h"
42 42
 
43
-extern char *_osp_device_ip;
44
-extern char *_osp_device_port;
43
+extern char* _osp_device_ip;
44
+extern char* _osp_device_port;
45 45
 extern int _osp_max_dests;
46 46
 extern int _osp_redir_uri;
47 47
 extern int_str _osp_snid_avpname;
... ...
@@ -55,31 +55,31 @@ const int OSP_MAIN_ROUTE = 1;
55 55
 const int OSP_BRANCH_ROUTE = 0;
56 56
 const str OSP_CALLING_NAME = {"_osp_calling_translated_", 24};
57 57
 
58
-static int ospLoadRoutes(struct sip_msg *msg, OSPTTRANHANDLE transaction, int destcount, char *source, char *sourcedev, time_t authtime);
59
-static int ospPrepareDestination(struct sip_msg *msg, int isfirst, int type, int format);
60
-static int ospSetRpid(struct sip_msg *msg, osp_dest *dest);
58
+static int ospLoadRoutes(OSPTTRANHANDLE transaction, int destcount, char* source, char* sourcedev, char* origcalled, time_t authtime);
59
+static int ospPrepareDestination(struct sip_msg* msg, int isfirst, int type, int format);
60
+static int ospSetRpid(struct sip_msg* msg, osp_dest* dest);
61 61
 
62 62
 /*
63 63
  * Get routes from AuthRsp
64
- * param msg SIP message
65 64
  * param transaction Transaction handle
66 65
  * param destcount Expected destination count
67 66
  * param source Source IP
68 67
  * param sourcedev Source device IP
68
+ * param origcalled Original called number
69 69
  * param authtime Request authorization time
70 70
  * return MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
71 71
  */
72 72
 static int ospLoadRoutes(
73
-    struct sip_msg *msg, 
74 73
     OSPTTRANHANDLE transaction, 
75 74
     int destcount, 
76
-    char *source, 
77
-    char *sourcedev, 
75
+    char* source, 
76
+    char* sourcedev, 
77
+    char* origcalled, 
78 78
     time_t authtime)
79 79
 {
80 80
     int count;
81 81
     int errorcode;
82
-    osp_dest *dest;
82
+    osp_dest* dest;
83 83
     osp_dest dests[OSP_DEF_DESTS];
84 84
     OSPE_DEST_PROT protocol;
85 85
     OSPE_DEST_OSP_ENABLED enabled;
... ...
@@ -95,6 +95,7 @@ static int ospLoadRoutes(
95 95
         }
96 96
 
97 97
         dest->destinationCount = count + 1;
98
+        strncpy(dest->origcalled, origcalled, sizeof(dest->origcalled) - 1);
98 99
 
99 100
         if (count == 0) {
100 101
             errorcode = OSPPTransactionGetFirstDestination(
... ...
@@ -183,8 +184,8 @@ static int ospLoadRoutes(
183 184
             dest->networkid[0] = '\0';
184 185
         }
185 186
 
186
-        strcpy(dest->source, source);
187
-        strcpy(dest->srcdev, sourcedev);
187
+        strncpy(dest->source, source, sizeof(dest->source) - 1);
188
+        strncpy(dest->srcdev, sourcedev, sizeof(dest->srcdev) - 1);
188 189
         dest->type = OSPC_SOURCE;
189 190
         dest->transid = ospGetTransactionId(transaction);
190 191
         dest->authtime = authtime;
... ...
@@ -236,24 +237,24 @@ static int ospLoadRoutes(
236 237
  * return MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
237 238
  */
238 239
 int ospRequestRouting(
239
-    struct sip_msg *msg, 
240
-    char *ignore1, 
241
-    char *ignore2)
240
+    struct sip_msg* msg, 
241
+    char* ignore1, 
242
+    char* ignore2)
242 243
 {
243 244
     int errorcode;
244 245
     time_t authtime;
245 246
     char source[OSP_E164BUF_SIZE];
246 247
     char sourcedev[OSP_STRBUF_SIZE];
247 248
     char src[OSP_STRBUF_SIZE];
248
-    struct usr_avp *snidavp = NULL;
249
+    struct usr_avp* snidavp = NULL;
249 250
     int_str snidval;
250 251
     char snid[OSP_STRBUF_SIZE];
251 252
     char destination[OSP_E164BUF_SIZE];
252 253
     unsigned int callidnumber = 1;
253
-    OSPTCALLID *callids[callidnumber];
254
+    OSPTCALLID* callids[callidnumber];
254 255
     unsigned int logsize = 0;
255
-    char *detaillog = NULL;
256
-    const char **preferred = NULL;
256
+    char* detaillog = NULL;
257
+    const char** preferred = NULL;
257 258
     unsigned int destcount;
258 259
     OSPTTRANHANDLE transaction = -1;
259 260
     unsigned long long transid;
... ...
@@ -338,7 +339,7 @@ int ospRequestRouting(
338 339
                 callids[0]->ospmCallIdVal,
339 340
                 transid);
340 341
             /* Will record a unique cookie in the on-branch section */
341
-            result = ospLoadRoutes(msg, transaction, destcount, _osp_device_ip, sourcedev, authtime);
342
+            result = ospLoadRoutes(transaction, destcount, _osp_device_ip, sourcedev, destination, authtime);
342 343
         } else if ((errorcode == 0) && (destcount == 0)) {
343 344
             LM_INFO("there is 0 osp route, call_id '%.*s' transaction_id' %llu'\n",
344 345
                 callids[0]->ospmCallIdLen,
... ...
@@ -374,9 +375,9 @@ int ospRequestRouting(
374 375
  * return MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
375 376
  */
376 377
 int ospCheckRoute(
377
-    struct sip_msg *msg, 
378
-    char *ignore1, 
379
-    char *ignore2)
378
+    struct sip_msg* msg, 
379
+    char* ignore1, 
380
+    char* ignore2)
380 381
 {
381 382
     if (ospCheckOrigDestination() == 0) {
382 383
         return MODULE_RETURNCODE_TRUE;
... ...
@@ -392,8 +393,8 @@ int ospCheckRoute(
392 393
  * return 0 success, 1 calling number same, -1 failure
393 394
  */
394 395
 static int ospSetRpid(
395
-    struct sip_msg *msg, 
396
-    osp_dest *dest)
396
+    struct sip_msg* msg, 
397
+    osp_dest* dest)
397 398
 {
398 399
     str rpid;
399 400
     char calling[OSP_STRBUF_SIZE];
... ...
@@ -417,7 +418,8 @@ static int ospSetRpid(
417 418
     } else {
418 419
         if (dest->source[0] == '[') {
419 420
             /* Strip "[]" */
420
-            strncpy(source, &dest->source[1], sizeof(source));
421
+            memset(source, 0, sizeof(source));
422
+            strncpy(source, &dest->source[1], sizeof(source) - 1);
421 423
             source[strlen(source) - 1] = '\0';
422 424
         }
423 425
     
... ...
@@ -448,9 +450,9 @@ static int ospSetRpid(
448 450
  * return MODULE_RETURNCODE_TRUE calling number translated MODULE_RETURNCODE_FALSE without transaltion
449 451
  */
450 452
 int ospCheckTranslation(
451
-    struct sip_msg *msg, 
452
-    char *ignore1, 
453
-    char *ignore2)
453
+    struct sip_msg* msg, 
454
+    char* ignore1, 
455
+    char* ignore2)
454 456
 {
455 457
     int_str callingval;
456 458
     int result = MODULE_RETURNCODE_FALSE;
... ...
@@ -478,7 +480,7 @@ int ospCheckTranslation(
478 480
  * return MODULE_RETURNCODE_TRUE success MODULE_RETURNCODE_FALSE failure
479 481
  */
480 482
 static int ospPrepareDestination(
481
-    struct sip_msg *msg, 
483
+    struct sip_msg* msg, 
482 484
     int isfirst,
483 485
     int type,
484 486
     int format)
... ...
@@ -488,7 +490,7 @@ static int ospPrepareDestination(
488 490
     str newuri = {NULL, 0};
489 491
     int result = MODULE_RETURNCODE_FALSE;
490 492
 
491
-    osp_dest *dest = ospGetNextOrigDestination();
493
+    osp_dest* dest = ospGetNextOrigDestination();
492 494
 
493 495
     if (dest != NULL) {
494 496
         ospRebuildDestionationUri(&newuri, dest->called, dest->host, "", format);
... ...
@@ -564,9 +566,9 @@ static int ospPrepareDestination(
564 566
  * return MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
565 567
  */
566 568
 int ospPrepareRoute(
567
-    struct sip_msg *msg, 
568
-    char *ignore1, 
569
-    char *ignore2)
569
+    struct sip_msg* msg, 
570
+    char* ignore1, 
571
+    char* ignore2)
570 572
 {
571 573
     int result = MODULE_RETURNCODE_TRUE;
572 574
 
... ...
@@ -585,9 +587,9 @@ int ospPrepareRoute(
585 587
  * return MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
586 588
  */
587 589
 int ospPrepareAllRoutes(
588
-    struct sip_msg *msg, 
589
-    char *ignore1, 
590
-    char *ignore2)
590
+    struct sip_msg* msg, 
591
+    char* ignore1, 
592
+    char* ignore2)
591 593
 {
592 594
     int result = MODULE_RETURNCODE_TRUE;
593 595
 
... ...
@@ -45,13 +45,13 @@
45 45
 MODULE_VERSION
46 46
 
47 47
 extern unsigned int _osp_sp_number;
48
-extern char *_osp_sp_uris[];
48
+extern char* _osp_sp_uris[];
49 49
 extern unsigned long _osp_sp_weights[];
50
-extern char *_osp_device_ip;
51
-extern char *_osp_device_port;
52
-extern unsigned char *_osp_private_key;
53
-extern unsigned char *_osp_local_certificate;
54
-extern unsigned char *_osp_ca_certificate;
50
+extern char* _osp_device_ip;
51
+extern char* _osp_device_port;
52
+extern unsigned char* _osp_private_key;
53
+extern unsigned char* _osp_local_certificate;
54
+extern unsigned char* _osp_ca_certificate;
55 55
 extern int _osp_crypto_hw;
56 56
 extern int _osp_validate_callid;
57 57
 extern int _osp_token_format;
... ...
@@ -66,7 +66,7 @@ extern int _osp_redir_uri;
66 66
 extern char _osp_PRIVATE_KEY[];
67 67
 extern char _osp_LOCAL_CERTIFICATE[];
68 68
 extern char _osp_CA_CERTIFICATE[];
69
-extern char *_osp_snid_avp;
69
+extern char* _osp_snid_avp;
70 70
 extern int_str _osp_snid_avpname;
71 71
 extern unsigned short _osp_snid_avptype;
72 72
 extern OSPTPROVHANDLE _osp_provider;
... ...
@@ -32,7 +32,7 @@
32 32
 #include "../../dprint.h"
33 33
 #include "osptoolkit.h"
34 34
 
35
-static OSPTTHREADRETURN ospReportUsageWork(void *usagearg);
35
+static OSPTTHREADRETURN ospReportUsageWork(void* usagearg);
36 36
 
37 37
 typedef struct _osp_usage
38 38
 {
... ...
@@ -56,7 +56,7 @@ typedef struct _osp_usage
56 56
 unsigned long long ospGetTransactionId(
57 57
     OSPTTRANHANDLE transaction)
58 58
 {
59
-    OSPTTRANS *context = NULL;
59
+    OSPTTRANS* context = NULL;
60 60
     unsigned long long id = 0;
61 61
     int errorcode = 0;
62 62
 
... ...
@@ -98,7 +98,7 @@ void ospReportUsageWrapper(
98 98
     unsigned ospvPostDialDelay,
99 99
     unsigned ospvReleaseSource)
100 100
 {
101
-    osp_usage *usage;
101
+    osp_usage* usage;
102 102
     OSPTTHREADID threadid;
103 103
     OSPTTHRATTR threadattr;
104 104
     int errorcode;
... ...
@@ -133,11 +133,11 @@ void ospReportUsageWrapper(
133 133
  * return
134 134
  */
135 135
 static OSPTTHREADRETURN ospReportUsageWork(
136
-    void *usagearg)
136
+    void* usagearg)
137 137
 {
138 138
     int i;
139 139
     const int MAX_RETRIES = 5;
140
-    osp_usage *usage;
140
+    osp_usage* usage;
141 141
     int errorcode;
142 142
 
143 143
     usage = (osp_usage*)usagearg;
... ...
@@ -34,11 +34,11 @@
34 34
 #include "provider.h"
35 35
 
36 36
 extern unsigned int _osp_sp_number;
37
-extern char *_osp_sp_uris[];
37
+extern char* _osp_sp_uris[];
38 38
 extern unsigned long _osp_sp_weights[];
39
-extern unsigned char *_osp_private_key;
40
-extern unsigned char *_osp_local_certificate;
41
-extern unsigned char *_osp_ca_certificate;
39
+extern unsigned char* _osp_private_key;
40
+extern unsigned char* _osp_local_certificate;
41
+extern unsigned char* _osp_ca_certificate;
42 42
 extern int _osp_ssl_lifetime;
43 43
 extern int _osp_persistence;
44 44
 extern int _osp_retry_delay;
... ...
@@ -56,7 +56,7 @@ int ospSetupProvider(void)
56 56
     OSPTPRIVATEKEY privatekey;
57 57
     OSPTCERT localcert;
58 58
     OSPTCERT cacert;
59
-    OSPTCERT *cacerts[1];
59
+    OSPTCERT* cacerts[1];
60 60
     int result;
61 61
 
62 62
     cacerts[0] = &cacert;
... ...
@@ -42,8 +42,8 @@
42 42
 
43 43
 extern int _osp_use_rpid;
44 44
 
45
-static void ospSkipPlus(char *e164);
46
-static int ospAppendHeader(struct sip_msg *msg, str *header); 
45
+static void ospSkipPlus(char* e164);
46
+static int ospAppendHeader(struct sip_msg* msg, str* header); 
47 47
 
48 48
 /* 
49 49
  * Copy str to buffer and check overflow 
... ...
@@ -52,8 +52,8 @@ static int ospAppendHeader(struct sip_msg *msg, str *header);
52 52
  * param buffersize Size of buffer
53 53
  */
54 54
 void ospCopyStrToBuffer(
55
-    str *source, 
56
-    char *buffer, 
55
+    str* source, 
56
+    char* buffer, 
57 57
     int buffersize)
58 58
 {
59 59
     int copybytes;
... ...
@@ -77,7 +77,7 @@ void ospCopyStrToBuffer(
77 77
  * param e164 E164 string
78 78
  */
79 79
 static void ospSkipPlus(
80
-    char *e164)
80
+    char* e164)
81 81
 {
82 82
     if (*e164 == '+') {
83 83
         strncpy(e164, e164 + 1, strlen(e164) - 1);
... ...
@@ -93,11 +93,11 @@ static void ospSkipPlus(
93 93
  * return 0 success, -1 failure
94 94
  */
95 95
 int ospGetFromUserpart(
96
-    struct sip_msg *msg, 
97
-    char *fromuser, 
96
+    struct sip_msg* msg, 
97
+    char* fromuser, 
98 98
     int buffersize)
99 99
 {
100
-    struct to_body *from;
100
+    struct to_body* from;
101 101
     struct sip_uri uri;
102 102
     int result = -1;
103 103
 
... ...
@@ -131,11 +131,11 @@ int ospGetFromUserpart(
131 131
  * return 0 success, -1 failure
132 132
  */
133 133
 int ospGetRpidUserpart(
134
-    struct sip_msg *msg, 
135
-    char *rpiduser, 
134
+    struct sip_msg* msg, 
135
+    char* rpiduser, 
136 136
     int buffersize)
137 137
 {
138
-    struct to_body *rpid;
138
+    struct to_body* rpid;
139 139
     struct sip_uri uri;
140 140
     int result = -1;
141 141
 
... ...
@@ -173,11 +173,11 @@ int ospGetRpidUserpart(
173 173
  * return 0 success, -1 failure
174 174
  */
175 175
 int ospGetToUserpart(
176
-    struct sip_msg *msg, 
177
-    char *touser, 
176
+    struct sip_msg* msg, 
177
+    char* touser, 
178 178
     int buffersize)
179 179
 {
180
-    struct to_body *to;
180
+    struct to_body* to;
181 181
     struct sip_uri uri;
182 182
     int result = -1;
183 183
 
... ...
@@ -211,8 +211,8 @@ int ospGetToUserpart(
211 211
  * return 0 success, -1 failure
212 212
  */
213 213
 int ospGetUriUserpart(
214
-    struct sip_msg *msg, 
215
-    char *uriuser, 
214
+    struct sip_msg* msg, 
215
+    char* uriuser, 
216 216
     int buffersize)
217 217
 {
218 218
     int result = -1;
... ...
@@ -237,11 +237,11 @@ int ospGetUriUserpart(
237 237
  * return 0 success, -1 failure
238 238
  */
239 239
 static int ospAppendHeader(
240
-    struct sip_msg *msg, 
241
-    str *header)
240
+    struct sip_msg* msg, 
241
+    str* header)
242 242
 {
243
-    char *s;
244
-    struct lump *anchor;
243
+    char* s;
244
+    struct lump* anchor;
245 245
     
246 246
     if((msg == 0) || (header == 0) || (header->s == 0) || (header->len <= 0)) {
247 247
         LM_ERR("bad parameters for appending header\n");
... ...
@@ -284,8 +284,8 @@ static int ospAppendHeader(
284 284
  * return 0 success, -1 failure
285 285
  */
286 286
 int ospAddOspHeader(
287
-    struct sip_msg *msg, 
288
-    unsigned char *token, 
287
+    struct sip_msg* msg, 
288
+    unsigned char* token, 
289 289
     unsigned int tokensize)
290 290
 {
291 291
     str headerval;
... ...
@@ -332,11 +332,11 @@ int ospAddOspHeader(
332 332
  * return 0 success, -1 failure
333 333
  */
334 334
 int ospGetOspHeader(
335
-    struct sip_msg *msg, 
336
-    unsigned char *token, 
337
-    unsigned int *tokensize)
335
+    struct sip_msg* msg, 
336
+    unsigned char* token, 
337
+    unsigned int* tokensize)
338 338
 {
339
-    struct hdr_field *hf;
339
+    struct hdr_field* hf;
340 340
     int errorcode;
341 341
     int result = -1;
342 342
 
... ...
@@ -368,12 +368,12 @@ int ospGetOspHeader(
368 368
  * return 0 success, -1 failure
369 369
  */
370 370
 int ospGetSourceAddress(
371
-    struct sip_msg *msg, 
372
-    char *sourceaddress, 
371
+    struct sip_msg* msg, 
372
+    char* sourceaddress, 
373 373
     int buffersize)
374 374
 {
375
-    struct hdr_field *hf;
376
-    struct via_body *via;
375
+    struct hdr_field* hf;
376
+    struct via_body* via;
377 377
     int result = -1;
378 378
 
379 379
     /* 
... ...
@@ -403,10 +403,10 @@ int ospGetSourceAddress(
403 403
  * return 0 success, -1 failure
404 404
  */
405 405
 int ospGetCallId(
406
-    struct sip_msg *msg, 
407
-    OSPTCALLID **callid)
406
+    struct sip_msg* msg, 
407
+    OSPTCALLID** callid)
408 408
 {
409
-    struct hdr_field *hf;
409
+    struct hdr_field* hf;
410 410
     int result = -1;
411 411
 
412 412
     hf = (struct hdr_field*)msg->callid;
... ...
@@ -432,12 +432,12 @@ int ospGetCallId(
432 432
  * return 0 success, -1 failure
433 433
  */
434 434
 int ospGetRouteParameters(
435
-    struct sip_msg *msg, 
436
-    char *routeparameters, 
435
+    struct sip_msg* msg, 
436
+    char* routeparameters, 
437 437
     int buffersize)
438 438
 {
439
-    struct hdr_field *hf;
440
-    rr_t *rt;
439
+    struct hdr_field* hf;
440
+    rr_t* rt;
441 441
     struct sip_uri uri;
442 442
     int result = -1;
443 443
 
... ...
@@ -485,14 +485,14 @@ int ospGetRouteParameters(
485 485
  * return 0 success, -1 failure
486 486
  */
487 487
 int ospRebuildDestionationUri(
488
-    str *newuri, 
489
-    char *called,
490
-    char *dest, 
491
-    char *port,
488
+    str* newuri, 
489
+    char* called,
490
+    char* dest, 
491
+    char* port,
492 492
     int format) 
493 493
 {
494 494
     static const str TRANS = {";transport=tcp", 14};
495
-    char *buffer;
495
+    char* buffer;
496 496
     int calledsize;
497 497
     int destsize;
498 498
     int portsize;
... ...
@@ -579,13 +579,13 @@ int ospRebuildDestionationUri(
579 579
  * param buffersize Size of nexthop
580 580
  */
581 581
 void ospGetNextHop(
582
-    struct sip_msg *msg, 
583
-    char *nexthop, 
582
+    struct sip_msg* msg, 
583
+    char* nexthop, 
584 584
     int buffersize)
585 585
 {
586
-    struct hdr_field *hf;
586
+    struct hdr_field* hf;
587 587
     struct sip_uri uri;
588
-    rr_t *rt;
588
+    rr_t* rt;
589 589
     int found = 0;
590 590
 
591 591
     for (hf = msg->headers; hf; hf = hf->next) {
... ...
@@ -37,18 +37,18 @@
37 37
 #define OSP_TOKEN_HEADER    "P-OSP-Auth-Token: "
38 38
 #define OSP_HEADER_SIZE     strlen(OSP_TOKEN_HEADER)
39 39
 
40
-void ospCopyStrToBuffer(str *source, char *buffer, int buffersize);
41
-int ospGetFromUserpart(struct sip_msg *msg, char *fromuser, int buffersize);
42
-int ospGetRpidUserpart(struct sip_msg *msg, char *fromuser, int buffersize);
43
-int ospGetToUserpart(struct sip_msg *msg, char *touser, int buffersize);
44
-int ospGetUriUserpart(struct sip_msg *msg, char *touser, int buffersize);
45
-int ospAddOspHeader(struct sip_msg *msg, unsigned char *token, unsigned int tokensize);
46
-int ospGetOspHeader(struct sip_msg *msg, unsigned char *token, unsigned int *tokensize);
47
-int ospGetSourceAddress(struct sip_msg *msg, char *sourceaddress, int buffersize);
48
-int ospGetCallId(struct sip_msg *msg, OSPTCALLID **callid);
49
-int ospGetRouteParameters(struct sip_msg *msg, char *routeparams, int buffersize);
50
-int ospRebuildDestionationUri(str *newuri, char *called, char *dest, char *port, int format);
51
-void ospGetNextHop(struct sip_msg *msg, char *nexthop, int buffersize);
40
+void ospCopyStrToBuffer(str* source, char* buffer, int buffersize);
41
+int ospGetFromUserpart(struct sip_msg* msg, char* fromuser, int buffersize);
42
+int ospGetRpidUserpart(struct sip_msg* msg, char* fromuser, int buffersize);
43
+int ospGetToUserpart(struct sip_msg* msg, char* touser, int buffersize);
44
+int ospGetUriUserpart(struct sip_msg* msg, char* touser, int buffersize);
45
+int ospAddOspHeader(struct sip_msg* msg, unsigned char* token, unsigned int tokensize);
46
+int ospGetOspHeader(struct sip_msg* msg, unsigned char* token, unsigned int* tokensize);
47
+int ospGetSourceAddress(struct sip_msg* msg, char* sourceaddress, int buffersize);
48
+int ospGetCallId(struct sip_msg* msg, OSPTCALLID** callid);
49
+int ospGetRouteParameters(struct sip_msg* msg, char* routeparams, int buffersize);
50
+int ospRebuildDestionationUri(str* newuri, char* called, char* dest, char* port, int format);
51
+void ospGetNextHop(struct sip_msg* msg, char* nexthop, int buffersize);
52 52
 
53 53
 #endif /* _OSP_MOD_SIPHEADER_H_ */
54 54
 
... ...
@@ -35,7 +35,7 @@
35 35
 #include "osptoolkit.h"
36 36
 #include "usage.h"
37 37
 
38
-extern char *_osp_device_ip;
38
+extern char* _osp_device_ip;
39 39
 extern int _osp_token_format;
40 40
 extern int _osp_validate_callid;
41 41
 extern OSPTPROVHANDLE _osp_provider;
... ...
@@ -48,9 +48,9 @@ extern OSPTPROVHANDLE _osp_provider;
48 48
  * return  MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
49 49
  */
50 50
 int ospCheckHeader(
51
-    struct sip_msg *msg, 
52
-    char *ignore1, 
53
-    char *ignore2)
51
+    struct sip_msg* msg, 
52
+    char* ignore1, 
53
+    char* ignore2)
54 54
 {
55 55
     unsigned char buffer[OSP_TOKENBUF_SIZE];
56 56
     unsigned int  buffersize = sizeof(buffer);
... ...
@@ -69,18 +69,18 @@ int ospCheckHeader(
69 69
  * return  MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
70 70
  */
71 71
 int ospValidateHeader (
72
-    struct sip_msg *msg, 
73
-    char *ignore1, 
74
-    char *ignore2)
72
+    struct sip_msg* msg, 
73
+    char* ignore1, 
74
+    char* ignore2)
75 75
 {
76 76
     int errorcode; 
77 77
     OSPTTRANHANDLE transaction = -1;
78 78
     unsigned int authorized = 0;
79 79
     unsigned int timelimit = 0;
80
-    void *detaillog = NULL;
80
+    void* detaillog = NULL;
81 81
     unsigned int logsize = 0;
82
-    unsigned char *callidval = (unsigned char*)"";
83
-    OSPTCALLID *callid = NULL;
82
+    unsigned char* callidval = (unsigned char*)"";
83
+    OSPTCALLID* callid = NULL;
84 84
     unsigned callidsize = 0;
85 85
     unsigned char token[OSP_TOKENBUF_SIZE];
86 86
     unsigned int tokensize = sizeof(token);
... ...
@@ -154,7 +154,7 @@ int ospValidateHeader (
154 154
         dest.transid = ospGetTransactionId(transaction);
155 155
         dest.type = OSPC_DESTINATION;
156 156
         dest.authtime = time(NULL);
157
-        strcpy(dest.host, _osp_device_ip);
157
+        strncpy(dest.host, _osp_device_ip, sizeof(dest.host) - 1);
158 158
 
159 159
         ospSaveTermDestination(&dest);
160 160
 
... ...
@@ -38,8 +38,8 @@
38 38
 
39 39
 struct tm_binds osp_tmb;
40 40
 
41
-static void ospOnReq(struct cell *t, int type, struct tmcb_params *ps);
42
-static void ospTmcbFunc(struct cell *t, int type, struct tmcb_params *ps);
41
+static void ospOnReq(struct cell* t, int type, struct tmcb_params* ps);
42
+static void ospTmcbFunc(struct cell* t, int type, struct tmcb_params* ps);
43 43
 
44 44
 /*
45 45
  * Load TM API
... ...
@@ -69,7 +69,7 @@ int ospInitTm(void)
69 69
  * param type
70 70
  * param ps
71 71
  */
72
-static void ospOnReq(struct cell *t, int type, struct tmcb_params *ps)
72
+static void ospOnReq(struct cell* t, int type, struct tmcb_params* ps)
73 73
 {
74 74
     int tmcb_types;
75 75
 
... ...
@@ -109,9 +109,9 @@ static void ospOnReq(struct cell *t, int type, struct tmcb_params *ps)
109 109
  * param ps
110 110
  */
111 111
 static void ospTmcbFunc(
112
-    struct cell *t, 
112
+    struct cell* t, 
113 113
     int type, 
114
-    struct tmcb_params *ps)
114
+    struct tmcb_params* ps)
115 115
 {
116 116
     if (type & TMCB_RESPONSE_OUT) {
117 117
         LM_DBG("RESPONSE_OUT\n");
... ...
@@ -56,15 +56,15 @@
56 56
 #define OSP_COOKIE_DSTCOUNT     'c'
57 57
 #define OSP_COOKIE_DSTCOUNTUP   'C'
58 58
 
59
-extern char *_osp_device_ip;
59
+extern char* _osp_device_ip;
60 60
 extern OSPTPROVHANDLE _osp_provider;
61 61
 extern str OSP_ORIGDEST_NAME;
62 62
 extern struct rr_binds osp_rr;
63 63
 
64
-static void ospRecordTransaction(struct sip_msg *msg, unsigned long long transid, char *uac, char *from, char *to, time_t authtime, int isorig, unsigned destinationCount);
65
-static int ospBuildUsageFromDestination(OSPTTRANHANDLE transaction, osp_dest *dest, int lastcode);
66
-static int ospReportUsageFromDestination(OSPTTRANHANDLE transaction, osp_dest *dest);
67
-static int ospReportUsageFromCookie(struct sip_msg *msg, char *cooky, OSPTCALLID *callid, int release, OSPE_MSG_ROLETYPES type);
64
+static void ospRecordTransaction(struct sip_msg* msg, unsigned long long transid, char* uac, char* from, char* to, time_t authtime, int isorig, unsigned destinationCount);
65
+static int ospBuildUsageFromDestination(OSPTTRANHANDLE transaction, osp_dest* dest, int lastcode);
66
+static int ospReportUsageFromDestination(OSPTTRANHANDLE transaction, osp_dest* dest);
67
+static int ospReportUsageFromCookie(struct sip_msg* msg, char* cooky, OSPTCALLID* callid, int release, OSPE_MSG_ROLETYPES type);
68 68
 
69 69
 /*
70 70
  * Create OSP cookie and insert it into Record-Route header
... ...
@@ -78,11 +78,11 @@ static int ospReportUsageFromCookie(struct sip_msg *msg, char *cooky, OSPTCALLID
78 78
  * param destinationCount Destination count
79 79
  */
80 80
 static void ospRecordTransaction(
81
-    struct sip_msg *msg, 
81
+    struct sip_msg* msg, 
82 82
     unsigned long long transid, 
83
-    char *uac, 
84
-    char *from, 
85
-    char *to, 
83
+    char* uac, 
84
+    char* from, 
85
+    char* to, 
86 86
     time_t authtime, 
87 87
     int isorig,
88 88
     unsigned destinationCount)
... ...
@@ -145,11 +145,11 @@ static void ospRecordTransaction(
145 145
  * param destinationCount Destination count
146 146
  */
147 147
 void ospRecordOrigTransaction(
148
-    struct sip_msg *msg, 
148
+    struct sip_msg* msg, 
149 149
     unsigned long long transid, 
150
-    char *uac, 
151
-    char *from, 
152
-    char *to, 
150
+    char* uac, 
151
+    char* from, 
152
+    char* to, 
153 153
     time_t authtime,
154 154
     unsigned destinationCount)
155 155
 {
... ...
@@ -168,11 +168,11 @@ void ospRecordOrigTransaction(
168 168
  * param authtime Request authorization time
169 169
  */
170 170
 void ospRecordTermTransaction(
171
-    struct sip_msg *msg, 
171
+    struct sip_msg* msg, 
172 172
     unsigned long long transid, 
173
-    char *uac, 
174
-    char *from, 
175
-    char *to, 
173
+    char* uac, 
174
+    char* from, 
175
+    char* to, 
176 176
     time_t authtime)
177 177
 {
178 178
     int isorig = 0;
... ...
@@ -191,16 +191,16 @@ void ospRecordTermTransaction(
191 191
  * return
192 192
  */
193 193
 static int ospReportUsageFromCookie(
194
-    struct sip_msg *msg,
195
-    char *cookie, 
196
-    OSPTCALLID *callid, 
194
+    struct sip_msg* msg,
195
+    char* cookie, 
196
+    OSPTCALLID* callid, 
197 197
     int release,
198 198
     OSPE_MSG_ROLETYPES type)
199 199
 {
200
-    char *tmp;
201
-    char *token;
200
+    char* tmp;
201
+    char* token;
202 202
     char tag;
203
-    char *value;
203
+    char* value;
204 204
     unsigned long long transid = 0;
205 205
     time_t authtime = 0;
206 206
     unsigned destinationCount = 0;
... ...
@@ -209,15 +209,15 @@ static int ospReportUsageFromCookie(
209 209
     char from[OSP_STRBUF_SIZE];
210 210
     char to[OSP_STRBUF_SIZE];
211 211
     char nexthop[OSP_STRBUF_SIZE];
212
-    char *calling;
213
-    char *called;
214
-    char *originator = NULL;
215
-    char *terminator;
216
-    char *source;
212
+    char* calling;
213
+    char* called;
214
+    char* originator = NULL;
215
+    char* terminator;
216
+    char* source;
217 217
     char srcbuf[OSP_STRBUF_SIZE];
218
-    char *destination;
218
+    char* destination;
219 219
     char dstbuf[OSP_STRBUF_SIZE];
220
-    char *srcdev;
220
+    char* srcdev;
221 221
     char devbuf[OSP_STRBUF_SIZE];
222 222
     OSPTTRANHANDLE transaction = -1;
223 223
     int errorcode;
... ...
@@ -363,15 +363,15 @@ static int ospReportUsageFromCookie(
363 363
  * return MODULE_RETURNCODE_TRUE success, MODULE_RETURNCODE_FALSE failure
364 364
  */
365 365
 int ospReportUsage(
366
-    struct sip_msg *msg, 
367
-    char *whorelease, 
368
-    char *ignore2)
366
+    struct sip_msg* msg, 
367
+    char* whorelease, 
368
+    char* ignore2)
369 369
 {
370 370
     int release;
371
-    char *tmp;
372
-    char *token;
371
+    char* tmp;
372
+    char* token;
373 373
     char parameters[OSP_HEADERBUF_SIZE];
374
-    OSPTCALLID *callid = NULL;
374
+    OSPTCALLID* callid = NULL;
375 375
     int result = MODULE_RETURNCODE_FALSE;
376 376
 
377 377
     ospGetCallId(msg, &callid);
... ...
@@ -434,13 +434,13 @@ int ospReportUsage(
434 434
  */
435 435
 static int ospBuildUsageFromDestination(
436 436
     OSPTTRANHANDLE transaction, 
437
-    osp_dest *dest, 
437
+    osp_dest* dest, 
438 438
     int lastcode)
439 439
 {
440 440
     int errorcode;
441 441
     char addr[OSP_STRBUF_SIZE];
442
-    char *source;
443
-    char *srcdev;
442
+    char* source;
443
+    char* srcdev;
444 444
 
445 445
     if (dest->type == OSPC_SOURCE) {
446 446
         ospConvertAddress(dest->srcdev, addr, sizeof(addr));
... ...
@@ -462,7 +462,7 @@ static int ospBuildUsageFromDestination(
462 462
         dest->destdev,
463 463
         dest->calling,
464 464
         OSPC_E164,
465
-        dest->called,
465
+        dest->origcalled,       /* Report original called number */
466 466
         OSPC_E164,
467 467
         dest->callidsize,
468 468
         dest->callid,
... ...
@@ -481,7 +481,7 @@ static int ospBuildUsageFromDestination(
481 481
  */
482 482
 static int ospReportUsageFromDestination(
483 483
     OSPTTRANHANDLE transaction, 
484
-    osp_dest *dest)
484
+    osp_dest* dest)
485 485
 {
486 486
     ospReportUsageWrapper(
487 487
         transaction,                                          /* In - Transaction handle */
... ...
@@ -503,9 +503,9 @@ static int ospReportUsageFromDestination(
503 503
  */
504 504
 void ospReportOrigSetupUsage(void)
505 505
 {
506
-    osp_dest *dest = NULL;
507
-    osp_dest *lastused = NULL;
508
-    struct usr_avp *destavp = NULL;
506
+    osp_dest* dest = NULL;
507
+    osp_dest* lastused = NULL;
508
+    struct usr_avp* destavp = NULL;
509 509
     int_str destval;
510 510
     OSPTTRANHANDLE transaction = -1;
511 511
     int lastcode = 0;
... ...
@@ -565,7 +565,7 @@ void ospReportOrigSetupUsage(void)
565 565
  */
566 566
 void ospReportTermSetupUsage(void)
567 567
 {
568
-    osp_dest *dest = NULL;
568
+    osp_dest* dest = NULL;
569 569
     OSPTTRANHANDLE transaction = -1;
570 570
     int errorcode = 0;
571 571
 
... ...
@@ -49,11 +49,11 @@
49 49
  * Actual conversation duration maybe calculated using connect time (from the call
50 50
  * set up usage) and stop time (from the duration usage). 
51 51
  */
52
-void ospRecordOrigTransaction(struct sip_msg *msg, unsigned long long transid, char *uac, char *from, char *to, time_t authtime, unsigned destinationCount);
53
-void ospRecordTermTransaction(struct sip_msg *msg, unsigned long long transid, char *uac, char *from, char *to, time_t authtime);
52
+void ospRecordOrigTransaction(struct sip_msg* msg, unsigned long long transid, char* uac, char* from, char* to, time_t authtime, unsigned destinationCount);
53
+void ospRecordTermTransaction(struct sip_msg* msg, unsigned long long transid, char* uac, char* from, char* to, time_t authtime);
54 54
 void ospReportOrigSetupUsage(void);
55 55
 void ospReportTermSetupUsage(void);
56
-int  ospReportUsage(struct sip_msg *msg, char *whorelease, char *ignore2);
56
+int  ospReportUsage(struct sip_msg* msg, char* whorelease, char* ignore2);
57 57
 
58 58
 #endif /* _OSP_MOD_USAGE_H_ */
59 59