[asterisk-commits] rmudgett: branch 12 r400303 - /branches/12/main/pbx.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Oct 2 15:30:09 CDT 2013
Author: rmudgett
Date: Wed Oct 2 15:30:07 2013
New Revision: 400303
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=400303
Log:
Originate: Make setting caller id on outgoing call use either name or number.
Previous code was requiring both name and number to be available.
Also restored a comment block on why caller id is also set on an outgoing
call leg in addition to connected line from earlier versions of Asterisk.
Modified:
branches/12/main/pbx.c
Modified: branches/12/main/pbx.c
URL: http://svnview.digium.com/svn/asterisk/branches/12/main/pbx.c?view=diff&rev=400303&r1=400302&r2=400303
==============================================================================
--- branches/12/main/pbx.c (original)
+++ branches/12/main/pbx.c Wed Oct 2 15:30:07 2013
@@ -10059,24 +10059,35 @@
}
ast_set_flag(ast_channel_flags(dialed), AST_FLAG_ORIGINATED);
- if (!ast_strlen_zero(cid_num) && !ast_strlen_zero(cid_name)) {
+ if (!ast_strlen_zero(cid_num) || !ast_strlen_zero(cid_name)) {
struct ast_party_connected_line connected;
+ /*
+ * It seems strange to set the CallerID on an outgoing call leg
+ * to whom we are calling, but this function's callers are doing
+ * various Originate methods. This call leg goes to the local
+ * user. Once the called party answers, the dialplan needs to
+ * be able to access the CallerID from the CALLERID function as
+ * if the called party had placed this call.
+ */
+ ast_set_callerid(dialed, cid_num, cid_name, cid_num);
+
ast_party_connected_line_set_init(&connected, ast_channel_connected(dialed));
-
- ast_set_callerid(dialed, cid_num, cid_name, cid_num);
- connected.id.number.valid = 1;
- connected.id.number.str = (char *) cid_num;
- connected.id.number.presentation = AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED;
- connected.id.name.valid = 1;
- connected.id.name.str = (char *) cid_name;
- connected.id.name.presentation = AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED;
-
+ if (!ast_strlen_zero(cid_num)) {
+ connected.id.number.valid = 1;
+ connected.id.number.str = (char *) cid_num;
+ connected.id.number.presentation = AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED;
+ }
+ if (!ast_strlen_zero(cid_name)) {
+ connected.id.name.valid = 1;
+ connected.id.name.str = (char *) cid_name;
+ connected.id.name.presentation = AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED;
+ }
ast_channel_set_connected_line(dialed, &connected, NULL);
}
if (early_media) {
- ast_dial_set_state_callback(outgoing->dial, &pbx_outgoing_state_callback);
+ ast_dial_set_state_callback(outgoing->dial, pbx_outgoing_state_callback);
}
if (channel) {
More information about the asterisk-commits
mailing list