+
+ if (call->faxdetect || call->ast_dsp) {
+ if (!call->dsp)
+ call->dsp=ast_dsp_new();
+ if (call->dsp) {
+ #ifdef LCR_FOR_CALLWEAVER
+ ast_dsp_set_features(call->dsp, DSP_FEATURE_DTMF_DETECT | ((call->faxdetect) ? DSP_FEATURE_FAX_CNG_DETECT : 0));
+ #endif
+ #ifdef LCR_FOR_ASTERISK
+ #ifdef DSP_FEATURE_DTMF_DETECT
+ ast_dsp_set_features(call->dsp, DSP_FEATURE_DTMF_DETECT | ((call->faxdetect) ? DSP_FEATURE_FAX_DETECT : 0));
+ #else
+ ast_dsp_set_features(call->dsp, DSP_FEATURE_DIGIT_DETECT | ((call->faxdetect) ? DSP_FEATURE_FAX_DETECT : 0));
+ #endif
+
+ #endif
+ if (!call->trans) {
+ #ifdef LCR_FOR_CALLWEAVER
+ call->trans=ast_translator_build_path(AST_FORMAT_SLINEAR, 8000, (options.law=='a')?AST_FORMAT_ALAW:AST_FORMAT_ULAW, 8000);
+ #endif
+ #ifdef LCR_FOR_ASTERISK
+ #if ASTERISK_VERSION_NUM < 100000
+ call->trans=ast_translator_build_path(AST_FORMAT_SLINEAR, (options.law=='a')?AST_FORMAT_ALAW:AST_FORMAT_ULAW);
+// #else
+// struct ast_format src;
+// struct ast_format dst;
+// ast_format_set(&dst, AST_FORMAT_SLINEAR, 0);
+// ast_format_set(&dst,(options.law=='a')?AST_FORMAT_ALAW:AST_FORMAT_ULAW , 0);
+// call->trans=ast_translator_build_path(&dst, &src);
+ #endif
+ #endif
+ }
+ }
+ }