Changeset 3268


Ignore:
Timestamp:
10/25/07 13:56:22 (6 years ago)
Author:
tick
Message:

Patch to enable CPHS ( Common PCN Handset Specification),
and retrieve the voicemail number from SIM card for TI vendor.(Erin Yueh)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/target/gsm/src/gsmd/vendor_ti.c

    r2728 r3268  
    246246}; 
    247247 
    248 static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 
     248static int cpmb_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) 
    249249{ 
    250250        struct gsmd *g = ctx; 
    251251        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; 
    256258         
    257259        er = extrsp_parse(cmd, resp); 
    258260        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 
     280static 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         
    261298        if (extrsp_supports(er, 0, 3)) 
    262299                return gsmd_simplecmd(g, "AT%CPI=3"); 
     
    293330        /* send unsolicited commands at any time */ 
    294331        rc |= gsmd_simplecmd(g, "AT%CUNS=0"); 
    295  
     332        /* enable %CPHS: Initialise CPHS Functionalities */ 
     333        rc |= gsmd_simplecmd(g, "AT%CPHS=1"); 
     334         
    296335        /* enable %CPI: call progress indication */ 
    297336        cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0); 
Note: See TracChangeset for help on using the changeset viewer.