diff options
-rwxr-xr-x | channels/h323/chan_h323.c | 9 | ||||
-rwxr-xr-x | channels/h323/chan_h323.h | 2 |
2 files changed, 9 insertions, 2 deletions
diff --git a/channels/h323/chan_h323.c b/channels/h323/chan_h323.c index 4bd97e4f3..99bfede49 100755 --- a/channels/h323/chan_h323.c +++ b/channels/h323/chan_h323.c @@ -87,7 +87,7 @@ static char secret[50]; /** Private structure of a OpenH323 channel */ struct oh323_pvt { pthread_mutex_t lock; /* Channel private lock */ - call_options_t call_opt; /* Options to be used during call setup */ + call_options_t calloptions; /* Options to be used during call setup */ int alreadygone; /* Whether or not we've already been destroyed by or peer */ int needdestroy; /* if we need to be destroyed */ call_details_t cd; /* Call details */ @@ -402,7 +402,12 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout) memset(called_addr, 0, sizeof(dest)); memcpy(called_addr, dest, sizeof(called_addr)); - res = h323_make_call(called_addr, &(p->cd), p->call_opt); + /* Copy callerid, if there is any */ + if (strlen(c->callerid)) { + p->calloptions.callerid = strdup(c->callerid); + } + + res = h323_make_call(called_addr, &(p->cd), p->calloptions); if (res) { ast_log(LOG_NOTICE, "h323_make_call failed(%s)\n", c->name); diff --git a/channels/h323/chan_h323.h b/channels/h323/chan_h323.h index 0e0bcdbf5..23e0b468a 100755 --- a/channels/h323/chan_h323.h +++ b/channels/h323/chan_h323.h @@ -84,6 +84,7 @@ struct oh323_alias { PBX application and passed through make_call function*/ typedef struct call_options { + const char *callerid; int noFastStart; int noH245Tunnelling; int noSilenceSuppression; @@ -95,6 +96,7 @@ typedef struct call_options { asterisk channels to acutal h.323 connections */ typedef struct call_details { unsigned int call_reference; + const char *call_token; const char *call_source_aliases; const char *call_dest_alias; |