91{
92 int res=0;
93 int retries;
95 int minlength = 10;
96 int x = 0;
104 );
105
108 ast_verb(3,
"CallerID number present: Skipping\n");
109 } else {
110
113 return -1;
114 }
115 }
116
118
120
122 if (sscanf(
args.maxretries,
"%30d", &x) == 1 && x > 0) {
124 } else {
126 }
127 }
129 if (sscanf(
args.minlength,
"%30d", &x) == 1 && x > 0) {
130 minlength = x;
131 } else {
133 }
134 }
135
136
138 if (!res) {
140 }
141 if (!res) {
143 }
144
145
146 for (retries = 0; retries <
maxretries; retries++) {
147 if (!res) {
149 }
150 if (!res) {
152 }
153
154 if (!res) {
156 }
157
158 if (res < 0) {
159 break;
160 }
161
162
163 if (strlen(
phone) >= minlength ) {
164
168 if (!res) {
170 }
171 } else {
172 break;
173 }
174 } else {
175 break;
176 }
177 } else {
179 if (!res) {
181 }
182 }
183 }
184
185
188 if (!res) {
190 }
191
192
193
194
195
196
197
201
203
205
207 } else {
209 }
210 }
211
212 return 0;
213}
#define ast_strdupa(s)
duplicate a string in memory from the stack
#define AST_PRES_ALLOWED_USER_NUMBER_NOT_SCREENED
void ast_set_callerid(struct ast_channel *chan, const char *cid_num, const char *cid_name, const char *cid_ani)
Set caller ID number, name and ANI and generate AMI event.
const char * ast_channel_language(const struct ast_channel *chan)
struct ast_party_caller * ast_channel_caller(struct ast_channel *chan)
int ast_readstring(struct ast_channel *c, char *s, int len, int timeout, int rtimeout, char *enders)
Reads multiple digits.
int ast_answer(struct ast_channel *chan)
Answer a channel.
int ast_safe_sleep(struct ast_channel *chan, int ms)
Wait for a specified amount of time, looking for hangups.
ast_channel_state
ast_channel states
int ast_streamfile(struct ast_channel *c, const char *filename, const char *preflang)
Streams a file.
int ast_waitstream(struct ast_channel *c, const char *breakon)
Waits for a stream to stop or digit to be pressed.
#define AST_APP_ARG(name)
Define an application argument.
#define AST_DECLARE_APP_ARGS(name, arglist)
Declare a structure to hold an application's arguments.
#define AST_STANDARD_APP_ARGS(args, parse)
Performs the 'standard' argument separation process for an application.
#define ast_verb(level,...)
int ast_exists_extension(struct ast_channel *c, const char *context, const char *exten, int priority, const char *callerid)
Determine whether an extension exists.
int pbx_builtin_setvar_helper(struct ast_channel *chan, const char *name, const char *value)
Add a variable to the channel variable stack, removing the most recently set value for the same name.
static force_inline int attribute_pure ast_strlen_zero(const char *s)
struct ast_party_id id
Caller party ID.
struct ast_party_name name
Subscriber name.
struct ast_party_number number
Subscriber phone number.
int presentation
Q.931 encoded presentation-indicator encoded field.
int presentation
Q.931 presentation-indicator and screening-indicator encoded fields.
unsigned char valid
TRUE if the number information is valid/present.
int plan
Q.931 Type-Of-Number and Numbering-Plan encoded fields.