Changeset 3268
- Timestamp:
- 10/25/07 13:56:22 (6 years ago)
- File:
-
- 1 edited
-
trunk/src/target/gsm/src/gsmd/vendor_ti.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/target/gsm/src/gsmd/vendor_ti.c
r2728 r3268 246 246 }; 247 247 248 static int cp i_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)248 static int cpmb_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 249 249 { 250 250 struct gsmd *g = ctx; 251 251 struct gsm_extrsp *er; 252 253 if (strncmp(resp, "%CPI: ", 6)) 254 return -EINVAL; 255 resp += 6; 252 int rc; 253 char atcmd_buf[20]; 254 255 if (strncmp(resp, "%CPMB: ", 7)) 256 return -EINVAL; 257 resp += 7; 256 258 257 259 er = extrsp_parse(cmd, resp); 258 260 if (!er) 259 return -EINVAL; 260 261 return -ENOMEM; 262 263 extrsp_dump(er); 264 265 if (er->num_tokens == 5 && 266 er->tokens[2].type == GSMD_ECMD_RTT_STRING && 267 er->tokens[3].type == GSMD_ECMD_RTT_NUMERIC && 268 er->tokens[4].type == GSMD_ECMD_RTT_STRING) 269 rc = sprintf(atcmd_buf, "AT+CSVM=1,\"%s\",%d", 270 er->tokens[2].u.string, er->tokens[3].u.numeric); 271 272 if(rc) 273 return gsmd_simplecmd(g, atcmd_buf); 274 275 talloc_free(er); 276 277 return rc; 278 } 279 280 static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 281 { 282 struct gsmd *g = ctx; 283 struct gsm_extrsp *er; 284 285 if (strncmp(resp, "%CPI: ", 6)) 286 return -EINVAL; 287 resp += 6; 288 289 er = extrsp_parse(cmd, resp); 290 if (!er) 291 return -EINVAL; 292 293 /* retrieve voicemail number */ 294 cmd = atcmd_fill("AT%CPMB=1", 10, &cpmb_detect_cb, g, 0); 295 if (cmd) 296 atcmd_submit(g, cmd); 297 261 298 if (extrsp_supports(er, 0, 3)) 262 299 return gsmd_simplecmd(g, "AT%CPI=3"); … … 293 330 /* send unsolicited commands at any time */ 294 331 rc |= gsmd_simplecmd(g, "AT%CUNS=0"); 295 332 /* enable %CPHS: Initialise CPHS Functionalities */ 333 rc |= gsmd_simplecmd(g, "AT%CPHS=1"); 334 296 335 /* enable %CPI: call progress indication */ 297 336 cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0);
Note: See TracChangeset
for help on using the changeset viewer.
