Hi all, Can anyone tell me whats goin on in this OPEN function? How is it taking value of gsm_data->encoder from gsm_create()? Do i need to do same thing while writing open function for EVRC codec? * Open codec. */ static pj_status_t gsm_codec_open( pjmedia_codec *codec, pjmedia_codec_param *attr ) { struct gsm_data *gsm_data = (struct gsm_data*) codec->codec_data; pj_assert(gsm_data != NULL); pj_assert(gsm_data->encoder == NULL && gsm_data->decoder == NULL); gsm_data->encoder = gsm_create(); if (!gsm_data->encoder) return PJMEDIA_CODEC_EFAILED; gsm_data->decoder = gsm_create(); if (!gsm_data->decoder) return PJMEDIA_CODEC_EFAILED; gsm_data->vad_enabled = (attr->setting.vad != 0); gsm_data->plc_enabled = (attr->setting.plc != 0); return PJ_SUCCESS; } /* Do we really need to take gsm_data->encoder value by gsm_create()? If we don;t hv anything lie gsm_create() in our EVRC file,what can we do? Please help me out. Thanks. Sameer Prajapati Contact no.9953595878