diff --git a/channels/h323/chan_h323.c b/channels/h323/chan_h323.c index eb148e5371e54a27b16ee7efbc15a23824bb7a0a..e94978e57b78e807cb0ecd8a90a62479c5a2331f 100755 --- a/channels/h323/chan_h323.c +++ b/channels/h323/chan_h323.c @@ -406,8 +406,15 @@ static int oh323_call(struct ast_channel *c, char *dest, int timeout) /* Copy callerid, if there is any */ if (c->callerid) { - p->calloptions.callerid = strdup(c->callerid); - } + char *tmp = strchr(c->callerid, '"'); + if (!tmp) { + p->calloptions.callerid = malloc(80); // evil + // sprintf(p->calloptions.callerid, "\"%s\"", c->callerid); + sprintf(p->calloptions.callerid, "\"\" <%s>", c->callerid); + } else { + p->calloptions.callerid = strdup(c->callerid); + } + } res = h323_make_call(called_addr, &(p->cd), p->calloptions);