Browse code

some more b2ab classes

git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@291 8eb893ce-cfd4-0310-b710-fb5ebe64c474

Stefan Sayer authored on 28/03/2007 22:58:25
Showing 29 changed files
... ...
@@ -1,6 +1,6 @@
1 1
 TARGET = py_sems_lib.so
2
-OFILES = sippy_sems_libcmodule.o sippy_sems_libPySemsB2ABDialog.o sippy_sems_libPySemsB2BDialog.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
3
-HFILES = sipAPIpy_sems_lib.h sippy_sems_libPySemsB2ABDialog.h sippy_sems_libPySemsB2BDialog.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 
2
+OFILES = sippy_sems_libcmodule.o sippy_sems_libB2ABEvent.o sippy_sems_libAmB2ABCalleeSession.o sippy_sems_libPySemsB2ABDialog.o sippy_sems_libPySemsB2BDialog.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
3
+HFILES = sipAPIpy_sems_lib.h sippy_sems_libB2ABEvent.h sippy_sems_libAmB2ABCalleeSession.h sippy_sems_libPySemsB2ABDialog.h sippy_sems_libPySemsB2BDialog.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
 
5 5
 CC = gcc
6 6
 CXX = g++
... ...
@@ -42,6 +42,8 @@ install: $(TARGET)
42 42
 clean:
43 43
 	-rm -f $(TARGET)
44 44
 	-rm -f sippy_sems_libcmodule.o
45
+	-rm -f sippy_sems_libB2ABEvent.o
46
+	-rm -f sippy_sems_libAmB2ABCalleeSession.o
45 47
 	-rm -f sippy_sems_libPySemsB2ABDialog.o
46 48
 	-rm -f sippy_sems_libPySemsB2BDialog.o
47 49
 	-rm -f sippy_sems_libPySemsDialog.o
... ...
@@ -1,9 +1,9 @@
1 1
 
2
-
3 2
 class PySemsB2ABDialog
4 3
 {
5 4
 %TypeHeaderCode
6 5
 #include "../PySemsB2ABDialog.h"
6
+#include "../../../core/AmB2ABSession.h"
7 7
 %End
8 8
 
9 9
 public:
... ...
@@ -30,14 +30,50 @@ public:
30 30
     virtual void onBye(const AmSipRequest& /* req */);
31 31
     virtual void onDtmf(int /* event */, int /* duration_msec */);
32 32
 
33
-
34 33
     void setInput(AmAudioFile* /In/ /*in*/);
35 34
     void setOutput(AmAudioFile* /In/ /*out*/);
36 35
     void setInOut(AmAudioFile* /In/ /*in*/, AmAudioFile* /*out*/);
37 36
 
38 37
     virtual void process(AmEvent* /*In,Out*/);
38
+    
39
+    void connectCallee(const string& /*remote_party*/,
40
+	 	       const string& /*remote_uri*/,
41
+		       const string& /*local_party*/,
42
+		       const string& /*local_uri*/);
43
+    void reconnectAudio(); 
44
+
45
+    int getCalleeStatus();
39 46
 
47
+protected:
48
+  virtual AmB2ABCalleeSession* createCalleeSession();
40 49
 
50
+  virtual void onB2ABEvent(B2ABEvent* /*In,Out*/);
51
+
52
+  virtual void relayEvent(AmEvent* ev);	
41 53
 private:
42
-    PySemsB2ABDialog(const PySemsB2ABDialog&);
54
+  PySemsB2ABDialog(const PySemsB2ABDialog&);
43 55
 };
56
+
57
+class AmB2ABCalleeSession
58
+{
59
+%TypeHeaderCode
60
+#include "../../../core/AmB2ABSession.h"
61
+%End
62
+public:
63
+  AmB2ABCalleeSession(const string& /*other_local_tag*/);
64
+
65
+  void onB2ABEvent(B2ABEvent* /*In,Out*/);
66
+  void reconnectAudio();
67
+private:
68
+  AmB2ABCalleeSession(const AmB2ABCalleeSession& /* other_s*/);
69
+
70
+};
71
+
72
+class B2ABEvent
73
+{
74
+%TypeHeaderCode
75
+#include "../../../core/AmB2ABSession.h"
76
+%End
77
+  B2ABEvent(int /* ev_id */);
78
+};
79
+
... ...
@@ -1,3 +1,3 @@
1 1
 target = py_sems_lib
2
-sources = sippy_sems_libcmodule.cpp sippy_sems_libPySemsB2ABDialog.cpp sippy_sems_libPySemsB2BDialog.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
3
-headers = sipAPIpy_sems_lib.h sippy_sems_libPySemsB2ABDialog.h sippy_sems_libPySemsB2BDialog.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
2
+sources = sippy_sems_libcmodule.cpp sippy_sems_libB2ABEvent.cpp sippy_sems_libAmB2ABCalleeSession.cpp sippy_sems_libPySemsB2ABDialog.cpp sippy_sems_libPySemsB2BDialog.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
3
+headers = sipAPIpy_sems_lib.h sippy_sems_libB2ABEvent.h sippy_sems_libAmB2ABCalleeSession.h sippy_sems_libPySemsB2ABDialog.h sippy_sems_libPySemsB2BDialog.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
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Internal module API header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAPI_H
... ...
@@ -19,6 +19,8 @@
19 19
  * These are part of the public API.
20 20
  */
21 21
 
22
+#define sipName_B2ABEvent  sipNm_py_sems_lib_B2ABEvent
23
+#define sipName_AmB2ABCalleeSession  sipNm_py_sems_lib_AmB2ABCalleeSession
22 24
 #define sipName_PySemsB2ABDialog  sipNm_py_sems_lib_PySemsB2ABDialog
23 25
 #define sipName_PySemsB2BDialog  sipNm_py_sems_lib_PySemsB2BDialog
24 26
 #define sipName_PySemsDialog  sipNm_py_sems_lib_PySemsDialog
... ...
@@ -109,6 +111,14 @@
109 111
 
110 112
 /* The strings used by this module. */
111 113
 extern char sipNm_py_sems_lib_get_header_param[];
114
+extern char sipNm_py_sems_lib_B2ABEvent[];
115
+extern char sipNm_py_sems_lib_AmB2ABCalleeSession[];
116
+extern char sipNm_py_sems_lib_relayEvent[];
117
+extern char sipNm_py_sems_lib_onB2ABEvent[];
118
+extern char sipNm_py_sems_lib_createCalleeSession[];
119
+extern char sipNm_py_sems_lib_getCalleeStatus[];
120
+extern char sipNm_py_sems_lib_reconnectAudio[];
121
+extern char sipNm_py_sems_lib_connectCallee[];
112 122
 extern char sipNm_py_sems_lib_PySemsB2ABDialog[];
113 123
 extern char sipNm_py_sems_lib_PySemsB2BDialog[];
114 124
 extern char sipNm_py_sems_lib_process[];
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -126,7 +126,7 @@ static void *forceConvertTo_AmAudioEvent(PyObject *valobj,int *iserrp)
126 126
 
127 127
 
128 128
 /* Define this type's super-types. */
129
-static sipEncodedClassDef supers_AmAudioEvent[] = {{4, 255, 1}};
129
+static sipEncodedClassDef supers_AmAudioEvent[] = {{6, 255, 1}};
130 130
 
131 131
 static sipEnumMemberDef enummembers_AmAudioEvent[] = {
132 132
     {sipNm_py_sems_lib_cleared, AmAudioEvent::cleared, 1},
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAmAudioEvent_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../../../core/AmAudio.h"
12 12
 #line 13 "sippy_sems_libAmAudioEvent.h"
13 13
 
14
-#define sipClass_AmAudioEvent             sipModuleAPI_py_sems_lib.em_types[5]
14
+#define sipClass_AmAudioEvent             sipModuleAPI_py_sems_lib.em_types[7]
15 15
 #define sipCast_AmAudioEvent              sipType_py_sems_lib_AmAudioEvent.td_cast
16 16
 #define sipForceConvertTo_AmAudioEvent    sipType_py_sems_lib_AmAudioEvent.td_fcto
17 17
 
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAmAudioFile_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../../../core/AmAudio.h"
12 12
 #line 13 "sippy_sems_libAmAudioFile.h"
13 13
 
14
-#define sipClass_AmAudioFile             sipModuleAPI_py_sems_lib.em_types[3]
14
+#define sipClass_AmAudioFile             sipModuleAPI_py_sems_lib.em_types[5]
15 15
 #define sipCast_AmAudioFile              sipType_py_sems_lib_AmAudioFile.td_cast
16 16
 #define sipForceConvertTo_AmAudioFile    sipType_py_sems_lib_AmAudioFile.td_fcto
17 17
 
18 18
new file mode 100644
... ...
@@ -0,0 +1,173 @@
1
+/*
2
+ * Interface wrapper code.
3
+ *
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5
+ */
6
+
7
+#include "sipAPIpy_sems_lib.h"
8
+#include "sippy_sems_libAmB2ABCalleeSession.h"
9
+
10
+#include "sippy_sems_libstring.h"
11
+#include "sippy_sems_libAmB2ABCalleeSession.h"
12
+#include "sippy_sems_libB2ABEvent.h"
13
+
14
+
15
+
16
+extern "C" {static PyObject *meth_AmB2ABCalleeSession_onB2ABEvent(PyObject *, PyObject *);}
17
+static PyObject *meth_AmB2ABCalleeSession_onB2ABEvent(PyObject *sipSelf,PyObject *sipArgs)
18
+{
19
+    sipTrace(SIP_TRACE_METHODS,"meth_AmB2ABCalleeSession_onB2ABEvent()\n");
20
+
21
+    int sipArgsParsed = 0;
22
+
23
+    {
24
+        B2ABEvent * a0;
25
+        AmB2ABCalleeSession *sipCpp;
26
+
27
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"BJ@",&sipSelf,sipClass_AmB2ABCalleeSession,&sipCpp,sipClass_B2ABEvent,&a0))
28
+        {
29
+            sipCpp->onB2ABEvent(a0);
30
+
31
+            Py_INCREF(Py_None);
32
+            return Py_None;
33
+        }
34
+    }
35
+
36
+    /* Raise an exception if the arguments couldn't be parsed. */
37
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmB2ABCalleeSession,sipNm_py_sems_lib_onB2ABEvent);
38
+
39
+    return NULL;
40
+}
41
+
42
+
43
+extern "C" {static PyObject *meth_AmB2ABCalleeSession_reconnectAudio(PyObject *, PyObject *);}
44
+static PyObject *meth_AmB2ABCalleeSession_reconnectAudio(PyObject *sipSelf,PyObject *sipArgs)
45
+{
46
+    sipTrace(SIP_TRACE_METHODS,"meth_AmB2ABCalleeSession_reconnectAudio()\n");
47
+
48
+    int sipArgsParsed = 0;
49
+
50
+    {
51
+        AmB2ABCalleeSession *sipCpp;
52
+
53
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"B",&sipSelf,sipClass_AmB2ABCalleeSession,&sipCpp))
54
+        {
55
+            sipCpp->reconnectAudio();
56
+
57
+            Py_INCREF(Py_None);
58
+            return Py_None;
59
+        }
60
+    }
61
+
62
+    /* Raise an exception if the arguments couldn't be parsed. */
63
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_AmB2ABCalleeSession,sipNm_py_sems_lib_reconnectAudio);
64
+
65
+    return NULL;
66
+}
67
+
68
+
69
+/* Cast a pointer to a type somewhere in its superclass hierarchy. */
70
+extern "C" {static void *cast_AmB2ABCalleeSession(void *, sipWrapperType *);}
71
+static void *cast_AmB2ABCalleeSession(void *ptr,sipWrapperType *targetClass)
72
+{
73
+    if (targetClass == sipClass_AmB2ABCalleeSession)
74
+        return ptr;
75
+
76
+    return NULL;
77
+}
78
+
79
+
80
+/* Call the instance's destructor. */
81
+extern "C" {static void release_AmB2ABCalleeSession(void *, int);}
82
+static void release_AmB2ABCalleeSession(void *ptr,int)
83
+{
84
+    delete reinterpret_cast<AmB2ABCalleeSession *>(ptr);
85
+}
86
+
87
+
88
+extern "C" {static void dealloc_AmB2ABCalleeSession(sipWrapper *);}
89
+static void dealloc_AmB2ABCalleeSession(sipWrapper *sipSelf)
90
+{
91
+    sipTrace(SIP_TRACE_DEALLOCS,"dealloc_AmB2ABCalleeSession()\n");
92
+
93
+    if (sipIsPyOwned(sipSelf))
94
+    {
95
+        release_AmB2ABCalleeSession(sipSelf->u.cppPtr,0);
96
+    }
97
+}
98
+
99
+
100
+extern "C" {static void *init_AmB2ABCalleeSession(sipWrapper *, PyObject *, sipWrapper **, int *);}
101
+static void *init_AmB2ABCalleeSession(sipWrapper *,PyObject *sipArgs,sipWrapper **,int *sipArgsParsed)
102
+{
103
+    AmB2ABCalleeSession *sipCpp = 0;
104
+
105
+    sipTrace(SIP_TRACE_INITS,"init_AmB2ABCalleeSession()\n");
106
+
107
+    if (!sipCpp)
108
+    {
109
+        const string * a0;
110
+        int a0State = 0;
111
+
112
+        if (sipParseArgs(sipArgsParsed,sipArgs,"M1",sipMappedType_string,&a0,&a0State))
113
+        {
114
+            sipCpp = new AmB2ABCalleeSession(*a0);
115
+
116
+            sipReleaseMappedType(const_cast<string *>(a0),sipMappedType_string,a0State);
117
+        }
118
+    }
119
+
120
+    return sipCpp;
121
+}
122
+
123
+
124
+extern "C" {static void *forceConvertTo_AmB2ABCalleeSession(PyObject *, int *);}
125
+static void *forceConvertTo_AmB2ABCalleeSession(PyObject *valobj,int *iserrp)
126
+{
127
+    if (*iserrp || valobj == NULL)
128
+        return NULL;
129
+
130
+    if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_AmB2ABCalleeSession))
131
+        return sipConvertToCpp(valobj,sipClass_AmB2ABCalleeSession,iserrp);
132
+
133
+    sipBadClass(sipNm_py_sems_lib_AmB2ABCalleeSession);
134
+
135
+    *iserrp = 1;
136
+
137
+    return NULL;
138
+}
139
+
140
+
141
+static PyMethodDef methods_AmB2ABCalleeSession[] = {
142
+    {sipNm_py_sems_lib_onB2ABEvent, meth_AmB2ABCalleeSession_onB2ABEvent, METH_VARARGS, NULL},
143
+    {sipNm_py_sems_lib_reconnectAudio, meth_AmB2ABCalleeSession_reconnectAudio, METH_VARARGS, NULL}
144
+};
145
+
146
+
147
+sipTypeDef sipType_py_sems_lib_AmB2ABCalleeSession = {
148
+    0,
149
+    0,
150
+    "py_sems_lib.AmB2ABCalleeSession",
151
+    0,
152
+    {0, 0, 1},
153
+    0,
154
+    0,
155
+    2, methods_AmB2ABCalleeSession,
156
+    0, 0,
157
+    0,
158
+    init_AmB2ABCalleeSession,
159
+    0,
160
+    0,
161
+    0,
162
+    0,
163
+    0,
164
+    0,
165
+    dealloc_AmB2ABCalleeSession,
166
+    cast_AmB2ABCalleeSession,
167
+    release_AmB2ABCalleeSession,
168
+    forceConvertTo_AmB2ABCalleeSession,
169
+    0,
170
+    0,
171
+    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
172
+    0
173
+};
0 174
new file mode 100644
... ...
@@ -0,0 +1,20 @@
1
+/*
2
+ * Interface header file.
3
+ *
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5
+ */
6
+
7
+#ifndef _py_sems_libAmB2ABCalleeSession_h
8
+#define _py_sems_libAmB2ABCalleeSession_h
9
+
10
+#line 60 "PySemsB2ABDialog.sip"
11
+#include "../../../core/AmB2ABSession.h"
12
+#line 13 "sippy_sems_libAmB2ABCalleeSession.h"
13
+
14
+#define sipClass_AmB2ABCalleeSession             sipModuleAPI_py_sems_lib.em_types[1]
15
+#define sipCast_AmB2ABCalleeSession              sipType_py_sems_lib_AmB2ABCalleeSession.td_cast
16
+#define sipForceConvertTo_AmB2ABCalleeSession    sipType_py_sems_lib_AmB2ABCalleeSession.td_fcto
17
+
18
+extern sipTypeDef sipType_py_sems_lib_AmB2ABCalleeSession;
19
+
20
+#endif
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAmEvent_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../../../core/AmEvent.h"
12 12
 #line 13 "sippy_sems_libAmEvent.h"
13 13
 
14
-#define sipClass_AmEvent             sipModuleAPI_py_sems_lib.em_types[4]
14
+#define sipClass_AmEvent             sipModuleAPI_py_sems_lib.em_types[6]
15 15
 #define sipCast_AmEvent              sipType_py_sems_lib_AmEvent.td_cast
16 16
 #define sipForceConvertTo_AmEvent    sipType_py_sems_lib_AmEvent.td_fcto
17 17
 
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAmSipDialog_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../../../core/AmSipDialog.h"
12 12
 #line 13 "sippy_sems_libAmSipDialog.h"
13 13
 
14
-#define sipClass_AmSipDialog             sipModuleAPI_py_sems_lib.em_types[6]
14
+#define sipClass_AmSipDialog             sipModuleAPI_py_sems_lib.em_types[8]
15 15
 #define sipCast_AmSipDialog              sipType_py_sems_lib_AmSipDialog.td_cast
16 16
 #define sipForceConvertTo_AmSipDialog    sipType_py_sems_lib_AmSipDialog.td_fcto
17 17
 
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAmSipReply_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../../../core/AmSipReply.h"
12 12
 #line 13 "sippy_sems_libAmSipReply.h"
13 13
 
14
-#define sipClass_AmSipReply             sipModuleAPI_py_sems_lib.em_types[7]
14
+#define sipClass_AmSipReply             sipModuleAPI_py_sems_lib.em_types[9]
15 15
 #define sipCast_AmSipReply              sipType_py_sems_lib_AmSipReply.td_cast
16 16
 #define sipForceConvertTo_AmSipReply    sipType_py_sems_lib_AmSipReply.td_fcto
17 17
 
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libAmSipRequest_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../../../core/AmSipRequest.h"
12 12
 #line 13 "sippy_sems_libAmSipRequest.h"
13 13
 
14
-#define sipClass_AmSipRequest             sipModuleAPI_py_sems_lib.em_types[8]
14
+#define sipClass_AmSipRequest             sipModuleAPI_py_sems_lib.em_types[10]
15 15
 #define sipCast_AmSipRequest              sipType_py_sems_lib_AmSipRequest.td_cast
16 16
 #define sipForceConvertTo_AmSipRequest    sipType_py_sems_lib_AmSipRequest.td_fcto
17 17
 
18 18
new file mode 100644
... ...
@@ -0,0 +1,85 @@
1
+/*
2
+ * Interface wrapper code.
3
+ *
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5
+ */
6
+
7
+#include "sipAPIpy_sems_lib.h"
8
+#include "sippy_sems_libB2ABEvent.h"
9
+
10
+
11
+/* Cast a pointer to a type somewhere in its superclass hierarchy. */
12
+extern "C" {static void *cast_B2ABEvent(void *, sipWrapperType *);}
13
+static void *cast_B2ABEvent(void *ptr,sipWrapperType *targetClass)
14
+{
15
+    if (targetClass == sipClass_B2ABEvent)
16
+        return ptr;
17
+
18
+    return NULL;
19
+}
20
+
21
+
22
+/* Call the instance's destructor. */
23
+extern "C" {static void release_B2ABEvent(void *, int);}
24
+static void release_B2ABEvent(void *ptr,int)
25
+{
26
+    delete reinterpret_cast<B2ABEvent *>(ptr);
27
+}
28
+
29
+
30
+extern "C" {static void dealloc_B2ABEvent(sipWrapper *);}
31
+static void dealloc_B2ABEvent(sipWrapper *sipSelf)
32
+{
33
+    sipTrace(SIP_TRACE_DEALLOCS,"dealloc_B2ABEvent()\n");
34
+
35
+    if (sipIsPyOwned(sipSelf))
36
+    {
37
+        release_B2ABEvent(sipSelf->u.cppPtr,0);
38
+    }
39
+}
40
+
41
+
42
+extern "C" {static void *forceConvertTo_B2ABEvent(PyObject *, int *);}
43
+static void *forceConvertTo_B2ABEvent(PyObject *valobj,int *iserrp)
44
+{
45
+    if (*iserrp || valobj == NULL)
46
+        return NULL;
47
+
48
+    if (valobj == Py_None || sipIsSubClassInstance(valobj,sipClass_B2ABEvent))
49
+        return sipConvertToCpp(valobj,sipClass_B2ABEvent,iserrp);
50
+
51
+    sipBadClass(sipNm_py_sems_lib_B2ABEvent);
52
+
53
+    *iserrp = 1;
54
+
55
+    return NULL;
56
+}
57
+
58
+
59
+sipTypeDef sipType_py_sems_lib_B2ABEvent = {
60
+    0,
61
+    0,
62
+    "py_sems_lib.B2ABEvent",
63
+    0,
64
+    {0, 0, 1},
65
+    0,
66
+    0,
67
+    0, 0,
68
+    0, 0,
69
+    0,
70
+    0,
71
+    0,
72
+    0,
73
+    0,
74
+    0,
75
+    0,
76
+    0,
77
+    dealloc_B2ABEvent,
78
+    cast_B2ABEvent,
79
+    release_B2ABEvent,
80
+    forceConvertTo_B2ABEvent,
81
+    0,
82
+    0,
83
+    {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
84
+    0
85
+};
0 86
new file mode 100644
... ...
@@ -0,0 +1,20 @@
1
+/*
2
+ * Interface header file.
3
+ *
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5
+ */
6
+
7
+#ifndef _py_sems_libB2ABEvent_h
8
+#define _py_sems_libB2ABEvent_h
9
+
10
+#line 75 "PySemsB2ABDialog.sip"
11
+#include "../../../core/AmB2ABSession.h"
12
+#line 13 "sippy_sems_libB2ABEvent.h"
13
+
14
+#define sipClass_B2ABEvent             sipModuleAPI_py_sems_lib.em_types[0]
15
+#define sipCast_B2ABEvent              sipType_py_sems_lib_B2ABEvent.td_cast
16
+#define sipForceConvertTo_B2ABEvent    sipType_py_sems_lib_B2ABEvent.td_fcto
17
+
18
+extern sipTypeDef sipType_py_sems_lib_B2ABEvent;
19
+
20
+#endif
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -10,16 +10,18 @@
10 10
 #include "sippy_sems_libAmSipDialog.h"
11 11
 #include "sippy_sems_libPySemsB2ABDialog.h"
12 12
 #include "sippy_sems_libAmEvent.h"
13
+#include "sippy_sems_libB2ABEvent.h"
14
+#include "sippy_sems_libAmB2ABCalleeSession.h"
15
+#include "sippy_sems_libstring.h"
13 16
 #include "sippy_sems_libAmAudioFile.h"
14 17
 #include "sippy_sems_libAmSipRequest.h"
15
-#include "sippy_sems_libstring.h"
16 18
 
17 19
 
18 20
 sipPySemsB2ABDialog::sipPySemsB2ABDialog(): PySemsB2ABDialog(), sipPySelf(0)
19 21
 {
20 22
     sipTrace(SIP_TRACE_CTORS,"sipPySemsB2ABDialog::sipPySemsB2ABDialog() (this=0x%08x)\n",this);
21 23
 
22
-    sipCommonCtor(sipPyMethods,6);
24
+    sipCommonCtor(sipPyMethods,9);
23 25
 }
24 26
 
25 27
 sipPySemsB2ABDialog::~sipPySemsB2ABDialog()
... ...
@@ -33,7 +35,7 @@ void sipPySemsB2ABDialog::onInvite(const AmSipRequest& a0)
33 35
 {
34 36
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::onInvite(const AmSipRequest&) (this=0x%08x)\n",this);
35 37
 
36
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
38
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
37 39
 
38 40
     sip_gilstate_t sipGILState;
39 41
     PyObject *meth;
... ...
@@ -46,14 +48,14 @@ void sipPySemsB2ABDialog::onInvite(const AmSipRequest& a0)
46 48
         return;
47 49
     }
48 50
 
49
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
51
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
50 52
 }
51 53
 
52 54
 void sipPySemsB2ABDialog::onSessionStart(const AmSipRequest& a0)
53 55
 {
54 56
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::onSessionStart(const AmSipRequest&) (this=0x%08x)\n",this);
55 57
 
56
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
58
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
57 59
 
58 60
     sip_gilstate_t sipGILState;
59 61
     PyObject *meth;
... ...
@@ -66,14 +68,14 @@ void sipPySemsB2ABDialog::onSessionStart(const AmSipRequest& a0)
66 68
         return;
67 69
     }
68 70
 
69
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
71
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
70 72
 }
71 73
 
72 74
 void sipPySemsB2ABDialog::onCancel()
73 75
 {
74 76
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::onCancel() (this=0x%08x)\n",this);
75 77
 
76
-    extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *);
78
+    extern void sipVH_py_sems_lib_5(sip_gilstate_t,PyObject *);
77 79
 
78 80
     sip_gilstate_t sipGILState;
79 81
     PyObject *meth;
... ...
@@ -86,14 +88,14 @@ void sipPySemsB2ABDialog::onCancel()
86 88
         return;
87 89
     }
88 90
 
89
-    sipVH_py_sems_lib_3(sipGILState,meth);
91
+    sipVH_py_sems_lib_5(sipGILState,meth);
90 92
 }
91 93
 
92 94
 void sipPySemsB2ABDialog::onBye(const AmSipRequest& a0)
93 95
 {
94 96
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::onBye(const AmSipRequest&) (this=0x%08x)\n",this);
95 97
 
96
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
98
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
97 99
 
98 100
     sip_gilstate_t sipGILState;
99 101
     PyObject *meth;
... ...
@@ -106,14 +108,14 @@ void sipPySemsB2ABDialog::onBye(const AmSipRequest& a0)
106 108
         return;
107 109
     }
108 110
 
109
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
111
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
110 112
 }
111 113
 
112 114
 void sipPySemsB2ABDialog::onDtmf(int a0,int a1)
113 115
 {
114 116
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::onDtmf(int,int) (this=0x%08x)\n",this);
115 117
 
116
-    extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,int,int);
118
+    extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *,int,int);
117 119
 
118 120
     sip_gilstate_t sipGILState;
119 121
     PyObject *meth;
... ...
@@ -126,7 +128,7 @@ void sipPySemsB2ABDialog::onDtmf(int a0,int a1)
126 128
         return;
127 129
     }
128 130
 
129
-    sipVH_py_sems_lib_1(sipGILState,meth,a0,a1);
131
+    sipVH_py_sems_lib_3(sipGILState,meth,a0,a1);
130 132
 }
131 133
 
132 134
 void sipPySemsB2ABDialog::process(AmEvent *a0)
... ...
@@ -149,6 +151,78 @@ void sipPySemsB2ABDialog::process(AmEvent *a0)
149 151
     sipVH_py_sems_lib_0(sipGILState,meth,a0);
150 152
 }
151 153
 
154
+AmB2ABCalleeSession * sipPySemsB2ABDialog::createCalleeSession()
155
+{
156
+    sipTrace(SIP_TRACE_CATCHERS,"AmB2ABCalleeSession * sipPySemsB2ABDialog::createCalleeSession() (this=0x%08x)\n",this);
157
+
158
+    extern AmB2ABCalleeSession * sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *);
159
+
160
+    sip_gilstate_t sipGILState;
161
+    PyObject *meth;
162
+
163
+    meth = sipIsPyMethod(&sipGILState,&sipPyMethods[6],sipPySelf,NULL,sipNm_py_sems_lib_createCalleeSession);
164
+
165
+    if (!meth)
166
+        return PySemsB2ABDialog::createCalleeSession();
167
+
168
+    return sipVH_py_sems_lib_2(sipGILState,meth);
169
+}
170
+
171
+void sipPySemsB2ABDialog::onB2ABEvent(B2ABEvent *a0)
172
+{
173
+    sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::onB2ABEvent(B2ABEvent *) (this=0x%08x)\n",this);
174
+
175
+    extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,B2ABEvent *);
176
+
177
+    sip_gilstate_t sipGILState;
178
+    PyObject *meth;
179
+
180
+    meth = sipIsPyMethod(&sipGILState,&sipPyMethods[7],sipPySelf,NULL,sipNm_py_sems_lib_onB2ABEvent);
181
+
182
+    if (!meth)
183
+    {
184
+        PySemsB2ABDialog::onB2ABEvent(a0);
185
+        return;
186
+    }
187
+
188
+    sipVH_py_sems_lib_1(sipGILState,meth,a0);
189
+}
190
+
191
+void sipPySemsB2ABDialog::relayEvent(AmEvent *a0)
192
+{
193
+    sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2ABDialog::relayEvent(AmEvent *) (this=0x%08x)\n",this);
194
+
195
+    extern void sipVH_py_sems_lib_0(sip_gilstate_t,PyObject *,AmEvent *);
196
+
197
+    sip_gilstate_t sipGILState;
198
+    PyObject *meth;
199
+
200
+    meth = sipIsPyMethod(&sipGILState,&sipPyMethods[8],sipPySelf,NULL,sipNm_py_sems_lib_relayEvent);
201
+
202
+    if (!meth)
203
+    {
204
+        PySemsB2ABDialog::relayEvent(a0);
205
+        return;
206
+    }
207
+
208
+    sipVH_py_sems_lib_0(sipGILState,meth,a0);
209
+}
210
+
211
+AmB2ABCalleeSession * sipPySemsB2ABDialog::sipProtectVirt_createCalleeSession(bool sipSelfWasArg)
212
+{
213
+    return (sipSelfWasArg ? PySemsB2ABDialog::createCalleeSession() : createCalleeSession());
214
+}
215
+
216
+void sipPySemsB2ABDialog::sipProtectVirt_onB2ABEvent(bool sipSelfWasArg,B2ABEvent *a0)
217
+{
218
+    (sipSelfWasArg ? PySemsB2ABDialog::onB2ABEvent(a0) : onB2ABEvent(a0));
219
+}
220
+
221
+void sipPySemsB2ABDialog::sipProtectVirt_relayEvent(bool sipSelfWasArg,AmEvent *a0)
222
+{
223
+    (sipSelfWasArg ? PySemsB2ABDialog::relayEvent(a0) : relayEvent(a0));
224
+}
225
+
152 226
 
153 227
 extern "C" {static PyObject *meth_PySemsB2ABDialog_acceptAudio(PyObject *, PyObject *);}
154 228
 static PyObject *meth_PySemsB2ABDialog_acceptAudio(PyObject *sipSelf,PyObject *sipArgs)
... ...
@@ -462,6 +536,182 @@ static PyObject *meth_PySemsB2ABDialog_process(PyObject *sipSelf,PyObject *sipAr
462 536
 }
463 537
 
464 538
 
539
+extern "C" {static PyObject *meth_PySemsB2ABDialog_connectCallee(PyObject *, PyObject *);}
540
+static PyObject *meth_PySemsB2ABDialog_connectCallee(PyObject *sipSelf,PyObject *sipArgs)
541
+{
542
+    sipTrace(SIP_TRACE_METHODS,"meth_PySemsB2ABDialog_connectCallee()\n");
543
+
544
+    int sipArgsParsed = 0;
545
+
546
+    {
547
+        const string * a0;
548
+        int a0State = 0;
549
+        const string * a1;
550
+        int a1State = 0;
551
+        const string * a2;
552
+        int a2State = 0;
553
+        const string * a3;
554
+        int a3State = 0;
555
+        PySemsB2ABDialog *sipCpp;
556
+
557
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"BM1M1M1M1",&sipSelf,sipClass_PySemsB2ABDialog,&sipCpp,sipMappedType_string,&a0,&a0State,sipMappedType_string,&a1,&a1State,sipMappedType_string,&a2,&a2State,sipMappedType_string,&a3,&a3State))
558
+        {
559
+            sipCpp->connectCallee(*a0,*a1,*a2,*a3);
560
+
561
+            sipReleaseMappedType(const_cast<string *>(a0),sipMappedType_string,a0State);
562
+            sipReleaseMappedType(const_cast<string *>(a1),sipMappedType_string,a1State);
563
+            sipReleaseMappedType(const_cast<string *>(a2),sipMappedType_string,a2State);
564
+            sipReleaseMappedType(const_cast<string *>(a3),sipMappedType_string,a3State);
565
+
566
+            Py_INCREF(Py_None);
567
+            return Py_None;
568
+        }
569
+    }
570
+
571
+    /* Raise an exception if the arguments couldn't be parsed. */
572
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsB2ABDialog,sipNm_py_sems_lib_connectCallee);
573
+
574
+    return NULL;
575
+}
576
+
577
+
578
+extern "C" {static PyObject *meth_PySemsB2ABDialog_reconnectAudio(PyObject *, PyObject *);}
579
+static PyObject *meth_PySemsB2ABDialog_reconnectAudio(PyObject *sipSelf,PyObject *sipArgs)
580
+{
581
+    sipTrace(SIP_TRACE_METHODS,"meth_PySemsB2ABDialog_reconnectAudio()\n");
582
+
583
+    int sipArgsParsed = 0;
584
+
585
+    {
586
+        PySemsB2ABDialog *sipCpp;
587
+
588
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"B",&sipSelf,sipClass_PySemsB2ABDialog,&sipCpp))
589
+        {
590
+            sipCpp->reconnectAudio();
591
+
592
+            Py_INCREF(Py_None);
593
+            return Py_None;
594
+        }
595
+    }
596
+
597
+    /* Raise an exception if the arguments couldn't be parsed. */
598
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsB2ABDialog,sipNm_py_sems_lib_reconnectAudio);
599
+
600
+    return NULL;
601
+}
602
+
603
+
604
+extern "C" {static PyObject *meth_PySemsB2ABDialog_getCalleeStatus(PyObject *, PyObject *);}
605
+static PyObject *meth_PySemsB2ABDialog_getCalleeStatus(PyObject *sipSelf,PyObject *sipArgs)
606
+{
607
+    sipTrace(SIP_TRACE_METHODS,"meth_PySemsB2ABDialog_getCalleeStatus()\n");
608
+
609
+    int sipArgsParsed = 0;
610
+
611
+    {
612
+        PySemsB2ABDialog *sipCpp;
613
+
614
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"B",&sipSelf,sipClass_PySemsB2ABDialog,&sipCpp))
615
+        {
616
+            int sipRes;
617
+
618
+            sipRes = sipCpp->getCalleeStatus();
619
+
620
+            return PyInt_FromLong(sipRes);
621
+        }
622
+    }
623
+
624
+    /* Raise an exception if the arguments couldn't be parsed. */
625
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsB2ABDialog,sipNm_py_sems_lib_getCalleeStatus);
626
+
627
+    return NULL;
628
+}
629
+
630
+
631
+extern "C" {static PyObject *meth_PySemsB2ABDialog_createCalleeSession(PyObject *, PyObject *);}
632
+static PyObject *meth_PySemsB2ABDialog_createCalleeSession(PyObject *sipSelf,PyObject *sipArgs)
633
+{
634
+    sipTrace(SIP_TRACE_METHODS,"meth_PySemsB2ABDialog_createCalleeSession()\n");
635
+
636
+    int sipArgsParsed = 0;
637
+    bool sipSelfWasArg = !sipSelf;
638
+
639
+    {
640
+        sipPySemsB2ABDialog *sipCpp;
641
+
642
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"p",&sipSelf,sipClass_PySemsB2ABDialog,&sipCpp))
643
+        {
644
+            AmB2ABCalleeSession *sipRes;
645
+
646
+            sipRes = sipCpp->sipProtectVirt_createCalleeSession(sipSelfWasArg);
647
+
648
+            return sipConvertFromInstance(sipRes,sipClass_AmB2ABCalleeSession,NULL);
649
+        }
650
+    }
651
+
652
+    /* Raise an exception if the arguments couldn't be parsed. */
653
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsB2ABDialog,sipNm_py_sems_lib_createCalleeSession);
654
+
655
+    return NULL;
656
+}
657
+
658
+
659
+extern "C" {static PyObject *meth_PySemsB2ABDialog_onB2ABEvent(PyObject *, PyObject *);}
660
+static PyObject *meth_PySemsB2ABDialog_onB2ABEvent(PyObject *sipSelf,PyObject *sipArgs)
661
+{
662
+    sipTrace(SIP_TRACE_METHODS,"meth_PySemsB2ABDialog_onB2ABEvent()\n");
663
+
664
+    int sipArgsParsed = 0;
665
+    bool sipSelfWasArg = !sipSelf;
666
+
667
+    {
668
+        B2ABEvent * a0;
669
+        sipPySemsB2ABDialog *sipCpp;
670
+
671
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"pJ@",&sipSelf,sipClass_PySemsB2ABDialog,&sipCpp,sipClass_B2ABEvent,&a0))
672
+        {
673
+            sipCpp->sipProtectVirt_onB2ABEvent(sipSelfWasArg,a0);
674
+
675
+            Py_INCREF(Py_None);
676
+            return Py_None;
677
+        }
678
+    }
679
+
680
+    /* Raise an exception if the arguments couldn't be parsed. */
681
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsB2ABDialog,sipNm_py_sems_lib_onB2ABEvent);
682
+
683
+    return NULL;
684
+}
685
+
686
+
687
+extern "C" {static PyObject *meth_PySemsB2ABDialog_relayEvent(PyObject *, PyObject *);}
688
+static PyObject *meth_PySemsB2ABDialog_relayEvent(PyObject *sipSelf,PyObject *sipArgs)
689
+{
690
+    sipTrace(SIP_TRACE_METHODS,"meth_PySemsB2ABDialog_relayEvent()\n");
691
+
692
+    int sipArgsParsed = 0;
693
+    bool sipSelfWasArg = !sipSelf;
694
+
695
+    {
696
+        AmEvent * a0;
697
+        sipPySemsB2ABDialog *sipCpp;
698
+
699
+        if (sipParseArgs(&sipArgsParsed,sipArgs,"pJ@",&sipSelf,sipClass_PySemsB2ABDialog,&sipCpp,sipClass_AmEvent,&a0))
700
+        {
701
+            sipCpp->sipProtectVirt_relayEvent(sipSelfWasArg,a0);
702
+
703
+            Py_INCREF(Py_None);
704
+            return Py_None;
705
+        }
706
+    }
707
+
708
+    /* Raise an exception if the arguments couldn't be parsed. */
709
+    sipNoMethod(sipArgsParsed,sipNm_py_sems_lib_PySemsB2ABDialog,sipNm_py_sems_lib_relayEvent);
710
+
711
+    return NULL;
712
+}
713
+
714
+
465 715
 /* Cast a pointer to a type somewhere in its superclass hierarchy. */
466 716
 extern "C" {static void *cast_PySemsB2ABDialog(void *, sipWrapperType *);}
467 717
 static void *cast_PySemsB2ABDialog(void *ptr,sipWrapperType *targetClass)
... ...
@@ -496,7 +746,7 @@ static void dealloc_PySemsB2ABDialog(sipWrapper *sipSelf)
496 746
     {
497 747
 #line 17 "PySemsB2ABDialog.sip"
498 748
     fprintf(stderr,"------------- dealloc_PySemsB2ABDialog ----------\n");
499
-#line 500 "sippy_sems_libPySemsB2ABDialog.cpp"
749
+#line 750 "sippy_sems_libPySemsB2ABDialog.cpp"
500 750
 
501 751
         release_PySemsB2ABDialog(sipSelf->u.cppPtr,sipSelf->flags);
502 752
     }
... ...
@@ -580,12 +830,18 @@ static void *forceConvertTo_PySemsB2ABDialog(PyObject *valobj,int *iserrp)
580 830
 
581 831
 static PyMethodDef methods_PySemsB2ABDialog[] = {
582 832
     {sipNm_py_sems_lib_acceptAudio, meth_PySemsB2ABDialog_acceptAudio, METH_VARARGS, NULL},
833
+    {sipNm_py_sems_lib_connectCallee, meth_PySemsB2ABDialog_connectCallee, METH_VARARGS, NULL},
834
+    {sipNm_py_sems_lib_createCalleeSession, meth_PySemsB2ABDialog_createCalleeSession, METH_VARARGS, NULL},
835
+    {sipNm_py_sems_lib_getCalleeStatus, meth_PySemsB2ABDialog_getCalleeStatus, METH_VARARGS, NULL},
836
+    {sipNm_py_sems_lib_onB2ABEvent, meth_PySemsB2ABDialog_onB2ABEvent, METH_VARARGS, NULL},
583 837
     {sipNm_py_sems_lib_onBye, meth_PySemsB2ABDialog_onBye, METH_VARARGS, NULL},
584 838
     {sipNm_py_sems_lib_onCancel, meth_PySemsB2ABDialog_onCancel, METH_VARARGS, NULL},
585 839
     {sipNm_py_sems_lib_onDtmf, meth_PySemsB2ABDialog_onDtmf, METH_VARARGS, NULL},
586 840
     {sipNm_py_sems_lib_onInvite, meth_PySemsB2ABDialog_onInvite, METH_VARARGS, NULL},
587 841
     {sipNm_py_sems_lib_onSessionStart, meth_PySemsB2ABDialog_onSessionStart, METH_VARARGS, NULL},
588 842
     {sipNm_py_sems_lib_process, meth_PySemsB2ABDialog_process, METH_VARARGS, NULL},
843
+    {sipNm_py_sems_lib_reconnectAudio, meth_PySemsB2ABDialog_reconnectAudio, METH_VARARGS, NULL},
844
+    {sipNm_py_sems_lib_relayEvent, meth_PySemsB2ABDialog_relayEvent, METH_VARARGS, NULL},
589 845
     {sipNm_py_sems_lib_setInOut, meth_PySemsB2ABDialog_setInOut, METH_VARARGS, NULL},
590 846
     {sipNm_py_sems_lib_setInput, meth_PySemsB2ABDialog_setInput, METH_VARARGS, NULL},
591 847
     {sipNm_py_sems_lib_setOutput, meth_PySemsB2ABDialog_setOutput, METH_VARARGS, NULL},
... ...
@@ -601,7 +857,7 @@ sipTypeDef sipType_py_sems_lib_PySemsB2ABDialog = {
601 857
     {0, 0, 1},
602 858
     0,
603 859
     0,
604
-    11, methods_PySemsB2ABDialog,
860
+    17, methods_PySemsB2ABDialog,
605 861
     0, 0,
606 862
     variables_PySemsB2ABDialog,
607 863
     init_PySemsB2ABDialog,
... ...
@@ -1,17 +1,18 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libPySemsB2ABDialog_h
8 8
 #define _py_sems_libPySemsB2ABDialog_h
9 9
 
10
-#line 6 "PySemsB2ABDialog.sip"
10
+#line 5 "PySemsB2ABDialog.sip"
11 11
 #include "../PySemsB2ABDialog.h"
12
-#line 13 "sippy_sems_libPySemsB2ABDialog.h"
12
+#include "../../../core/AmB2ABSession.h"
13
+#line 14 "sippy_sems_libPySemsB2ABDialog.h"
13 14
 
14
-#define sipClass_PySemsB2ABDialog             sipModuleAPI_py_sems_lib.em_types[0]
15
+#define sipClass_PySemsB2ABDialog             sipModuleAPI_py_sems_lib.em_types[2]
15 16
 #define sipCast_PySemsB2ABDialog              sipType_py_sems_lib_PySemsB2ABDialog.td_cast
16 17
 #define sipForceConvertTo_PySemsB2ABDialog    sipType_py_sems_lib_PySemsB2ABDialog.td_fcto
17 18
 
... ...
@@ -24,6 +25,14 @@ public:
24 25
     sipPySemsB2ABDialog();
25 26
     virtual ~sipPySemsB2ABDialog();
26 27
 
28
+    /*
29
+     * There is a public method for every protected method visible from
30
+     * this class.
31
+     */
32
+    AmB2ABCalleeSession * sipProtectVirt_createCalleeSession(bool);
33
+    void sipProtectVirt_onB2ABEvent(bool,B2ABEvent *);
34
+    void sipProtectVirt_relayEvent(bool,AmEvent *);
35
+
27 36
     /*
28 37
      * There is a protected method for every virtual method visible from
29 38
      * this class.
... ...
@@ -35,6 +44,9 @@ protected:
35 44
     void onBye(const AmSipRequest&);
36 45
     void onDtmf(int,int);
37 46
     void process(AmEvent *);
47
+    AmB2ABCalleeSession * createCalleeSession();
48
+    void onB2ABEvent(B2ABEvent *);
49
+    void relayEvent(AmEvent *);
38 50
 
39 51
 public:
40 52
     sipWrapper *sipPySelf;
... ...
@@ -43,7 +55,7 @@ private:
43 55
     sipPySemsB2ABDialog(const sipPySemsB2ABDialog &);
44 56
     sipPySemsB2ABDialog &operator = (const sipPySemsB2ABDialog &);
45 57
 
46
-    sipMethodCache sipPyMethods[6];
58
+    sipMethodCache sipPyMethods[9];
47 59
 };
48 60
 
49 61
 #endif
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -33,7 +33,7 @@ void sipPySemsB2BDialog::onInvite(const AmSipRequest& a0)
33 33
 {
34 34
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2BDialog::onInvite(const AmSipRequest&) (this=0x%08x)\n",this);
35 35
 
36
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
36
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
37 37
 
38 38
     sip_gilstate_t sipGILState;
39 39
     PyObject *meth;
... ...
@@ -46,14 +46,14 @@ void sipPySemsB2BDialog::onInvite(const AmSipRequest& a0)
46 46
         return;
47 47
     }
48 48
 
49
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
49
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
50 50
 }
51 51
 
52 52
 void sipPySemsB2BDialog::onSessionStart(const AmSipRequest& a0)
53 53
 {
54 54
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2BDialog::onSessionStart(const AmSipRequest&) (this=0x%08x)\n",this);
55 55
 
56
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
56
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
57 57
 
58 58
     sip_gilstate_t sipGILState;
59 59
     PyObject *meth;
... ...
@@ -66,14 +66,14 @@ void sipPySemsB2BDialog::onSessionStart(const AmSipRequest& a0)
66 66
         return;
67 67
     }
68 68
 
69
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
69
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
70 70
 }
71 71
 
72 72
 void sipPySemsB2BDialog::onCancel()
73 73
 {
74 74
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2BDialog::onCancel() (this=0x%08x)\n",this);
75 75
 
76
-    extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *);
76
+    extern void sipVH_py_sems_lib_5(sip_gilstate_t,PyObject *);
77 77
 
78 78
     sip_gilstate_t sipGILState;
79 79
     PyObject *meth;
... ...
@@ -86,14 +86,14 @@ void sipPySemsB2BDialog::onCancel()
86 86
         return;
87 87
     }
88 88
 
89
-    sipVH_py_sems_lib_3(sipGILState,meth);
89
+    sipVH_py_sems_lib_5(sipGILState,meth);
90 90
 }
91 91
 
92 92
 void sipPySemsB2BDialog::onBye(const AmSipRequest& a0)
93 93
 {
94 94
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2BDialog::onBye(const AmSipRequest&) (this=0x%08x)\n",this);
95 95
 
96
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
96
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
97 97
 
98 98
     sip_gilstate_t sipGILState;
99 99
     PyObject *meth;
... ...
@@ -106,14 +106,14 @@ void sipPySemsB2BDialog::onBye(const AmSipRequest& a0)
106 106
         return;
107 107
     }
108 108
 
109
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
109
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
110 110
 }
111 111
 
112 112
 void sipPySemsB2BDialog::onDtmf(int a0,int a1)
113 113
 {
114 114
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsB2BDialog::onDtmf(int,int) (this=0x%08x)\n",this);
115 115
 
116
-    extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,int,int);
116
+    extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *,int,int);
117 117
 
118 118
     sip_gilstate_t sipGILState;
119 119
     PyObject *meth;
... ...
@@ -126,7 +126,7 @@ void sipPySemsB2BDialog::onDtmf(int a0,int a1)
126 126
         return;
127 127
     }
128 128
 
129
-    sipVH_py_sems_lib_1(sipGILState,meth,a0,a1);
129
+    sipVH_py_sems_lib_3(sipGILState,meth,a0,a1);
130 130
 }
131 131
 
132 132
 void sipPySemsB2BDialog::process(AmEvent *a0)
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libPySemsB2BDialog_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../PySemsB2BDialog.h"
12 12
 #line 13 "sippy_sems_libPySemsB2BDialog.h"
13 13
 
14
-#define sipClass_PySemsB2BDialog             sipModuleAPI_py_sems_lib.em_types[1]
14
+#define sipClass_PySemsB2BDialog             sipModuleAPI_py_sems_lib.em_types[3]
15 15
 #define sipCast_PySemsB2BDialog              sipType_py_sems_lib_PySemsB2BDialog.td_cast
16 16
 #define sipForceConvertTo_PySemsB2BDialog    sipType_py_sems_lib_PySemsB2BDialog.td_fcto
17 17
 
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface wrapper code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
... ...
@@ -33,7 +33,7 @@ void sipPySemsDialog::onInvite(const AmSipRequest& a0)
33 33
 {
34 34
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsDialog::onInvite(const AmSipRequest&) (this=0x%08x)\n",this);
35 35
 
36
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
36
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
37 37
 
38 38
     sip_gilstate_t sipGILState;
39 39
     PyObject *meth;
... ...
@@ -46,14 +46,14 @@ void sipPySemsDialog::onInvite(const AmSipRequest& a0)
46 46
         return;
47 47
     }
48 48
 
49
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
49
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
50 50
 }
51 51
 
52 52
 void sipPySemsDialog::onSessionStart(const AmSipRequest& a0)
53 53
 {
54 54
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsDialog::onSessionStart(const AmSipRequest&) (this=0x%08x)\n",this);
55 55
 
56
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
56
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
57 57
 
58 58
     sip_gilstate_t sipGILState;
59 59
     PyObject *meth;
... ...
@@ -66,14 +66,14 @@ void sipPySemsDialog::onSessionStart(const AmSipRequest& a0)
66 66
         return;
67 67
     }
68 68
 
69
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
69
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
70 70
 }
71 71
 
72 72
 void sipPySemsDialog::onCancel()
73 73
 {
74 74
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsDialog::onCancel() (this=0x%08x)\n",this);
75 75
 
76
-    extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *);
76
+    extern void sipVH_py_sems_lib_5(sip_gilstate_t,PyObject *);
77 77
 
78 78
     sip_gilstate_t sipGILState;
79 79
     PyObject *meth;
... ...
@@ -86,14 +86,14 @@ void sipPySemsDialog::onCancel()
86 86
         return;
87 87
     }
88 88
 
89
-    sipVH_py_sems_lib_3(sipGILState,meth);
89
+    sipVH_py_sems_lib_5(sipGILState,meth);
90 90
 }
91 91
 
92 92
 void sipPySemsDialog::onBye(const AmSipRequest& a0)
93 93
 {
94 94
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsDialog::onBye(const AmSipRequest&) (this=0x%08x)\n",this);
95 95
 
96
-    extern void sipVH_py_sems_lib_2(sip_gilstate_t,PyObject *,const AmSipRequest&);
96
+    extern void sipVH_py_sems_lib_4(sip_gilstate_t,PyObject *,const AmSipRequest&);
97 97
 
98 98
     sip_gilstate_t sipGILState;
99 99
     PyObject *meth;
... ...
@@ -106,14 +106,14 @@ void sipPySemsDialog::onBye(const AmSipRequest& a0)
106 106
         return;
107 107
     }
108 108
 
109
-    sipVH_py_sems_lib_2(sipGILState,meth,a0);
109
+    sipVH_py_sems_lib_4(sipGILState,meth,a0);
110 110
 }
111 111
 
112 112
 void sipPySemsDialog::onDtmf(int a0,int a1)
113 113
 {
114 114
     sipTrace(SIP_TRACE_CATCHERS,"void sipPySemsDialog::onDtmf(int,int) (this=0x%08x)\n",this);
115 115
 
116
-    extern void sipVH_py_sems_lib_1(sip_gilstate_t,PyObject *,int,int);
116
+    extern void sipVH_py_sems_lib_3(sip_gilstate_t,PyObject *,int,int);
117 117
 
118 118
     sip_gilstate_t sipGILState;
119 119
     PyObject *meth;
... ...
@@ -126,7 +126,7 @@ void sipPySemsDialog::onDtmf(int a0,int a1)
126 126
         return;
127 127
     }
128 128
 
129
-    sipVH_py_sems_lib_1(sipGILState,meth,a0,a1);
129
+    sipVH_py_sems_lib_3(sipGILState,meth,a0,a1);
130 130
 }
131 131
 
132 132
 void sipPySemsDialog::process(AmEvent *a0)
... ...
@@ -1,7 +1,7 @@
1 1
 /*
2 2
  * Interface header file.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #ifndef _py_sems_libPySemsDialog_h
... ...
@@ -11,7 +11,7 @@
11 11
 #include "../PySemsDialog.h"
12 12
 #line 13 "sippy_sems_libPySemsDialog.h"
13 13
 
14
-#define sipClass_PySemsDialog             sipModuleAPI_py_sems_lib.em_types[2]
14
+#define sipClass_PySemsDialog             sipModuleAPI_py_sems_lib.em_types[4]
15 15
 #define sipCast_PySemsDialog              sipType_py_sems_lib_PySemsDialog.td_cast
16 16
 #define sipForceConvertTo_PySemsDialog    sipType_py_sems_lib_PySemsDialog.td_fcto
17 17
 
... ...
@@ -1,11 +1,13 @@
1 1
 /*
2 2
  * Module code.
3 3
  *
4
- * Generated by SIP 4.5.2 (4.5.2) on Wed Mar 28 22:59:14 2007
4
+ * Generated by SIP 4.5.2 (4.5.2) on Thu Mar 29 00:29:43 2007
5 5
  */
6 6
 
7 7
 #include "sipAPIpy_sems_lib.h"
8 8
 
9
+#include "sippy_sems_libB2ABEvent.h"
10
+#include "sippy_sems_libAmB2ABCalleeSession.h"
9 11
 #include "sippy_sems_libPySemsB2ABDialog.h"
10 12
 #include "sippy_sems_libPySemsB2BDialog.h"
11 13
 #include "sippy_sems_libPySemsDialog.h"
... ...
@@ -20,6 +22,14 @@
20 22
 
21 23
 /* Define the strings used by this module. */
22 24
 char sipNm_py_sems_lib_get_header_param[] = "get_header_param";
25
+char sipNm_py_sems_lib_B2ABEvent[] = "B2ABEvent";
26
+char sipNm_py_sems_lib_AmB2ABCalleeSession[] = "AmB2ABCalleeSession";
27
+char sipNm_py_sems_lib_relayEvent[] = "relayEvent";
28
+char sipNm_py_sems_lib_onB2ABEvent[] = "onB2ABEvent";
29
+char sipNm_py_sems_lib_createCalleeSession[] = "createCalleeSession";
30
+char sipNm_py_sems_lib_getCalleeStatus[] = "getCalleeStatus";
31
+char sipNm_py_sems_lib_reconnectAudio[] = "reconnectAudio";
32
+char sipNm_py_sems_lib_connectCallee[] = "connectCallee";
23 33
 char sipNm_py_sems_lib_PySemsB2ABDialog[] = "PySemsB2ABDialog";
24 34
 char sipNm_py_sems_lib_PySemsB2BDialog[] = "PySemsB2BDialog";
25 35
 char sipNm_py_sems_lib_process[] = "process";
... ...
@@ -116,7 +126,36 @@ void sipVH_py_sems_lib_0(sip_gilstate_t sipGILState,PyObject *sipMethod,AmEvent
116 126
     SIP_RELEASE_GIL(sipGILState)
117 127
 }
118 128
 
119
-void sipVH_py_sems_lib_1(sip_gilstate_t sipGILState,PyObject *sipMethod,int a0,int a1)
129
+void sipVH_py_sems_lib_1(sip_gilstate_t sipGILState,PyObject *sipMethod,B2ABEvent *a0)
130
+{
131
+    PyObject *sipResObj = sipCallMethod(0,sipMethod,"C",a0,sipClass_B2ABEvent,NULL);
132
+
133
+    if (!sipResObj || sipParseResult(0,sipMethod,sipResObj,"Z") < 0)
134
+        PyErr_Print();
135
+
136
+    Py_XDECREF(sipResObj);
137
+    Py_DECREF(sipMethod);
138
+
139
+    SIP_RELEASE_GIL(sipGILState)
140
+}
141
+
142
+AmB2ABCalleeSession * sipVH_py_sems_lib_2(sip_gilstate_t sipGILState,PyObject *sipMethod)
143
+{
144
+    AmB2ABCalleeSession * sipRes = 0;
145
+    PyObject *sipResObj = sipCallMethod(0,sipMethod,"");
146
+
147
+    if (!sipResObj || sipParseResult(0,sipMethod,sipResObj,"C4",sipClass_AmB2ABCalleeSession,&sipRes) < 0)
148
+        PyErr_Print();
149
+
150
+    Py_XDECREF(sipResObj);
151
+    Py_DECREF(sipMethod);
152
+
153
+    SIP_RELEASE_GIL(sipGILState)
154
+
155
+    return sipRes;
156
+}
157
+
158
+void sipVH_py_sems_lib_3(sip_gilstate_t sipGILState,PyObject *sipMethod,int a0,int a1)
120 159
 {
121 160
     PyObject *sipResObj = sipCallMethod(0,sipMethod,"ii",a0,a1);
122 161
 
... ...
@@ -129,7 +168,7 @@ void sipVH_py_sems_lib_1(sip_gilstate_t sipGILState,PyObject *sipMethod,int a0,i
129 168
     SIP_RELEASE_GIL(sipGILState)
130 169
 }
131 170
 
132
-void sipVH_py_sems_lib_2(sip_gilstate_t sipGILState,PyObject *sipMethod,const AmSipRequest& a0)
171
+void sipVH_py_sems_lib_4(sip_gilstate_t sipGILState,PyObject *sipMethod,const AmSipRequest& a0)
133 172
 {
134 173
     PyObject *sipResObj = sipCallMethod(0,sipMethod,"C",const_cast<AmSipRequest *>(&a0),sipClass_AmSipRequest,NULL);
135 174
 
... ...
@@ -142,7 +181,7 @@ void sipVH_py_sems_lib_2(sip_gilstate_t sipGILState,PyObject *sipMethod,const Am
142 181
     SIP_RELEASE_GIL(sipGILState)
143 182
 }
144 183
 
145
-void sipVH_py_sems_lib_3(sip_gilstate_t sipGILState,PyObject *sipMethod)
184
+void sipVH_py_sems_lib_5(sip_gilstate_t sipGILState,PyObject *sipMethod)
146 185
 {
147 186
     PyObject *sipResObj = sipCallMethod(0,sipMethod,"");
148 187
 
... ...
@@ -263,7 +302,7 @@ static sipWrapperType *sipSubClass_AmEvent(void **sipCppRet)
263 302
 	else {
264 303
 		sipClass = sipClass_AmEvent;
265 304
 	}
266
-#line 267 "sippy_sems_libcmodule.cpp"
305
+#line 306 "sippy_sems_libcmodule.cpp"
267 306
 
268 307
     return sipClass;
269 308
 }
... ...
@@ -274,6 +313,8 @@ static sipWrapperType *sipSubClass_AmEvent(void **sipCppRet)
274 313
  * proper Python types during the export process.
275 314
  */
276 315
 static sipWrapperType *typesTable[] = {
316
+    (sipWrapperType *)(void *)&sipType_py_sems_lib_B2ABEvent,
317
+    (sipWrapperType *)(void *)&sipType_py_sems_lib_AmB2ABCalleeSession,
277 318
     (sipWrapperType *)(void *)&sipType_py_sems_lib_PySemsB2ABDialog,
278 319
     (sipWrapperType *)(void *)&sipType_py_sems_lib_PySemsB2BDialog,
279 320
     (sipWrapperType *)(void *)&sipType_py_sems_lib_PySemsDialog,
... ...
@@ -295,9 +336,9 @@ static sipMappedType *mappedTypesTable[] = {
295 336
 
296 337
 /* Define each named enum in this module. */
297 338
 static sipEnumDef enumTypesTable[] = {
298
-    {"py_sems_lib.AmAudioFile.OpenMode", NULL, 3, NULL},
299
-    {"py_sems_lib.AmAudioEvent.EventType", NULL, 5, NULL},
300
-    {"py_sems_lib.AmSipDialog.Status", NULL, 6, NULL},
339
+    {"py_sems_lib.AmAudioFile.OpenMode", NULL, 5, NULL},
340
+    {"py_sems_lib.AmAudioEvent.EventType", NULL, 7, NULL},
341
+    {"py_sems_lib.AmSipDialog.Status", NULL, 8, NULL},
301 342
 };
302 343
 
303 344
 
... ...
@@ -310,12 +351,14 @@ static sipVirtHandlerFunc virtHandlersTable[] = {
310 351
     (sipVirtHandlerFunc)sipVH_py_sems_lib_1,
311 352
     (sipVirtHandlerFunc)sipVH_py_sems_lib_2,