From 37673396fe0fd25913cce62aa0acb57960df1cb7 Mon Sep 17 00:00:00 2001 From: Stefan Sayer Date: Wed, 3 Dec 2008 15:50:01 +0000 Subject: [PATCH] allocate IvrSipReply objects while PYLOCKed . Patch by Peter Loeppky ploeppky at fibernetics ca git-svn-id: http://svn.berlios.de/svnroot/repos/sems/trunk@1161 8eb893ce-cfd4-0310-b710-fb5ebe64c474 --- apps/ivr/Ivr.cpp | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/apps/ivr/Ivr.cpp b/apps/ivr/Ivr.cpp index 67e0304d..b3675e3d 100644 --- a/apps/ivr/Ivr.cpp +++ b/apps/ivr/Ivr.cpp @@ -747,15 +747,29 @@ bool IvrDialog::onOtherReply(const AmSipReply& r) return false; } -void IvrDialog::onSipReply(const AmSipReply& r) { +PyObject * getPySipReply(const AmSipReply& r) +{ + PYLOCK; + AmSipReply* rep_cpy = new AmSipReply(r); - callPyEventHandler("onSipReply","O",IvrSipReply_FromPtr(rep_cpy)); + return IvrSipReply_FromPtr(rep_cpy); +} + +PyObject * getPySipRequest(const AmSipRequest& r) +{ + PYLOCK; + + AmSipRequest* req_cpy = new AmSipRequest(r); + return IvrSipRequest_FromPtr(req_cpy); +} + +void IvrDialog::onSipReply(const AmSipReply& r) { + callPyEventHandler("onSipReply","O",getPySipReply(r)); AmB2BSession::onSipReply(r); } void IvrDialog::onSipRequest(const AmSipRequest& r){ - AmSipRequest* req_cpy = new AmSipRequest(r); - callPyEventHandler("onSipRequest","O", IvrSipRequest_FromPtr(req_cpy)); + callPyEventHandler("onSipRequest","O", getPySipRequest(r)); AmB2BSession::onSipRequest(r); }