11diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
2- index e6c41e51e9..3baabb0872 100644
2+ index 99a28b0286..9cd6c17eac 100644
33--- a/channels/chan_dahdi.c
44+++ b/channels/chan_dahdi.c
5- @@ -2573 ,6 +2573 ,12 @@ static enum analog_event dahdievent_to_analogevent(int event)
5+ @@ -2708 ,6 +2708 ,12 @@ static enum analog_event dahdievent_to_analogevent(int event)
66 case DAHDI_EVENT_PULSE_START:
77 res = ANALOG_EVENT_PULSE_START;
88 break;
@@ -15,7 +15,7 @@ index e6c41e51e9..3baabb0872 100644
1515 case DAHDI_EVENT_POLARITY:
1616 res = ANALOG_EVENT_POLARITY;
1717 break;
18- @@ -7778 ,6 +7784 ,10 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
18+ @@ -7928 ,6 +7934 ,10 @@ static struct ast_frame *dahdi_handle_event(struct ast_channel *ast)
1919 if (!ast_channel_pbx(ast))
2020 tone_zone_play_tone(p->subs[idx].dfd, -1);
2121 break;
@@ -27,10 +27,10 @@ index e6c41e51e9..3baabb0872 100644
2727 /* DAHDI has completed dialing all digits sent using DAHDI_DIAL. */
2828 #if defined(HAVE_PRI)
2929diff --git a/channels/chan_dahdi.h b/channels/chan_dahdi.h
30- index b7955cdddf..23d0691f24 100644
30+ index 43c89d93b4..1a42f0fa47 100644
3131--- a/channels/chan_dahdi.h
3232+++ b/channels/chan_dahdi.h
33- @@ -354 ,6 +354 ,11 @@ struct dahdi_pvt {
33+ @@ -358 ,6 +358 ,11 @@ struct dahdi_pvt {
3434 unsigned int pulse:1;
3535 /*! \brief TRUE if a pulsed digit was detected. (Pulse dial phone detected) */
3636 unsigned int pulsedial:1;
@@ -43,10 +43,10 @@ index b7955cdddf..23d0691f24 100644
4343 /*!
4444 * \brief TRUE if caller ID is restricted.
4545diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
46- index cbf4ab4479..e72917d126 100644
46+ index 1ddf66fe3d..a4becf3042 100644
4747--- a/channels/chan_iax2.c
4848+++ b/channels/chan_iax2.c
49- @@ -1438 ,6 +1438 ,7 @@ static int iax2_is_control_frame_allowed(int subtype)
49+ @@ -1460 ,6 +1460 ,7 @@ static int iax2_is_control_frame_allowed(int subtype)
5050 case AST_CONTROL_TAKEOFFHOOK:
5151 case AST_CONTROL_OFFHOOK:
5252 case AST_CONTROL_CONGESTION:
@@ -55,7 +55,7 @@ index cbf4ab4479..e72917d126 100644
5555 case AST_CONTROL_WINK:
5656 case AST_CONTROL_OPTION:
5757diff --git a/channels/sig_analog.c b/channels/sig_analog.c
58- index 7ebb06239f..1cd63365c6 100644
58+ index e0d57b53ee..360cf23842 100644
5959--- a/channels/sig_analog.c
6060+++ b/channels/sig_analog.c
6161@@ -290,6 +290,12 @@ static char *analog_event2str(enum analog_event event)
@@ -71,7 +71,7 @@ index 7ebb06239f..1cd63365c6 100644
7171 case ANALOG_EVENT_POLARITY:
7272 res = "ANALOG_EVENT_POLARITY";
7373 break;
74- @@ -2874 ,10 +2880 ,30 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_
74+ @@ -3098 ,10 +3104 ,30 @@ static struct ast_frame *__analog_handle_event(struct analog_pvt *p, struct ast_
7575 break;
7676 #endif
7777 case ANALOG_EVENT_PULSE_START:
@@ -103,7 +103,7 @@ index 7ebb06239f..1cd63365c6 100644
103103 if (p->inalarm) {
104104 break;
105105diff --git a/channels/sig_analog.h b/channels/sig_analog.h
106- index 81043f39a5..02b1a4de17 100644
106+ index ae909ebba6..878794ba81 100644
107107--- a/channels/sig_analog.h
108108+++ b/channels/sig_analog.h
109109@@ -88,6 +88,8 @@ enum analog_event {
@@ -129,99 +129,11 @@ index 81043f39a5..02b1a4de17 100644
129129 /*! \brief -1 = unknown, 0 = no messages, 1 = new messages available */
130130 int msgstate;
131131
132- @@ -300 ,6 +309 ,7 @@ struct analog_pvt {
133- unsigned int permcallwaiting :1; /*!< TRUE if call waiting is enabled. (Configured option) */
132+ @@ -302 ,6 +311 ,7 @@ struct analog_pvt {
133+ unsigned int callwaitingdeluxe :1; /*!< TRUE if Call Waiting Deluxe options are available */
134134 unsigned int permhidecallerid:1; /*!< Whether to hide our outgoing caller ID or not */
135135 unsigned int pulse:1;
136- + unsigned int realtimepulsing:1;
136+ + unsigned int realtimepulsing:1; /*!< TRUE if realtimepulsing is enabled */
137137 unsigned int threewaycalling:1;
138138 unsigned int threewaysilenthold:1; /*!< Whether to time out a three-way dial tone to silence */
139139 unsigned int transfer:1;
140- diff --git a/funcs/func_frame_drop.c b/funcs/func_frame_drop.c
141- index 522685cbd0..ee2c8781d3 100644
142- --- a/funcs/func_frame_drop.c
143- +++ b/funcs/func_frame_drop.c
144- @@ -77,6 +77,7 @@
145- <enum name = "TAKEOFFHOOK" />
146- <enum name = "OFFHOOK" />
147- <enum name = "CONGESTION" />
148- + <enum name = "PULSE" />
149- <enum name = "FLASH" />
150- <enum name = "WINK" />
151- <enum name = "PROGRESS" />
152- @@ -134,6 +135,7 @@ static struct {
153- { AST_CONTROL_TAKEOFFHOOK, ",TAKEOFFHOOK," },
154- { AST_CONTROL_OFFHOOK, ",OFFHOOK," },
155- { AST_CONTROL_CONGESTION, ",CONGESTION," },
156- + { AST_CONTROL_PULSE, ",PULSE," },
157- { AST_CONTROL_FLASH, ",FLASH," },
158- { AST_CONTROL_WINK, ",WINK," },
159- { AST_CONTROL_PROGRESS, ",PROGRESS," },
160- diff --git a/funcs/func_frame_trace.c b/funcs/func_frame_trace.c
161- index 67345ef9e1..97ef1f7516 100644
162- --- a/funcs/func_frame_trace.c
163- +++ b/funcs/func_frame_trace.c
164- @@ -266,6 +266,9 @@ static void print_frame(struct ast_frame *frame)
165- case AST_CONTROL_CONGESTION:
166- ast_verbose("SubClass: CONGESTION\n");
167- break;
168- + case AST_CONTROL_PULSE:
169- + ast_verbose("SubClass: PULSE\n");
170- + break;
171- case AST_CONTROL_FLASH:
172- ast_verbose("SubClass: FLASH\n");
173- break;
174- diff --git a/include/asterisk/frame.h b/include/asterisk/frame.h
175- index 78e369c642..41f328c7ca 100644
176- --- a/include/asterisk/frame.h
177- +++ b/include/asterisk/frame.h
178- @@ -312,6 +312,7 @@ enum ast_control_frame_type {
179- AST_CONTROL_STREAM_TOPOLOGY_REQUEST_CHANGE = 35, /*!< Channel indication that a stream topology change has been requested */
180- AST_CONTROL_STREAM_TOPOLOGY_CHANGED = 36, /*!< Channel indication that a stream topology change has occurred */
181- AST_CONTROL_STREAM_TOPOLOGY_SOURCE_CHANGED = 37, /*!< Channel indication that one of the source streams has changed its source */
182- + AST_CONTROL_PULSE = 38, /*!< Dial Pulse */
183-
184- /*
185- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
186- diff --git a/main/channel.c b/main/channel.c
187- index 122f6e55a3..a98e635d95 100644
188- --- a/main/channel.c
189- +++ b/main/channel.c
190- @@ -3321,6 +3321,7 @@ int ast_waitfordigit_full(struct ast_channel *c, int timeout_ms, const char *bre
191- case AST_CONTROL_HOLD:
192- case AST_CONTROL_UNHOLD:
193- case AST_CONTROL_FLASH:
194- + case AST_CONTROL_PULSE:
195- case -1:
196- /* Unimportant */
197- break;
198- @@ -4294,6 +4295,7 @@ static int attribute_const is_visible_indication(enum ast_control_frame_type con
199- case AST_CONTROL_OPTION:
200- case AST_CONTROL_WINK:
201- case AST_CONTROL_FLASH:
202- + case AST_CONTROL_PULSE:
203- case AST_CONTROL_OFFHOOK:
204- case AST_CONTROL_TAKEOFFHOOK:
205- case AST_CONTROL_ANSWER:
206- @@ -4595,6 +4597,7 @@ static int indicate_data_internal(struct ast_channel *chan, int _condition, cons
207- case AST_CONTROL_OPTION:
208- case AST_CONTROL_WINK:
209- case AST_CONTROL_FLASH:
210- + case AST_CONTROL_PULSE:
211- case AST_CONTROL_OFFHOOK:
212- case AST_CONTROL_TAKEOFFHOOK:
213- case AST_CONTROL_ANSWER:
214- diff --git a/main/frame.c b/main/frame.c
215- index 711f9e15f1..2a80921c24 100644
216- --- a/main/frame.c
217- +++ b/main/frame.c
218- @@ -444,6 +444,9 @@ char *ast_frame_subclass2str(struct ast_frame *f, char *subclass, size_t slen, c
219- case AST_CONTROL_CONGESTION:
220- ast_copy_string(subclass, "Congestion", slen);
221- break;
222- + case AST_CONTROL_PULSE:
223- + ast_copy_string(subclass, "Pulse", slen);
224- + break;
225- case AST_CONTROL_FLASH:
226- ast_copy_string(subclass, "Flash", slen);
227- break;
0 commit comments