Changeset 3759
- Timestamp:
- 01/02/08 09:37:09 (5 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
r3502 r3759 207 207 }; 208 208 209 static int cp mb_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp)209 static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 210 210 { 211 211 struct gsmd *g = ctx; 212 212 struct gsm_extrsp *er; 213 int rc; 214 char atcmd_buf[20]; 215 216 if (strncmp(resp, "%CPMB: ", 7)) 217 return -EINVAL; 218 resp += 7; 213 214 if (strncmp(resp, "%CPI: ", 6)) 215 return -EINVAL; 216 resp += 6; 219 217 220 218 er = extrsp_parse(cmd, resp); 221 219 if (!er) 222 return -ENOMEM; 223 224 extrsp_dump(er); 225 226 if (er->num_tokens == 5 && 227 er->tokens[2].type == GSMD_ECMD_RTT_STRING && 228 er->tokens[3].type == GSMD_ECMD_RTT_NUMERIC && 229 er->tokens[4].type == GSMD_ECMD_RTT_STRING) { 230 snprintf(atcmd_buf, sizeof(atcmd_buf), "AT+CSVM=1,\"%s\",%d", 231 er->tokens[2].u.string, er->tokens[3].u.numeric); 232 rc = gsmd_simplecmd(g, atcmd_buf); 233 } else { 234 rc = -EINVAL; 235 } 236 237 talloc_free(er); 238 239 return rc; 240 } 241 242 static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 243 { 244 struct gsmd *g = ctx; 245 struct gsm_extrsp *er; 246 247 if (strncmp(resp, "%CPI: ", 6)) 248 return -EINVAL; 249 resp += 6; 250 251 er = extrsp_parse(cmd, resp); 252 if (!er) 253 return -EINVAL; 254 255 /* retrieve voicemail number */ 256 cmd = atcmd_fill("AT%CPMB=1", 10, &cpmb_detect_cb, g, 0, NULL); 257 if (cmd) 258 atcmd_submit(g, cmd); 220 return -EINVAL; 259 221 260 222 if (extrsp_supports(er, 0, 3)) … … 292 254 /* send unsolicited commands at any time */ 293 255 rc |= gsmd_simplecmd(g, "AT%CUNS=0"); 294 /* enable %CPHS: Initialise CPHS Functionalities */ 295 rc |= gsmd_simplecmd(g, "AT%CPHS=1"); 296 256 297 257 /* enable %CPI: call progress indication */ 298 258 cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0, NULL);
Note: See TracChangeset
for help on using the changeset viewer.
