📄 em8xxx_voip_new.c
字号:
snprintf(cid.hour,sizeof(cid.hour),"17"); snprintf(cid.min,sizeof(cid.min),"10"); cid.numlen = 4; snprintf(cid.number,sizeof(cid.number),"7777"); cid.namelen = 5; snprintf(cid.name,sizeof(cid.name),"yoann"); RMDBGLOG((ENABLE,"Setting Caller id parameters : month : %s day : %s hour : %s min : %s numlen : %d number : %s namelen : %d name : %s\n",cid.month,cid.day,cid.hour,cid.min,cid.numlen,cid.number,cid.namelen,cid.name)); EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Cid_parameters,&cid,sizeof(cid)); command = VoipCodec_Command_Cid_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for CidGen Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for CidGen Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"CidGen Init Command acknoledged rc = %d\n",rc)); } command = VoipCodec_Command_Cid_Start; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for CidGen Start Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for CidGen Start Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"CidGen Start Command acknoledged rc = %d\n",rc)); } tg.freq1 = 17; tg.freq2 = 0; tg.time_on = 12000; tg.time_off = 28000; tg.level = 1; tg.ring = 1; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Tone_parameters,&tg,sizeof(tg)); command = VoipCodec_Command_ToneGen_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for ToneGen Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for ToneGen Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"ToneGen Init Command acknoledged rc = %d\n",rc)); } command = VoipCodec_Command_ToneGen_Start; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for ToneGen Start Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for ToneGen Start Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"ToneGen Start Command acknoledged rc = %d\n",rc)); } break; case PHONE_RING_STOP: RMDBGLOG((LOCALDBG,"PHONE_RING_STOP \n")); SlicSetState(pV,NORMAL_ACTIVE); command = VoipCodec_Command_ToneGen_Stop; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for ToneGen Stop Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for ToneGen Stop Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"ToneGen Stop Command acknoledged rc = %d\n",rc)); } command = VoipCodec_Command_Cid_Stop; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for CidGen Stop Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for CidGen Stop Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"CidGen Stop Command acknoledged rc = %d\n",rc)); } break; case PHONE_RING: RMDBGLOG((LOCALDBG,"PHONE_RING \n")); break; case PHONE_EXCEPTION: RMDBGLOG((LOCALDBG,"PHONE_EXCEPTION \n")); retval = pV->exc.bytes; pV->exc.bytes = 0; break; case PHONE_HOOKSTATE: RMDBGLOG((LOCALDBG,"PHONE_HOOKSTATE \n")); pV->exc.bits.hookstate = 0; retval = !read_gpio(pE,GPIO_LOOP_DETECT); break; case PHONE_FRAME: RMDBGLOG((LOCALDBG,"PHONE_FRAME \n")); break; case PHONE_REC_CODEC: RMDBGLOG((LOCALDBG,"PHONE_REC_CODEC \n")); switch(arg){ case G723_63: break; case G723_53: break; case TS85: break; case TS48: break; case TS41: break; case G728: break; case G729: RMDBGLOG((ENABLE,"Recording codec : G729\n")); enc_codec = VoipCodec_Encoder_Codec_G729; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Encoder_Codec,&enc_codec,sizeof(enc_codec)); command = VoipCodec_Command_Encoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Encoder Init Command acknoledged rc = %d\n",rc)); } break; case ULAW: RMDBGLOG((ENABLE,"Recording codec : ULAW\n")); enc_codec = VoipCodec_Encoder_Codec_G711_ULAW; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Encoder_Codec,&enc_codec,sizeof(enc_codec)); command = VoipCodec_Command_Encoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Encoder Init Command acknoledged rc = %d\n",rc)); } break; case ALAW: RMDBGLOG((ENABLE,"Recording codec : ALAW\n")); enc_codec = VoipCodec_Encoder_Codec_G711_ALAW; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Encoder_Codec,&enc_codec,sizeof(enc_codec)); command = VoipCodec_Command_Encoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Encoder Init Command acknoledged rc = %d\n",rc)); } break; case LINEAR16: RMDBGLOG((ENABLE,"Recording codec : S16_LINEAR\n")); enc_codec = VoipCodec_Encoder_Codec_G711_LINEAR; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Encoder_Codec,&enc_codec,sizeof(enc_codec)); command = VoipCodec_Command_Encoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Encoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Encoder Init Command acknoledged rc = %d\n",rc)); } break; case LINEAR8: break; } break; case PHONE_VAD: RMDBGLOG((LOCALDBG,"PHONE_VAD \n")); break; case PHONE_REC_START: RMDBGLOG((LOCALDBG,"PHONE_REC_START \n"));// command = VoipCodec_Command_Aec_Start;// EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command));// rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US));// if (rc == 0) {// RMDBGLOG((LOCALDBG,"Timeout while waiting for AEC Start Command Completion\n"));// return RM_PENDING;// }// else if (kc_signal_pending_current()) {// RMDBGLOG((LOCALDBG,"Interrupted while waiting for AEC Start Command Completion\n"));// return RM_PENDING;// }// else {// RMDBGLOG((LOCALDBG,"AEC Start Command acknoledged rc = %d\n",rc));// } command = VoipCodec_Command_Encoder_Start; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Encoder Start Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Encoder Start Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Encoder Start Command acknoledged rc = %d\n",rc)); } break; case PHONE_REC_STOP: RMDBGLOG((LOCALDBG,"PHONE_REC_STOP \n")); command = VoipCodec_Command_Aec_Stop; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for AEC Stop Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for AEC Stop Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"AEC Stop Command acknoledged rc = %d\n",rc)); } command = VoipCodec_Command_Encoder_Stop; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Encoder Stop Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Encoder Stop Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Encoder Stop Command acknoledged rc = %d\n",rc)); } break; case PHONE_REC_DEPTH: RMDBGLOG((LOCALDBG,"PHONE_REC_DEPTH \n")); break; case PHONE_REC_VOLUME: RMDBGLOG((LOCALDBG,"PHONE_REC_VOLUME \n")); break; case PHONE_REC_VOLUME_LINEAR: RMDBGLOG((LOCALDBG,"PHONE_REC_VOLUME_LINEAR \n")); break; case PHONE_REC_LEVEL: RMDBGLOG((LOCALDBG,"PHONE_REC_LEVEL \n")); break; case PHONE_PLAY_CODEC: RMDBGLOG((LOCALDBG,"PHONE_PLAY_CODEC \n")); switch(arg){ case G723_63: break; case G723_53: break; case TS85: break; case TS48: break; case TS41: break; case G728: break; case G729: RMDBGLOG((ENABLE,"Playback codec : G729\n")); dec_codec = VoipCodec_Decoder_Codec_G729; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Decoder_Codec,&dec_codec,sizeof(dec_codec)); command = VoipCodec_Command_Decoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Decoder Init Command acknoledged rc = %d\n",rc)); } break; case ULAW: RMDBGLOG((ENABLE,"Playback codec : ULAW\n")); dec_codec = VoipCodec_Decoder_Codec_G711_ULAW; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Decoder_Codec,&dec_codec,sizeof(dec_codec)); command = VoipCodec_Command_Decoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Decoder Init Command acknoledged rc = %d\n",rc)); } break; case ALAW: RMDBGLOG((ENABLE,"Playback codec : ALAW\n")); dec_codec = VoipCodec_Decoder_Codec_G711_ALAW; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Decoder_Codec,&dec_codec,sizeof(dec_codec)); command = VoipCodec_Command_Decoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Decoder Init Command acknoledged rc = %d\n",rc)); } break; case LINEAR16: RMDBGLOG((ENABLE,"Playback codec : S16_LINEAR\n")); dec_codec = VoipCodec_Decoder_Codec_G711_LINEAR; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Decoder_Codec,&dec_codec,sizeof(dec_codec)); command = VoipCodec_Command_Decoder_Init; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for Decoder Init Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"Decoder Init Command acknoledged rc = %d\n",rc)); } break; case LINEAR8: break; } break; case PHONE_PLAY_START: RMDBGLOG((LOCALDBG,"PHONE_PLAY_START \n")); SlicSetState(pV,NORMAL_ACTIVE); command = VoipCodec_Command_ToneGen_Stop; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for ToneGen Stop Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for ToneGen Stop Command Completion\n")); return RM_PENDING; } else { RMDBGLOG((LOCALDBG,"ToneGen Stop Command acknoledged rc = %d\n",rc)); } command = VoipCodec_Command_Cid_Stop; EM8XXXVOIPSP(pE,VoipCodec,RMVoipCodecPropertyID_Command,&command,sizeof(command)); rc = kc_interruptible_sleep_on_timeout(pV->command_q,US_TO_JIFFIES(VOIP_EVENT_TIMEOUT_US)); if (rc == 0) { RMDBGLOG((LOCALDBG,"Timeout while waiting for CidGen Stop Command Completion\n")); return RM_PENDING; } else if (kc_signal_pending_current()) { RMDBGLOG((LOCALDBG,"Interrupted while waiting for CidGen Stop Command Completion\n")); return RM_PENDING;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -