diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-06-25 04:27:55 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-06-25 04:27:55 +0000 |
commit | 6c4cb5454fdb3be753f731b1ec136bf1907fea90 (patch) | |
tree | ab8d22af772f63075879470df697e1baccd043f5 | |
parent | 06cd4ccbc289b04a971ce162de5faf27a45738d4 (diff) |
Small outgoing OSP cleanups
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3299 f38db490-d61c-443f-a65b-d21fe96a405b
-rwxr-xr-x | apps/app_osplookup.c | 5 | ||||
-rwxr-xr-x | res/res_osp.c | 12 |
2 files changed, 16 insertions, 1 deletions
diff --git a/apps/app_osplookup.c b/apps/app_osplookup.c index 7e6e0105b..55216d4eb 100755 --- a/apps/app_osplookup.c +++ b/apps/app_osplookup.c @@ -192,7 +192,10 @@ static int ospfinished_exec(struct ast_channel *chan, void *data) } if (chan->cdr) { start = chan->cdr->answer.tv_sec; - duration = time(NULL) - start; + if (start) + duration = time(NULL) - start; + else + duration = 0; } else ast_log(LOG_WARNING, "OSPFinish called on channel '%s' with no CDR!\n", chan->name); LOCAL_USER_ADD(u); diff --git a/res/res_osp.c b/res/res_osp.c index deac15c7b..6270c4a72 100755 --- a/res/res_osp.c +++ b/res/res_osp.c @@ -28,6 +28,7 @@ #include <asterisk/utils.h> #include <asterisk/lock.h> #include <asterisk/causes.h> +#include <asterisk/callerid.h> #include <osp.h> #include <openssl/err.h> #include <stdio.h> @@ -434,6 +435,7 @@ int ast_osp_lookup(struct ast_channel *chan, char *provider, char *extension, ch char callednum[2048]=""; char destination[2048]=""; char token[2000]; + char tmp[256]="", *l, *n; OSPTCALLID *callid; OSPE_DEST_PROT prot; @@ -448,6 +450,16 @@ int ast_osp_lookup(struct ast_channel *chan, char *provider, char *extension, ch if (!callerid) callerid = ""; + strncpy(tmp, callerid, sizeof(tmp) - 1); + ast_callerid_parse(tmp, &n, &l); + if (!l) + l = ""; + else { + ast_shrink_phone_number(l); + if (!ast_isphonenumber(l)) + l = ""; + } + callerid = l; if (chan) { strncpy(uniqueid, chan->uniqueid, sizeof(uniqueid) - 1); |