コード例 #1
0
ファイル: at-emulator.c プロジェクト: xianjimli/misc
/* This gets called to indicate an incoming call */
void gn_atem_call_passup(gn_call_status CallStatus, gn_call_info *CallInfo, struct gn_statemachine *state)
{
	dprintf("gn_atem_call_passup called with %d\n", CallStatus);

	switch (CallStatus) {
	case GN_CALL_Incoming:
		IncomingCallNo = CallInfo->call_id;
		gn_atem_modem_result(MR_RING);
		ModemRegisters[REG_RINGCNT]++;
		gn_atem_cid_out(CallInfo);
		if (ModemRegisters[REG_RINGATA] != 0) gn_atem_answer_phone();
		break;
	case GN_CALL_LocalHangup:
	case GN_CALL_RemoteHangup:
		if (IncomingCallNo > 0) {
			gn_atem_cpi(GSMD_CALLPROG_DISCONNECT,
					GSMD_CALL_DIR_MT, 0);
			gn_atem_cpi(GSMD_CALLPROG_RELEASE,
					GSMD_CALL_DIR_MT, 0);
		}
		IncomingCallNo = -1;
		break;
	default:
		break;
	}
}
コード例 #2
0
ファイル: at-emulator.c プロジェクト: ihipop/I-GNOKII
/* This gets called to indicate an incoming call */
void gn_atem_call_passup(gn_call_status CallStatus, gn_call_info *CallInfo, struct gn_statemachine *state, void *callback_data)
{
	dprintf("gn_atem_call_passup called with %d\n", CallStatus);

	switch (CallStatus) {
	case GN_CALL_Incoming:
		gn_atem_modem_result(MR_RING);
		IncomingCallNo = CallInfo->call_id;
		ModemRegisters[REG_RINGCNT]++;
		gn_atem_cid_out(CallInfo);
		if (ModemRegisters[REG_RINGATA] != 0) gn_atem_answer_phone();
		break;
	case GN_CALL_LocalHangup:
	case GN_CALL_RemoteHangup:
		IncomingCallNo = -1;
		break;
	default:
		break;
	}
}