[Opalvoip-svn] SF.net SVN: opalvoip:[32841] opal/branches/v3_14
Brought to you by:
csoutheren,
rjongbloed
From: <rjo...@us...> - 2014-09-28 22:46:41
|
Revision: 32841 http://sourceforge.net/p/opalvoip/code/32841 Author: rjongbloed Date: 2014-09-28 22:46:31 +0000 (Sun, 28 Sep 2014) Log Message: ----------- Added ability to send completely arbitrary INVITE response code. Modified Paths: -------------- opal/branches/v3_14/include/opal/connection.h opal/branches/v3_14/src/sip/sipcon.cxx Modified: opal/branches/v3_14/include/opal/connection.h =================================================================== --- opal/branches/v3_14/include/opal/connection.h 2014-09-28 02:57:49 UTC (rev 32840) +++ opal/branches/v3_14/include/opal/connection.h 2014-09-28 22:46:31 UTC (rev 32841) @@ -436,7 +436,8 @@ EndedByMediaFailed, ///< Call cleared due to loss of media flow. EndedByCallCompletedElsewhere, ///< Call cleared because it was answered by another extension. EndedByCertificateAuthority, ///< When using TLS, the remote certifcate was not authenticated - EndedByIllegalAddress ///< Destination Address format was incorrect format + EndedByIllegalAddress, ///< Destination Address format was incorrect format + EndedByCustomCode ///< End call with custom protocol specific code (e.g. SIP) ); struct CallEndReason { @@ -452,8 +453,12 @@ __inline int AsInteger() const { return code|(q931<<8); } - CallEndReasonCodes code:8; // Normalised OPAL code - unsigned q931:8; // PSTN Interworking code, actually Q.850 + CallEndReasonCodes code:8; // Normalised OPAL code + union + { + unsigned q931:16; // PSTN Interworking code, actually Q.850 + unsigned custom:16; // Custom code + }; }; #if PTRACING Modified: opal/branches/v3_14/src/sip/sipcon.cxx =================================================================== --- opal/branches/v3_14/src/sip/sipcon.cxx 2014-09-28 02:57:49 UTC (rev 32840) +++ opal/branches/v3_14/src/sip/sipcon.cxx 2014-09-28 22:46:31 UTC (rev 32841) @@ -70,6 +70,9 @@ static SIP_PDU::StatusCodes GetStatusCodeFromReason(OpalConnection::CallEndReason reason) { + if (reason.code == OpalConnection::EndedByCustomCode) + return reason.custom < 200 ? SIP_PDU::Failure_InternalServerError : SIP_PDU::StatusCodes(reason.custom); + static const struct { unsigned q931Code; SIP_PDU::StatusCodes sipCode; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |