- fixed some more issues with py_sems. It should work with the example now.

- added an example for py_sems (py_sems_ex/early_media.py).
- added audio features to py_sems.


git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@233 8eb893ce-cfd4-0310-b710-fb5ebe64c474
sayer/1.4-spce2.6
Raphael Coeffic 19 years ago
parent 5bc77367f5
commit e6fa3fd711

@ -0,0 +1,110 @@
import base64,time,os
from py_sems_log import *
from py_sems import *
from py_sems_lib import *
class PySemsScript(PySemsDialog):
def __init__(self):
debug("***** __init__ *******")
PySemsDialog.__init__(self)
self.initial_req = None
self.ann = None
def onInvite(self,req):
ann_file = self.getAnnounceFile(req)
self.ann = AmAudioFile()
try:
self.ann.open(ann_file)
self.initial_req = AmSipRequest(req)
debug("dlg.local_tag: %s" % self.dlg.local_tag)
debug("***** onInvite *******")
(res,sdp_reply) = self.acceptAudio(req.body,req.hdrs)
if res < 0:
self.dlg.reply(req,500)
debug("res = %s" % repr(res))
debug("sdp_reply = %s" % sdp_reply)
if self.dlg.reply(req,183,"OK","application/sdp",sdp_reply,"") <> 0:
self.setStopped()
except:
self.dlg.reply(req,500,"File not found","","","")
self.ann = None
self.setStopped()
raise
def onSessionStart(self,req):
debug("***** onSessionStart *******")
PySemsDialog.onSessionStart(self,req)
self.localreq = AmSipRequest(req)
self.setOutput(self.ann)
def onCancel(self):
debug("***** onCancel *******")
self.dlg.reply(self.initial_req,487,"Call terminated","","","")
self.setStopped()
def getAnnounceFile(self,req):
announce_file = config["announce_path"] + req.domain + "/" + get_header_param(req.r_uri, "play") + ".wav"
debug("trying '%s'",announce_file)
if os.path.exists(announce_file):
return announce_file
announce_file = config["announce_path"] + req.user + ".wav"
debug("trying '%s'",announce_file)
if os.path.exists(announce_file):
return announce_file
announce_file = config["announce_path"] + config["announce_file"]
debug("using default '%s'",announce_file)
return announce_file
def process(self,ev):
debug("*********** PySemsScript.process **************")
if isinstance(ev,AmAudioEvent):
if ev.event_id == AmAudioEvent.cleared:
debug("AmAudioEvent.cleared")
code = getHeader(self.localreq.hdrs,"P-Final-Reply-Code")
reason = getHeader(self.localreq.hdrs,"P-Final-Reply-Reason")
if reason == "":
reason = "OK"
code_i = 400
try:
code_i = int(code)
if (code_i < 300) or (code_i>699):
debug("Invalid reply code: %d",code_i)
except:
debug("Invalid reply code: %s",code)
debug("Replying %d %s" % (code_i, reason))
self.dlg.reply(self.localreq, code_i, reason, "", "", "")
self.setStopped()
return
PySemsDialog.process(self,ev);
return

@ -46,7 +46,7 @@ using std::set;
EXPORT_SESSION_FACTORY(PySemsFactory,MOD_NAME);
PyMODINIT_FUNC initpy_sems();
PyMODINIT_FUNC initpy_sems_lib();
struct PythonGIL
{
@ -182,8 +182,8 @@ void PySemsFactory::import_py_sems_builtins()
// add log level for the log module
PyModule_AddIntConstant(py_sems_module, "SEMS_LOG_LEVEL",log_level);
import_module("log");
initpy_sems();
import_module("py_sems_log");
initpy_sems_lib();
}
void PySemsFactory::import_module(const char* modname)

@ -103,8 +103,6 @@ class PySemsDialog : public AmB2BCallerSession
PyObject *py_dlg;
bool callPyEventHandler(char* name, char* fmt, ...);
void process(AmEvent* event);
public:
AmDynInvoke* user_timer;
@ -123,6 +121,9 @@ public:
/* void onOtherBye(const AmSipRequest& req); */
/* void onOtherReply(const AmSipReply& r); */
void process(AmEvent* event);
};
#endif

@ -14,7 +14,7 @@ def log(level, msg, args):
else:
tmp_msg = msg
ivr.log(level,"Ivr-Python: " + tmp_msg + "\n")
py_sems.log(level,"PySems: " + tmp_msg + "\n")
def error(msg, args=None):
@ -47,13 +47,13 @@ def stacktrace(tb):
def log_excepthook(exception, value, tb):
error('********** Ivr-Python exception report ****************')
error('********** PySems exception report ****************')
error(str(exception) + ' raised: ' + str(value))
stacktrace(tb)
error('********** end of Ivr-Python exception report *********')
error('********** end of PySems exception report *********')
# init code
sys.excepthook = log_excepthook
debug("Python-Ivr logging started")
debug("PySems logging started")

@ -0,0 +1,95 @@
struct AmEvent
{
%TypeHeaderCode
#include "../../../core/AmEvent.h"
%End
int event_id;
bool processed;
AmEvent(int /*event_id*/);
virtual ~AmEvent();
%ConvertToSubClassCode
if(dynamic_cast<AmAudioEvent*>(sipCpp)){
sipClass = sipClass_AmAudioEvent;
}
else {
sipClass = sipClass_AmEvent;
}
%End
};
class AmAudioEvent: AmEvent
{
%TypeHeaderCode
#include "../../../core/AmAudio.h"
%End
public:
enum EventType {
noAudio, // Audio class has nothing to play and/or record anymore
// Audio input & output have been cleared:
// !!! sent only from AmSession !!!
cleared
};
AmAudioEvent(int /*id*/);
};
class AmAudioFile
{
%TypeHeaderCode
#include "../../../core/AmAudio.h"
%End
public:
AmAudioFile();
enum OpenMode {
Read=1,
Write=2
};
bool getLoop();
%MethodCode
sipRes = sipCpp->loop.get();
%End
void setLoop(bool);
%MethodCode
sipCpp->loop.set(a0);
%End
int open(const string& /*filename*/,
OpenMode /*mode*/ = AmAudioFile::Read,
bool /*is_tmp*/ = false);
void rewind();
void close();
int getDataSize();
private:
AmAudioFile(const AmAudioFile&);
};

@ -31,6 +31,9 @@ public:
string next_hop; // next_hop for t_uac_dlg
string key; // transaction key to be used in t_reply
};
string getHeader(const string& /* hdrs */,const string& /* hdr_name */);
string getHeader(const string& /*hdrs*/, const string& /*hdr_name*/, const string& /*compact_hdr_name*/);

@ -0,0 +1,7 @@
%ModuleHeaderCode
#include "AmUtils.h"
%End
// get a header parameter value
string get_header_param(const string& /*hdr_string*/, const string& /*param_name*/);

@ -1,14 +1,14 @@
TARGET = py_sems_lib.so
OFILES = sippy_sems_libcmodule.o sippy_sems_libPySemsDialog.o sippy_sems_libAmSipDialog.o sippy_sems_libAmSipReply.o sippy_sems_libAmSipRequest.o sippy_sems_libstring.o
HFILES = sipAPIpy_sems_lib.h sippy_sems_libPySemsDialog.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h
OFILES = sippy_sems_libcmodule.o sippy_sems_libPySemsDialog.o sippy_sems_libAmAudioFile.o sippy_sems_libAmAudioEvent.o sippy_sems_libAmEvent.o sippy_sems_libAmSipDialog.o sippy_sems_libAmSipReply.o sippy_sems_libAmSipRequest.o sippy_sems_libstring.o
HFILES = sipAPIpy_sems_lib.h sippy_sems_libPySemsDialog.h sippy_sems_libAmAudioFile.h sippy_sems_libAmAudioEvent.h sippy_sems_libAmEvent.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h
CC = gcc
CXX = g++
LINK = g++
CPPFLAGS = -I. -I$(COREPATH) -I/usr/include/python2.3
CFLAGS = -pipe -fPIC -O2 -w
CXXFLAGS = -Wall -Wno-reorder -pipe -fPIC -O2 -w
LFLAGS = -shared
CXXFLAGS = -Wall -Wno-reorder -g -pipe -fPIC -O2 -w
LFLAGS = -g -shared
LIBS =
.SUFFIXES: .c .o .cpp .cc .cxx .C
@ -41,6 +41,9 @@ clean:
-rm -f $(TARGET)
-rm -f sippy_sems_libcmodule.o
-rm -f sippy_sems_libPySemsDialog.o
-rm -f sippy_sems_libAmAudioFile.o
-rm -f sippy_sems_libAmAudioEvent.o
-rm -f sippy_sems_libAmEvent.o
-rm -f sippy_sems_libAmSipDialog.o
-rm -f sippy_sems_libAmSipReply.o
-rm -f sippy_sems_libAmSipRequest.o

@ -26,8 +26,13 @@ public:
virtual void onBye(const AmSipRequest& /* req */);
virtual void onDtmf(int /* event */, int /* duration_msec */);
// virtual void onOtherBye(const AmSipRequest& /* req */);
// virtual void onOtherReply(const AmSipReply& /* r */);
void setInput(AmAudioFile* /In/ /*in*/);
void setOutput(AmAudioFile* /In/ /*out*/);
void setInOut(AmAudioFile* /In/ /*in*/, AmAudioFile* /*out*/);
virtual void process(AmEvent* /*In,Out*/);
private:
PySemsDialog(const PySemsDialog&);

@ -14,8 +14,9 @@ os.system(" ".join([config.sip_bin, "-c", ".", "-b", build_file, "py_sems.sip"])
# Create the Makefile.
makefile = sipconfig.SIPModuleMakefile(config, build_file, makefile="Makefile.gen")
makefile.extra_cxxflags = ["-Wall -Wno-reorder"]
makefile.extra_cxxflags = ["-Wall -Wno-reorder -g"]
makefile.extra_include_dirs = ["$(COREPATH)"]
makefile.extra_lflags = ["-g"]
makefile._warnings = 0
# Generate the Makefile itself.

@ -1,3 +1,3 @@
target = py_sems_lib
sources = sippy_sems_libcmodule.cpp sippy_sems_libPySemsDialog.cpp sippy_sems_libAmSipDialog.cpp sippy_sems_libAmSipReply.cpp sippy_sems_libAmSipRequest.cpp sippy_sems_libstring.cpp
headers = sipAPIpy_sems_lib.h sippy_sems_libPySemsDialog.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h
sources = sippy_sems_libcmodule.cpp sippy_sems_libPySemsDialog.cpp sippy_sems_libAmAudioFile.cpp sippy_sems_libAmAudioEvent.cpp sippy_sems_libAmEvent.cpp sippy_sems_libAmSipDialog.cpp sippy_sems_libAmSipReply.cpp sippy_sems_libAmSipRequest.cpp sippy_sems_libstring.cpp
headers = sipAPIpy_sems_lib.h sippy_sems_libPySemsDialog.h sippy_sems_libAmAudioFile.h sippy_sems_libAmAudioEvent.h sippy_sems_libAmEvent.h sippy_sems_libAmSipDialog.h sippy_sems_libAmSipReply.h sippy_sems_libAmSipRequest.h sippy_sems_libstring.h

@ -4,4 +4,6 @@
%Include AmSipRequest.sip
%Include AmSipReply.sip
%Include AmSipDialog.sip
%Include AmAudio.sip
%Include PySemsDialog.sip
%Include AmUtils.sip

@ -1,7 +1,7 @@
/*
* Internal module API header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAPI_H
@ -9,6 +9,9 @@
#include <sip.h>
#line 3 "AmUtils.sip"
#include "AmUtils.h"
#line 15 "sipAPIpy_sems_lib.h"
/*
@ -17,6 +20,9 @@
*/
#define sipName_PySemsDialog sipNm_py_sems_lib_PySemsDialog
#define sipName_AmAudioFile sipNm_py_sems_lib_AmAudioFile
#define sipName_AmAudioEvent sipNm_py_sems_lib_AmAudioEvent
#define sipName_AmEvent sipNm_py_sems_lib_AmEvent
#define sipName_AmSipDialog sipNm_py_sems_lib_AmSipDialog
#define sipName_AmSipReply sipNm_py_sems_lib_AmSipReply
#define sipName_AmSipRequest sipNm_py_sems_lib_AmSipRequest
@ -73,6 +79,11 @@
/* The strings used by this module. */
extern char sipNm_py_sems_lib_get_header_param[];
extern char sipNm_py_sems_lib_process[];
extern char sipNm_py_sems_lib_setInOut[];
extern char sipNm_py_sems_lib_setOutput[];
extern char sipNm_py_sems_lib_setInput[];
extern char sipNm_py_sems_lib_onDtmf[];
extern char sipNm_py_sems_lib_onBye[];
extern char sipNm_py_sems_lib_onCancel[];
@ -82,6 +93,21 @@ extern char sipNm_py_sems_lib_setStopped[];
extern char sipNm_py_sems_lib_acceptAudio[];
extern char sipNm_py_sems_lib_dlg[];
extern char sipNm_py_sems_lib_PySemsDialog[];
extern char sipNm_py_sems_lib_getDataSize[];
extern char sipNm_py_sems_lib_close[];
extern char sipNm_py_sems_lib_rewind[];
extern char sipNm_py_sems_lib_open[];
extern char sipNm_py_sems_lib_setLoop[];
extern char sipNm_py_sems_lib_getLoop[];
extern char sipNm_py_sems_lib_Write[];
extern char sipNm_py_sems_lib_Read[];
extern char sipNm_py_sems_lib_AmAudioFile[];
extern char sipNm_py_sems_lib_cleared[];
extern char sipNm_py_sems_lib_noAudio[];
extern char sipNm_py_sems_lib_AmAudioEvent[];
extern char sipNm_py_sems_lib_processed[];
extern char sipNm_py_sems_lib_event_id[];
extern char sipNm_py_sems_lib_AmEvent[];
extern char sipNm_py_sems_lib_reinvite[];
extern char sipNm_py_sems_lib_update[];
extern char sipNm_py_sems_lib_cancel[];

@ -0,0 +1,136 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"
#include "sippy_sems_libAmAudioEvent.h"
sipAmAudioEvent::sipAmAudioEvent(int a0): AmAudioEvent(a0), sipPySelf(0)
{
sipCommonCtor(NULL,0);
}
sipAmAudioEvent::sipAmAudioEvent(const AmAudioEvent& a0): AmAudioEvent(a0), sipPySelf(0)
{
sipCommonCtor(NULL,0);
}
sipAmAudioEvent::~sipAmAudioEvent()
{
sipCommonDtor(sipPySelf);
}
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
static void *cast_AmAudioEvent(void *ptr,sipWrapperType *targetClass)
{
void *res;
if (targetClass == sipClass_AmAudioEvent)
return ptr;
if ((res = sipCast_AmEvent((AmEvent *)(AmAudioEvent *)ptr,targetClass)) != NULL)
return res;
return NULL;
}
static void dealloc_AmAudioEvent(sipWrapper *sipSelf)
{
if (!sipIsSimple(sipSelf))
reinterpret_cast<sipAmAudioEvent *>(sipSelf -> u.cppPtr) -> sipPySelf = NULL;
if (sipIsPyOwned(sipSelf))
{
if (!sipIsSimple(sipSelf))
delete reinterpret_cast<sipAmAudioEvent *>(sipSelf -> u.cppPtr);
else
delete reinterpret_cast<AmAudioEvent *>(sipSelf -> u.cppPtr);
}
}
static void *init_AmAudioEvent(sipWrapper *sipSelf,PyObject *sipArgs,int *)
{
int sipArgsParsed = 0;
sipAmAudioEvent *sipCpp = 0;
if (!sipCpp)
{
int a0;
if (sipParseArgs(&sipArgsParsed,sipArgs,"i",&a0))
{
sipCpp = new sipAmAudioEvent(a0);
}
}
if (!sipCpp)
{
const AmAudioEvent * a0;
if (sipParseArgs(&sipArgsParsed,sipArgs,"J1",sipClass_AmAudioEvent,&a0))
{
sipCpp = new sipAmAudioEvent(*a0);
}
}
if (!sipCpp)
{
sipNoCtor(sipArgsParsed,sipNm_py_sems_lib_AmAudioEvent);
return 0;
}
sipCpp -> sipPySelf = sipSelf;
return sipCpp;
}
static void *forceConvertTo_AmAudioEvent(PyObject *valobj,int *iserrp)
{
if (*iserrp || valobj == NULL)
return NULL;
if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmAudioEvent))
return sipConvertToCpp(valobj,sipClass_AmAudioEvent,iserrp);
sipBadClass(sipNm_py_sems_lib_AmAudioEvent);
*iserrp = 1;
return NULL;
}
/* Define this type's super-types. */
static sipSuperClassDef supers_AmAudioEvent[] = {{2, 255, 1}};
static sipEnumValueInstanceDef enums_AmAudioEvent[] = {
{sipNm_py_sems_lib_cleared, AmAudioEvent::cleared},
{sipNm_py_sems_lib_noAudio, AmAudioEvent::noAudio}
};
/* The main type data structure. */
sipTypeDef sipType_AmAudioEvent = {
0,
"py_sems_lib.AmAudioEvent",
-1,
supers_AmAudioEvent,
0,
0, 0,
2, enums_AmAudioEvent,
0,
init_AmAudioEvent,
dealloc_AmAudioEvent,
cast_AmAudioEvent,
forceConvertTo_AmAudioEvent,
0,
0,
0,
{0, 0, 0, 0, 0, 0}
};

@ -0,0 +1,38 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAmAudioEvent_h
#define _py_sems_libAmAudioEvent_h
#line 29 "AmAudio.sip"
#include "../../../core/AmAudio.h"
#line 13 "sippy_sems_libAmAudioEvent.h"
#include "sippy_sems_libAmEvent.h"
#define sipClass_AmAudioEvent sipModuleAPI_py_sems_lib.em_types[3]
#define sipCast_AmAudioEvent sipType_AmAudioEvent.td_cast
#define sipForceConvertTo_AmAudioEvent sipType_AmAudioEvent.td_fcto
extern sipTypeDef sipType_AmAudioEvent;
class sipAmAudioEvent : public AmAudioEvent
{
public:
sipAmAudioEvent(int);
sipAmAudioEvent(const AmAudioEvent&);
~sipAmAudioEvent();
sipWrapper *sipPySelf;
private:
sipAmAudioEvent(const sipAmAudioEvent &);
sipAmAudioEvent &operator = (const sipAmAudioEvent &);
};
#endif

@ -0,0 +1,255 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"
#include "sippy_sems_libAmAudioFile.h"
static PyObject *meth_AmAudioFile_getLoop(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
{
bool sipRes = 0;
#line 65 "AmAudio.sip"
sipRes = sipCpp->loop.get();
#line 25 "sippy_sems_libAmAudioFile.cpp"
return PyBool_FromLong(sipRes);
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_getLoop);
return NULL;
}
static PyObject *meth_AmAudioFile_setLoop(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
bool a0;
AmAudioFile *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"mb",sipSelf,sipClass_AmAudioFile,&sipCpp,&a0))
{
#line 70 "AmAudio.sip"
sipCpp->loop.set(a0);
#line 50 "sippy_sems_libAmAudioFile.cpp"
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_setLoop);
return NULL;
}
static PyObject *meth_AmAudioFile_open(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
const string * a0;
int a0IsTemp = 0;
AmAudioFile::OpenMode a1 = AmAudioFile::Read;
bool a2 = 0;
AmAudioFile *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"mM1|eb",sipSelf,sipClass_AmAudioFile,&sipCpp,sipConvertTo_string,&a0,&a0IsTemp,&a1,&a2))
{
int sipRes;
sipRes = sipCpp -> AmAudioFile::open(*a0,a1,a2);
if (a0IsTemp)
delete const_cast<string *>(a0);
return PyInt_FromLong((long)sipRes);
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_open);
return NULL;
}
static PyObject *meth_AmAudioFile_rewind(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
{
sipCpp -> AmAudioFile::rewind();
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_rewind);
return NULL;
}
static PyObject *meth_AmAudioFile_close(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
{
sipCpp -> AmAudioFile::close();
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_close);
return NULL;
}
static PyObject *meth_AmAudioFile_getDataSize(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"m",sipSelf,sipClass_AmAudioFile,&sipCpp))
{
int sipRes;
sipRes = sipCpp -> AmAudioFile::getDataSize();
return PyInt_FromLong((long)sipRes);
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile,sipNm_py_sems_lib_getDataSize);
return NULL;
}
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
static void *cast_AmAudioFile(void *ptr,sipWrapperType *targetClass)
{
if (targetClass == sipClass_AmAudioFile)
return ptr;
return NULL;
}
static void dealloc_AmAudioFile(sipWrapper *sipSelf)
{
if (sipIsPyOwned(sipSelf))
{
delete reinterpret_cast<AmAudioFile *>(sipSelf -> u.cppPtr);
}
}
static void *init_AmAudioFile(sipWrapper *,PyObject *sipArgs,int *)
{
int sipArgsParsed = 0;
AmAudioFile *sipCpp = 0;
if (!sipCpp)
{
if (sipParseArgs(&sipArgsParsed,sipArgs,""))
{
sipCpp = new AmAudioFile();
}
}
if (!sipCpp)
{
sipNoCtor(sipArgsParsed,sipNm_py_sems_lib_AmAudioFile);
return 0;
}
return sipCpp;
}
static void *forceConvertTo_AmAudioFile(PyObject *valobj,int *iserrp)
{
if (*iserrp || valobj == NULL)
return NULL;
if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmAudioFile))
return sipConvertToCpp(valobj,sipClass_AmAudioFile,iserrp);
sipBadClass(sipNm_py_sems_lib_AmAudioFile);
*iserrp = 1;
return NULL;
}
static PyMethodDef methods_AmAudioFile[] = {
{sipNm_py_sems_lib_close, meth_AmAudioFile_close, METH_VARARGS, NULL},
{sipNm_py_sems_lib_getDataSize, meth_AmAudioFile_getDataSize, METH_VARARGS, NULL},
{sipNm_py_sems_lib_getLoop, meth_AmAudioFile_getLoop, METH_VARARGS, NULL},
{sipNm_py_sems_lib_open, meth_AmAudioFile_open, METH_VARARGS, NULL},
{sipNm_py_sems_lib_rewind, meth_AmAudioFile_rewind, METH_VARARGS, NULL},
{sipNm_py_sems_lib_setLoop, meth_AmAudioFile_setLoop, METH_VARARGS, NULL}
};
static sipEnumValueInstanceDef enums_AmAudioFile[] = {
{sipNm_py_sems_lib_Read, AmAudioFile::Read},
{sipNm_py_sems_lib_Write, AmAudioFile::Write}
};
/* The main type data structure. */
sipTypeDef sipType_AmAudioFile = {
0,
"py_sems_lib.AmAudioFile",
-1,
0,
0,
6, methods_AmAudioFile,
2, enums_AmAudioFile,
0,
init_AmAudioFile,
dealloc_AmAudioFile,
cast_AmAudioFile,
forceConvertTo_AmAudioFile,
0,
0,
0,
{0, 0, 0, 0, 0, 0}
};

@ -0,0 +1,23 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAmAudioFile_h
#define _py_sems_libAmAudioFile_h
#line 51 "AmAudio.sip"
#include "../../../core/AmAudio.h"
#line 13 "sippy_sems_libAmAudioFile.h"
#include "sippy_sems_libstring.h"
#define sipClass_AmAudioFile sipModuleAPI_py_sems_lib.em_types[1]
#define sipCast_AmAudioFile sipType_AmAudioFile.td_cast
#define sipForceConvertTo_AmAudioFile sipType_AmAudioFile.td_fcto
extern sipTypeDef sipType_AmAudioFile;
#endif

@ -0,0 +1,192 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"
#include "sippy_sems_libAmEvent.h"
sipAmEvent::sipAmEvent(int a0): AmEvent(a0), sipPySelf(0)
{
sipCommonCtor(NULL,0);
}
sipAmEvent::sipAmEvent(const AmEvent& a0): AmEvent(a0), sipPySelf(0)
{
sipCommonCtor(NULL,0);
}
sipAmEvent::~sipAmEvent()
{
sipCommonDtor(sipPySelf);
}
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
static void *cast_AmEvent(void *ptr,sipWrapperType *targetClass)
{
if (targetClass == sipClass_AmEvent)
return ptr;
return NULL;
}
static void dealloc_AmEvent(sipWrapper *sipSelf)
{
if (!sipIsSimple(sipSelf))
reinterpret_cast<sipAmEvent *>(sipSelf -> u.cppPtr) -> sipPySelf = NULL;
if (sipIsPyOwned(sipSelf))
{
if (!sipIsSimple(sipSelf))
delete reinterpret_cast<sipAmEvent *>(sipSelf -> u.cppPtr);
else
delete reinterpret_cast<AmEvent *>(sipSelf -> u.cppPtr);
}
}
static void *init_AmEvent(sipWrapper *sipSelf,PyObject *sipArgs,int *)
{
int sipArgsParsed = 0;
sipAmEvent *sipCpp = 0;
if (!sipCpp)
{
int a0;
if (sipParseArgs(&sipArgsParsed,sipArgs,"i",&a0))
{
sipCpp = new sipAmEvent(a0);
}
}
if (!sipCpp)
{
const AmEvent * a0;
if (sipParseArgs(&sipArgsParsed,sipArgs,"J1",sipClass_AmEvent,&a0))
{
sipCpp = new sipAmEvent(*a0);
}
}
if (!sipCpp)
{
sipNoCtor(sipArgsParsed,sipNm_py_sems_lib_AmEvent);
return 0;
}
sipCpp -> sipPySelf = sipSelf;
return sipCpp;
}
static PyObject *var_AmEvent_processed(PyObject *sipSelf,PyObject *valobj)
{
bool val;
AmEvent *sipCpp = reinterpret_cast<AmEvent *>(sipGetCppPtr((sipWrapper *)sipSelf,sipClass_AmEvent));
if (!sipCpp)
return NULL;
if (valobj == NULL)
{
val = sipCpp -> processed;
valobj = PyBool_FromLong(val);
return valobj;
}
val = (bool)PyInt_AsLong(valobj);
if (PyErr_Occurred() != NULL)
{
sipBadSetType(sipNm_py_sems_lib_AmEvent,sipNm_py_sems_lib_processed);
return NULL;
}
sipCpp -> processed = val;
Py_INCREF(Py_None);
return Py_None;
}
static PyObject *var_AmEvent_event_id(PyObject *sipSelf,PyObject *valobj)
{
int val;
AmEvent *sipCpp = reinterpret_cast<AmEvent *>(sipGetCppPtr((sipWrapper *)sipSelf,sipClass_AmEvent));
if (!sipCpp)
return NULL;
if (valobj == NULL)
{
val = sipCpp -> event_id;
valobj = PyInt_FromLong((long)val);
return valobj;
}
val = (int)PyInt_AsLong(valobj);
if (PyErr_Occurred() != NULL)
{
sipBadSetType(sipNm_py_sems_lib_AmEvent,sipNm_py_sems_lib_event_id);
return NULL;
}
sipCpp -> event_id = val;
Py_INCREF(Py_None);
return Py_None;
}
PyMethodDef variables_AmEvent[] = {
{sipNm_py_sems_lib_processed, var_AmEvent_processed, 0, NULL},
{sipNm_py_sems_lib_event_id, var_AmEvent_event_id, 0, NULL},
{0, 0, 0, 0}
};
static void *forceConvertTo_AmEvent(PyObject *valobj,int *iserrp)
{
if (*iserrp || valobj == NULL)
return NULL;
if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmEvent))
return sipConvertToCpp(valobj,sipClass_AmEvent,iserrp);
sipBadClass(sipNm_py_sems_lib_AmEvent);
*iserrp = 1;
return NULL;
}
/* The main type data structure. */
sipTypeDef sipType_AmEvent = {
0,
"py_sems_lib.AmEvent",
-1,
0,
0,
0, 0,
0, 0,
variables_AmEvent,
init_AmEvent,
dealloc_AmEvent,
cast_AmEvent,
forceConvertTo_AmEvent,
0,
0,
0,
{0, 0, 0, 0, 0, 0}
};

@ -0,0 +1,36 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAmEvent_h
#define _py_sems_libAmEvent_h
#line 5 "AmAudio.sip"
#include "../../../core/AmEvent.h"
#line 13 "sippy_sems_libAmEvent.h"
#define sipClass_AmEvent sipModuleAPI_py_sems_lib.em_types[2]
#define sipCast_AmEvent sipType_AmEvent.td_cast
#define sipForceConvertTo_AmEvent sipType_AmEvent.td_fcto
extern sipTypeDef sipType_AmEvent;
class sipAmEvent : public AmEvent
{
public:
sipAmEvent(int);
sipAmEvent(const AmEvent&);
~sipAmEvent();
sipWrapper *sipPySelf;
private:
sipAmEvent(const sipAmEvent &);
sipAmEvent &operator = (const sipAmEvent &);
};
#endif

@ -1,7 +1,7 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"

@ -1,7 +1,7 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAmSipDialog_h
@ -16,7 +16,7 @@
#include "sippy_sems_libAmSipReply.h"
#define sipClass_AmSipDialog sipModuleAPI_py_sems_lib.em_types[1]
#define sipClass_AmSipDialog sipModuleAPI_py_sems_lib.em_types[4]
#define sipCast_AmSipDialog sipType_AmSipDialog.td_cast
#define sipForceConvertTo_AmSipDialog sipType_AmSipDialog.td_fcto

@ -1,7 +1,7 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"

@ -1,7 +1,7 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAmSipReply_h
@ -14,7 +14,7 @@
#include "sippy_sems_libstring.h"
#define sipClass_AmSipReply sipModuleAPI_py_sems_lib.em_types[2]
#define sipClass_AmSipReply sipModuleAPI_py_sems_lib.em_types[5]
#define sipCast_AmSipReply sipType_AmSipReply.td_cast
#define sipForceConvertTo_AmSipReply sipType_AmSipReply.td_fcto

@ -1,7 +1,7 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"

@ -1,7 +1,7 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libAmSipRequest_h
@ -14,7 +14,7 @@
#include "sippy_sems_libstring.h"
#define sipClass_AmSipRequest sipModuleAPI_py_sems_lib.em_types[3]
#define sipClass_AmSipRequest sipModuleAPI_py_sems_lib.em_types[6]
#define sipCast_AmSipRequest sipType_AmSipRequest.td_cast
#define sipForceConvertTo_AmSipRequest sipType_AmSipRequest.td_fcto

@ -1,7 +1,7 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"
@ -9,7 +9,7 @@
sipPySemsDialog::sipPySemsDialog(): PySemsDialog(), sipPySelf(0)
{
sipCommonCtor(sipPyMethods,5);
sipCommonCtor(sipPyMethods,6);
}
sipPySemsDialog::~sipPySemsDialog()
@ -19,7 +19,7 @@ sipPySemsDialog::~sipPySemsDialog()
void sipPySemsDialog::onInvite(const AmSipRequest& a0)
{
extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,const AmSipRequest&);
extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
sip_gilstate_t sipGILState;
PyObject *meth;
@ -32,12 +32,12 @@ void sipPySemsDialog::onInvite(const AmSipRequest& a0)
return;
}
sipVH_py_sems_lib_1(sipGILState,meth,a0);
sipVH_py_sems_lib_2(sipGILState,meth,a0);
}
void sipPySemsDialog::onSessionStart(const AmSipRequest& a0)
{
extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,const AmSipRequest&);
extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
sip_gilstate_t sipGILState;
PyObject *meth;
@ -50,12 +50,12 @@ void sipPySemsDialog::onSessionStart(const AmSipRequest& a0)
return;
}
sipVH_py_sems_lib_1(sipGILState,meth,a0);
sipVH_py_sems_lib_2(sipGILState,meth,a0);
}
void sipPySemsDialog::onCancel()
{
extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *);
extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *);
sip_gilstate_t sipGILState;
PyObject *meth;
@ -68,12 +68,12 @@ void sipPySemsDialog::onCancel()
return;
}
sipVH_py_sems_lib_2(sipGILState,meth);
sipVH_py_sems_lib_3(sipGILState,meth);
}
void sipPySemsDialog::onBye(const AmSipRequest& a0)
{
extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,const AmSipRequest&);
extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
sip_gilstate_t sipGILState;
PyObject *meth;
@ -86,12 +86,12 @@ void sipPySemsDialog::onBye(const AmSipRequest& a0)
return;
}
sipVH_py_sems_lib_1(sipGILState,meth,a0);
sipVH_py_sems_lib_2(sipGILState,meth,a0);
}
void sipPySemsDialog::onDtmf(int a0,int a1)
{
extern void sipVH_py_sems_lib_0(sip_gilstate_t,PyObject *,int,int);
extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,int,int);
sip_gilstate_t sipGILState;
PyObject *meth;
@ -104,7 +104,25 @@ void sipPySemsDialog::onDtmf(int a0,int a1)
return;
}
sipVH_py_sems_lib_0(sipGILState,meth,a0,a1);
sipVH_py_sems_lib_1(sipGILState,meth,a0,a1);
}
void sipPySemsDialog::process(AmEvent *a0)
{
extern void sipVH_py_sems_lib_0(sip_gilstate_t,PyObject *,AmEvent *);
sip_gilstate_t sipGILState;
PyObject *meth;
meth = sipIsPyMethod(&sipGILState,&sipPyMethods[5],sipPySelf,NULL,sipNm_py_sems_lib_process);
if (!meth)
{
PySemsDialog::process(a0);
return;
}
sipVH_py_sems_lib_0(sipGILState,meth,a0);
}
@ -287,6 +305,103 @@ static PyObject *meth_PySemsDialog_onDtmf(PyObject *sipSelf,PyObject *sipArgs)
}
static PyObject *meth_PySemsDialog_setInput(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile * a0;
PySemsDialog *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"mJ0",sipSelf,sipClass_PySemsDialog,&sipCpp,sipClass_AmAudioFile,&a0))
{
sipCpp -> PySemsDialog::setInput(a0);
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsDialog,sipNm_py_sems_lib_setInput);
return NULL;
}
static PyObject *meth_PySemsDialog_setOutput(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile * a0;
PySemsDialog *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"mJ0",sipSelf,sipClass_PySemsDialog,&sipCpp,sipClass_AmAudioFile,&a0))
{
sipCpp -> PySemsDialog::setOutput(a0);
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsDialog,sipNm_py_sems_lib_setOutput);
return NULL;
}
static PyObject *meth_PySemsDialog_setInOut(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmAudioFile * a0;
AmAudioFile * a1;
PySemsDialog *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"mJ0J0",sipSelf,sipClass_PySemsDialog,&sipCpp,sipClass_AmAudioFile,&a0,sipClass_AmAudioFile,&a1))
{
sipCpp -> PySemsDialog::setInOut(a0,a1);
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsDialog,sipNm_py_sems_lib_setInOut);
return NULL;
}
static PyObject *meth_PySemsDialog_process(PyObject *sipSelf,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
AmEvent * a0;
PySemsDialog *sipCpp;
if (sipParseArgs(&sipArgsParsed,sipArgs,"mJ0",sipSelf,sipClass_PySemsDialog,&sipCpp,sipClass_AmEvent,&a0))
{
sipCpp -> PySemsDialog::process(a0);
Py_INCREF(Py_None);
return Py_None;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsDialog,sipNm_py_sems_lib_process);
return NULL;
}
/* Cast a pointer to a type somewhere in its superclass hierarchy. */
static void *cast_PySemsDialog(void *ptr,sipWrapperType *targetClass)
{
@ -398,6 +513,10 @@ static PyMethodDef methods_PySemsDialog[] = {
{sipNm_py_sems_lib_onDtmf, meth_PySemsDialog_onDtmf, METH_VARARGS, NULL},
{sipNm_py_sems_lib_onInvite, meth_PySemsDialog_onInvite, METH_VARARGS, NULL},
{sipNm_py_sems_lib_onSessionStart, meth_PySemsDialog_onSessionStart, METH_VARARGS, NULL},
{sipNm_py_sems_lib_process, meth_PySemsDialog_process, METH_VARARGS, NULL},
{sipNm_py_sems_lib_setInOut, meth_PySemsDialog_setInOut, METH_VARARGS, NULL},
{sipNm_py_sems_lib_setInput, meth_PySemsDialog_setInput, METH_VARARGS, NULL},
{sipNm_py_sems_lib_setOutput, meth_PySemsDialog_setOutput, METH_VARARGS, NULL},
{sipNm_py_sems_lib_setStopped, meth_PySemsDialog_setStopped, METH_VARARGS, NULL}
};
@ -409,7 +528,7 @@ sipTypeDef sipType_PySemsDialog = {
-1,
0,
0,
7, methods_PySemsDialog,
11, methods_PySemsDialog,
0, 0,
variables_PySemsDialog,
init_PySemsDialog,

@ -1,7 +1,7 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libPySemsDialog_h
@ -12,6 +12,8 @@
#line 13 "sippy_sems_libPySemsDialog.h"
#include "sippy_sems_libAmSipDialog.h"
#include "sippy_sems_libAmEvent.h"
#include "sippy_sems_libAmAudioFile.h"
#include "sippy_sems_libAmSipRequest.h"
#include "sippy_sems_libstring.h"
@ -38,6 +40,7 @@ public:
void onCancel();
void onBye(const AmSipRequest&);
void onDtmf(int,int);
void process(AmEvent *);
sipWrapper *sipPySelf;
@ -45,7 +48,7 @@ private:
sipPySemsDialog(const sipPySemsDialog &);
sipPySemsDialog &operator = (const sipPySemsDialog &);
sipMethodCache sipPyMethods[5];
sipMethodCache sipPyMethods[6];
};
#endif

@ -1,12 +1,15 @@
/*
* Module code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"
#include "sippy_sems_libPySemsDialog.h"
#include "sippy_sems_libAmAudioFile.h"
#include "sippy_sems_libAmAudioEvent.h"
#include "sippy_sems_libAmEvent.h"
#include "sippy_sems_libAmSipDialog.h"
#include "sippy_sems_libAmSipReply.h"
#include "sippy_sems_libAmSipRequest.h"
@ -15,6 +18,11 @@
/* Define the strings used by this module. */
char sipNm_py_sems_lib_get_header_param[] = "get_header_param";
char sipNm_py_sems_lib_process[] = "process";
char sipNm_py_sems_lib_setInOut[] = "setInOut";
char sipNm_py_sems_lib_setOutput[] = "setOutput";
char sipNm_py_sems_lib_setInput[] = "setInput";
char sipNm_py_sems_lib_onDtmf[] = "onDtmf";
char sipNm_py_sems_lib_onBye[] = "onBye";
char sipNm_py_sems_lib_onCancel[] = "onCancel";
@ -24,6 +32,21 @@ char sipNm_py_sems_lib_setStopped[] = "setStopped";
char sipNm_py_sems_lib_acceptAudio[] = "acceptAudio";
char sipNm_py_sems_lib_dlg[] = "dlg";
char sipNm_py_sems_lib_PySemsDialog[] = "PySemsDialog";
char sipNm_py_sems_lib_getDataSize[] = "getDataSize";
char sipNm_py_sems_lib_close[] = "close";
char sipNm_py_sems_lib_rewind[] = "rewind";
char sipNm_py_sems_lib_open[] = "open";
char sipNm_py_sems_lib_setLoop[] = "setLoop";
char sipNm_py_sems_lib_getLoop[] = "getLoop";
char sipNm_py_sems_lib_Write[] = "Write";
char sipNm_py_sems_lib_Read[] = "Read";
char sipNm_py_sems_lib_AmAudioFile[] = "AmAudioFile";
char sipNm_py_sems_lib_cleared[] = "cleared";
char sipNm_py_sems_lib_noAudio[] = "noAudio";
char sipNm_py_sems_lib_AmAudioEvent[] = "AmAudioEvent";
char sipNm_py_sems_lib_processed[] = "processed";
char sipNm_py_sems_lib_event_id[] = "event_id";
char sipNm_py_sems_lib_AmEvent[] = "AmEvent";
char sipNm_py_sems_lib_reinvite[] = "reinvite";
char sipNm_py_sems_lib_update[] = "update";
char sipNm_py_sems_lib_cancel[] = "cancel";
@ -77,7 +100,20 @@ char sipNm_py_sems_lib_cmd[] = "cmd";
char sipNm_py_sems_lib_AmSipRequest[] = "AmSipRequest";
char sipNm_py_sems_lib_string[] = "string";
void sipVH_py_sems_lib_0(sip_gilstate_t sipGILState,PyObject *sipMethod,int a0,int a1)
void sipVH_py_sems_lib_0(sip_gilstate_t sipGILState,PyObject *sipMethod,AmEvent *a0)
{
PyObject *sipResObj = sipCallMethod(0,sipMethod,"M",a0,sipClass_AmEvent);
if (!sipResObj || sipParseResult(0,sipMethod,sipResObj,"Z") < 0)
PyErr_Print();
Py_XDECREF(sipResObj);
Py_DECREF(sipMethod);
SIP_RELEASE_GIL(sipGILState)
}
void sipVH_py_sems_lib_1(sip_gilstate_t sipGILState,PyObject *sipMethod,int a0,int a1)
{
PyObject *sipResObj = sipCallMethod(0,sipMethod,"ii",a0,a1);
@ -90,7 +126,7 @@ void sipVH_py_sems_lib_0(sip_gilstate_t sipGILState,PyObject *sipMethod,int a0,i
SIP_RELEASE_GIL(sipGILState)
}
void sipVH_py_sems_lib_1(sip_gilstate_t sipGILState,PyObject *sipMethod,const AmSipRequest& a0)
void sipVH_py_sems_lib_2(sip_gilstate_t sipGILState,PyObject *sipMethod,const AmSipRequest& a0)
{
PyObject *sipResObj = sipCallMethod(0,sipMethod,"O",const_cast<AmSipRequest *>(&a0),sipClass_AmSipRequest);
@ -103,7 +139,7 @@ void sipVH_py_sems_lib_1(sip_gilstate_t sipGILState,PyObject *sipMethod,const Am
SIP_RELEASE_GIL(sipGILState)
}
void sipVH_py_sems_lib_2(sip_gilstate_t sipGILState,PyObject *sipMethod)
void sipVH_py_sems_lib_3(sip_gilstate_t sipGILState,PyObject *sipMethod)
{
PyObject *sipResObj = sipCallMethod(0,sipMethod,"");
@ -117,6 +153,42 @@ void sipVH_py_sems_lib_2(sip_gilstate_t sipGILState,PyObject *sipMethod)
}
static PyObject *func_get_header_param(PyObject *,PyObject *sipArgs)
{
int sipArgsParsed = 0;
{
const string * a0;
int a0IsTemp = 0;
const string * a1;
int a1IsTemp = 0;
if (sipParseArgs(&sipArgsParsed,sipArgs,"M1M1",sipConvertTo_string,&a0,&a0IsTemp,sipConvertTo_string,&a1,&a1IsTemp))
{
string *sipRes;
sipRes = new string(get_header_param(*a0,*a1));
if (a0IsTemp)
delete const_cast<string *>(a0);
if (a1IsTemp)
delete const_cast<string *>(a1);
PyObject *sipResObj = sipConvertFrom_string(sipRes);
delete sipRes;
return sipResObj;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoFunction(sipArgsParsed,sipNm_py_sems_lib_get_header_param);
return NULL;
}
static PyObject *func_getHeader(PyObject *,PyObject *sipArgs)
{
int sipArgsParsed = 0;
@ -146,6 +218,36 @@ static PyObject *func_getHeader(PyObject *,PyObject *sipArgs)
}
}
{
const string * a0;
int a0IsTemp = 0;
const string * a1;
int a1IsTemp = 0;
const string * a2;
int a2IsTemp = 0;
if (sipParseArgs(&sipArgsParsed,sipArgs,"M1M1M1",sipConvertTo_string,&a0,&a0IsTemp,sipConvertTo_string,&a1,&a1IsTemp,sipConvertTo_string,&a2,&a2IsTemp))
{
string *sipRes;
sipRes = new string(getHeader(*a0,*a1,*a2));
if (a0IsTemp)
delete const_cast<string *>(a0);
if (a1IsTemp)
delete const_cast<string *>(a1);
if (a2IsTemp)
delete const_cast<string *>(a2);
PyObject *sipResObj = sipConvertFrom_string(sipRes);
delete sipRes;
return sipResObj;
}
}
/* Raise an exception if the arguments couldn't be parsed. */
sipNoFunction(sipArgsParsed,sipNm_py_sems_lib_getHeader);
@ -153,12 +255,34 @@ static PyObject *func_getHeader(PyObject *,PyObject *sipArgs)
}
/* Convert to a sub-class if possible. */
static sipWrapperType *sipSubClass_AmEvent(void *sipCppV)
{
AmEvent *sipCpp = reinterpret_cast<AmEvent *>(sipCppV);
sipWrapperType *sipClass;
#line 15 "AmAudio.sip"
if(dynamic_cast<AmAudioEvent*>(sipCpp)){
sipClass = sipClass_AmAudioEvent;
}
else {
sipClass = sipClass_AmEvent;
}
#line 272 "sippy_sems_libcmodule.cpp"
return sipClass;
}
/*
* This defines each class in this module. The values are replaced by the
* proper Python types during the export process.
*/
static sipWrapperType *typesTable[] = {
(sipWrapperType *)&sipType_PySemsDialog,
(sipWrapperType *)&sipType_AmAudioFile,
(sipWrapperType *)&sipType_AmEvent,
(sipWrapperType *)&sipType_AmAudioEvent,
(sipWrapperType *)&sipType_AmSipDialog,
(sipWrapperType *)&sipType_AmSipReply,
(sipWrapperType *)&sipType_AmSipRequest,
@ -180,6 +304,14 @@ static sipVirtHandlerFunc virtHandlersTable[] = {
(sipVirtHandlerFunc)sipVH_py_sems_lib_0,
(sipVirtHandlerFunc)sipVH_py_sems_lib_1,
(sipVirtHandlerFunc)sipVH_py_sems_lib_2,
(sipVirtHandlerFunc)sipVH_py_sems_lib_3,
};
/* This defines the class sub-convertors that this module defines. */
static sipSubClassConvertorDef convertorsTable[] = {
{sipSubClass_AmEvent, {2, 255, 0}, NULL},
{NULL, {0, 0, 0}, NULL}
};
@ -193,7 +325,7 @@ sipExportedModuleDef sipModuleAPI_py_sems_lib = {
typesTable,
mappedTypesTable,
virtHandlersTable,
NULL,
convertorsTable,
{NULL, NULL, NULL, NULL, NULL, NULL},
NULL
};
@ -207,6 +339,7 @@ const sipAPIDef *sipAPI_py_sems_lib;
PyMODINIT_FUNC initpy_sems_lib()
{
static PyMethodDef methods[] = {
{sipNm_py_sems_lib_get_header_param, func_get_header_param, METH_VARARGS, NULL},
{sipNm_py_sems_lib_getHeader, func_getHeader, METH_VARARGS, NULL},
{0, 0, 0, 0}
};

@ -1,7 +1,7 @@
/*
* Interface wrapper code.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#include "sipAPIpy_sems_lib.h"

@ -1,7 +1,7 @@
/*
* Interface header file.
*
* Generated by SIP 4.1.1 (4.1.1-255) on Fri Feb 16 10:10:16 2007
* Generated by SIP 4.1.1 (4.1.1-255) on Mon Feb 19 14:57:35 2007
*/
#ifndef _py_sems_libstring_h

@ -67,6 +67,7 @@ void AmSipDialog::updateStatusFromLocalRequest(const AmSipRequest& req)
DBG("dialog callid is empty, updating from UACRequest\n");
callid = req.callid;
local_tag = req.from_tag;
DBG("local_tag = %s\n",local_tag.c_str());
user = req.user;
domain = req.domain;
local_uri = req.from_uri;
@ -266,12 +267,22 @@ int AmSipDialog::reply(const AmSipRequest& req,
string reply_sock = "/tmp/" + AmSession::getNewId();
string code_str = int2str(code);
string msg =
":t_reply:" + reply_sock + "\n" +
code_str + "\n" +
reason + "\n" +
req.key + "\n" +
local_tag + "\n";
string msg = ":t_reply:";
msg += reply_sock;
msg += "\n";
msg += code_str;
msg += "\n";
msg += reason;
msg += "\n";
msg += req.key;
msg += "\n";
msg += local_tag;
msg += "\n";
if(!m_hdrs.empty())
msg += m_hdrs;

Loading…
Cancel
Save