2010-01-04 15:49:22 -05:00
|
|
|
/*
|
|
|
|
* FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
|
|
|
|
* Copyright (C) 2005-2009, Anthony Minessale II <anthm@freeswitch.org>
|
|
|
|
*
|
|
|
|
* Version: MPL 1.1
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the Mozilla Public License Version
|
|
|
|
* 1.1 (the "License"); you may not use this file except in compliance with
|
|
|
|
* the License. You may obtain a copy of the License at
|
|
|
|
* http://www.mozilla.org/MPL/
|
|
|
|
*
|
|
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
|
|
* for the specific language governing rights and limitations under the
|
|
|
|
* License.
|
|
|
|
*
|
|
|
|
* The Original Code is FreeSWITCH Modular Media Switching Software Library / Soft-Switch Application
|
|
|
|
*
|
|
|
|
* The Initial Developer of the Original Code is
|
|
|
|
* Anthony Minessale II <anthm@freeswitch.org>
|
|
|
|
* Portions created by the Initial Developer are Copyright (C)
|
|
|
|
* the Initial Developer. All Rights Reserved.
|
|
|
|
*
|
|
|
|
* Contributor(s):
|
|
|
|
*
|
|
|
|
* Joao Mesquita <jmesquita@freeswitch.org>
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
#ifndef CALL_H
|
|
|
|
#define CALL_H
|
|
|
|
|
|
|
|
#include <QtCore>
|
|
|
|
#include <QString>
|
2010-01-17 21:43:48 -05:00
|
|
|
#include <switch.h>
|
2010-01-04 15:49:22 -05:00
|
|
|
|
|
|
|
typedef enum {
|
2010-01-04 17:07:20 -05:00
|
|
|
FSCOMM_CALL_STATE_RINGING = 0,
|
|
|
|
FSCOMM_CALL_STATE_TRYING = 1,
|
2010-01-14 22:30:11 -05:00
|
|
|
FSCOMM_CALL_STATE_ANSWERED = 2,
|
|
|
|
FSCOMM_CALL_STATE_FAILED = 3
|
2010-01-04 17:07:20 -05:00
|
|
|
} fscomm_call_state_t;
|
2010-01-04 15:49:22 -05:00
|
|
|
|
|
|
|
typedef enum {
|
2010-01-04 17:07:20 -05:00
|
|
|
FSCOMM_CALL_DIRECTION_INBOUND = 0,
|
|
|
|
FSCOMM_CALL_DIRECTION_OUTBOUND = 1
|
|
|
|
} fscomm_call_direction_t;
|
2010-01-04 15:49:22 -05:00
|
|
|
|
2010-01-21 00:05:56 -05:00
|
|
|
class Call {
|
2010-01-04 15:49:22 -05:00
|
|
|
public:
|
2010-01-21 00:05:56 -05:00
|
|
|
Call();
|
2010-01-04 17:07:20 -05:00
|
|
|
Call(int call_id, QString cid_name, QString cid_number, fscomm_call_direction_t direction, QString uuid);
|
2010-01-04 15:49:22 -05:00
|
|
|
QString getCidName(void) { return _cid_name; }
|
|
|
|
QString getCidNumber(void) { return _cid_number; }
|
|
|
|
int getCallID(void) { return _call_id; }
|
|
|
|
QString getUUID(void) { return _uuid; }
|
|
|
|
void setbUUID(QString uuid) { _buuid = uuid; }
|
2010-01-04 17:07:20 -05:00
|
|
|
fscomm_call_direction_t getDirection() { return _direction; }
|
|
|
|
fscomm_call_state_t getState() { return _state; }
|
|
|
|
void setState(fscomm_call_state_t state) { _state = state; }
|
2010-01-14 22:30:11 -05:00
|
|
|
void setCause(QString cause) { _cause = cause; }
|
|
|
|
QString getCause() { return _cause; }
|
2010-01-17 21:43:48 -05:00
|
|
|
void setActive(bool isActive) { _isActive = isActive; }
|
|
|
|
bool isActive() { return _isActive == true; }
|
|
|
|
switch_status_t toggleRecord(bool);
|
2010-01-20 21:48:53 -05:00
|
|
|
void sendDTMF(QString digit);
|
2010-01-27 20:12:34 -05:00
|
|
|
void setAnsweredEpoch(qulonglong time) { _answered_epoch = time/1000000; }
|
|
|
|
QTime getCurrentStateTime();
|
2010-01-04 15:49:22 -05:00
|
|
|
|
|
|
|
private:
|
|
|
|
int _call_id;
|
|
|
|
QString _cid_name;
|
|
|
|
QString _cid_number;
|
2010-01-14 22:30:11 -05:00
|
|
|
QString _cause;
|
2010-01-04 17:07:20 -05:00
|
|
|
fscomm_call_direction_t _direction;
|
2010-01-04 15:49:22 -05:00
|
|
|
QString _uuid;
|
|
|
|
QString _buuid;
|
2010-01-17 21:43:48 -05:00
|
|
|
bool _isActive;
|
|
|
|
QString _recording_filename;
|
2010-01-04 17:07:20 -05:00
|
|
|
fscomm_call_state_t _state;
|
2010-01-27 20:12:34 -05:00
|
|
|
qulonglong _answered_epoch;
|
2010-01-04 15:49:22 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
Q_DECLARE_METATYPE(Call)
|
|
|
|
|
|
|
|
#endif // CALL_H
|