diff options
-rw-r--r-- | apps/app_dial.c | 37 | ||||
-rw-r--r-- | apps/app_queue.c | 29 | ||||
-rw-r--r-- | apps/app_voicemail.c | 2 | ||||
-rw-r--r-- | channels/chan_dahdi.c | 2 | ||||
-rw-r--r-- | channels/chan_local.c | 4 | ||||
-rw-r--r-- | channels/chan_sip.c | 2 | ||||
-rw-r--r-- | configs/features.conf.sample | 12 |
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 |