Skip to content

Commit

Permalink
Merged changes from joegen/devel/v4.x at https://github.com/joegen/os…
Browse files Browse the repository at this point in the history
  • Loading branch information
iplahte committed Dec 12, 2024
1 parent 481bd69 commit 57eebaf
Show file tree
Hide file tree
Showing 17 changed files with 928 additions and 84 deletions.
5 changes: 4 additions & 1 deletion oss_core/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -42,4 +42,7 @@ deb:
mkdir -p `pwd`/DEBBUILD/libosscore-@VERSION@/DEBIAN
DESTDIR=`pwd`/DEBBUILD/libosscore-@VERSION@ make install
cp debian.control `pwd`/DEBBUILD/libosscore-@VERSION@/DEBIAN/control
cd DEBBUILD && dpkg-deb --build libosscore-@VERSION@
cd DEBBUILD && dpkg-deb --build libosscore-@VERSION@

resip-install:
cd $(top_builddir)/libs/resiprocate && make install
32 changes: 32 additions & 0 deletions oss_core/bootstrap.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
#!/bin/sh

BASEDIR=`pwd`;
LIBDIR=${BASEDIR}/libs;
SUBDIRS="resiprocate leak_tracer";

https://github.com/fredericgermain/LeakTracer.git

bootstrap_leak_tracer() {
cd ${LIBDIR}
if [ ! -f ./LeakTracer/libleaktracer/include/leaktracer.h ]; then
git clone https://github.com/fredericgermain/LeakTracer.git
fi
}

bootstrap_resiprocate() {
cd ${LIBDIR}
if [ ! -f ./resiprocate/resip/dum/Dialog.hxx ]; then
git clone https://github.com/joegen/resiprocate
cd resiprocate
autoreconf -if
fi
}

bootstrap_libs() {
for i in ${SUBDIRS}; do
bootstrap_$i
done
${BGJOB} && wait
}

bootstrap_libs
12 changes: 10 additions & 2 deletions oss_core/configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ OSS_CORE_VERSION_AGE="1"

AC_CONFIG_AUX_DIR(config)
AM_INIT_AUTOMAKE([subdir-objects foreign] )
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
#m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AC_CONFIG_SRCDIR([src/OSS.cpp])
AM_CONFIG_HEADER([src/config.h])
AC_PROG_LIBTOOL
Expand All @@ -20,7 +20,6 @@ AC_PROG_CXX
AC_PROG_CC
AC_CANONICAL_HOST


#
# Configure package revision number
#
Expand All @@ -30,6 +29,11 @@ AC_DEFINE_UNQUOTED([PACKAGE_REVISION], "${PACKAGE_REVISION}", [Revion number inc

m4_include([oss_core.m4])

#
# Additonal external libraries
#


AC_CONFIG_FILES([
include/OSS/build.h
Makefile
Expand All @@ -39,4 +43,8 @@ AC_CONFIG_FILES([
include/Makefile
])

#original_ac_configure_args="$ac_configure_args"
#ac_configure_args="$original_ac_configure_args --disable-shared CONFIGURE_CFLAGS='$CFLAGS $CPPFLAGS' CONFIGURE_CXXFLAGS='$CXXFLAGS $CPPFLAGS' CONFIGURE_LDFLAGS='$LDFLAGS' "
AC_CONFIG_SUBDIRS([libs/resiprocate])

AC_OUTPUT
46 changes: 46 additions & 0 deletions oss_core/include/OSS/JS/modules/ResipAppDialogSetFactory.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#ifndef RESIPAPPDIALOGSETFACTORY_H_INCLUDED
#define RESIPAPPDIALOGSETFACTORY_H_INCLUDED

#include <v8.h>
#include <vector>
#include "OSS/JS/JSPlugin.h"
#include "OSS/JSON/Json.h"
#include "OSS/JS/JSEventArgument.h"

#include "resip/dum/AppDialog.hxx"
#include "resip/dum/AppDialogSet.hxx"
#include "resip/dum/AppDialogSetFactory.hxx"
#include "resip/dum/DialogUsageManager.hxx"
#include "resip/stack/SipMessage.hxx"

class ResipAppDialogSetFactoryImpl : public resip::AppDialogSetFactory
{
public:
typedef std::map<std::string, std::string> Variables;
ResipAppDialogSetFactoryImpl();
virtual ~ResipAppDialogSetFactoryImpl();
virtual resip::AppDialogSet* createAppDialogSet(resip::DialogUsageManager& dum, const resip::SipMessage& msg);
// For a UAS the testAppDialogSet will be created by DUM using this function. If you want to set
// Application Data, then one approach is to wait for onNewSession(ServerInviteSessionHandle ...)
// to be called, then use the ServerInviteSessionHandle to get at the AppDialogSet or AppDialog,
// then cast to your derived class and set the desired application data.
void setVariable(const std::string& name, const std::string& value);
std::string getVariable(const std::string& name) const;
private:
Variables _variables;
};

class ResipAppDialogSetFactory : public OSS::JS::JSObjectWrap
{
public:
JS_CONSTRUCTOR_DECLARE();
JS_METHOD_DECLARE(setVariable);
JS_METHOD_DECLARE(getVariable);
private:
ResipAppDialogSetFactory();
virtual ~ResipAppDialogSetFactory();
std::auto_ptr<ResipAppDialogSetFactoryImpl> _self;
};

#endif //.RESIPAPPDIALOGSETFACTORY_H_INCLUDED

95 changes: 95 additions & 0 deletions oss_core/include/OSS/JS/modules/ResipClientInviteSessionHandler.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
#ifndef RESIPCLIENTINVITESESSIONHANDLER_H_INCLUDED
#define RESIPCLIENTINVITESESSIONHANDLER_H_INCLUDED


#include <v8.h>
#include <vector>
#include "OSS/JS/JSPlugin.h"
#include "OSS/JSON/Json.h"
#include "OSS/JS/JSEventArgument.h"

#include "OSS/JS/modules/ResipInviteSessionHandler.h"

class ResipClientInviteSessionHandler : public OSS::JS::JSObjectWrap
{
public:
JS_CONSTRUCTOR_DECLARE();
JS_METHOD_DECLARE(handleOnNewSession);
JS_METHOD_DECLARE(handleOnFailure);
JS_METHOD_DECLARE(handleOnProvisional);
JS_METHOD_DECLARE(handleOnConnected);
JS_METHOD_DECLARE(handleOnStaleCallTimeout);
JS_METHOD_DECLARE(handleOnRedirected);
JS_METHOD_DECLARE(handleOnTerminated);
JS_METHOD_DECLARE(handleOnAnswer);
JS_METHOD_DECLARE(handleOnOffer);
JS_METHOD_DECLARE(handleOnEarlyMedia);
JS_METHOD_DECLARE(handleOnOfferRequired);
JS_METHOD_DECLARE(handleOnOfferRejected);
JS_METHOD_DECLARE(handleOnRefer);
JS_METHOD_DECLARE(handleOnReferAccepted);
JS_METHOD_DECLARE(handleOnReferRejected);
JS_METHOD_DECLARE(handleOnReferNoSub);
JS_METHOD_DECLARE(handleOnInfo);
JS_METHOD_DECLARE(handleOnInfoSuccess);
JS_METHOD_DECLARE(handleOnInfoFailure);
JS_METHOD_DECLARE(handleOnMessage);
JS_METHOD_DECLARE(handleOnMessageSuccess);
JS_METHOD_DECLARE(handleOnMessageFailure);
JS_METHOD_DECLARE(handleOnForkDestroyed);

void onNewSession(resip::ClientInviteSessionHandle, resip::InviteSession::OfferAnswerType oat, const resip::SipMessage& msg);
void onFailure(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onProvisional(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onConnected(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onStaleCallTimeout(resip::ClientInviteSessionHandle handle);
void onRedirected(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onTerminated(resip::InviteSessionHandle, resip::InviteSessionHandler::TerminatedReason reason, const resip::SipMessage* msg);
void onAnswer(resip::InviteSessionHandle, const resip::SipMessage& msg, const resip::SdpContents& sdp);
void onOffer(resip::InviteSessionHandle is, const resip::SipMessage& msg, const resip::SdpContents& sdp);
void onEarlyMedia(resip::ClientInviteSessionHandle, const resip::SipMessage& msg, const resip::SdpContents& sdp);
void onOfferRequired(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onOfferRejected(resip::InviteSessionHandle, const resip::SipMessage* msg);
void onRefer(resip::InviteSessionHandle, resip::ServerSubscriptionHandle, const resip::SipMessage& msg);
void onReferAccepted(resip::InviteSessionHandle, resip::ClientSubscriptionHandle, const resip::SipMessage& msg);
void onReferRejected(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onReferNoSub(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onInfo(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onInfoSuccess(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onInfoFailure(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onMessage(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onMessageSuccess(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onMessageFailure(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onForkDestroyed(resip::ClientInviteSessionHandle);

protected:
void onNewSessionIsolated(void* user_data);
void onFailureIsolated(void* user_data);
void onProvisionalIsolated(void* user_data);
void onConnectedIsolated(void* user_data);
void onStaleCallTimeoutIsolated(void* user_data);
void onRedirectedIsolated(void* user_data);
void onTerminatedIsolated(void* user_data);
void onAnswerIsolated(void* user_data);
void onOfferIsolated(void* user_data);
void onEarlyMediaIsolated(void* user_data);
void onOfferRequiredIsolated(void* user_data);
void onOfferRejectedIsolated(void* user_data);
void onReferIsolated(void* user_data);
void onReferAcceptedIsolated(void* user_data);
void onReferRejectedIsolated(void* user_data);
void onReferNoSubIsolated(void* user_data);
void onInfoIsolated(void* user_data);
void onInfoSuccessIsolated(void* user_data);
void onInfoFailureIsolated(void* user_data);
void onMessageIsolated(void* user_data);
void onMessageSuccessIsolated(void* user_data);
void onMessageFailureIsolated(void* user_data);
void onForkDestroyedIsolated(void* user_data);

private:
ResipClientInviteSessionHandler();
~ResipClientInviteSessionHandler();
};
#endif /* RESIPCLIENTINVITESESSIONHANDLER_H */

42 changes: 42 additions & 0 deletions oss_core/include/OSS/JS/modules/ResipInviteSessionHandler.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@

#ifndef RESIPINVITESESSIONHANDLER_H_INCLUDED
#define RESIPINVITESESSIONHANDLER_H_INCLUDED


#include <resip/dum/InviteSessionHandler.hxx>
#include <rutil/SharedPtr.hxx>

class ResipInviteSessionHandler : public resip::InviteSessionHandler
{
public:
ResipInviteSessionHandler();
virtual ~ResipInviteSessionHandler();
void onNewSession(resip::ClientInviteSessionHandle, resip::InviteSession::OfferAnswerType oat, const resip::SipMessage& msg);
void onNewSession(resip::ServerInviteSessionHandle, resip::InviteSession::OfferAnswerType oat, const resip::SipMessage& msg);
void onFailure(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onProvisional(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onConnected(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onStaleCallTimeout(resip::ClientInviteSessionHandle handle);
void onConnected(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onRedirected(resip::ClientInviteSessionHandle, const resip::SipMessage& msg);
void onTerminated(resip::InviteSessionHandle, resip::InviteSessionHandler::TerminatedReason reason, const resip::SipMessage* msg);
void onAnswer(resip::InviteSessionHandle, const resip::SipMessage& msg, const resip::SdpContents& sdp);
void onOffer(resip::InviteSessionHandle is, const resip::SipMessage& msg, const resip::SdpContents& sdp);
void onEarlyMedia(resip::ClientInviteSessionHandle, const resip::SipMessage& msg, const resip::SdpContents& sdp);
void onOfferRequired(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onOfferRejected(resip::InviteSessionHandle, const resip::SipMessage* msg);
void onRefer(resip::InviteSessionHandle, resip::ServerSubscriptionHandle, const resip::SipMessage& msg);
void onReferAccepted(resip::InviteSessionHandle, resip::ClientSubscriptionHandle, const resip::SipMessage& msg);
void onReferRejected(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onReferNoSub(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onInfo(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onInfoSuccess(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onInfoFailure(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onMessage(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onMessageSuccess(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onMessageFailure(resip::InviteSessionHandle, const resip::SipMessage& msg);
void onForkDestroyed(resip::ClientInviteSessionHandle);
};

#endif /* RESIPINVITESESSIONHANDLER_H_INCLUDED */

5 changes: 4 additions & 1 deletion oss_core/include/OSS/JS/modules/include.am
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,7 @@ nobase_include_HEADERS += \
OSS/JS/modules/ResipMasterProfile.h \
OSS/JS/modules/ResipClientRegistrationHandler.h \
OSS/JS/modules/ResipClientSubscriptionHandler.h \
OSS/JS/modules/ResipUserProfile.h
OSS/JS/modules/ResipUserProfile.h \
OSS/JS/modules/ResipAppDialogSetFactory.h \
OSS/JS/modules/ResipInviteSessionHandler.h \
OSS/JS/modules/ResipClientInviteSessionHandler.h
4 changes: 3 additions & 1 deletion oss_core/include/OSS/build.h.in
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,9 @@
#define ENABLE_FEATURE_CONFIG @ENABLE_FEATURE_CONFIG@
#define ENABLE_FEATURE_MCRYPT @ENABLE_FEATURE_MCRYPT@
#define ENABLE_FEATURE_INOTIFY @ENABLE_FEATURE_INOTIFY@
#define ENABLE_FEATURE_RESIP_UA @ENABLE_FEATURE_RESIP_UA@
#define ENABLE_FEATURE_RESIPROCATE @ENABLE_FEATURE_RESIPROCATE@
#define ENABLE_FEATURE_CRASH_HANDLER @ENABLE_FEATURE_CRASH_HANDLER@
#define ENABLE_FEATURE_LEAK_CHECKER @ENABLE_FEATURE_LEAK_CHECKER@

//
// Libraries found by the configure script
Expand Down
Empty file added oss_core/libs/.dummy
Empty file.
Loading

0 comments on commit 57eebaf

Please sign in to comment.