mirror of
https://github.com/danog/php-libtgvoip.git
synced 2024-11-30 04:19:26 +01:00
Final fixes
This commit is contained in:
parent
040896829c
commit
ba582a826d
72
main.cpp
72
main.cpp
@ -37,12 +37,11 @@ void VoIP::__construct(Php::Parameters ¶ms)
|
|||||||
self["internalStorage"] = empty;
|
self["internalStorage"] = empty;
|
||||||
|
|
||||||
self["internalStorage"]["creator"] = params[0];
|
self["internalStorage"]["creator"] = params[0];
|
||||||
self["internalStorage"]["created"] = params[1];
|
self["internalStorage"]["otherID"] = params[1];
|
||||||
self["internalStorage"]["otherID"] = params[2];
|
self["internalStorage"]["callID"] = params[2];
|
||||||
self["internalStorage"]["callID"] = params[3];
|
self["internalStorage"]["madeline"] = params[3];
|
||||||
self["internalStorage"]["madeline"] = params[4];
|
callState = (int) params[4];
|
||||||
self["internalStorage"]["callState"] = (int) params[5];
|
self["internalStorage"]["protocol"] = params[5];
|
||||||
self["internalStorage"]["protocol"] = params[6];
|
|
||||||
|
|
||||||
initVoIPController();
|
initVoIPController();
|
||||||
}
|
}
|
||||||
@ -62,24 +61,34 @@ void VoIP::initVoIPController() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void VoIP::deinitVoIPController() {
|
void VoIP::deinitVoIPController() {
|
||||||
if (inst) {
|
if (callState != CALL_STATE_ENDED) {
|
||||||
Php::Value self(this);
|
callState = CALL_STATE_ENDED;
|
||||||
self["internalStorage"]["callState"] = CALL_STATE_ENDED;
|
|
||||||
delete inst;
|
delete inst;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void VoIP::discard()
|
void VoIP::discard(Php::Parameters ¶ms)
|
||||||
{
|
{
|
||||||
Php::Value self(this);
|
|
||||||
self["internalStorage"]["madeline"].value().call("discard_call", self["internalStorage"]["callID"].value());
|
|
||||||
deinitVoIPController();
|
deinitVoIPController();
|
||||||
|
|
||||||
|
Php::Value self(this);
|
||||||
|
Php::Array reason;
|
||||||
|
Php::Array rating;
|
||||||
|
if (params.size() > 0) {
|
||||||
|
reason = params[0];
|
||||||
|
} else {
|
||||||
|
reason["_"] = "phoneCallDiscardReasonDisconnect";
|
||||||
|
}
|
||||||
|
if (params.size() == 2) {
|
||||||
|
rating = params[1];
|
||||||
|
}
|
||||||
|
self["internalStorage"]["madeline"].value().call("discard_call", self["internalStorage"]["callID"]["id"].value(), reason, rating);
|
||||||
}
|
}
|
||||||
|
|
||||||
void VoIP::accept()
|
void VoIP::accept()
|
||||||
{
|
{
|
||||||
Php::Value self(this);
|
Php::Value self(this);
|
||||||
self["internalStorage"]["madeline"].value().call("accept_call", self["internalStorage"]["callID"].value());
|
self["internalStorage"]["madeline"].value().call("accept_call", self["internalStorage"]["callID"]["id"].value());
|
||||||
deinitVoIPController();
|
deinitVoIPController();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,24 +96,37 @@ void VoIP::accept()
|
|||||||
void VoIP::__wakeup()
|
void VoIP::__wakeup()
|
||||||
{
|
{
|
||||||
Php::Value self(this);
|
Php::Value self(this);
|
||||||
|
callState = self["internalStorage"]["callState"];
|
||||||
initVoIPController();
|
initVoIPController();
|
||||||
if (self["configuration"]) {
|
if (self["configuration"]) {
|
||||||
parseConfig();
|
parseConfig();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VoIP::__sleep()
|
||||||
|
{
|
||||||
|
Php::Value self(this);
|
||||||
|
self["internalStorage"]["callState"] = callState;
|
||||||
|
Php::Array res({"internalStorage", "storage", "configuration"});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void VoIP::startTheMagic()
|
void VoIP::startTheMagic()
|
||||||
{
|
{
|
||||||
inst->Connect();
|
inst->Connect();
|
||||||
|
Php::Value self(this);
|
||||||
|
self["internalStorage"]["created"] = time(NULL);
|
||||||
|
callState = CALL_STATE_READY;
|
||||||
}
|
}
|
||||||
|
|
||||||
Php::Value VoIP::whenCreated()
|
Php::Value VoIP::whenCreated()
|
||||||
{
|
{
|
||||||
|
|
||||||
Php::Value self(this);
|
Php::Value self(this);
|
||||||
return self["internalStorage"]["created"];
|
if (self["internalStorage"]["created"]) {
|
||||||
|
return self["internalStorage"]["created"];
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
Php::Value VoIP::isCreator()
|
Php::Value VoIP::isCreator()
|
||||||
{
|
{
|
||||||
@ -130,13 +152,11 @@ Php::Value VoIP::getCallID()
|
|||||||
|
|
||||||
Php::Value VoIP::getCallState()
|
Php::Value VoIP::getCallState()
|
||||||
{
|
{
|
||||||
Php::Value self(this);
|
return callState;
|
||||||
return self["internalStorage"]["callState"];
|
|
||||||
}
|
}
|
||||||
void VoIP::setCallState(Php::Parameters ¶ms)
|
void VoIP::setCallState(Php::Parameters ¶ms)
|
||||||
{
|
{
|
||||||
Php::Value self(this);
|
callState = params[0];
|
||||||
self["internalStorage"]["callState"] = params[0];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Php::Value VoIP::getVisualization()
|
Php::Value VoIP::getVisualization()
|
||||||
@ -253,7 +273,12 @@ void VoIP::debugCtl(Php::Parameters ¶ms)
|
|||||||
|
|
||||||
Php::Value VoIP::getDebugLog()
|
Php::Value VoIP::getDebugLog()
|
||||||
{
|
{
|
||||||
return inst->GetDebugLog();
|
Php::Value data;
|
||||||
|
string encoded = inst->GetDebugLog();
|
||||||
|
if (!encoded.empty()) {
|
||||||
|
data = Php::call("json_decode", encoded, true);
|
||||||
|
}
|
||||||
|
return data;
|
||||||
}
|
}
|
||||||
|
|
||||||
Php::Value VoIP::getVersion()
|
Php::Value VoIP::getVersion()
|
||||||
@ -370,7 +395,7 @@ PHPCPP_EXPORT void *get_module()
|
|||||||
voip.method<&VoIP::getCallState>("getCallState", Php::Public | Php::Final);
|
voip.method<&VoIP::getCallState>("getCallState", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::setCallState>("setCallState", Php::Public | Php::Final, {Php::ByVal("state", Php::Type::Numeric)});
|
voip.method<&VoIP::setCallState>("setCallState", Php::Public | Php::Final, {Php::ByVal("state", Php::Type::Numeric)});
|
||||||
voip.method<&VoIP::getVisualization>("getVisualization", Php::Public | Php::Final);
|
voip.method<&VoIP::getVisualization>("getVisualization", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::setVisualization>("setVisualization", Php::Public | Php::Final, {Php::ByVal("visualization", Php::Type::String)});
|
voip.method<&VoIP::setVisualization>("setVisualization", Php::Public | Php::Final, {Php::ByVal("visualization", Php::Type::Array)});
|
||||||
voip.method<&VoIP::getOtherID>("getOtherID", Php::Public | Php::Final);
|
voip.method<&VoIP::getOtherID>("getOtherID", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::getProtocol>("getProtocol", Php::Public | Php::Final);
|
voip.method<&VoIP::getProtocol>("getProtocol", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::getCallID>("getCallID", Php::Public | Php::Final);
|
voip.method<&VoIP::getCallID>("getCallID", Php::Public | Php::Final);
|
||||||
@ -383,12 +408,13 @@ PHPCPP_EXPORT void *get_module()
|
|||||||
voip.method<&VoIP::getInputParams>("getInputParams", Php::Public | Php::Final);
|
voip.method<&VoIP::getInputParams>("getInputParams", Php::Public | Php::Final);
|
||||||
|
|
||||||
voip.method<&VoIP::discard>("__destruct", Php::Public | Php::Final);
|
voip.method<&VoIP::discard>("__destruct", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::discard>("discard", Php::Public | Php::Final);
|
voip.method<&VoIP::discard>("discard", Php::Public | Php::Final, {Php::ByVal("reason", Php::Type::Array, false), Php::ByVal("rating", Php::Type::Array, false)});
|
||||||
voip.method<&VoIP::accept>("accept", Php::Public | Php::Final);
|
voip.method<&VoIP::accept>("accept", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::__construct>("__construct", Php::Public | Php::Final, {
|
voip.method<&VoIP::__construct>("__construct", Php::Public | Php::Final, {
|
||||||
Php::ByVal("creator", Php::Type::Bool), Php::ByVal("created", Php::Type::Numeric), Php::ByVal("otherID", Php::Type::Numeric), Php::ByVal("callID"), Php::ByRef("madeline", Php::Type::Object), Php::ByVal("callState", Php::Type::Numeric), Php::ByVal("protocol", Php::Type::Array)
|
Php::ByVal("creator", Php::Type::Bool), Php::ByVal("otherID", Php::Type::Numeric), Php::ByVal("InputPhoneCall", Php::Type::Array), Php::ByRef("madeline", Php::Type::Object), Php::ByVal("callState", Php::Type::Numeric), Php::ByVal("protocol", Php::Type::Array)
|
||||||
});
|
});
|
||||||
voip.method<&VoIP::__wakeup>("__wakeup", Php::Public | Php::Final);
|
voip.method<&VoIP::__wakeup>("__wakeup", Php::Public | Php::Final);
|
||||||
|
voip.method<&VoIP::__sleep>("__sleep", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::setMicMute>("setMicMute", Php::Public | Php::Final, {
|
voip.method<&VoIP::setMicMute>("setMicMute", Php::Public | Php::Final, {
|
||||||
Php::ByVal("type", Php::Type::Bool),
|
Php::ByVal("type", Php::Type::Bool),
|
||||||
});
|
});
|
||||||
|
7
main.h
7
main.h
@ -26,7 +26,8 @@ If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#define AUDIO_STATE_CONFIGURED 1
|
#define AUDIO_STATE_CONFIGURED 1
|
||||||
#define AUDIO_STATE_RUNNING 2
|
#define AUDIO_STATE_RUNNING 2
|
||||||
|
|
||||||
#define CALL_STATE_REQUESTED -1
|
#define CALL_STATE_NONE -1
|
||||||
|
#define CALL_STATE_REQUESTED 0
|
||||||
#define CALL_STATE_INCOMING 1
|
#define CALL_STATE_INCOMING 1
|
||||||
#define CALL_STATE_ACCEPTED 2
|
#define CALL_STATE_ACCEPTED 2
|
||||||
#define CALL_STATE_CONFIRMED 3
|
#define CALL_STATE_CONFIRMED 3
|
||||||
@ -49,10 +50,11 @@ class VoIP : public Php::Base
|
|||||||
public:
|
public:
|
||||||
void __construct(Php::Parameters ¶ms);
|
void __construct(Php::Parameters ¶ms);
|
||||||
void initVoIPController();
|
void initVoIPController();
|
||||||
void discard();
|
void discard(Php::Parameters ¶ms);
|
||||||
void accept();
|
void accept();
|
||||||
void deinitVoIPController();
|
void deinitVoIPController();
|
||||||
void __wakeup();
|
void __wakeup();
|
||||||
|
void __sleep();
|
||||||
|
|
||||||
void startTheMagic();
|
void startTheMagic();
|
||||||
|
|
||||||
@ -103,6 +105,7 @@ public:
|
|||||||
void parseConfig();
|
void parseConfig();
|
||||||
void parseProxyConfig();
|
void parseProxyConfig();
|
||||||
private:
|
private:
|
||||||
|
int callState = CALL_STATE_NONE;
|
||||||
VoIPController *inst;
|
VoIPController *inst;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user