aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/app_dial.c37
-rw-r--r--apps/app_queue.c29
-rw-r--r--apps/app_voicemail.c2
-rw-r--r--channels/chan_dahdi.c2
-rw-r--r--channels/chan_local.c4
-rw-r--r--channels/chan_sip.c2
-rw-r--r--configs/features.conf.sample12
7 files changed, 59 insertions, 29 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c
index 4eaf30f8f..142fe9f25 100644
--- a/apps/app_dial.c
+++ b/apps/app_dial.c
@@ -122,14 +122,18 @@ static char *descrip =
" Optionally, an extension, or extension and context may be specified. \n"
" Otherwise, the current extension is used. You cannot use any additional\n"
" action post answer options in conjunction with this option.\n"
-" h - Allow the called party to hang up by sending the '*' DTMF digit.\n"
-" H - Allow the calling party to hang up by hitting the '*' DTMF digit.\n"
+" h - Allow the called party to hang up by sending the '*' DTMF digit, or\n"
+" whatever sequence was defined in the featuremap section for\n"
+" 'disconnect' in features.conf\n"
+" H - Allow the calling party to hang up by hitting the '*' DTMF digit, or\n"
+" whatever sequence was defined in the featuremap section for\n"
+" 'disconnect' in features.conf\n"
" i - Asterisk will ignore any forwarding requests it may receive on this\n"
" dial attempt.\n"
" k - Allow the called party to enable parking of the call by sending\n"
-" the DTMF sequence defined for call parking in features.conf.\n"
+" the DTMF sequence defined for call parking in the featuremap section of features.conf.\n"
" K - Allow the calling party to enable parking of the call by sending\n"
-" the DTMF sequence defined for call parking in features.conf.\n"
+" the DTMF sequence defined for call parking in the featuremap section of features.conf.\n"
" L(x[:y][:z]) - Limit the call to 'x' ms. Play a warning when 'y' ms are\n"
" left. Repeat the warning every 'z' ms. The following special\n"
" variables can be used with this option:\n"
@@ -188,9 +192,11 @@ static char *descrip =
" S(x) - Hang up the call after 'x' seconds *after* the called party has\n"
" answered the call.\n"
" t - Allow the called party to transfer the calling party by sending the\n"
-" DTMF sequence defined in features.conf.\n"
+" DTMF sequence defined in the blindxfer setting in the featuremap section\n"
+" of features.conf.\n"
" T - Allow the calling party to transfer the called party by sending the\n"
-" DTMF sequence defined in features.conf.\n"
+" DTMF sequence defined in the blindxfer setting in the featuremap section\n"
+" of features.conf.\n"
" U(x[^arg]) - Execute via Gosub the routine 'x' for the *called* channel before connecting\n"
" to the calling channel. Arguments can be specified to the Gosub\n"
" using '^' as a delimeter. The Gosub routine can set the variable\n"
@@ -207,13 +213,17 @@ static char *descrip =
" with this option. Also, pbx services are not run on the peer (called) channel,\n"
" so you will not be able to set timeouts via the TIMEOUT() function in this routine.\n"
" w - Allow the called party to enable recording of the call by sending\n"
-" the DTMF sequence defined for one-touch recording in features.conf.\n"
+" the DTMF sequence defined in the automon setting in the featuremap section\n"
+" of features.conf.\n"
" W - Allow the calling party to enable recording of the call by sending\n"
-" the DTMF sequence defined for one-touch recording in features.conf.\n"
+" the DTMF sequence defined in the automon setting in the featuremap section\n"
+" of features.conf.\n"
" x - Allow the called party to enable recording of the call by sending\n"
-" the DTMF sequence defined for one-touch automixmonitor in features.conf\n"
+" the DTMF sequence defined in the automixmon setting in the featuremap section\n"
+" of features.conf.\n"
" X - Allow the calling party to enable recording of the call by sending\n"
-" the DTMF sequence defined for one-touch automixmonitor in features.conf\n";
+" the DTMF sequence defined in the automixmon setting in the featuremap section\n"
+" of features.conf.\n";
/* RetryDial App by Anthony Minessale II <anthmct@yahoo.com> Jan/2005 */
static char *rapp = "RetryDial";
@@ -1285,6 +1295,13 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags
struct ast_dial_features *caller_features;
int fulldial = 0, num_dialed = 0;
+ /* Reset all DIAL variables back to blank, to prevent confusion (in case we don't reset all of them). */
+ pbx_builtin_setvar_helper(chan, "DIALSTATUS", "");
+ pbx_builtin_setvar_helper(chan, "DIALEDPEERNUMBER", "");
+ pbx_builtin_setvar_helper(chan, "DIALEDPEERNAME", "");
+ pbx_builtin_setvar_helper(chan, "ANSWEREDTIME", "");
+ pbx_builtin_setvar_helper(chan, "DIALEDTIME", "");
+
if (ast_strlen_zero(data)) {
ast_log(LOG_WARNING, "Dial requires an argument (technology/number)\n");
pbx_builtin_setvar_helper(chan, "DIALSTATUS", pa.status);
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 516664e66..04f522c91 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -159,26 +159,37 @@ static char *descrip =
"The option string may contain zero or more of the following characters:\n"
" 'c' -- continue in the dialplan if the callee hangs up.\n"
" 'd' -- data-quality (modem) call (minimum delay).\n"
-" 'h' -- allow callee to hang up by pressing *.\n"
-" 'H' -- allow caller to hang up by pressing *.\n"
+" 'h' -- allow callee to hang up by hitting '*', or whatver disconnect sequence\n"
+" that is defined in the featuremap section in features.conf.\n"
+" 'H' -- allow caller to hang up by hitting '*', or whatever disconnect sequence\n"
+" that is defined in the featuremap section in features.conf.\n"
" 'n' -- no retries on the timeout; will exit this application and \n"
" go to the next step.\n"
" 'i' -- ignore call forward requests from queue members and do nothing\n"
" when they are requested.\n"
" 'r' -- ring instead of playing MOH. Periodic Announcements are still made, if applicable.\n"
-" 't' -- allow the called user to transfer the calling user.\n"
-" 'T' -- allow the calling user to transfer the call.\n"
-" 'w' -- allow the called user to write the conversation to disk via Monitor.\n"
-" 'W' -- allow the calling user to write the conversation to disk via Monitor.\n"
+" 't' -- allow the called user transfer the calling user by pressing '#' or\n"
+" whatever blindxfer sequence defined in the featuremap section in\n"
+" features.conf\n"
+" 'T' -- to allow the calling user to transfer the call by pressing '#' or\n"
+" whatever blindxfer sequence defined in the featuremap section in\n"
+" features.conf\n"
+" 'w' -- allow the called user to write the conversation to disk via Monitor\n"
+" by pressing the automon sequence defined in the featuremap section in\n"
+" features.conf\n"
+" 'W' -- allow the calling user to write the conversation to disk via Monitor\n"
+" by pressing the automon sequence defined in the featuremap section in\n"
+" features.conf\n"
" 'k' -- Allow the called party to enable parking of the call by sending\n"
" the DTMF sequence defined for call parking in features.conf.\n"
" 'K' -- Allow the calling party to enable parking of the call by sending\n"
" the DTMF sequence defined for call parking in features.conf.\n"
" 'x' -- allow the called user to write the conversation to disk via MixMonitor\n"
+" by pressing the automixmon sequence defined in the featuremap section in\n"
+" features.conf\n"
" 'X' -- allow the calling user to write the conversation to disk via MixMonitor\n"
-
-" In addition to transferring the call, a call may be parked and then picked\n"
-"up by another user.\n"
+" by pressing the automixmon sequence defined in the featuremap section in\n"
+" features.conf\n"
" The optional URL will be sent to the called party if the channel supports\n"
"it.\n"
" The optional AGI parameter will setup an AGI script to be executed on the \n"
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index e06ca84b1..9ba29e996 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -3438,7 +3438,7 @@ static void make_email_file(FILE *p, char *srcemail, struct ast_vm_user *vmu, in
}
fprintf(p, "%s %s <%s>" ENDL, first_line ? "From:" : "", passdata, who);
} else {
- fprintf(p, "From: %s <%s>" ENDL, quote(passdata, passdata2, len_passdata2), who);
+ fprintf(p, "From: %s <%s>" ENDL, quote(passdata2, passdata, len_passdata), who);
}
ast_channel_free(ast);
} else {
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 37ff01b3e..c15a85b74 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -13559,8 +13559,6 @@ static int process_dahdi(struct dahdi_chan_conf *confp, struct ast_variable *v,
confp->chan.buf_no = numbufs;
if (!strcasecmp(policy, "full")) {
confp->chan.buf_policy = DAHDI_POLICY_WHEN_FULL;
- } else if (!strcasecmp(policy, "half")) {
- confp->chan.buf_policy = DAHDI_POLICY_IMMEDIATE /*HALF_FULL*/;
} else if (!strcasecmp(policy, "immediate")) {
confp->chan.buf_policy = DAHDI_POLICY_IMMEDIATE;
} else {
diff --git a/channels/chan_local.c b/channels/chan_local.c
index 77de8570d..434d4ffac 100644
--- a/channels/chan_local.c
+++ b/channels/chan_local.c
@@ -483,11 +483,15 @@ static int local_call(struct ast_channel *ast, char *dest, int timeout)
* Note that cid_num and cid_name aren't passed in the ast_channel_alloc
* call, so it's done here instead.
*/
+ p->chan->cid.cid_dnid = ast_strdup(p->owner->cid.cid_dnid);
p->chan->cid.cid_num = ast_strdup(p->owner->cid.cid_num);
p->chan->cid.cid_name = ast_strdup(p->owner->cid.cid_name);
p->chan->cid.cid_rdnis = ast_strdup(p->owner->cid.cid_rdnis);
p->chan->cid.cid_ani = ast_strdup(p->owner->cid.cid_ani);
p->chan->cid.cid_pres = p->owner->cid.cid_pres;
+ p->chan->cid.cid_ani2 = p->owner->cid.cid_ani2;
+ p->chan->cid.cid_ton = p->owner->cid.cid_ton;
+ p->chan->cid.cid_tns = p->owner->cid.cid_tns;
ast_string_field_set(p->chan, language, p->owner->language);
ast_string_field_set(p->chan, accountcode, p->owner->accountcode);
ast_cdr_update(p->chan);
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 779d3046d..adf9ab905 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -6762,7 +6762,7 @@ static int process_sdp(struct sip_pvt *p, struct sip_request *req, int t38action
struct sockaddr_in peer;
ast_rtp_get_peer(p->rtp, &peer);
if (peer.sin_addr.s_addr) {
- memcpy(&sin.sin_addr, &peer.sin_addr, sizeof(&sin.sin_addr));
+ memcpy(&sin.sin_addr, &peer.sin_addr, sizeof(sin.sin_addr));
if (debug) {
ast_log(LOG_DEBUG, "Peer T.38 UDPTL is set behind NAT and with destination, destination address now %s\n", ast_inet_ntoa(sin.sin_addr));
}
diff --git a/configs/features.conf.sample b/configs/features.conf.sample
index b3dd4d549..0516160cd 100644
--- a/configs/features.conf.sample
+++ b/configs/features.conf.sample
@@ -50,12 +50,12 @@ parkpos => 701-720 ; What extensions to park calls on. These needs to be
; chan_local in combination with Answer to accomplish it.
[featuremap]
-;blindxfer => #1 ; Blind transfer (default is #)
-;disconnect => *0 ; Disconnect (default is *)
-;automon => *1 ; One Touch Record a.k.a. Touch Monitor
-;atxfer => *2 ; Attended transfer
-;parkcall => #72 ; Park call (one step parking)
-;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor
+;blindxfer => #1 ; Blind transfer (default is #) -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
+;disconnect => *0 ; Disconnect (default is *) -- Make sure to set the H and/or h option in the Dial() or Queue() app call!
+;automon => *1 ; One Touch Record a.k.a. Touch Monitor -- Make sure to set the W and/or w option in the Dial() or Queue() app call!
+;atxfer => *2 ; Attended transfer -- Make sure to set the T and/or t option in the Dial() or Queue() app call!
+;parkcall => #72 ; Park call (one step parking) -- Make sure to set the K and/or K option in the Dial() app call!
+;automixmon => *3 ; One Touch Record a.k.a. Touch MixMonitor -- Make sure to set the X and/or x option in the Dial() or Queue() app call!
[applicationmap]
; Note that the DYNAMIC_FEATURES channel variable must be set to use the features