88{
89 int res=0;
90 int retries;
92 int minlength = 10;
93 int x = 0;
101 );
102
105 ast_verb(3,
"CallerID number present: Skipping\n");
106 } else {
107
110 return -1;
111 }
112 }
113
115
117
119 if (sscanf(
args.maxretries,
"%30d", &x) == 1 && x > 0) {
121 } else {
123 }
124 }
126 if (sscanf(
args.minlength,
"%30d", &x) == 1 && x > 0) {
127 minlength = x;
128 } else {
130 }
131 }
132
133
135 if (!res) {
137 }
138 if (!res) {
140 }
141
142
143 for (retries = 0; retries <
maxretries; retries++) {
144 if (!res) {
146 }
147 if (!res) {
149 }
150
151 if (!res) {
153 }
154
155 if (res < 0) {
156 break;
157 }
158
159
160 if (strlen(
phone) >= minlength ) {
161
165 if (!res) {
167 }
168 } else {
169 break;
170 }
171 } else {
172 break;
173 }
174 } else {
176 if (!res) {
178 }
179 }
180 }
181
182
185 if (!res) {
187 }
188
189
190
191
192
193
194
198
200
202
204 } else {
206 }
207 }
208
209 return 0;
210}
#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.