mirror of
https://github.com/danog/php-libtgvoip.git
synced 2024-11-30 04:19:26 +01:00
recursion
This commit is contained in:
parent
9c68351925
commit
9cda5e42c8
10
Makefile
10
Makefile
@ -10,12 +10,12 @@
|
|||||||
include $(CLEAR_VARS)
|
include $(CLEAR_VARS)
|
||||||
|
|
||||||
DEFINES = -DLIBTGVOIP_CUSTOM -DWEBRTC_POSIX -DTGVOIP_USE_DESKTOP_DSP -DWEBRTC_APM_DEBUG_DUMP=0
|
DEFINES = -DLIBTGVOIP_CUSTOM -DWEBRTC_POSIX -DTGVOIP_USE_DESKTOP_DSP -DWEBRTC_APM_DEBUG_DUMP=0
|
||||||
INCLUDES = -Ilibtgvoip -I/usr/include/opus -I/usr/local/ssl/include/ -Ilibtgvoip/webrtc_dsp -pthread $(shell php-config --includes)
|
INCLUDES = -Ilibtgvoip -I/usr/include/opus -I/usr/local/ssl/include/ -Ilibtgvoip/webrtc_dsp -pthread
|
||||||
LDINCLUDES = -L/usr/local/ssl/lib $(shell php-config --ldflags)
|
LDINCLUDES = -L/usr/local/ssl/lib
|
||||||
CXXFLAGS = ${INCLUDES} -O0 -Wall -c -std=c++11 -fpic -finline-functions -ffast-math -fno-strict-aliasing -DUSE_KISS_FFT -DFIXED_POINT -DPHP_LIBTGVOIP -DWEBRTC_POSIX -DTGVOIP_USE_DESKTOP_DSP -DWEBRTC_APM_DEBUG_DUMP=0 -g -DTGVOIP_USE_CXX11_LIB -DTGVOIP_OTHER ${DEFINES} -o
|
CXXFLAGS = ${INCLUDES} -O3 -Wall -c -std=c++11 -fpic -finline-functions -ffast-math -fno-strict-aliasing -DUSE_KISS_FFT -DFIXED_POINT -DPHP_LIBTGVOIP -DWEBRTC_POSIX -DTGVOIP_USE_DESKTOP_DSP -DWEBRTC_APM_DEBUG_DUMP=0 -g -DTGVOIP_USE_CXX11_LIB -DTGVOIP_OTHER ${DEFINES} -o
|
||||||
CFLAGS = ${INCLUDES} -O0 -DUSE_KISS_FFT -fexceptions -fpic ${DEFINES} -g
|
CFLAGS = ${INCLUDES} -O3 -DUSE_KISS_FFT -fexceptions -fpic ${DEFINES} -g
|
||||||
|
|
||||||
LFLAGS = -shared ${LDINCLUDES} -lphpcpp -lopus -lpthread -lstdc++ -lcrypto -lssl -pthread $(shell php-config --libs) -Wl,-z,defs -Wl,-undefined,_emalloc
|
LFLAGS = -shared ${LDINCLUDES} -lphpcpp -lopus -lpthread -lstdc++ -lcrypto -lssl -pthread -Wl,-z,defs
|
||||||
|
|
||||||
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
ifeq ($(TARGET_ARCH_ABI),armeabi-v7a)
|
||||||
CXXFLAGS += -mfloat-abi=softfp -mfpu=neon
|
CXXFLAGS += -mfloat-abi=softfp -mfpu=neon
|
||||||
|
49
main.cpp
49
main.cpp
@ -40,7 +40,8 @@ void VoIP::__construct(Php::Parameters ¶ms)
|
|||||||
self["internalStorage"]["created"] = params[1];
|
self["internalStorage"]["created"] = params[1];
|
||||||
self["internalStorage"]["otherID"] = params[2];
|
self["internalStorage"]["otherID"] = params[2];
|
||||||
self["internalStorage"]["callID"] = params[3];
|
self["internalStorage"]["callID"] = params[3];
|
||||||
self["internalStorage"]["callState"] = CALL_STATE_NONE;
|
self["internalStorage"]["madeline"] = params[4];
|
||||||
|
self["internalStorage"]["callState"] = params[5];
|
||||||
|
|
||||||
initVoIPController();
|
initVoIPController();
|
||||||
}
|
}
|
||||||
@ -53,18 +54,37 @@ void VoIP::initVoIPController() {
|
|||||||
inst->SetStateCallback([](VoIPController *controller, int state) {
|
inst->SetStateCallback([](VoIPController *controller, int state) {
|
||||||
((VoIP *)controller->implData)->state = state;
|
((VoIP *)controller->implData)->state = state;
|
||||||
if (state == STATE_FAILED) {
|
if (state == STATE_FAILED) {
|
||||||
((VoIP *)controller->implData)->__destruct();
|
((VoIP *)controller->implData)->deinitVoIPController();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
inst->Start();
|
inst->Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
void VoIP::__destruct() {
|
||||||
|
discard();
|
||||||
}
|
}
|
||||||
void VoIP::__destruct()
|
|
||||||
|
|
||||||
|
void VoIP::deinitVoIPController() {
|
||||||
|
if (inst) {
|
||||||
|
self["internalStorage"]["callState"] = CALL_STATE_ENDED;
|
||||||
|
delete inst;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void VoIP::discard()
|
||||||
{
|
{
|
||||||
destroyed = true;
|
self["internalStorage"]["madeline"].value().call("discard_call", self["internalStorage"]["callID"].value());
|
||||||
delete inst;
|
deinitVoIPController();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void VoIP::accept()
|
||||||
|
{
|
||||||
|
self["internalStorage"]["madeline"].value().call("accept_call", self["internalStorage"]["callID"].value());
|
||||||
|
deinitVoIPController();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void VoIP::__wakeup()
|
void VoIP::__wakeup()
|
||||||
{
|
{
|
||||||
Php::Value self(this);
|
Php::Value self(this);
|
||||||
@ -153,7 +173,7 @@ void VoIP::parseConfig() {
|
|||||||
|
|
||||||
char *key = (char *) malloc(256);
|
char *key = (char *) malloc(256);
|
||||||
memcpy(key, self["configuration"]["auth_key"], 256);
|
memcpy(key, self["configuration"]["auth_key"], 256);
|
||||||
inst->SetEncryptionKey(key, (bool) self["configuration"]["outgoing"]);
|
inst->SetEncryptionKey(key, (bool) self["internalStorage"]["creator"]);
|
||||||
free(key);
|
free(key);
|
||||||
|
|
||||||
vector<Endpoint> eps;
|
vector<Endpoint> eps;
|
||||||
@ -162,7 +182,6 @@ void VoIP::parseConfig() {
|
|||||||
{
|
{
|
||||||
string ip = endpoints[i]["ip"];
|
string ip = endpoints[i]["ip"];
|
||||||
string ipv6 = endpoints[i]["ipv6"];
|
string ipv6 = endpoints[i]["ipv6"];
|
||||||
string peer_tag = endpoints[i]["peer_tag"];
|
|
||||||
|
|
||||||
IPv4Address v4addr(ip);
|
IPv4Address v4addr(ip);
|
||||||
IPv6Address v6addr("::0");
|
IPv6Address v6addr("::0");
|
||||||
@ -173,9 +192,9 @@ void VoIP::parseConfig() {
|
|||||||
v6addr = IPv6Address(ipv6);
|
v6addr = IPv6Address(ipv6);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (peer_tag != "")
|
if (endpoints[i]["peer_tag"])
|
||||||
{
|
{
|
||||||
memcpy(pTag, peer_tag.c_str(), 16);
|
memcpy(pTag, endpoints[i]["peer_tag"], 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
eps.push_back(Endpoint(endpoints[i]["id"], (int32_t)endpoints[i]["port"], v4addr, v6addr, EP_TYPE_UDP_RELAY, pTag));
|
eps.push_back(Endpoint(endpoints[i]["id"], (int32_t)endpoints[i]["port"], v4addr, v6addr, EP_TYPE_UDP_RELAY, pTag));
|
||||||
@ -265,11 +284,6 @@ Php::Value VoIP::getState()
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
Php::Value VoIP::isDestroyed()
|
|
||||||
{
|
|
||||||
return destroyed;
|
|
||||||
}
|
|
||||||
|
|
||||||
Php::Value VoIP::isPlaying()
|
Php::Value VoIP::isPlaying()
|
||||||
{
|
{
|
||||||
return playing;
|
return playing;
|
||||||
@ -344,15 +358,16 @@ PHPCPP_EXPORT void *get_module()
|
|||||||
voip.method<&VoIP::isCreator>("isCreator", Php::Public | Php::Final);
|
voip.method<&VoIP::isCreator>("isCreator", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::whenCreated>("whenCreated", Php::Public | Php::Final);
|
voip.method<&VoIP::whenCreated>("whenCreated", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::isPlaying>("isPlaying", Php::Public | Php::Final);
|
voip.method<&VoIP::isPlaying>("isPlaying", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::isDestroyed>("isDestroyed", Php::Public | Php::Final);
|
|
||||||
voip.method<&VoIP::getOutputState>("getOutputState", Php::Public | Php::Final);
|
voip.method<&VoIP::getOutputState>("getOutputState", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::getInputState>("getInputState", Php::Public | Php::Final);
|
voip.method<&VoIP::getInputState>("getInputState", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::getOutputParams>("getOutputParams", Php::Public | Php::Final);
|
voip.method<&VoIP::getOutputParams>("getOutputParams", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::getInputParams>("getInputParams", Php::Public | Php::Final);
|
voip.method<&VoIP::getInputParams>("getInputParams", Php::Public | Php::Final);
|
||||||
|
|
||||||
voip.method<&VoIP::__destruct>("__destruct", Php::Public | Php::Final);
|
voip.method<&VoIP::__destruct>("__destruct", Php::Public | Php::Final);
|
||||||
|
voip.method<&VoIP::discard>("discard", 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::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)
|
||||||
});
|
});
|
||||||
voip.method<&VoIP::__wakeup>("__wakeup", Php::Public | Php::Final);
|
voip.method<&VoIP::__wakeup>("__wakeup", Php::Public | Php::Final);
|
||||||
voip.method<&VoIP::setMicMute>("setMicMute", Php::Public | Php::Final, {
|
voip.method<&VoIP::setMicMute>("setMicMute", Php::Public | Php::Final, {
|
||||||
@ -419,8 +434,8 @@ PHPCPP_EXPORT void *get_module()
|
|||||||
voip.constant("AUDIO_STATE_CONFIGURED", AUDIO_STATE_CONFIGURED);
|
voip.constant("AUDIO_STATE_CONFIGURED", AUDIO_STATE_CONFIGURED);
|
||||||
voip.constant("AUDIO_STATE_RUNNING", AUDIO_STATE_RUNNING);
|
voip.constant("AUDIO_STATE_RUNNING", AUDIO_STATE_RUNNING);
|
||||||
|
|
||||||
voip.constant("CALL_STATE_NONE", CALL_STATE_NONE);
|
|
||||||
voip.constant("CALL_STATE_REQUESTED", CALL_STATE_REQUESTED);
|
voip.constant("CALL_STATE_REQUESTED", CALL_STATE_REQUESTED);
|
||||||
|
voip.constant("CALL_STATE_INCOMING", CALL_STATE_INCOMING);
|
||||||
voip.constant("CALL_STATE_ACCEPTED", CALL_STATE_ACCEPTED);
|
voip.constant("CALL_STATE_ACCEPTED", CALL_STATE_ACCEPTED);
|
||||||
voip.constant("CALL_STATE_CONFIRMED", CALL_STATE_CONFIRMED);
|
voip.constant("CALL_STATE_CONFIRMED", CALL_STATE_CONFIRMED);
|
||||||
voip.constant("CALL_STATE_READY", CALL_STATE_READY);
|
voip.constant("CALL_STATE_READY", CALL_STATE_READY);
|
||||||
|
13
main.h
13
main.h
@ -26,12 +26,12 @@ 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_NONE -1
|
|
||||||
#define CALL_STATE_REQUESTED 0
|
#define CALL_STATE_REQUESTED 0
|
||||||
#define CALL_STATE_ACCEPTED 1
|
#define CALL_STATE_INCOMING 1
|
||||||
#define CALL_STATE_CONFIRMED 2
|
#define CALL_STATE_ACCEPTED 2
|
||||||
#define CALL_STATE_READY 3
|
#define CALL_STATE_CONFIRMED 3
|
||||||
#define CALL_STATE_ENDED 4
|
#define CALL_STATE_READY 4
|
||||||
|
#define CALL_STATE_ENDED 5
|
||||||
|
|
||||||
using namespace tgvoip;
|
using namespace tgvoip;
|
||||||
using namespace tgvoip::audio;
|
using namespace tgvoip::audio;
|
||||||
@ -50,6 +50,9 @@ public:
|
|||||||
void __construct(Php::Parameters ¶ms);
|
void __construct(Php::Parameters ¶ms);
|
||||||
void initVoIPController();
|
void initVoIPController();
|
||||||
void __destruct();
|
void __destruct();
|
||||||
|
void discard();
|
||||||
|
void accept();
|
||||||
|
void deinitVoIPController();
|
||||||
void __wakeup();
|
void __wakeup();
|
||||||
|
|
||||||
void startTheMagic();
|
void startTheMagic();
|
||||||
|
Loading…
Reference in New Issue
Block a user