Thread: [Opalvoip-svn] SF.net SVN: opalvoip:[28753] opal/branches/v3_12 (Page 2)
Brought to you by:
csoutheren,
rjongbloed
From: <rjo...@us...> - 2013-01-03 02:46:38
|
Revision: 28753 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28753&view=rev Author: rjongbloed Date: 2013-01-03 02:46:32 +0000 (Thu, 03 Jan 2013) Log Message: ----------- Applied patch ID: 3598019 "Fix for OpalJitterBufferThread method overloading", thanks Valeriy V. Argunov Modified Paths: -------------- opal/branches/v3_12/include/rtp/jitter.h opal/branches/v3_12/src/rtp/jitter.cxx Modified: opal/branches/v3_12/include/rtp/jitter.h =================================================================== --- opal/branches/v3_12/include/rtp/jitter.h 2013-01-03 02:43:41 UTC (rev 28752) +++ opal/branches/v3_12/include/rtp/jitter.h 2013-01-03 02:46:32 UTC (rev 28753) @@ -223,7 +223,8 @@ Override of base class so can terminate caller when shutting down. */ virtual PBoolean ReadData( - RTP_DataFrame & frame ///< Frame to extract from jitter buffer + RTP_DataFrame & frame, ///< Frame to extract from jitter buffer + const PTimeInterval & tick = 0 ///< Real time tick for packet removal ); /**This class instance collects data from the outside world in this Modified: opal/branches/v3_12/src/rtp/jitter.cxx =================================================================== --- opal/branches/v3_12/src/rtp/jitter.cxx 2013-01-03 02:43:41 UTC (rev 28752) +++ opal/branches/v3_12/src/rtp/jitter.cxx 2013-01-03 02:46:32 UTC (rev 28753) @@ -651,10 +651,10 @@ } -PBoolean OpalJitterBufferThread::ReadData(RTP_DataFrame & frame) +PBoolean OpalJitterBufferThread::ReadData(RTP_DataFrame & frame, const PTimeInterval & tick) { if (m_running) - return OpalJitterBuffer::ReadData(frame); + return OpalJitterBuffer::ReadData(frame, tick); PTRACE(3, "Jitter\tShutting down " << *this); return false; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-03 06:37:40
|
Revision: 28756 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28756&view=rev Author: rjongbloed Date: 2013-01-03 06:37:34 +0000 (Thu, 03 Jan 2013) Log Message: ----------- Fixed VS2012 incompatibility Modified Paths: -------------- opal/branches/v3_12/include/im/msrp.h opal/branches/v3_12/src/im/msrp.cxx Modified: opal/branches/v3_12/include/im/msrp.h =================================================================== --- opal/branches/v3_12/include/im/msrp.h 2013-01-03 06:36:28 UTC (rev 28755) +++ opal/branches/v3_12/include/im/msrp.h 2013-01-03 06:37:34 UTC (rev 28756) @@ -251,10 +251,10 @@ PThread * m_listenerThread; PMutex m_connectionInfoMapAddMutex; - typedef std::map<std::string, PSafePtr<Connection> > ConnectionInfoMapType; + typedef std::map<PString, PSafePtr<Connection> > ConnectionInfoMapType; ConnectionInfoMapType m_connectionInfoMap; - typedef std::map<std::string, CallBack> CallBackMap; + typedef std::map<PString, CallBack> CallBackMap; CallBackMap m_callBacks; PMutex m_callBacksMutex; Modified: opal/branches/v3_12/src/im/msrp.cxx =================================================================== --- opal/branches/v3_12/src/im/msrp.cxx 2013-01-03 06:36:28 UTC (rev 28755) +++ opal/branches/v3_12/src/im/msrp.cxx 2013-01-03 06:37:34 UTC (rev 28756) @@ -592,7 +592,7 @@ { PWaitAndSignal m(m_connectionInfoMapAddMutex); connection.SetSafetyMode(PSafeReference); - m_connectionInfoMap.insert(ConnectionInfoMapType::value_type((const char *)remoteAddr.AsString(), connection)); + m_connectionInfoMap[remoteAddr.AsString()] = connection; connection.SetSafetyMode(PSafeReadWrite); } connection->StartHandler(); @@ -648,7 +648,7 @@ } connectionPtr = PSafePtr<Connection>(new Connection(*this, connectionKey)); - m_connectionInfoMap.insert(ConnectionInfoMapType::value_type(connectionKey, connectionPtr)); + m_connectionInfoMap[connectionKey] = connectionPtr; } connectionPtr.SetSafetyMode(PSafeReadWrite); @@ -692,7 +692,7 @@ PString key(localUrl.AsString() + '\t' + remoteUrl.AsString()); PTRACE(2, "MSRP\tRegistering callback for incoming MSRP messages with '" << key << "'"); PWaitAndSignal m(m_callBacksMutex); - m_callBacks.insert(CallBackMap::value_type(key, CallBack(notifier))); + m_callBacks[key] = notifier; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-07 04:11:15
|
Revision: 28778 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28778&view=rev Author: rjongbloed Date: 2013-01-07 04:11:08 +0000 (Mon, 07 Jan 2013) Log Message: ----------- 28691-28777 from opal/branches/v3_10: Fixed IM dialog in OpenPhone, should be resizable. Alos fixed typo, and possible crash with Presence buddy in speeed dials.Merged revision(s) Modified Paths: -------------- opal/branches/v3_12/samples/openphone/main.cxx opal/branches/v3_12/samples/openphone/openphone.wxg opal/branches/v3_12/samples/openphone/openphone.xrc Property Changed: ---------------- opal/branches/v3_12/ Property changes on: opal/branches/v3_12 ___________________________________________________________________ Modified: svn:mergeinfo - /opal/branches/EpsilonEridani:27633,27638,27727,27881-27882,27905,27935,28035,28305,28308,28439,28454,28534 /opal/branches/Luyten_A:24769-25572 /opal/branches/Sirius_A:23371,23374,23549,23560,23770 /opal/branches/Sirius_B:24566,24579,24589,24594,24596,24601,24604,24635-24636,24639-24642,24644,24651,24653,24655-24656,24683,24685,24714-24717,24771,24777-24783,24842,24845,24858,24947,24954-24970,24980,25085 /opal/branches/autoconf:20594-21001 /opal/branches/csoutheren/LalandeBranch1:23412-23413,23415,23424,23510,23516,23553,23577,23607,23669,23724,23742-23744,23747-23748,23755,23758,23780,23788,23848,23850,23856 /opal/branches/rjongbloed/BarnardPlus:20584,20656,20749,20751,20756,20762,20786,20789,20814,20820,20829,20831,20841,20843,20923,20927,20938,22016-22017,22518,22582,22941 /opal/branches/v3_10:25182-28690 /opal/branches/v3_2:21143,21220,21227,21253,21455 /opal/branches/v3_4:21060,21062,21088,21092,21111,21113,21115,21119,21143,21148,21151-21152,21155,21158,21184,21188,21253,21265-21266,21283-21284,21298,21300,21303,21307,21309,21311,21327,21331,21333,21359,21367,21369,21488,21556,21564-21565,21568,21570,21620,21625,21631,21748,21751,21756,21759,21761,21767,21770,22246,23044,23140,23143,23286 /opal/branches/v3_6:22169,22178,22184,22186,22197,22204,22216,22251,22253,22255,22258,22260,22291,22296,22300,22306,22308,22313,22319,22336,22353,22358,22436,22447,22449,22497,22511,22517,22519-22521,22527,22536,22538,22589,22596,22599,22617,22620,22622,22630,22640,22655,22675,22682,22726-22728,22730,22733,22738,22745-22746,22800,22820-22821,22842,22844-22845,22851,22853,22889,22896,22902,22904,22906,22918,22924,22928,22946,22965,22967,22976,22978,22980,22982,22994,23028,23123,23125-23126,23128,23157,23165,23173,23175,23183,23294,23341,23465,23467,23474,23521,23829,24346,24809 /opal/branches/v3_8:24025,24027,24029,24036,24038,24040,24042,24048,24050,24058,24061,24068,24071,24074,24076,24080,24082,24086-24087,24092,24099,24101,24105,24107,24109,24111,24114,24116-24117,24120-24121,24125,24127,24130,24132,24134,24138,24140,24144,24146,24148,24150-24151,24154,24156,24158,24162,24170,24218,24245,24257,24261,24340,24362-24363,24365,24369,24373,24422,24440,24442,24447,24489,24504,24506,24532,24536,24545,24547,24552,24554,24614,24678,24687,24699,24705,24775,24833,24861,24903,25146 /opal/trunk:28722 /ptlib/branches/v2_8:24136 /ptlib/trunk:20820 + /opal/branches/EpsilonEridani:27633,27638,27727,27881-27882,27905,27935,28035,28305,28308,28439,28454,28534 /opal/branches/Luyten_A:24769-25572 /opal/branches/Sirius_A:23371,23374,23549,23560,23770 /opal/branches/Sirius_B:24566,24579,24589,24594,24596,24601,24604,24635-24636,24639-24642,24644,24651,24653,24655-24656,24683,24685,24714-24717,24771,24777-24783,24842,24845,24858,24947,24954-24970,24980,25085 /opal/branches/autoconf:20594-21001 /opal/branches/csoutheren/LalandeBranch1:23412-23413,23415,23424,23510,23516,23553,23577,23607,23669,23724,23742-23744,23747-23748,23755,23758,23780,23788,23848,23850,23856 /opal/branches/rjongbloed/BarnardPlus:20584,20656,20749,20751,20756,20762,20786,20789,20814,20820,20829,20831,20841,20843,20923,20927,20938,22016-22017,22518,22582,22941 /opal/branches/v3_10:25182-28777 /opal/branches/v3_2:21143,21220,21227,21253,21455 /opal/branches/v3_4:21060,21062,21088,21092,21111,21113,21115,21119,21143,21148,21151-21152,21155,21158,21184,21188,21253,21265-21266,21283-21284,21298,21300,21303,21307,21309,21311,21327,21331,21333,21359,21367,21369,21488,21556,21564-21565,21568,21570,21620,21625,21631,21748,21751,21756,21759,21761,21767,21770,22246,23044,23140,23143,23286 /opal/branches/v3_6:22169,22178,22184,22186,22197,22204,22216,22251,22253,22255,22258,22260,22291,22296,22300,22306,22308,22313,22319,22336,22353,22358,22436,22447,22449,22497,22511,22517,22519-22521,22527,22536,22538,22589,22596,22599,22617,22620,22622,22630,22640,22655,22675,22682,22726-22728,22730,22733,22738,22745-22746,22800,22820-22821,22842,22844-22845,22851,22853,22889,22896,22902,22904,22906,22918,22924,22928,22946,22965,22967,22976,22978,22980,22982,22994,23028,23123,23125-23126,23128,23157,23165,23173,23175,23183,23294,23341,23465,23467,23474,23521,23829,24346,24809 /opal/branches/v3_8:24025,24027,24029,24036,24038,24040,24042,24048,24050,24058,24061,24068,24071,24074,24076,24080,24082,24086-24087,24092,24099,24101,24105,24107,24109,24111,24114,24116-24117,24120-24121,24125,24127,24130,24132,24134,24138,24140,24144,24146,24148,24150-24151,24154,24156,24158,24162,24170,24218,24245,24257,24261,24340,24362-24363,24365,24369,24373,24422,24440,24442,24447,24489,24504,24506,24532,24536,24545,24547,24552,24554,24614,24678,24687,24699,24705,24775,24833,24861,24903,25146 /opal/trunk:28722 /ptlib/branches/v2_8:24136 /ptlib/trunk:20820 Modified: opal/branches/v3_12/samples/openphone/main.cxx =================================================================== --- opal/branches/v3_12/samples/openphone/main.cxx 2013-01-07 04:04:40 UTC (rev 28777) +++ opal/branches/v3_12/samples/openphone/main.cxx 2013-01-07 04:11:08 UTC (rev 28778) @@ -1351,7 +1351,7 @@ int count = m_speedDials->GetItemCount(); for (int i = 0; i < count; i++) { SpeedDialInfo * info = (SpeedDialInfo *)m_speedDials->GetItemData(i); - if (info != NULL && MonitorPresence(info->m_Presentity, info->m_Address, true)) + if (info != NULL && MonitorPresence(info->m_Presentity, info->m_Address, true) && m_speedDialDetail) m_speedDials->SetItem(i, e_StatusColumn, IconStatusNames[Icon_Unknown]); } #endif // OPAL_SIP Modified: opal/branches/v3_12/samples/openphone/openphone.wxg =================================================================== --- opal/branches/v3_12/samples/openphone/openphone.wxg 2013-01-07 04:04:40 UTC (rev 28777) +++ opal/branches/v3_12/samples/openphone/openphone.wxg 2013-01-07 04:11:08 UTC (rev 28778) @@ -5775,7 +5775,7 @@ </object> <object class="wxDialog" name="RegistrationDialog" base="EditDialog"> <style>wxDEFAULT_DIALOG_STYLE</style> - <title>Registration/Subscribtions Configuration</title> + <title>Registration/Subscriptions Configuration</title> <object class="wxBoxSizer" name="sizer_48" base="EditBoxSizer"> <orient>wxVERTICAL</orient> <object class="sizeritem"> @@ -6283,7 +6283,7 @@ </object> </object> <object class="IMDialog" name="IMDialog" base="EditDialog"> - <style>wxDEFAULT_DIALOG_STYLE</style> + <style>wxCAPTION|wxCLOSE_BOX|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX</style> <title>IMDialog</title> <size>350, 200d</size> <object class="wxBoxSizer" name="sizer_90" base="EditBoxSizer"> Modified: opal/branches/v3_12/samples/openphone/openphone.xrc =================================================================== --- opal/branches/v3_12/samples/openphone/openphone.xrc 2013-01-07 04:04:40 UTC (rev 28777) +++ opal/branches/v3_12/samples/openphone/openphone.xrc 2013-01-07 04:11:08 UTC (rev 28778) @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="ISO-8859-1"?> -<!-- generated by wxGlade 0.6.3 on Mon Dec 17 18:07:32 2012 --> +<!-- generated by wxGlade 0.6.3 on Mon Jan 07 15:08:04 2013 --> <resource version="2.3.0.1"> <object class="wxPanel" name="AnswerPanel" subclass="AnswerPanel"> @@ -1321,7 +1321,7 @@ </object> <object class="wxDialog" name="RegistrationDialog"> <style>wxDEFAULT_DIALOG_STYLE</style> - <title>Registration/Subscribtions Configuration</title> + <title>Registration/Subscriptions Configuration</title> <object class="wxBoxSizer"> <orient>wxVERTICAL</orient> <object class="sizeritem"> @@ -1533,7 +1533,7 @@ </object> </object> <object class="wxDialog" name="IMDialog" subclass="IMDialog"> - <style>wxDEFAULT_DIALOG_STYLE</style> + <style>wxCAPTION|wxRESIZE_BORDER|wxCLOSE_BOX|wxMAXIMIZE_BOX|wxMINIMIZE_BOX</style> <size>350, 200d</size> <title>IMDialog</title> <object class="wxBoxSizer"> @@ -1680,53 +1680,106 @@ </object> </object> </object> - <object class="wxDialog" name="AudioDevicesDialog"> + <object class="wxDialog" name="StartVideoDialog"> <style>wxDEFAULT_DIALOG_STYLE</style> - <title>Audio Devices for Call</title> + <size>200,100d</size> + <title>Start Video Channel</title> <object class="wxBoxSizer"> <orient>wxVERTICAL</orient> <object class="sizeritem"> - <flag>wxALL|wxEXPAND</flag> - <border>8</border> - <object class="wxComboBox" name="PlayDevice"> - <selection>-1</selection> - <content> - </content> + <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxVERTICAL</orient> + <object class="sizeritem"> + <flag>wxLEFT|wxRIGHT|wxTOP|wxEXPAND|wxALIGN_CENTER_VERTICAL</flag> + <border>16</border> + <object class="wxComboBox" name="VideoGrabDevice"> + <selection>-1</selection> + <content> + </content> + </object> + </object> + <object class="spacer"> + <size>4, 4</size> + <option>1</option> + <flag>wxEXPAND</flag> + </object> + <object class="sizeritem"> + <option>1</option> + <flag>wxEXPAND</flag> + <object class="wxBoxSizer"> + <orient>wxHORIZONTAL</orient> + <object class="sizeritem"> + <flag>wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> + <border>16</border> + <object class="wxCheckBox" name="VideoPreview"> + <label>Preview</label> + </object> + </object> + <object class="sizeritem"> + <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL</flag> + <border>16</border> + <object class="wxStaticText" name="label_99"> + <label>Content Role:</label> + </object> + </object> + <object class="sizeritem"> + <option>1</option> + <flag>wxRIGHT|wxALIGN_CENTER_VERTICAL</flag> + <border>16</border> + <object class="wxChoice" name="VideoContentRole"> + <selection>0</selection> + <content> + <item>No Role</item> + <item>Presentation</item> + <item>Main (Live)</item> + <item>Speaker</item> + <item>Sign Language</item> + </content> + </object> + </object> + </object> + </object> + <object class="spacer"> + <size>4, 4</size> + <option>1</option> + <flag>wxEXPAND</flag> + </object> </object> </object> <object class="sizeritem"> - <flag>wxALL|wxEXPAND</flag> - <border>8</border> - <object class="wxComboBox" name="RecordDevice"> - <selection>-1</selection> - <content> - </content> - </object> - </object> - <object class="sizeritem"> - <option>1</option> <flag>wxEXPAND</flag> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> <object class="spacer"> - <size>48, 48</size> + <size>64, 4</size> + <option>3</option> + <flag>wxEXPAND</flag> </object> <object class="sizeritem"> - <flag>wxALL</flag> + <flag>wxTOP|wxBOTTOM</flag> <border>16</border> <object class="wxButton" name="wxID_OK"> <label>OK</label> </object> </object> + <object class="spacer"> + <size>32, 4</size> + <option>1</option> + <flag>wxEXPAND</flag> + </object> <object class="sizeritem"> - <flag>wxALL</flag> + <flag>wxTOP|wxBOTTOM</flag> <border>16</border> <object class="wxButton" name="wxID_CANCEL"> <label>Cancel</label> </object> </object> <object class="spacer"> - <size>48, 48</size> + <size>64, 4</size> + <option>3</option> + <flag>wxEXPAND</flag> </object> </object> </object> @@ -4877,16 +4930,16 @@ </object> </object> </object> - <object class="wxDialog" name="PresenceDialog"> + <object class="wxDialog" name="AudioDevicesDialog"> <style>wxDEFAULT_DIALOG_STYLE</style> - <title>Change My Presence Status</title> + <title>Audio Devices for Call</title> <object class="wxBoxSizer"> <orient>wxVERTICAL</orient> <object class="sizeritem"> <flag>wxALL|wxEXPAND</flag> <border>8</border> - <object class="wxChoice" name="PresenceAddress"> - <selection>0</selection> + <object class="wxComboBox" name="PlayDevice"> + <selection>-1</selection> <content> </content> </object> @@ -4894,20 +4947,20 @@ <object class="sizeritem"> <flag>wxALL|wxEXPAND</flag> <border>8</border> - <object class="wxComboBox" name="PresenceState"> + <object class="wxComboBox" name="RecordDevice"> <selection>-1</selection> <content> - <item>Back</item> - <item>Busy</item> - <item>Away</item> - <item>Invisible</item> </content> </object> </object> <object class="sizeritem"> - <flag>wxALIGN_CENTER_HORIZONTAL</flag> + <option>1</option> + <flag>wxEXPAND</flag> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> + <object class="spacer"> + <size>48, 48</size> + </object> <object class="sizeritem"> <flag>wxALL</flag> <border>16</border> @@ -4922,6 +4975,9 @@ <label>Cancel</label> </object> </object> + <object class="spacer"> + <size>48, 48</size> + </object> </object> </object> </object> @@ -5133,107 +5189,51 @@ </object> </object> </object> - <object class="wxDialog" name="StartVideoDialog"> + <object class="wxDialog" name="PresenceDialog"> <style>wxDEFAULT_DIALOG_STYLE</style> - <size>200,100d</size> - <title>Start Video Channel</title> + <title>Change My Presence Status</title> <object class="wxBoxSizer"> <orient>wxVERTICAL</orient> <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxVERTICAL</orient> - <object class="sizeritem"> - <flag>wxLEFT|wxRIGHT|wxTOP|wxEXPAND|wxALIGN_CENTER_VERTICAL</flag> - <border>16</border> - <object class="wxComboBox" name="VideoGrabDevice"> - <selection>-1</selection> - <content> - </content> - </object> - </object> - <object class="spacer"> - <size>4, 4</size> - <option>1</option> - <flag>wxEXPAND</flag> - </object> - <object class="sizeritem"> - <option>1</option> - <flag>wxEXPAND</flag> - <object class="wxBoxSizer"> - <orient>wxHORIZONTAL</orient> - <object class="sizeritem"> - <flag>wxLEFT|wxRIGHT|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL</flag> - <border>16</border> - <object class="wxCheckBox" name="VideoPreview"> - <label>Preview</label> - </object> - </object> - <object class="sizeritem"> - <flag>wxLEFT|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL</flag> - <border>16</border> - <object class="wxStaticText" name="label_99"> - <label>Content Role:</label> - </object> - </object> - <object class="sizeritem"> - <option>1</option> - <flag>wxRIGHT|wxALIGN_CENTER_VERTICAL</flag> - <border>16</border> - <object class="wxChoice" name="VideoContentRole"> - <selection>0</selection> - <content> - <item>No Role</item> - <item>Presentation</item> - <item>Main (Live)</item> - <item>Speaker</item> - <item>Sign Language</item> - </content> - </object> - </object> - </object> - </object> - <object class="spacer"> - <size>4, 4</size> - <option>1</option> - <flag>wxEXPAND</flag> - </object> + <flag>wxALL|wxEXPAND</flag> + <border>8</border> + <object class="wxChoice" name="PresenceAddress"> + <selection>0</selection> + <content> + </content> </object> </object> <object class="sizeritem"> - <flag>wxEXPAND</flag> + <flag>wxALL|wxEXPAND</flag> + <border>8</border> + <object class="wxComboBox" name="PresenceState"> + <selection>-1</selection> + <content> + <item>Back</item> + <item>Busy</item> + <item>Away</item> + <item>Invisible</item> + </content> + </object> + </object> + <object class="sizeritem"> + <flag>wxALIGN_CENTER_HORIZONTAL</flag> <object class="wxBoxSizer"> <orient>wxHORIZONTAL</orient> - <object class="spacer"> - <size>64, 4</size> - <option>3</option> - <flag>wxEXPAND</flag> - </object> <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM</flag> + <flag>wxALL</flag> <border>16</border> <object class="wxButton" name="wxID_OK"> <label>OK</label> </object> </object> - <object class="spacer"> - <size>32, 4</size> - <option>1</option> - <flag>wxEXPAND</flag> - </object> <object class="sizeritem"> - <flag>wxTOP|wxBOTTOM</flag> + <flag>wxALL</flag> <border>16</border> <object class="wxButton" name="wxID_CANCEL"> <label>Cancel</label> </object> </object> - <object class="spacer"> - <size>64, 4</size> - <option>3</option> - <flag>wxEXPAND</flag> - </object> </object> </object> </object> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-07 05:52:49
|
Revision: 28783 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28783&view=rev Author: rjongbloed Date: 2013-01-07 05:52:43 +0000 (Mon, 07 Jan 2013) Log Message: ----------- Moved initialisation order around so endpoints are created before media formats manipulated. This assures media formats required by certain endpoints, e.g. userinput/RFC2833, are correcting instantiated. Modified Paths: -------------- opal/branches/v3_12/samples/faxopal/main.cxx opal/branches/v3_12/src/opal/console_mgr.cxx Modified: opal/branches/v3_12/samples/faxopal/main.cxx =================================================================== --- opal/branches/v3_12/samples/faxopal/main.cxx 2013-01-07 05:50:28 UTC (rev 28782) +++ opal/branches/v3_12/samples/faxopal/main.cxx 2013-01-07 05:52:43 UTC (rev 28783) @@ -106,17 +106,24 @@ return false; } + MyFaxEndPoint * faxEP = new MyFaxEndPoint(*this); + if (!faxEP->IsAvailable()) { + cerr << "No fax codecs, SpanDSP plug-in probably not installed." << endl; + return false; + } + + static char const * FormatMask[] = { "!G.711*", "!@fax", "!@userinput" }; + SetMediaFormatMask(PStringArray(PARRAYSIZE(FormatMask), FormatMask)); + PString prefix = args.HasOption('a') && !args.HasOption('A') ? "fax" : "t38"; - if (args.HasOption('q')) + bool quiet = args.HasOption('q'); + if (quiet) cout.rdbuf(NULL); - if (!OpalManagerConsole::Initialise(args, !args.HasOption('q'), prefix + ":" + args[0] + ";receive")) + if (!OpalManagerConsole::Initialise(args, !quiet, prefix + ":" + args[0] + ";receive")) return false; - static char const * FormatMask[] = { "!G.711*", "!@fax" }; - SetMediaFormatMask(PStringArray(PARRAYSIZE(FormatMask), FormatMask)); - cout << "Fax Mode: "; if (args.HasOption('A')) { OpalMediaType::Fax()->SetAutoStart(OpalMediaType::ReceiveTransmit); @@ -129,16 +136,9 @@ cout << "Switch to T.38"; cout << '\n'; - // Create audio or T.38 fax endpoint. - MyFaxEndPoint * fax = new MyFaxEndPoint(*this); if (args.HasOption('d')) - fax->SetDefaultDirectory(args.GetOptionString('d')); + faxEP->SetDefaultDirectory(args.GetOptionString('d')); - if (!fax->IsAvailable()) { - cerr << "No fax codecs, SpanDSP plug-in probably not installed." << endl; - return false; - } - OpalConnection::StringOptions stringOptions; if (args.HasOption("station-id")) { @@ -180,7 +180,7 @@ cout << "Completion timeout is " << m_competionTimeout.AsString(0, PTimeInterval::IncludeDays) << '\n'; if (args.GetCount() == 1) - cout << "Receive directory: " << fax->GetDefaultDirectory() << "\n" + cout << "Receive directory: " << faxEP->GetDefaultDirectory() << "\n" "\n" "Awaiting incoming fax, saving as " << args[0]; else { Modified: opal/branches/v3_12/src/opal/console_mgr.cxx =================================================================== --- opal/branches/v3_12/src/opal/console_mgr.cxx 2013-01-07 05:50:28 UTC (rev 28782) +++ opal/branches/v3_12/src/opal/console_mgr.cxx 2013-01-07 05:52:43 UTC (rev 28783) @@ -201,45 +201,13 @@ PTRACE_INITIALISE(args); - if (args.HasOption("option")) { - PStringArray options = args.GetOptionString("option").Lines(); - for (PINDEX i = 0; i < options.GetSize(); ++i) { - PRegularExpression parse("\\([A-Za-z].*\\):\\([A-Za-z].*\\)=\\(.*\\)"); - PStringArray subexpressions(4); - if (!parse.Execute(options[i], subexpressions)) { - cerr << "Invalid media format option \"" << options[i] << '"' << endl; - return false; - } - - OpalMediaFormat format(subexpressions[1]); - if (!format.IsValid()) { - cerr << "Unknown media format \"" << subexpressions[1] << '"' << endl; - return false; - } - if (!format.HasOption(subexpressions[2])) { - cerr << "Unknown option name \"" << subexpressions[2] << "\"" - " in media format \"" << subexpressions[1] << '"' << endl; - return false; - } - if (!format.SetOptionValue(subexpressions[2], subexpressions[3])) { - cerr << "Ilegal value \"" << subexpressions[3] << "\"" - " for option name \"" << subexpressions[2] << "\"" - " in media format \"" << subexpressions[1] << '"' << endl; - return false; - } - OpalMediaFormat::SetRegisteredMediaFormat(format); - } - } - - if (args.HasOption("disable")) - SetMediaFormatMask(args.GetOptionString("disable").Lines()); - if (args.HasOption("prefer")) - SetMediaFormatOrder(args.GetOptionString("prefer").Lines()); + if (args.HasOption("user")) + SetDefaultUserName(args.GetOptionString("user")); if (verbose) { - OpalMediaFormatList formats = OpalMediaFormat::GetAllRegisteredMediaFormats(); - formats.Remove(GetMediaFormatMask()); - formats.Reorder(GetMediaFormatOrder()); - cout << "Media Formats: " << setfill(',') << formats << setfill(' ') << endl; + cout << "Default user name: " << GetDefaultUserName(); + if (args.HasOption("password")) + cout << " (with password)"; + cout << '\n'; } if (args.HasOption("portbase")) { @@ -333,9 +301,6 @@ } #endif // P_NAT - if (args.HasOption("user")) - SetDefaultUserName(args.GetOptionString("user")); - if (verbose) { PIPSocket::InterfaceTable interfaceTable; if (PIPSocket::GetInterfaceTable(interfaceTable)) @@ -529,6 +494,47 @@ cout << "tel URI mapped to: " << ep->GetPrefixName() << '\n'; } + if (args.HasOption("option")) { + PStringArray options = args.GetOptionString("option").Lines(); + for (PINDEX i = 0; i < options.GetSize(); ++i) { + PRegularExpression parse("\\([A-Za-z].*\\):\\([A-Za-z].*\\)=\\(.*\\)"); + PStringArray subexpressions(4); + if (!parse.Execute(options[i], subexpressions)) { + cerr << "Invalid media format option \"" << options[i] << '"' << endl; + return false; + } + + OpalMediaFormat format(subexpressions[1]); + if (!format.IsValid()) { + cerr << "Unknown media format \"" << subexpressions[1] << '"' << endl; + return false; + } + if (!format.HasOption(subexpressions[2])) { + cerr << "Unknown option name \"" << subexpressions[2] << "\"" + " in media format \"" << subexpressions[1] << '"' << endl; + return false; + } + if (!format.SetOptionValue(subexpressions[2], subexpressions[3])) { + cerr << "Ilegal value \"" << subexpressions[3] << "\"" + " for option name \"" << subexpressions[2] << "\"" + " in media format \"" << subexpressions[1] << '"' << endl; + return false; + } + OpalMediaFormat::SetRegisteredMediaFormat(format); + } + } + + if (args.HasOption("disable")) + SetMediaFormatMask(args.GetOptionString("disable").Lines()); + if (args.HasOption("prefer")) + SetMediaFormatOrder(args.GetOptionString("prefer").Lines()); + if (verbose) { + OpalMediaFormatList formats = OpalMediaFormat::GetAllRegisteredMediaFormats(); + formats.Remove(GetMediaFormatMask()); + formats.Reorder(GetMediaFormatOrder()); + cout << "Media Formats: " << setfill(',') << formats << setfill(' ') << endl; + } + return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-08 01:30:19
|
Revision: 28800 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28800&view=rev Author: rjongbloed Date: 2013-01-08 01:30:13 +0000 (Tue, 08 Jan 2013) Log Message: ----------- Fixed compile without video Modified Paths: -------------- opal/branches/v3_12/samples/callgen/main.cxx opal/branches/v3_12/src/opal/console_mgr.cxx opal/branches/v3_12/src/opal/manager.cxx Modified: opal/branches/v3_12/samples/callgen/main.cxx =================================================================== --- opal/branches/v3_12/samples/callgen/main.cxx 2013-01-08 01:20:38 UTC (rev 28799) +++ opal/branches/v3_12/samples/callgen/main.cxx 2013-01-08 01:30:13 UTC (rev 28800) @@ -122,10 +122,6 @@ pcss->SetSoundChannelRecordDevice("Null Audio"); pcss->SetSoundChannelPlayDevice("Null Audio"); - videoInputDevice.deviceName = "Fake/NTSCTest"; - videoOutputDevice.deviceName = "NULL"; - videoPreviewDevice.deviceName.MakeEmpty(); // Don't want any preview for video, there could be ... lots - if (!args.HasOption('W')) cout << "Not using outgoing audio file." << endl; else { @@ -142,6 +138,11 @@ } } +#if OPAL_VIDEO + videoInputDevice.deviceName = "Fake/NTSCTest"; + videoOutputDevice.deviceName = "NULL"; + videoPreviewDevice.deviceName.MakeEmpty(); // Don't want any preview for video, there could be ... lots + if (!args.HasOption('Y')) cout << "Not using outgoing video file." << endl; else { @@ -156,6 +157,7 @@ PTRACE(1, "CallGen\tOutgoing video file \"" << yuvFile << "\" does not exist"); } } +#endif // OPAL_VIDEO { PString incomingMediaDirectory = args.GetOptionString('I'); @@ -166,7 +168,9 @@ incomingMediaDirectory = PDirectory(incomingMediaDirectory); cout << "Using incoming media directory: " << incomingMediaDirectory << endl; pcss->SetSoundChannelPlayDevice(incomingMediaDirectory + "*.wav"); +#if OPAL_VIDEO videoOutputDevice.deviceName = incomingMediaDirectory + "*.yuv"; +#endif } else { cout << "Could not create incoming media directory \"" << incomingMediaDirectory << "\"!" << endl; Modified: opal/branches/v3_12/src/opal/console_mgr.cxx =================================================================== --- opal/branches/v3_12/src/opal/console_mgr.cxx 2013-01-08 01:20:38 UTC (rev 28799) +++ opal/branches/v3_12/src/opal/console_mgr.cxx 2013-01-08 01:30:13 UTC (rev 28800) @@ -246,8 +246,10 @@ if (args.HasOption("aud-qos")) SetMediaQoS(OpalMediaType::Audio(), args.GetOptionString("aud-qos")); +#if OPAL_VIDEO if (args.HasOption("vid-qos")) SetMediaQoS(OpalMediaType::Video(), args.GetOptionString("vid-qos")); +#endif if (args.HasOption("rtp-size")) { unsigned size = args.GetOptionString("rtp-size").AsUnsigned(); @@ -263,7 +265,9 @@ "UDP ports: " << GetUDPPortBase() << '-' << GetUDPPortMax() << "\n" "RTP ports: " << GetRtpIpPortBase() << '-' << GetRtpIpPortMax() << "\n" "Audio QoS: " << GetMediaQoS(OpalMediaType::Audio()) << "\n" +#if OPAL_VIDEO "Video QoS: " << GetMediaQoS(OpalMediaType::Video()) << "\n" +#endif "RTP payload size: " << GetMaxRtpPayloadSize() << '\n'; #if P_NAT Modified: opal/branches/v3_12/src/opal/manager.cxx =================================================================== --- opal/branches/v3_12/src/opal/manager.cxx 2013-01-08 01:20:38 UTC (rev 28799) +++ opal/branches/v3_12/src/opal/manager.cxx 2013-01-08 01:30:13 UTC (rev 28800) @@ -275,9 +275,10 @@ udpPorts.current = udpPorts.base = udpPorts.max = 0; m_mediaQoS[OpalMediaType::Audio()].m_type = PIPSocket::VoiceQoS; + +#if OPAL_VIDEO m_mediaQoS[OpalMediaType::Video()].m_type = PIPSocket::VideoQoS; -#if OPAL_VIDEO PStringArray devices = PVideoInputDevice::GetDriversDeviceNames("*"); // Get all devices on all drivers PINDEX i; for (i = 0; i < devices.GetSize(); ++i) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-08 01:33:14
|
Revision: 28801 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28801&view=rev Author: rjongbloed Date: 2013-01-08 01:33:07 +0000 (Tue, 08 Jan 2013) Log Message: ----------- Cannot have plug in based fax (SpanDSP) without statistics enabled. Needed for final fax status. Modified Paths: -------------- opal/branches/v3_12/include/opal/buildopts.h.in opal/branches/v3_12/include/t38/t38proto.h opal/branches/v3_12/src/codec/opalpluginmgr.cxx opal/branches/v3_12/src/t38/t38proto.cxx Modified: opal/branches/v3_12/include/opal/buildopts.h.in =================================================================== --- opal/branches/v3_12/include/opal/buildopts.h.in 2013-01-08 01:30:13 UTC (rev 28800) +++ opal/branches/v3_12/include/opal/buildopts.h.in 2013-01-08 01:33:07 UTC (rev 28801) @@ -230,7 +230,7 @@ // T.38 Fax #undef OPAL_T38_CAPABILITY -#if OPAL_T38_CAPABILITY && OPAL_PTLIB_ASN +#if OPAL_T38_CAPABILITY && OPAL_PTLIB_ASN && OPAL_STATISTICS #undef OPAL_FAX #endif Modified: opal/branches/v3_12/include/t38/t38proto.h =================================================================== --- opal/branches/v3_12/include/t38/t38proto.h 2013-01-08 01:30:13 UTC (rev 28800) +++ opal/branches/v3_12/include/t38/t38proto.h 2013-01-08 01:33:07 UTC (rev 28801) @@ -229,13 +229,11 @@ bool failed ///< Fax ended with failure ); -#if OPAL_STATISTICS /**Get fax transmission/receipt statistics. */ virtual void GetStatistics( OpalMediaStatistics & statistics ///< Statistics for call ) const; -#endif /**Get the file to send/receive */ @@ -260,9 +258,7 @@ PTimer m_switchTimer; -#if OPAL_STATISTICS OpalMediaStatistics m_finalStatistics; -#endif }; Modified: opal/branches/v3_12/src/codec/opalpluginmgr.cxx =================================================================== --- opal/branches/v3_12/src/codec/opalpluginmgr.cxx 2013-01-08 01:30:13 UTC (rev 28800) +++ opal/branches/v3_12/src/codec/opalpluginmgr.cxx 2013-01-08 01:33:07 UTC (rev 28801) @@ -1343,7 +1343,6 @@ return false; } -#if OPAL_STATISTICS void GetStatistics(OpalMediaStatistics & statistics) const { statistics.m_fax.m_result = -2; @@ -1383,7 +1382,6 @@ } } } -#endif // OPAL_STATISTICS }; #endif // OPAL_FAX Modified: opal/branches/v3_12/src/t38/t38proto.cxx =================================================================== --- opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-08 01:30:13 UTC (rev 28800) +++ opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-08 01:33:07 UTC (rev 28801) @@ -889,22 +889,15 @@ if (patch != NULL) patch->ExecuteCommand(OpalFaxTerminate(), false); -#if OPAL_STATISTICS if (m_finalStatistics.m_fax.m_result < 0) { stream.GetStatistics(m_finalStatistics); PTRACE_IF(3, m_finalStatistics.m_fax.m_result >= 0, "FAX\tGot final statistics: result=" << m_finalStatistics.m_fax.m_result); } -#endif } - if (bothClosed) { -#if OPAL_STATISTICS + if (bothClosed) OnFaxCompleted(m_finalStatistics.m_fax.m_result != OpalMediaStatistics::FaxSuccessful); -#else - OnFaxCompleted(false); -#endif - } else { PTRACE(4, "FAX\tClosing " << (other->IsSource() ? "source" : "sink") << " media stream id=" << stream.GetID()); other->Close(); @@ -943,8 +936,6 @@ } -#if OPAL_STATISTICS - void OpalFaxConnection::GetStatistics(OpalMediaStatistics & statistics) const { if (m_finalStatistics.m_fax.m_result >= 0) { @@ -972,7 +963,6 @@ stream->GetStatistics(statistics); } -#endif void OpalFaxConnection::OnSwitchTimeout(PTimer &, INT) { @@ -996,9 +986,7 @@ { if (success) { m_switchTimer.Stop(false); -#if OPAL_STATISTICS m_finalStatistics.m_fax.m_result = OpalMediaStatistics::FaxNotStarted; -#endif } else { if (toT38 && m_stringOptions.GetBoolean(OPAL_NO_G111_FAX)) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-08 05:12:42
|
Revision: 28804 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28804&view=rev Author: rjongbloed Date: 2013-01-08 05:12:36 +0000 (Tue, 08 Jan 2013) Log Message: ----------- Fixed fax completion issues: * when remote system does a re-INVITE switch back to audio after successful fax transfer, successful status is lost. * sometimes OnFaxCompleted() is called twice, or not at all. Now guaranteed to called precisely once, unless explicit call to SwitchFaxMediaStreams() is made locally to restart fax transmission. Modified Paths: -------------- opal/branches/v3_12/include/t38/t38proto.h opal/branches/v3_12/src/t38/t38proto.cxx Modified: opal/branches/v3_12/include/t38/t38proto.h =================================================================== --- opal/branches/v3_12/include/t38/t38proto.h 2013-01-08 05:05:26 UTC (rev 28803) +++ opal/branches/v3_12/include/t38/t38proto.h 2013-01-08 05:12:36 UTC (rev 28804) @@ -247,6 +247,7 @@ protected: PDECLARE_NOTIFIER(PTimer, OpalFaxConnection, OnSwitchTimeout); void OpenFaxStreams(); + void InternalOnFaxCompleted(); void SetFaxMediaFormatOptions(OpalMediaFormat & mediaFormat) const; @@ -259,6 +260,7 @@ PTimer m_switchTimer; OpalMediaStatistics m_finalStatistics; + bool m_completed; }; Modified: opal/branches/v3_12/src/t38/t38proto.cxx =================================================================== --- opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-08 05:05:26 UTC (rev 28803) +++ opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-08 05:12:36 UTC (rev 28804) @@ -736,6 +736,7 @@ , m_receiving(receiving) , m_disableT38(disableT38) , m_tiffFileFormat(TIFF_File_FormatName) + , m_completed(false) { SetFaxMediaFormatOptions(m_tiffFileFormat); @@ -854,6 +855,7 @@ { m_switchTimer.Stop(false); OpalLocalConnection::OnReleased(); + InternalOnFaxCompleted(); } @@ -867,13 +869,6 @@ { OpalLocalConnection::OnClosedMediaStream(stream); - if (ownerCall.IsSwitchingT38()) { - PTRACE(4, "FAX\tIgnoring switching " - << (stream.IsSource() ? "source" : "sink") - << " media stream id=" << stream.GetID()); - return; - } - bool bothClosed = false; OpalMediaStreamPtr other; if (stream.IsSource()) { @@ -896,8 +891,16 @@ } } - if (bothClosed) - OnFaxCompleted(m_finalStatistics.m_fax.m_result != OpalMediaStatistics::FaxSuccessful); + if (bothClosed) { + if (m_finalStatistics.m_fax.m_result == 0 /* success!*/ || !ownerCall.IsSwitchingT38()) + InternalOnFaxCompleted(); + else { + PTRACE(4, "FAX\tIgnoring switching " + << (stream.IsSource() ? "source" : "sink") + << " media stream id=" << stream.GetID()); + m_finalStatistics.m_fax.m_result = OpalMediaStatistics::FaxNotStarted; + } + } else { PTRACE(4, "FAX\tClosing " << (other->IsSource() ? "source" : "sink") << " media stream id=" << stream.GetID()); other->Close(); @@ -977,6 +980,7 @@ bool OpalFaxConnection::SwitchFaxMediaStreams(bool enable) { + m_completed = false; PSafePtr<OpalConnection> other = GetOtherPartyConnection(); return other != NULL && other->SwitchFaxMediaStreams(enable); } @@ -991,7 +995,7 @@ else { if (toT38 && m_stringOptions.GetBoolean(OPAL_NO_G111_FAX)) { PTRACE(4, "FAX\tSwitch request to fax failed, checking for fall back to G.711"); - OnFaxCompleted(true); + InternalOnFaxCompleted(); } m_disableT38 = true; @@ -1019,6 +1023,17 @@ } } + +void OpalFaxConnection::InternalOnFaxCompleted() +{ + if (m_completed) + return; + + m_completed= true; + OnFaxCompleted(m_finalStatistics.m_fax.m_result != OpalMediaStatistics::FaxSuccessful); +} + + #else #ifdef _MSC_VER This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-08 11:39:49
|
Revision: 28807 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28807&view=rev Author: rjongbloed Date: 2013-01-08 11:39:42 +0000 (Tue, 08 Jan 2013) Log Message: ----------- hanged spandsp detection to use pkg-config, now finds it on Mac OS-X "ports". Modified Paths: -------------- opal/branches/v3_12/configure opal/branches/v3_12/make/opal.m4 opal/branches/v3_12/plugins/configure opal/branches/v3_12/plugins/configure.ac opal/branches/v3_12/plugins/fax/fax_spandsp/Makefile.in Modified: opal/branches/v3_12/configure =================================================================== --- opal/branches/v3_12/configure 2013-01-08 05:18:19 UTC (rev 28806) +++ opal/branches/v3_12/configure 2013-01-08 11:39:42 UTC (rev 28807) @@ -2778,10 +2778,6 @@ - - - - if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. Modified: opal/branches/v3_12/make/opal.m4 =================================================================== --- opal/branches/v3_12/make/opal.m4 2013-01-08 05:18:19 UTC (rev 28806) +++ opal/branches/v3_12/make/opal.m4 2013-01-08 11:39:42 UTC (rev 28807) @@ -679,43 +679,6 @@ dnl ######################################################################## -dnl SPANDSP -dnl ######################################################################## - -dnl OPAL_FIND_SPANDSP -dnl Find spandsp -dnl Arguments: $1 action if-found -dnl $2 action if-not-found -dnl Return: $SPANDSP_LIBS -AC_DEFUN([OPAL_FIND_SPANDSP], - [ - saved_LIBS="$LIBS" - LIBS="$LIBS -lspandsp" - AC_CHECK_LIB(spandsp, fax_free, - [ - AC_CHECK_LIB(spandsp, t38_core_get_logging_state, [opal_spandsp=yes], [opal_spandsp=no]) - ], - [opal_spandsp=no]) - LIBS=$saved_LIBS - saved_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS -D__STDC_LIMIT_MACROS" - if test "x${opal_spandsp}" = "xyes"; then - AC_CHECK_HEADERS([spandsp.h], [opal_spandsp=yes], [opal_spandsp=no], [#include <stdint.h>]) - fi - AS_IF([test AS_VAR_GET([opal_spandsp]) = yes], [$1], [$2])[] - - if test "x$opal_spandsp" = "xyes" ; then - SPANDSP_LIBS="-lspandsp" - AC_CHECK_LIB(spandsp, t38_set_fastest_image_data_rate, [SPANDSP_CFLAGS=-DHAS_T38_SET_FASTEST_IMAGE_DATA_RATE], []) - AC_SUBST(SPANDSP_CFLAGS) - AC_SUBST(SPANDSP_LIBS) - fi - - CXXFLAGS=$saved_CXXFLAGS - ]) - - -dnl ######################################################################## dnl LIBZRTP dnl ######################################################################## Modified: opal/branches/v3_12/plugins/configure =================================================================== --- opal/branches/v3_12/plugins/configure 2013-01-08 05:18:19 UTC (rev 28806) +++ opal/branches/v3_12/plugins/configure 2013-01-08 11:39:42 UTC (rev 28807) @@ -802,7 +802,9 @@ VP8_CFLAGS VP8_LIBS THEORA_CFLAGS -THEORA_LIBS' +THEORA_LIBS +SPANDSP_CFLAGS +SPANDSP_LIBS' # Initialize some variables set by options. @@ -1450,7 +1452,7 @@ --disable-theora disable Theora support --enable-ixj enable xJack cards --enable-vpb enable voicetronix vpb - --enable-spandsp enable spanDSP-based fax support + --disable-spandsp disable spanDSP-based fax support Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1498,6 +1500,10 @@ THEORA_CFLAGS C compiler flags for THEORA, overriding pkg-config THEORA_LIBS linker flags for THEORA, overriding pkg-config + SPANDSP_CFLAGS + C compiler flags for SPANDSP, overriding pkg-config + SPANDSP_LIBS + linker flags for SPANDSP, overriding pkg-config Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -2790,10 +2796,6 @@ - - - - # Make sure we can run config.sub. $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 @@ -9836,7 +9838,6 @@ - if test -d fax/fax_spandsp ; then # Check whether --enable-spandsp was given. if test "${enable_spandsp+set}" = set; then : @@ -9845,173 +9846,86 @@ if test "x${HAVE_SPANDSP}" = "xyes" ; then - saved_LIBS="$LIBS" - LIBS="$LIBS -lspandsp" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fax_free in -lspandsp" >&5 -$as_echo_n "checking for fax_free in -lspandsp... " >&6; } -if ${ac_cv_lib_spandsp_fax_free+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lspandsp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SPANDSP" >&5 +$as_echo_n "checking for SPANDSP... " >&6; } -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char fax_free (); -int -main () -{ -return fax_free (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_spandsp_fax_free=yes +if test -n "$SPANDSP_CFLAGS"; then + pkg_cv_SPANDSP_CFLAGS="$SPANDSP_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spandsp\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spandsp") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPANDSP_CFLAGS=`$PKG_CONFIG --cflags "spandsp" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_cv_lib_spandsp_fax_free=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_spandsp_fax_free" >&5 -$as_echo "$ac_cv_lib_spandsp_fax_free" >&6; } -if test "x$ac_cv_lib_spandsp_fax_free" = xyes; then : - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t38_core_get_logging_state in -lspandsp" >&5 -$as_echo_n "checking for t38_core_get_logging_state in -lspandsp... " >&6; } -if ${ac_cv_lib_spandsp_t38_core_get_logging_state+:} false; then : - $as_echo_n "(cached) " >&6 +if test -n "$SPANDSP_LIBS"; then + pkg_cv_SPANDSP_LIBS="$SPANDSP_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"spandsp\""; } >&5 + ($PKG_CONFIG --exists --print-errors "spandsp") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SPANDSP_LIBS=`$PKG_CONFIG --libs "spandsp" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lspandsp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char t38_core_get_logging_state (); -int -main () -{ -return t38_core_get_logging_state (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_spandsp_t38_core_get_logging_state=yes -else - ac_cv_lib_spandsp_t38_core_get_logging_state=no + pkg_failed=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS + else + pkg_failed=untried fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_spandsp_t38_core_get_logging_state" >&5 -$as_echo "$ac_cv_lib_spandsp_t38_core_get_logging_state" >&6; } -if test "x$ac_cv_lib_spandsp_t38_core_get_logging_state" = xyes; then : - opal_spandsp=yes -else - opal_spandsp=no -fi -else - opal_spandsp=no -fi - LIBS=$saved_LIBS - saved_CXXFLAGS=$CXXFLAGS - CXXFLAGS="$CXXFLAGS -D__STDC_LIMIT_MACROS" - if test "x${opal_spandsp}" = "xyes"; then - for ac_header in spandsp.h -do : - ac_fn_c_check_header_compile "$LINENO" "spandsp.h" "ac_cv_header_spandsp_h" "#include <stdint.h> -" -if test "x$ac_cv_header_spandsp_h" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_SPANDSP_H 1 -_ACEOF - opal_spandsp=yes +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes else - opal_spandsp=no + _pkg_short_errors_supported=no fi + if test $_pkg_short_errors_supported = yes; then + SPANDSP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "spandsp" 2>&1` + else + SPANDSP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "spandsp" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$SPANDSP_PKG_ERRORS" >&5 -done + HAVE_SPANDSP=no - fi - if test $opal_spandsp = yes; then : - HAVE_SPANDSP=yes -else - HAVE_SPANDSP=no -fi +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SPANDSP=no - if test "x$opal_spandsp" = "xyes" ; then - SPANDSP_LIBS="-lspandsp" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for t38_set_fastest_image_data_rate in -lspandsp" >&5 -$as_echo_n "checking for t38_set_fastest_image_data_rate in -lspandsp... " >&6; } -if ${ac_cv_lib_spandsp_t38_set_fastest_image_data_rate+:} false; then : - $as_echo_n "(cached) " >&6 else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lspandsp $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char t38_set_fastest_image_data_rate (); -int -main () -{ -return t38_set_fastest_image_data_rate (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_spandsp_t38_set_fastest_image_data_rate=yes -else - ac_cv_lib_spandsp_t38_set_fastest_image_data_rate=no + SPANDSP_CFLAGS=$pkg_cv_SPANDSP_CFLAGS + SPANDSP_LIBS=$pkg_cv_SPANDSP_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SPANDSP=yes fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_spandsp_t38_set_fastest_image_data_rate" >&5 -$as_echo "$ac_cv_lib_spandsp_t38_set_fastest_image_data_rate" >&6; } -if test "x$ac_cv_lib_spandsp_t38_set_fastest_image_data_rate" = xyes; then : - SPANDSP_CFLAGS=-DHAS_T38_SET_FASTEST_IMAGE_DATA_RATE -fi - - - - fi - - CXXFLAGS=$saved_CXXFLAGS - fi else HAVE_SPANDSP=no fi if test "x$HAVE_SPANDSP" = "xyes" ; then + + ac_config_files="$ac_config_files fax/fax_spandsp/Makefile" SUBDIRS+=" fax/fax_spandsp" Modified: opal/branches/v3_12/plugins/configure.ac =================================================================== --- opal/branches/v3_12/plugins/configure.ac 2013-01-08 05:18:19 UTC (rev 28806) +++ opal/branches/v3_12/plugins/configure.ac 2013-01-08 11:39:42 UTC (rev 28807) @@ -693,19 +693,25 @@ dnl ######################## dnl spanDSP dnl ######################## -AC_SUBST(SPANDSP_CFLAGS) if test -d fax/fax_spandsp ; then AC_ARG_ENABLE([spandsp], - [AC_HELP_STRING([--enable-spandsp],[enable spanDSP-based fax support])], + [AC_HELP_STRING([--disable-spandsp],[disable spanDSP-based fax support])], [HAVE_SPANDSP=$enableval]) if test "x${HAVE_SPANDSP}" = "xyes" ; then - OPAL_FIND_SPANDSP([HAVE_SPANDSP=yes], [HAVE_SPANDSP=no]) + PKG_CHECK_MODULES( + [SPANDSP], + [spandsp], + [HAVE_SPANDSP=yes], + [HAVE_SPANDSP=no] + ) fi else HAVE_SPANDSP=no fi if test "x$HAVE_SPANDSP" = "xyes" ; then + AC_SUBST(SPANDSP_CFLAGS) + AC_SUBST(SPANDSP_LIBS) AC_CONFIG_FILES(fax/fax_spandsp/Makefile) SUBDIRS+=" fax/fax_spandsp" fi Modified: opal/branches/v3_12/plugins/fax/fax_spandsp/Makefile.in =================================================================== --- opal/branches/v3_12/plugins/fax/fax_spandsp/Makefile.in 2013-01-08 05:18:19 UTC (rev 28806) +++ opal/branches/v3_12/plugins/fax/fax_spandsp/Makefile.in 2013-01-08 11:39:42 UTC (rev 28807) @@ -30,7 +30,7 @@ SRCS := spandsp_fax.cpp CFLAGS += -D__STDC_LIMIT_MACROS @SPANDSP_CFLAGS@ -LIBS += -lspandsp -ltiff +LIBS += @SPANDSP_LIBS@ INSTALL_DIR := @FAX_PLUGIN_DIR@ PLUGINDIR := @PLUGINDIR@ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-09 04:21:15
|
Revision: 28817 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28817&view=rev Author: rjongbloed Date: 2013-01-09 04:21:08 +0000 (Wed, 09 Jan 2013) Log Message: ----------- Use correct virtual function override name for switch fax to T.38 mode. This is my single biggest "pet hate" for C++! Really need an "override" keyword. Modified Paths: -------------- opal/branches/v3_12/include/sip/sipcon.h opal/branches/v3_12/src/h323/h323.cxx opal/branches/v3_12/src/sip/sipcon.cxx Modified: opal/branches/v3_12/include/sip/sipcon.h =================================================================== --- opal/branches/v3_12/include/sip/sipcon.h 2013-01-09 03:11:22 UTC (rev 28816) +++ opal/branches/v3_12/include/sip/sipcon.h 2013-01-09 04:21:08 UTC (rev 28817) @@ -312,7 +312,7 @@ #if OPAL_T38_CAPABILITY /**Switch to/from T.38 fax mode. */ - virtual bool SwitchT38( + virtual bool SwitchFaxMediaStreams( bool toT38 ///< T.38 or return to audio mode ); #endif Modified: opal/branches/v3_12/src/h323/h323.cxx =================================================================== --- opal/branches/v3_12/src/h323/h323.cxx 2013-01-09 03:11:22 UTC (rev 28816) +++ opal/branches/v3_12/src/h323/h323.cxx 2013-01-09 04:21:08 UTC (rev 28817) @@ -3964,7 +3964,7 @@ bool H323Connection::SwitchFaxMediaStreams(bool toT38) { if (ownerCall.IsSwitchingT38()) { - PTRACE(2, "H323\tNested call to SwitchT38 on " << *this); + PTRACE(2, "H323\tNested call to SwitchFaxMediaStreams on " << *this); return false; } Modified: opal/branches/v3_12/src/sip/sipcon.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-09 03:11:22 UTC (rev 28816) +++ opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-09 04:21:08 UTC (rev 28817) @@ -1342,7 +1342,7 @@ #if OPAL_T38_CAPABILITY -bool SIPConnection::SwitchT38(bool toT38) +bool SIPConnection::SwitchFaxMediaStreams(bool toT38) { if (ownerCall.IsSwitchingT38()) { PTRACE(2, "SIP\tNested call to SwitchT38 on " << *this); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-09 06:19:41
|
Revision: 28820 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28820&view=rev Author: rjongbloed Date: 2013-01-09 06:19:34 +0000 (Wed, 09 Jan 2013) Log Message: ----------- Fixed build with various configure options disabled. Modified Paths: -------------- opal/branches/v3_12/samples/callgen/main.cxx opal/branches/v3_12/samples/simple/main.cxx opal/branches/v3_12/src/opal/console_mgr.cxx opal/branches/v3_12/src/opal/manager.cxx opal/branches/v3_12/src/opal/opal_c.cxx Modified: opal/branches/v3_12/samples/callgen/main.cxx =================================================================== --- opal/branches/v3_12/samples/callgen/main.cxx 2013-01-09 06:17:37 UTC (rev 28819) +++ opal/branches/v3_12/samples/callgen/main.cxx 2013-01-09 06:19:34 UTC (rev 28820) @@ -122,6 +122,7 @@ pcss->SetSoundChannelRecordDevice("Null Audio"); pcss->SetSoundChannelPlayDevice("Null Audio"); +#if P_WAVFILE if (!args.HasOption('W')) cout << "Not using outgoing audio file." << endl; else { @@ -137,6 +138,7 @@ PTRACE(1, "CallGen\tOutgoing audio file \"" << wavFile << "\" does not exist"); } } +#endif // P_WAVFILE #if OPAL_VIDEO videoInputDevice.deviceName = "Fake/NTSCTest"; @@ -167,7 +169,9 @@ PDirectory::Create(incomingMediaDirectory)) { incomingMediaDirectory = PDirectory(incomingMediaDirectory); cout << "Using incoming media directory: " << incomingMediaDirectory << endl; +#if P_WAVFILE pcss->SetSoundChannelPlayDevice(incomingMediaDirectory + "*.wav"); +#endif #if OPAL_VIDEO videoOutputDevice.deviceName = incomingMediaDirectory + "*.yuv"; #endif Modified: opal/branches/v3_12/samples/simple/main.cxx =================================================================== --- opal/branches/v3_12/samples/simple/main.cxx 2013-01-09 06:17:37 UTC (rev 28819) +++ opal/branches/v3_12/samples/simple/main.cxx 2013-01-09 06:19:34 UTC (rev 28820) @@ -508,10 +508,12 @@ cout << "Jitter buffer: " << GetMinAudioJitterDelay() << '-' << GetMaxAudioJitterDelay() << " ms\n"; +#if P_NAT if (args.HasOption("translate")) { SetNATServer("Fixed", args.GetOptionString("translate")); cout << "External address set to " << GetNATServer() << '\n'; } +#endif if (args.HasOption("portbase")) { unsigned portbase = args.GetOptionString("portbase").AsUnsigned(); Modified: opal/branches/v3_12/src/opal/console_mgr.cxx =================================================================== --- opal/branches/v3_12/src/opal/console_mgr.cxx 2013-01-09 06:17:37 UTC (rev 28819) +++ opal/branches/v3_12/src/opal/console_mgr.cxx 2013-01-09 06:19:34 UTC (rev 28820) @@ -276,16 +276,22 @@ natMethod = PNatMethod_Fixed::GetNatMethodName(); natServer = args.GetOptionString("translate"); } +#if P_STUN else if (args.HasOption("stun")) { natMethod = PSTUNClient::GetNatMethodName(); natServer = args.GetOptionString("stun"); } +#endif else if (args.HasOption("nat-method")) { natMethod = args.GetOptionString("nat-method"); natServer = args.GetOptionString("nat-server"); } - else if (args.HasOption("nat-method")) { + else if (args.HasOption("nat-server")) { +#if P_STUN natMethod = PSTUNClient::GetNatMethodName(); +#else + natMethod = PNatMethod_Fixed::GetNatMethodName(); +#endif natServer = args.GetOptionString("nat-server"); } @@ -301,7 +307,7 @@ PNatMethod::NatTypes natType = natMethod->GetNatType(); cout << '"' << natMethod->GetServer() << "\" replies " << natType; PIPSocket::Address externalAddress; - if (natType != PSTUNClient::BlockedNat && natMethod->GetExternalAddress(externalAddress)) + if (natType != PNatMethod::BlockedNat && natMethod->GetExternalAddress(externalAddress)) cout << " with external address " << externalAddress; } cout << endl; Modified: opal/branches/v3_12/src/opal/manager.cxx =================================================================== --- opal/branches/v3_12/src/opal/manager.cxx 2013-01-09 06:17:37 UTC (rev 28819) +++ opal/branches/v3_12/src/opal/manager.cxx 2013-01-09 06:19:34 UTC (rev 28820) @@ -1753,10 +1753,10 @@ if (IsLocalAddress(remoteAddress)) return false; // Does not need to be translated -#ifdef P_NAT +#if P_NAT PIPSocket::Address stunInterface; if (m_natMethod != NULL && - m_natMethod->GetNatType() != PSTUNClient::BlockedNat && + m_natMethod->GetNatType() != PNatMethod::BlockedNat && m_natMethod->GetInterfaceAddress(stunInterface) && stunInterface == localAddress) return m_natMethod->GetExternalAddress(localAddress); // Translate it! Modified: opal/branches/v3_12/src/opal/opal_c.cxx =================================================================== --- opal/branches/v3_12/src/opal/opal_c.cxx 2013-01-09 06:17:37 UTC (rev 28819) +++ opal/branches/v3_12/src/opal/opal_c.cxx 2013-01-09 06:19:34 UTC (rev 28820) @@ -1152,7 +1152,7 @@ response.SetError("Could not set NAT router method."); return; } - else if (nat->GetNatType() == PSTUNClient::BlockedNat) { + else if (nat->GetNatType() == PNatMethod::BlockedNat) { response.SetError(nat->GetName() + " indicates Blocked NAT."); return; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-10 01:07:35
|
Revision: 28831 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28831&view=rev Author: rjongbloed Date: 2013-01-10 01:07:25 +0000 (Thu, 10 Jan 2013) Log Message: ----------- Fixed build with --disable-statistics Modified Paths: -------------- opal/branches/v3_12/configure opal/branches/v3_12/configure.ac opal/branches/v3_12/make/opal.m4 opal/branches/v3_12/plugins/configure Modified: opal/branches/v3_12/configure =================================================================== --- opal/branches/v3_12/configure 2013-01-10 00:58:03 UTC (rev 28830) +++ opal/branches/v3_12/configure 2013-01-10 01:07:25 UTC (rev 28831) @@ -1,9 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for opal 3. +# Generated by GNU Autoconf 2.68 for opal 3. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -132,31 +134,6 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -190,8 +167,7 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" +test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -236,25 +212,21 @@ if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -356,14 +328,6 @@ } # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -485,10 +449,6 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -523,16 +483,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -544,8 +504,28 @@ as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -640,7 +620,6 @@ OPAL_SCRIPT OPAL_HAS_PCSS OPAL_HAS_MIXER -OPAL_STATISTICS OPAL_RTCP_XR OPAL_G711PLC OPAL_AEC @@ -655,6 +634,7 @@ OPAL_H460 OPAL_H450 OPAL_FAX +OPAL_STATISTICS OPAL_HAS_RFC4103 OPAL_HAS_SIPIM OPAL_HAS_MSRP @@ -817,6 +797,7 @@ enable_msrp enable_sipim enable_rfc4103 +enable_statistics enable_fax enable_h450 enable_h460 @@ -831,7 +812,6 @@ enable_aec enable_g711plc enable_rtcpxr -enable_statistics enable_mixer enable_pcss enable_script @@ -1315,6 +1295,8 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1497,6 +1479,7 @@ --enable-msrp whether to enable MSRP support --enable-sipim whether to enable SIPIM session support --enable-rfc4103 whether to enable RFC4103 support + --enable-statistics whether to enable statistics gathering support --enable-fax whether to enable T.38 FAX protocol support --enable-h450 whether to enable H.450 --enable-h460 whether to enable H.460 @@ -1512,7 +1495,6 @@ support --enable-g711plc whether to enable Packet Loss Concealment for G.711 --enable-rtcpxr whether to enable RTCP Extended Reports support - --enable-statistics whether to enable statistics gathering support --enable-mixer whether to enable media mixing support --enable-pcss whether to enable PC sound system support --enable-script whether to enable script language support @@ -1629,9 +1611,9 @@ if $ac_init_version; then cat <<\_ACEOF opal configure 3 -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.68 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1824,7 +1806,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - test -x conftest$ac_exeext + $as_test_x conftest$ac_exeext }; then : ac_retval=0 else @@ -2025,7 +2007,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - test -x conftest$ac_exeext + $as_test_x conftest$ac_exeext }; then : ac_retval=0 else @@ -2061,8 +2043,7 @@ main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2078,8 +2059,7 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2105,8 +2085,7 @@ main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2122,8 +2101,7 @@ main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2157,8 +2135,7 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2318,7 +2295,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by opal $as_me 3, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was $ $0 $@ @@ -2777,7 +2754,6 @@ - if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -2798,7 +2774,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2841,7 +2817,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3032,7 +3008,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3072,7 +3048,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3125,7 +3101,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3166,7 +3142,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3224,7 +3200,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3268,7 +3244,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3714,7 +3690,8 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -struct stat; +#include <sys/types.h> +#include <sys/stat.h> /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4025,7 +4002,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4069,7 +4046,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4276,7 +4253,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4316,7 +4293,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4369,7 +4346,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4410,7 +4387,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -4468,7 +4445,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4512,7 +4489,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4708,7 +4685,8 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -struct stat; +#include <sys/types.h> +#include <sys/stat.h> /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4830,7 +4808,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -4903,7 +4881,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4943,7 +4921,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5132,7 +5110,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_GREP" || continue + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -5198,7 +5176,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - as_fn_executable_p "$ac_path_EGREP" || continue + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5375,7 +5353,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5415,7 +5393,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5633,7 +5611,6 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_CFLAGS=`$PKG_CONFIG --cflags "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5650,7 +5627,6 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_LIBS=`$PKG_CONFIG --libs "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5670,9 +5646,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` else - PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PTLIB_PKG_ERRORS" >&5 @@ -5687,6 +5663,7 @@ Alternatively, you may set the environment variables PTLIB_CFLAGS and PTLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 + elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5702,6 +5679,7 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } + else PTLIB_CFLAGS=$pkg_cv_PTLIB_CFLAGS PTLIB_LIBS=$pkg_cv_PTLIB_LIBS @@ -5725,7 +5703,6 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_CFLAGS=`$PKG_CONFIG --cflags "ptlib" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5742,7 +5719,6 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_LIBS=`$PKG_CONFIG --libs "ptlib" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5762,9 +5738,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ptlib" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ptlib" 2>&1` else - PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ptlib" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "ptlib" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PTLIB_PKG_ERRORS" >&5 @@ -5779,6 +5755,7 @@ Alternatively, you may set the environment variables PTLIB_CFLAGS and PTLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 + elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5794,6 +5771,7 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } + else PTLIB_CFLAGS=$pkg_cv_PTLIB_CFLAGS PTLIB_LIBS=$pkg_cv_PTLIB_LIBS @@ -7075,7 +7053,6 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SPEEXDSP_CFLAGS=`$PKG_CONFIG --cflags "speexdsp" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -7092,7 +7069,6 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SPEEXDSP_LIBS=`$PKG_CONFIG --libs "speexdsp" 2>/dev/null` - test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -7112,9 +7088,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "speexdsp" 2>&1` + SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "speexdsp" 2>&1` else - SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "speexdsp" 2>&1` + SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --print-errors "speexdsp" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$SPEEXDSP_PKG_ERRORS" >&5 @@ -7525,7 +7501,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7643,7 +7619,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then ac_cv_prog_HAS_RUBY="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7735,7 +7711,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: video support disabled due to disabled dependency " >&5 +$as_echo "$as_me: video support disabled due to disabled dependency " >&6;} + OPAL_VIDEO=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable video codec support" >&5 $as_echo_n "checking whether to enable video codec support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_VIDEO" >&5 @@ -7775,7 +7759,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: sip support disabled due to disabled dependency " >&5 +$as_echo "$as_me: sip support disabled due to disabled dependency " >&6;} + OPAL_SIP=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable SIP protocol support" >&5 $as_echo_n "checking whether to enable SIP protocol support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_SIP" >&5 @@ -7815,7 +7807,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h323 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h323 support disabled due to disabled dependency " >&6;} + OPAL_H323=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.323 protocol support" >&5 $as_echo_n "checking whether to enable H.323 protocol support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_H323" >&5 @@ -7861,7 +7861,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: iax2 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: iax2 support disabled due to disabled dependency " >&6;} + OPAL_IAX2=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IAX2 protocol support" >&5 $as_echo_n "checking whether to enable IAX2 protocol support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_IAX2" >&5 @@ -7901,7 +7909,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h224 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h224 support disabled due to disabled dependency " >&6;} + OPAL_HAS_H224=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.224 protocol support" >&5 $as_echo_n "checking whether to enable H.224 protocol support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_H224" >&5 @@ -7941,7 +7957,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h281 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h281 support disabled due to disabled dependency " >&6;} + OPAL_HAS_H281=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.281 (Far End Camera Control) protocol support" >&5 $as_echo_n "checking whether to enable H.281 (Far End Camera Control) protocol support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_H281" >&5 @@ -7981,7 +8005,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: t38 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: t38 support disabled due to disabled dependency " >&6;} + OPAL_T38_CAPABILITY=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable T.38 capability support" >&5 $as_echo_n "checking whether to enable T.38 capability support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_T38_CAPABILITY" >&5 @@ -8021,7 +8053,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: msrp support disabled due to disabled dependency " >&5 +$as_echo "$as_me: msrp support disabled due to disabled dependency " >&6;} + OPAL_HAS_MSRP=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable MSRP support" >&5 $as_echo_n "checking whether to enable MSRP support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_MSRP" >&5 @@ -8062,7 +8102,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: sipim support disabled due to disabled dependency " >&5 +$as_echo "$as_me: sipim support disabled due to disabled dependency " >&6;} + OPAL_HAS_SIPIM=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable SIPIM session support" >&5 $as_echo_n "checking whether to enable SIPIM session support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_SIPIM" >&5 @@ -8102,7 +8150,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: rfc4103 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: rfc4103 support disabled due to disabled dependency " >&6;} + OPAL_HAS_RFC4103=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable RFC4103 support" >&5 $as_echo_n "checking whether to enable RFC4103 support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_RFC4103" >&5 @@ -8117,6 +8173,54 @@ + if test "x$OPAL_STATISTICS" = "x"; then + as_fn_error $? "No default specified for OPAL_STATISTICS, please correct configure.ac" "$LINENO" 5 + fi + # Check whether --enable-statistics was given. +if test "${enable_statistics+set}" = set; then : + enableval=$enable_statistics; OPAL_STATISTICS=$enableval +fi + + + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: statistics support disabled due to disabled dependency " >&5 +$as_echo "$as_me: statistics support disabled due to disabled dependency " >&6;} + OPAL_STATISTICS=no + fi + fi + + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: statistics support disabled due to disabled dependency " >&5 +$as_echo "$as_me: statistics support disabled due to disabled dependency " >&6;} + OPAL_STATISTICS=no + fi + fi + + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: statistics support disabled due to disabled dependency " >&5 +$as_echo "$as_me: statistics support disabled due to disabled dependency " >&6;} + OPAL_STATISTICS=no + fi + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable statistics gathering support" >&5 +$as_echo_n "checking whether to enable statistics gathering support... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_STATISTICS" >&5 +$as_echo "$OPAL_STATISTICS" >&6; } + + + if test "x$OPAL_STATISTICS" = "xyes"; then + +$as_echo "#define OPAL_STATISTICS 1" >>confdefs.h + + fi + + + if test "x$OPAL_FAX" = "x"; then as_fn_error $? "No default specified for OPAL_FAX, please correct configure.ac" "$LINENO" 5 fi @@ -8142,7 +8246,15 @@ fi fi + if test "xOPAL_STATISTICS" != "x"; then + if test "x$OPAL_STATISTICS" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: fax support disabled due to disabled dependency OPAL_STATISTICS" >&5 +$as_echo "$as_me: fax support disabled due to disabled dependency OPAL_STATISTICS" >&6;} + OPAL_FAX=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable T.38 FAX protocol support" >&5 $as_echo_n "checking whether to enable T.38 FAX protocol support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_FAX" >&5 @@ -8182,7 +8294,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h450 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h450 support disabled due to disabled dependency " >&6;} + OPAL_H450=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.450" >&5 $as_echo_n "checking whether to enable H.450... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_H450" >&5 @@ -8222,7 +8342,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h460 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h460 support disabled due to disabled dependency " >&6;} + OPAL_H460=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.460" >&5 $as_echo_n "checking whether to enable H.460... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_H460" >&5 @@ -8262,7 +8390,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h460nat support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h460nat support disabled due to disabled dependency " >&6;} + OPAL_H460_NAT=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.460.24" >&5 $as_echo_n "checking whether to enable H.460.24... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_H460_NAT" >&5 @@ -8302,7 +8438,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h239 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h239 support disabled due to disabled dependency " >&6;} + OPAL_H239=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.239" >&5 $as_echo_n "checking whether to enable H.239... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_H239" >&5 @@ -8342,7 +8486,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: h501 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: h501 support disabled due to disabled dependency " >&6;} + OPAL_H501=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable H.501" >&5 $as_echo_n "checking whether to enable H.501... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_H501" >&5 @@ -8382,7 +8534,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: t120 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: t120 support disabled due to disabled dependency " >&6;} + OPAL_T120DATA=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable T.120" >&5 $as_echo_n "checking whether to enable T.120... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_T120DATA" >&5 @@ -8422,7 +8582,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: lid support disabled due to disabled dependency " >&5 +$as_echo "$as_me: lid support disabled due to disabled dependency " >&6;} + OPAL_LID=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable LID support" >&5 $as_echo_n "checking whether to enable LID support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_LID" >&5 @@ -8462,7 +8630,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: ivr support disabled due to disabled dependency " >&5 +$as_echo "$as_me: ivr support disabled due to disabled dependency " >&6;} + OPAL_IVR=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable IVR support" >&5 $as_echo_n "checking whether to enable IVR support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_IVR" >&5 @@ -8502,7 +8678,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: rfc4175 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: rfc4175 support disabled due to disabled dependency " >&6;} + OPAL_RFC4175=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable RFC4175 support" >&5 $as_echo_n "checking whether to enable RFC4175 support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_RFC4175" >&5 @@ -8542,7 +8726,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: rfc2435 support disabled due to disabled dependency " >&5 +$as_echo "$as_me: rfc2435 support disabled due to disabled dependency " >&6;} + OPAL_RFC2435=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable RFC2435 support (experimental)" >&5 $as_echo_n "checking whether to enable RFC2435 support (experimental)... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_RFC2435" >&5 @@ -8582,7 +8774,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: aec support disabled due to disabled dependency " >&5 +$as_echo "$as_me: aec support disabled due to disabled dependency " >&6;} + OPAL_AEC=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable accoustic echo cancellation support" >&5 $as_echo_n "checking whether to enable accoustic echo cancellation support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_AEC" >&5 @@ -8622,7 +8822,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: g711plc support disabled due to disabled dependency " >&5 +$as_echo "$as_me: g711plc support disabled due to disabled dependency " >&6;} + OPAL_G711PLC=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable Packet Loss Concealment for G.711" >&5 $as_echo_n "checking whether to enable Packet Loss Concealment for G.711... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_G711PLC" >&5 @@ -8662,7 +8870,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: rtcpxr support disabled due to disabled dependency " >&5 +$as_echo "$as_me: rtcpxr support disabled due to disabled dependency " >&6;} + OPAL_RTCP_XR=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable RTCP Extended Reports support" >&5 $as_echo_n "checking whether to enable RTCP Extended Reports support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_RTCP_XR" >&5 @@ -8677,46 +8893,6 @@ - if test "x$OPAL_STATISTICS" = "x"; then - as_fn_error $? "No default specified for OPAL_STATISTICS, please correct configure.ac" "$LINENO" 5 - fi - # Check whether --enable-statistics was given. -if test "${enable_statistics+set}" = set; then : - enableval=$enable_statistics; OPAL_STATISTICS=$enableval -fi - - - if test "x" != "x"; then - if test "x$" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: statistics support disabled due to disabled dependency " >&5 -$as_echo "$as_me: statistics support disabled due to disabled dependency " >&6;} - OPAL_STATISTICS=no - fi - fi - - if test "x" != "x"; then - if test "x$" != "xyes"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: statistics support disabled due to disabled dependency " >&5 -$as_echo "$as_me: statistics support disabled due to disabled dependency " >&6;} - OPAL_STATISTICS=no - fi - fi - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable statistics gathering support" >&5 -$as_echo_n "checking whether to enable statistics gathering support... " >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_STATISTICS" >&5 -$as_echo "$OPAL_STATISTICS" >&6; } - - - if test "x$OPAL_STATISTICS" = "xyes"; then - -$as_echo "#define OPAL_STATISTICS 1" >>confdefs.h - - fi - - - if test "x$OPAL_HAS_MIXER" = "x"; then as_fn_error $? "No default specified for OPAL_HAS_MIXER, please correct configure.ac" "$LINENO" 5 fi @@ -8742,7 +8918,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: mixer support disabled due to disabled dependency " >&5 +$as_echo "$as_me: mixer support disabled due to disabled dependency " >&6;} + OPAL_HAS_MIXER=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable media mixing support" >&5 $as_echo_n "checking whether to enable media mixing support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_MIXER" >&5 @@ -8782,7 +8966,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: pcss support disabled due to disabled dependency " >&5 +$as_echo "$as_me: pcss support disabled due to disabled dependency " >&6;} + OPAL_HAS_PCSS=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable PC sound system support" >&5 $as_echo_n "checking whether to enable PC sound system support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_HAS_PCSS" >&5 @@ -8822,7 +9014,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: script support disabled due to disabled dependency " >&5 +$as_echo "$as_me: script support disabled due to disabled dependency " >&6;} + OPAL_SCRIPT=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable script language support" >&5 $as_echo_n "checking whether to enable script language support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_SCRIPT" >&5 @@ -8864,7 +9064,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: plugins support disabled due to disabled dependency " >&5 +$as_echo "$as_me: plugins support disabled due to disabled dependency " >&6;} + OPAL_PLUGINS=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable plugin support" >&5 $as_echo_n "checking whether to enable plugin support... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_PLUGINS" >&5 @@ -8910,7 +9118,15 @@ fi fi + if test "x" != "x"; then + if test "x$" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: samples support disabled due to disabled dependency " >&5 +$as_echo "$as_me: samples support disabled due to disabled dependency " >&6;} + OPAL_SAMPLES=no + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable samples build" >&5 $as_echo_n "checking whether to enable samples build... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPAL_SAMPLES" >&5 @@ -9409,16 +9625,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -9478,17 +9694,29 @@ as_mkdir_p=false fi +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p -as_test_x='test -x' -as_executable_p=as_fn_executable_p - # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -9509,7 +9737,7 @@ # values after options handling. ac_log=" This file was extended by opal $as_me 3, which was -generated by GNU Autoconf 2.69. Invocation command line was +generated by GNU Autoconf 2.68. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -9571,10 +9799,10 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ opal config.status 3 -configured by $0, generated by GNU Autoconf 2.69, +configured by $0, generated by GNU Autoconf 2.68, with options \\"\$ac_cs_config\\" -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -9663,7 +9891,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' Modified: opal/branches/v3_12/configure.ac =================================================================== --- opal/branches/v3_12/configure.ac 2013-01-10 00:58:03 UTC (rev 28830) +++ opal/branches/v3_12/configure.ac 2013-01-10 01:07:25 UTC (rev 28831) @@ -516,9 +516,13 @@ dnl MSWIN_DEFINE rfc4103,OPAL_HAS_RFC4103 OPAL_SIMPLE_OPTION(rfc4103,OPAL_HAS_RFC4103, [whether to enable RFC4103 support]) +dnl MSWIN_DISPLAY statistics,Statistics gathering support +dnl MSWIN_DEFINE statistics,OPAL_STATISTICS +OPAL_SIMPLE_OPTION(statistics,OPAL_STATISTICS, [whether to enable statistics gathering support]) + dnl MSWIN_DISPLAY fax,T.38 FAX protocol dnl MSWIN_DEFINE fax,OPAL_FAX -OPAL_SIMPLE_OPTION(fax,OPAL_FAX, [whether to enable T.38 FAX protocol support],[OPAL_T38_CAPABILITY], [OPAL_PTLIB_ASN]) +OPAL_SIMPLE_OPTION(fax,OPAL_FAX, [whether to enable T.38 FAX protocol support],[OPAL_T38_CAPABILITY],[OPAL_PTLIB_ASN],[OPAL_STATISTICS]) dnl MSWIN_DISPLAY h450,H.450 dnl MSWIN_IF_FEATURE h450,h323 @@ -583,10 +587,6 @@ dnl MSWIN_DEFINE rtcpxr,OPAL_RTCP_XR OPAL_SIMPLE_OPTION(rtcpxr,OPAL_RTCP_XR, [whether to enable RTCP Extended Reports support]) -dnl MSWIN_DISPLAY statistics,Statistics gathering support -dnl MSWIN_DEFINE statistics,OPAL_STATISTICS -OPAL_SIMPLE_OPTION(statistics,OPAL_STATISTICS, [whether to enable statistics gathering support]) - dnl MSWIN_DISPLAY mixer,Media mixing dnl MSWIN_DEFINE mixer,OPAL_HAS_MIXER OPAL_SIMPLE_OPTION(mixer,OPAL_HAS_MIXER, [whether to enable media mixing support]) Modified: opal/branches/v3_12/make/opal.m4 =================================================================== --- opal/branches/v3_12/make/opal.m4 2013-01-10 00:58:03 UTC (rev 28830) +++ opal/branches/v3_12/make/opal.m4 2013-01-10 01:07:25 UTC (rev 28831) @@ -20,6 +20,7 @@ dnl $3 the configure argument description dnl $4 dependency variable #1 dnl $5 dependency variable #2 +dnl $6 dependency variable #26 dnl Return: $$2 The (possibly) changed variable AC_DEFUN([OPAL_SIMPLE_OPTION], [ @@ -44,6 +45,13 @@ fi fi + if test "x$6" != "x"; then + if test "x$$6" != "xyes"; then + AC_MSG_NOTICE([$1 support disabled due to disabled dependency $6]) + $2=no + fi + fi + OPAL_MSG_CHECK([$3], [$$2]) AC_SUBST($2) if test "x$$2" = "xyes"; then Modified: opal/branches/v3_12/plugins/configure =================================================================== --- opal/branches/v3_12/plugins/configure 2013-01-10 00:58:03 UTC (rev 28830) +++ opal/branches/v3_12/plugins/configure 2013-01-10 01:07:25 UTC (rev 28831) @@ -1,9 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69. +# Generated by GNU Autoconf 2.68. # # -# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -132,31 +134,6 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH -# Use a proper internal environment variable to ensure we don't fall - # into an infinite loop, continuously re-executing ourselves. - if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then - _as_can_reexec=no; export _as_can_reexec; - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -as_fn_exit 255 - fi - # We don't want this to propagate to other subprocesses. - { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -190,8 +167,7 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1 -test -x / || exit 1" +test x\$exitcode = x0 || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -236,25 +212,21 @@ if test "x$CONFIG_SHELL" != x; then : - export CONFIG_SHELL - # We cannot yet assume a decent shell, so we have to provide a -# neutralization value for shells without unset; and this also -# works around shells that cannot unset nonexistent variables. -# Preserve -v and -x to the replacement shell. -BASH_ENV=/dev/null -ENV=/dev/null -(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV -case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; -esac -exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} -# Admittedly, this is quite paranoid, since all the known shells bail -# out after a failed `exec'. -$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 -exit 255 + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + # Preserve -v and -x to the replacement shell. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; + esac + exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} fi if test x$as_have_required = xno; then : @@ -356,14 +328,6 @@ } # as_fn_mkdir_p - -# as_fn_executable_p FILE -# ----------------------- -# Test if FILE is an executable regular file. -as_fn_executable_p () -{ - test -f "$1" && test -x "$1" -} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -485,10 +449,6 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } - # If we had to re-execute with $CONFIG_SHELL, we're ensured to have - # already done that, so ensure we don't try to do so again and fall - # in an infinite loop. This has already happened in practice. - _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -523,16 +483,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -pR'. + # In both cases, we have to default to `cp -p'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -pR' + as_ln_s='cp -p' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi else - as_ln_s='cp -pR' + as_ln_s='cp -p' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -544,8 +504,28 @@ as_mkdir_p=false fi -as_test_x='test -x' -as_executable_p=as_fn_executable_p +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -1260,6 +1240,8 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1572,9 +1554,9 @@ if $ac_init_version; then cat <<\_ACEOF configure -generated by GNU Autoconf 2.69 +generated by GNU Autoconf 2.68 -Copyright (C) 2012 Free Software Foundation, Inc. +Copyright (C) 2010 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1939,7 +1921,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - test -x conftest$ac_exeext + $as_test_x conftest$ac_exeext }; then : ac_retval=0 else @@ -2042,8 +2024,7 @@ main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2059,8 +2040,7 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; +test_array [0] = 0 ; return 0; @@ -2086,8 +2066,7 @@ main () { static int test_array [1 - 2... [truncated message content] |
From: <rjo...@us...> - 2013-01-10 06:19:43
|
Revision: 28839 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28839&view=rev Author: rjongbloed Date: 2013-01-10 06:19:34 +0000 (Thu, 10 Jan 2013) Log Message: ----------- Fixed endlessly trying to PUBLISH presence when presence agent off line. Modified Paths: -------------- opal/branches/v3_12/include/sip/sipep.h opal/branches/v3_12/src/sip/handlers.cxx opal/branches/v3_12/src/sip/sipep.cxx Modified: opal/branches/v3_12/include/sip/sipep.h =================================================================== --- opal/branches/v3_12/include/sip/sipep.h 2013-01-10 04:18:40 UTC (rev 28838) +++ opal/branches/v3_12/include/sip/sipep.h 2013-01-10 06:19:34 UTC (rev 28839) @@ -724,7 +724,7 @@ /**Publish new state information. - A expire time of zero will cease to automatically update the publish. + An empty body, or expire time of zero, will cease to automatically update the publish. */ bool Publish( const SIPSubscribe::Params & params, Modified: opal/branches/v3_12/src/sip/handlers.cxx =================================================================== --- opal/branches/v3_12/src/sip/handlers.cxx 2013-01-10 04:18:40 UTC (rev 28838) +++ opal/branches/v3_12/src/sip/handlers.cxx 2013-01-10 06:19:34 UTC (rev 28839) @@ -1872,6 +1872,9 @@ SIPTransaction * SIPPublishHandler::CreateTransaction(OpalTransport & transport) { + if (m_body.IsEmpty()) + SetState(Unsubscribing); + if (GetState() == Unsubscribing) return NULL; Modified: opal/branches/v3_12/src/sip/sipep.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipep.cxx 2013-01-10 04:18:40 UTC (rev 28838) +++ opal/branches/v3_12/src/sip/sipep.cxx 2013-01-10 06:19:34 UTC (rev 28839) @@ -1603,7 +1603,7 @@ PTRACE(5, "SIP\tNormalised PUBLISH\n" << params); PSafePtr<SIPHandler> handler = activeSIPHandlers.FindSIPHandlerByUrl(params.m_addressOfRecord, SIP_PDU::Method_PUBLISH, params.m_eventPackage, PSafeReadWrite); if (handler != NULL) - handler->SetBody(body); + handler->SetBody(params.m_expire != 0 ? body : PString::Empty()); else { handler = new SIPPublishHandler(*this, params, body); activeSIPHandlers.Append(handler); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-10 23:17:37
|
Revision: 28845 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28845&view=rev Author: rjongbloed Date: 2013-01-10 23:17:27 +0000 (Thu, 10 Jan 2013) Log Message: ----------- Added OPAL_OPT_SYMMETRIC_HOLD_PRODUCT ("Symmetric-Hold-Product") string option. While RFC 3891 explicitly forbids and incoming INVITE with Replaces to replace a call which was incoming to the UA. It is allowed for a dialog originated by the UA receiving the INVITE with Replace, but not for ones where it is "ringing". Unfortunately, some systems (*cough Cisco) do it anyway. This option allows the replacement and dows not send the 481 response as required by the specification. Modified Paths: -------------- opal/branches/v3_12/include/sip/sipcon.h opal/branches/v3_12/src/sip/sipcon.cxx Modified: opal/branches/v3_12/include/sip/sipcon.h =================================================================== --- opal/branches/v3_12/include/sip/sipcon.h 2013-01-10 08:32:30 UTC (rev 28844) +++ opal/branches/v3_12/include/sip/sipcon.h 2013-01-10 23:17:27 UTC (rev 28845) @@ -82,6 +82,18 @@ */ #define OPAL_OPT_SYMMETRIC_HOLD_PRODUCT "Symmetric-Hold-Product" +/**Allow INVITE with Replaces to operate on "early" dialog. + While RFC 3891 explicitly forbids and incoming INVITE with Replaces to + replace a call which was incoming to the UA. It is allowed for a dialog + originated by the UA receiving the INVITE with Replace, but not for ones + where it is "ringing". Unfortunately, some systems (*cough Cisco) do it + anyway. This option allows the replacement and dows not send the 481 + response as required by the specification. + + Defaults to false. + */ +#define OPAL_OPT_ALLOW_EARLY_REPLACE "Allow-Early-Replace" + /**OpalConnection::StringOption key to a string representing the precise SDP to be included in the INVITE offer. No media streams are opened or any checks whstsoever made on the string. It is simply included as the body of Modified: opal/branches/v3_12/src/sip/sipcon.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-10 08:32:30 UTC (rev 28844) +++ opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-10 23:17:27 UTC (rev 28845) @@ -2720,7 +2720,7 @@ } if (replacedConnection->GetPhase() < ConnectedPhase) { - if (!replacedConnection->IsOriginating()) { + if (!m_stringOptions.GetBoolean(OPAL_OPT_ALLOW_EARLY_REPLACE) && !replacedConnection->IsOriginating()) { PTRACE(3, "SIP\tEarly connection " << *replacedConnection << " cannot be replaced by " << *this); Release(EndedByInvalidConferenceID); return; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-15 03:41:32
|
Revision: 28892 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28892&view=rev Author: rjongbloed Date: 2013-01-15 03:41:21 +0000 (Tue, 15 Jan 2013) Log Message: ----------- Added OPAL prefixed URI parameter to select MCU owner connection. That is the one that will close the conference down if they disconnect. Used above in OpenPhone conference feature. Modified Paths: -------------- opal/branches/v3_12/include/ep/opalmixer.h opal/branches/v3_12/samples/openphone/main.cxx opal/branches/v3_12/src/ep/opalmixer.cxx Modified: opal/branches/v3_12/include/ep/opalmixer.h =================================================================== --- opal/branches/v3_12/include/ep/opalmixer.h 2013-01-15 03:20:35 UTC (rev 28891) +++ opal/branches/v3_12/include/ep/opalmixer.h 2013-01-15 03:41:21 UTC (rev 28892) @@ -56,7 +56,8 @@ //#define OPAL_MIXER_AUDIO_DEBUG 1 -#define OPAL_OPT_LISTEN_ONLY "Listen-Only" ///< String option for listen only mixer connection +#define OPAL_OPT_LISTEN_ONLY "Listen-Only" ///< String option for listen only mixer connection +#define OPAL_OPT_CONF_OWNER "Conference-Owner" ///< String option for listen only mixer connection /////////////////////////////////////////////////////////////////////////////// @@ -1171,13 +1172,14 @@ const PTime & GetCreationTime() const { return m_creationTime; } /**Set the owner connection. - If a conenction with GetRemotePartyURL() equivalent to this string - disconnects from the node, the node is shut down and all other - participants disconnected. + If a connection with GetToken(), GetLocalPartyURL() or + GetRemotePartyURL() equal to \p connectionIdentifier disconnects from + the node, then the node is shut down and all other participants + disconnected. */ void SetOwnerConnection( - const PString & uri - ) { m_ownerConnection = uri; } + const PString & connectionIdentifier + ) { m_ownerConnection = connectionIdentifier; } //@} protected: Modified: opal/branches/v3_12/samples/openphone/main.cxx =================================================================== --- opal/branches/v3_12/samples/openphone/main.cxx 2013-01-15 03:20:35 UTC (rev 28891) +++ opal/branches/v3_12/samples/openphone/main.cxx 2013-01-15 03:41:21 UTC (rev 28892) @@ -106,7 +106,9 @@ extern void InitXmlResource(); // From resource.cpp whichis compiled openphone.xrc -#define CONFERENCE_NAME "conference" +#define CONFERENCE_PREFIX "mcu" +#define CONFERENCE_NAME "conference" +#define CONFERENCE_URI CONFERENCE_PREFIX":"CONFERENCE_NAME // Definitions of the configuration file section and key names @@ -929,7 +931,7 @@ #endif #if OPAL_HAS_MIXER - m_mcuEP = new OpalMixerEndPoint(*this, "mcu"); + m_mcuEP = new OpalMixerEndPoint(*this, CONFERENCE_PREFIX); m_mcuEP->AddNode(new OpalMixerNodeInfo(CONFERENCE_NAME)); #endif @@ -2926,17 +2928,18 @@ { if (m_activeCall != NULL) { PSafePtr<OpalConnection> connection = GetConnection(true, PSafeReference); - m_activeCall->Transfer("mcu:"CONFERENCE_NAME, connection); + m_activeCall->Transfer(CONFERENCE_URI, connection); LogWindow << "Added \"" << connection->GetRemotePartyName() << "\" to conference." << endl; - PString pc = "pc:*"; + + PString pc = "pc:*;" OPAL_URL_PARAM_PREFIX OPAL_OPT_CONF_OWNER; if (connection->GetMediaStream(OpalMediaType::Video(), true) == NULL) - pc += ";OPAL-AutoStart=video:no"; - SetUpCall(pc, "mcu:"CONFERENCE_NAME); + pc += ";" OPAL_URL_PARAM_PREFIX OPAL_OPT_AUTO_START "=video:no"; + SetUpCall(pc, CONFERENCE_URI); m_activeCall.SetNULL(); } PSafePtr<OpalLocalConnection> connection = call.GetConnectionAs<OpalLocalConnection>(); - call.Transfer("mcu:"CONFERENCE_NAME, connection); + call.Transfer(CONFERENCE_URI, connection); call.Retrieve(); LogWindow << "Added \"" << connection->GetRemotePartyName() << "\" to conference." << endl; } Modified: opal/branches/v3_12/src/ep/opalmixer.cxx =================================================================== --- opal/branches/v3_12/src/ep/opalmixer.cxx 2013-01-15 03:20:35 UTC (rev 28891) +++ opal/branches/v3_12/src/ep/opalmixer.cxx 2013-01-15 03:41:21 UTC (rev 28892) @@ -1011,6 +1011,8 @@ { OpalLocalConnection::OnApplyStringOptions(); SetListenOnly(m_stringOptions.GetBoolean(OPAL_OPT_LISTEN_ONLY, GetListenOnly())); + if (m_stringOptions.GetBoolean(OPAL_OPT_CONF_OWNER)) + m_node->SetOwnerConnection(GetToken()); } @@ -1281,7 +1283,10 @@ m_manager.OnNodeStatusChanged(*this, OpalConferenceState::UserRemoved); - if (!m_ownerConnection.IsEmpty() && connection->GetRemotePartyURL() == m_ownerConnection) + if (!m_ownerConnection.IsEmpty() && + (m_ownerConnection == connection->GetToken() || + m_ownerConnection == connection->GetLocalPartyURL() || + m_ownerConnection == connection->GetRemotePartyURL())) ShutDown(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-15 03:57:05
|
Revision: 28893 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28893&view=rev Author: rjongbloed Date: 2013-01-15 03:56:58 +0000 (Tue, 15 Jan 2013) Log Message: ----------- Fixed crash (missing mutex) when shutting down a conference via "owner" disconnect. Modified Paths: -------------- opal/branches/v3_12/include/ep/opalmixer.h opal/branches/v3_12/src/ep/opalmixer.cxx Modified: opal/branches/v3_12/include/ep/opalmixer.h =================================================================== --- opal/branches/v3_12/include/ep/opalmixer.h 2013-01-15 03:41:21 UTC (rev 28892) +++ opal/branches/v3_12/include/ep/opalmixer.h 2013-01-15 03:56:58 UTC (rev 28893) @@ -546,7 +546,7 @@ OpalManager & m_manager; PSafeDictionary<PGloballyUniqueID, OpalMixerNode> m_nodesByUID; - PDictionary<PString, OpalMixerNode> m_nodesByName; + PSafeDictionary<PString, OpalMixerNode> m_nodesByName; }; Modified: opal/branches/v3_12/src/ep/opalmixer.cxx =================================================================== --- opal/branches/v3_12/src/ep/opalmixer.cxx 2013-01-15 03:41:21 UTC (rev 28892) +++ opal/branches/v3_12/src/ep/opalmixer.cxx 2013-01-15 03:56:58 UTC (rev 28893) @@ -856,9 +856,9 @@ else { PSafePtr<OpalMixerNode> node; if (name.NumCompare(GetPrefixName()+':') == EqualTo) - node = m_nodesByUID.FindWithLock(name.Mid(GetPrefixName().GetLength()+1)); + node = m_nodesByUID.FindWithLock(name.Mid(GetPrefixName().GetLength()+1), PSafeReadOnly); else - node = m_nodesByName.GetAt(name); + node = m_nodesByName.FindWithLock(name, PSafeReadOnly); if (node != NULL) { states.push_back(OpalConferenceState()); @@ -1836,7 +1836,7 @@ void OpalMixerNodeManager::ShutDown() { - PTRACE(4, "Mixer\tDestroying " << m_nodesByUID.GetSize() << ' ' << m_nodesByName.GetSize() << " nodes"); + PTRACE(4, "Mixer\tDestroying " << m_nodesByUID.GetSize() << '/' << m_nodesByName.GetSize() << " nodes"); while (!m_nodesByUID.IsEmpty()) { PSafePtr<OpalMixerNode> node = m_nodesByUID.GetAt(0); node->ShutDown(); @@ -1883,10 +1883,7 @@ PSafePtr<OpalMixerNode> OpalMixerNodeManager::FindNode(const PString & name, PSafetyMode mode) { PGloballyUniqueID guid(name); - if (!guid.IsNULL()) - return m_nodesByUID.FindWithLock(guid, mode); - - return PSafePtr<OpalMixerNode>(m_nodesByName.GetAt(name), mode); + return guid.IsNULL() ? m_nodesByName.FindWithLock(name, mode) : m_nodesByUID.FindWithLock(guid, mode); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-16 03:29:12
|
Revision: 28896 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28896&view=rev Author: rjongbloed Date: 2013-01-16 03:29:05 +0000 (Wed, 16 Jan 2013) Log Message: ----------- Make sure T.38 switching cannot occur when call clearing. Modified Paths: -------------- opal/branches/v3_12/include/t38/t38proto.h opal/branches/v3_12/src/t38/t38proto.cxx Modified: opal/branches/v3_12/include/t38/t38proto.h =================================================================== --- opal/branches/v3_12/include/t38/t38proto.h 2013-01-16 03:22:28 UTC (rev 28895) +++ opal/branches/v3_12/include/t38/t38proto.h 2013-01-16 03:29:05 UTC (rev 28896) @@ -246,7 +246,7 @@ protected: PDECLARE_NOTIFIER(PTimer, OpalFaxConnection, OnSwitchTimeout); - void OpenFaxStreams(); + void InternalOpenFaxStreams(); void InternalOnFaxCompleted(); void SetFaxMediaFormatOptions(OpalMediaFormat & mediaFormat) const; Modified: opal/branches/v3_12/src/t38/t38proto.cxx =================================================================== --- opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-16 03:22:28 UTC (rev 28895) +++ opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-16 03:29:05 UTC (rev 28896) @@ -898,7 +898,7 @@ } if (bothClosed) { - if (m_finalStatistics.m_fax.m_result == 0 /* success!*/ || !ownerCall.IsSwitchingT38()) + if (m_finalStatistics.m_fax.m_result == 0 /* success!*/ || !(IsReleased() || ownerCall.IsSwitchingT38())) InternalOnFaxCompleted(); else { PTRACE(4, "FAX\tIgnoring switching " @@ -924,14 +924,13 @@ void OpalFaxConnection::OnUserInputTone(char tone, unsigned /*duration*/) { // Not yet switched and got a CNG/CED from the remote system, start switch - if (m_disableT38) + if (m_disableT38 || IsReleased()) return; if (m_receiving ? (tone == 'X') : (tone == 'Y' && m_stringOptions.GetBoolean(OPAL_SWITCH_ON_CED))) { PTRACE(3, "FAX\tRequesting mode change in response to " << (tone == 'X' ? "CNG" : "CED")); - GetEndPoint().GetManager().QueueDecoupledEvent( - new PSafeWorkNoArg<OpalFaxConnection>(this, &OpalFaxConnection::OpenFaxStreams)); + SwitchFaxMediaStreams(true); } } @@ -975,17 +974,20 @@ void OpalFaxConnection::OnSwitchTimeout(PTimer &, INT) { - if (m_disableT38) + if (m_disableT38 || IsReleased()) return; PTRACE(2, "FAX\tDid not switch to T.38 mode, forcing switch"); GetEndPoint().GetManager().QueueDecoupledEvent( - new PSafeWorkNoArg<OpalFaxConnection>(this, &OpalFaxConnection::OpenFaxStreams)); + new PSafeWorkNoArg<OpalFaxConnection>(this, &OpalFaxConnection::InternalOpenFaxStreams)); } bool OpalFaxConnection::SwitchFaxMediaStreams(bool enable) { + if (IsReleased()) + return false; + m_completed = false; PSafePtr<OpalConnection> other = GetOtherPartyConnection(); return other != NULL && other->SwitchFaxMediaStreams(enable); @@ -1021,7 +1023,7 @@ } -void OpalFaxConnection::OpenFaxStreams() +void OpalFaxConnection::InternalOpenFaxStreams() { if (LockReadWrite()) { SwitchFaxMediaStreams(true); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-17 05:19:02
|
Revision: 28906 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28906&view=rev Author: rjongbloed Date: 2013-01-17 05:18:55 +0000 (Thu, 17 Jan 2013) Log Message: ----------- Added another test for Asterisk insanity. If not configured with vmexten (whatever that is) Asterisk gets the MWI "account" wrong. Modified Paths: -------------- opal/branches/v3_12/src/sip/handlers.cxx Property Changed: ---------------- opal/branches/v3_12/ Property changes on: opal/branches/v3_12 ___________________________________________________________________ Modified: svn:mergeinfo - /opal/branches/EpsilonEridani:27633,27638,27727,27881-27882,27905,27935,28035,28305,28308,28439,28454,28534 /opal/branches/Luyten_A:24769-25572 /opal/branches/Sirius_A:23371,23374,23549,23560,23770 /opal/branches/Sirius_B:24566,24579,24589,24594,24596,24601,24604,24635-24636,24639-24642,24644,24651,24653,24655-24656,24683,24685,24714-24717,24771,24777-24783,24842,24845,24858,24947,24954-24970,24980,25085 /opal/branches/autoconf:20594-21001 /opal/branches/csoutheren/LalandeBranch1:23412-23413,23415,23424,23510,23516,23553,23577,23607,23669,23724,23742-23744,23747-23748,23755,23758,23780,23788,23848,23850,23856 /opal/branches/rjongbloed/BarnardPlus:20584,20656,20749,20751,20756,20762,20786,20789,20814,20820,20829,20831,20841,20843,20923,20927,20938,22016-22017,22518,22582,22941 /opal/branches/v3_10:25182-28791 /opal/branches/v3_2:21143,21220,21227,21253,21455 /opal/branches/v3_4:21060,21062,21088,21092,21111,21113,21115,21119,21143,21148,21151-21152,21155,21158,21184,21188,21253,21265-21266,21283-21284,21298,21300,21303,21307,21309,21311,21327,21331,21333,21359,21367,21369,21488,21556,21564-21565,21568,21570,21620,21625,21631,21748,21751,21756,21759,21761,21767,21770,22246,23044,23140,23143,23286 /opal/branches/v3_6:22169,22178,22184,22186,22197,22204,22216,22251,22253,22255,22258,22260,22291,22296,22300,22306,22308,22313,22319,22336,22353,22358,22436,22447,22449,22497,22511,22517,22519-22521,22527,22536,22538,22589,22596,22599,22617,22620,22622,22630,22640,22655,22675,22682,22726-22728,22730,22733,22738,22745-22746,22800,22820-22821,22842,22844-22845,22851,22853,22889,22896,22902,22904,22906,22918,22924,22928,22946,22965,22967,22976,22978,22980,22982,22994,23028,23123,23125-23126,23128,23157,23165,23173,23175,23183,23294,23341,23465,23467,23474,23521,23829,24346,24809 /opal/branches/v3_8:24025,24027,24029,24036,24038,24040,24042,24048,24050,24058,24061,24068,24071,24074,24076,24080,24082,24086-24087,24092,24099,24101,24105,24107,24109,24111,24114,24116-24117,24120-24121,24125,24127,24130,24132,24134,24138,24140,24144,24146,24148,24150-24151,24154,24156,24158,24162,24170,24218,24245,24257,24261,24340,24362-24363,24365,24369,24373,24422,24440,24442,24447,24489,24504,24506,24532,24536,24545,24547,24552,24554,24614,24678,24687,24699,24705,24775,24833,24861,24903,25146 /opal/trunk:28722 /ptlib/branches/v2_8:24136 /ptlib/trunk:20820 + /opal/branches/EpsilonEridani:27633,27638,27727,27881-27882,27905,27935,28035,28305,28308,28439,28454,28534 /opal/branches/Luyten_A:24769-25572 /opal/branches/Sirius_A:23371,23374,23549,23560,23770 /opal/branches/Sirius_B:24566,24579,24589,24594,24596,24601,24604,24635-24636,24639-24642,24644,24651,24653,24655-24656,24683,24685,24714-24717,24771,24777-24783,24842,24845,24858,24947,24954-24970,24980,25085 /opal/branches/autoconf:20594-21001 /opal/branches/csoutheren/LalandeBranch1:23412-23413,23415,23424,23510,23516,23553,23577,23607,23669,23724,23742-23744,23747-23748,23755,23758,23780,23788,23848,23850,23856 /opal/branches/rjongbloed/BarnardPlus:20584,20656,20749,20751,20756,20762,20786,20789,20814,20820,20829,20831,20841,20843,20923,20927,20938,22016-22017,22518,22582,22941 /opal/branches/v3_10:25182-28905 /opal/branches/v3_2:21143,21220,21227,21253,21455 /opal/branches/v3_4:21060,21062,21088,21092,21111,21113,21115,21119,21143,21148,21151-21152,21155,21158,21184,21188,21253,21265-21266,21283-21284,21298,21300,21303,21307,21309,21311,21327,21331,21333,21359,21367,21369,21488,21556,21564-21565,21568,21570,21620,21625,21631,21748,21751,21756,21759,21761,21767,21770,22246,23044,23140,23143,23286 /opal/branches/v3_6:22169,22178,22184,22186,22197,22204,22216,22251,22253,22255,22258,22260,22291,22296,22300,22306,22308,22313,22319,22336,22353,22358,22436,22447,22449,22497,22511,22517,22519-22521,22527,22536,22538,22589,22596,22599,22617,22620,22622,22630,22640,22655,22675,22682,22726-22728,22730,22733,22738,22745-22746,22800,22820-22821,22842,22844-22845,22851,22853,22889,22896,22902,22904,22906,22918,22924,22928,22946,22965,22967,22976,22978,22980,22982,22994,23028,23123,23125-23126,23128,23157,23165,23173,23175,23183,23294,23341,23465,23467,23474,23521,23829,24346,24809 /opal/branches/v3_8:24025,24027,24029,24036,24038,24040,24042,24048,24050,24058,24061,24068,24071,24074,24076,24080,24082,24086-24087,24092,24099,24101,24105,24107,24109,24111,24114,24116-24117,24120-24121,24125,24127,24130,24132,24134,24138,24140,24144,24146,24148,24150-24151,24154,24156,24158,24162,24170,24218,24245,24257,24261,24340,24362-24363,24365,24369,24373,24422,24440,24442,24447,24489,24504,24506,24532,24536,24545,24547,24552,24554,24614,24678,24687,24699,24705,24775,24833,24861,24903,25146 /opal/trunk:28722 /ptlib/branches/v2_8:24136 /ptlib/trunk:20820 Modified: opal/branches/v3_12/src/sip/handlers.cxx =================================================================== --- opal/branches/v3_12/src/sip/handlers.cxx 2013-01-17 05:12:17 UTC (rev 28905) +++ opal/branches/v3_12/src/sip/handlers.cxx 2013-01-17 05:18:55 UTC (rev 28906) @@ -1301,10 +1301,12 @@ PMIMEInfo info(notifyInfo.m_request.GetEntityBody()); - PString aor = notifyInfo.m_handler.GetAddressOfRecord().AsString(); + const SIPURL & aor = notifyInfo.m_handler.GetAddressOfRecord(); PString account = info.Get("Message-Account"); - if (account.IsEmpty() || aor.NumCompare(account) == EqualTo) - account = aor; + SIPURL accountURI(account); + if (account.IsEmpty() || aor.GetUserName() == account || + (accountURI.GetUserName() == "asterisk" && accountURI == aor.GetHostPort())) + account = aor.AsString(); bool nothingSent = true; for (PINDEX z = 0 ; z < PARRAYSIZE(validMessageClasses); z++) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-17 06:28:07
|
Revision: 28908 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28908&view=rev Author: rjongbloed Date: 2013-01-17 06:28:00 +0000 (Thu, 17 Jan 2013) Log Message: ----------- Fixed 64 compile of IVR sample with VS2012. Modified Paths: -------------- opal/branches/v3_12/opal_samples_2012.sln opal/branches/v3_12/samples/ivropal/IvrOPAL_2012.vcxproj Modified: opal/branches/v3_12/opal_samples_2012.sln =================================================================== --- opal/branches/v3_12/opal_samples_2012.sln 2013-01-17 06:16:37 UTC (rev 28907) +++ opal/branches/v3_12/opal_samples_2012.sln 2013-01-17 06:28:00 UTC (rev 28908) @@ -174,12 +174,13 @@ {FFC2C809-4DF4-41C1-9D51-3BA5D3506533}.Release|x64.Build.0 = Release|x64 {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Debug|Win32.ActiveCfg = Debug|Win32 {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Debug|Win32.Build.0 = Debug|Win32 - {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Debug|x64.ActiveCfg = Debug|Win32 + {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Debug|x64.ActiveCfg = Debug|x64 {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.No Trace|Win32.ActiveCfg = Release|Win32 {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.No Trace|x64.ActiveCfg = Release|Win32 {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Release|Win32.ActiveCfg = Release|Win32 {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Release|Win32.Build.0 = Release|Win32 - {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Release|x64.ActiveCfg = Release|Win32 + {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Release|x64.ActiveCfg = Release|x64 + {D7F92DDD-CA73-4E2F-8940-4E2D1C863D25}.Release|x64.Build.0 = Release|x64 {D4F638A4-B109-4348-9247-FFC163676723}.Debug|Win32.ActiveCfg = Debug|Win32 {D4F638A4-B109-4348-9247-FFC163676723}.Debug|Win32.Build.0 = Debug|Win32 {D4F638A4-B109-4348-9247-FFC163676723}.Debug|x64.ActiveCfg = Debug|x64 Modified: opal/branches/v3_12/samples/ivropal/IvrOPAL_2012.vcxproj =================================================================== --- opal/branches/v3_12/samples/ivropal/IvrOPAL_2012.vcxproj 2013-01-17 06:16:37 UTC (rev 28907) +++ opal/branches/v3_12/samples/ivropal/IvrOPAL_2012.vcxproj 2013-01-17 06:28:00 UTC (rev 28908) @@ -5,10 +5,18 @@ <Configuration>Debug</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Debug|x64"> + <Configuration>Debug</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> <ProjectConfiguration Include="Release|Win32"> <Configuration>Release</Configuration> <Platform>Win32</Platform> </ProjectConfiguration> + <ProjectConfiguration Include="Release|x64"> + <Configuration>Release</Configuration> + <Platform>x64</Platform> + </ProjectConfiguration> </ItemGroup> <PropertyGroup Label="Globals"> <ProjectName>IVR Application</ProjectName> @@ -21,37 +29,71 @@ <CharacterSet>MultiByte</CharacterSet> <PlatformToolset>v110</PlatformToolset> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration"> <ConfigurationType>Application</ConfigurationType> <UseOfMfc>false</UseOfMfc> <CharacterSet>MultiByte</CharacterSet> <PlatformToolset>v110</PlatformToolset> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration"> + <ConfigurationType>Application</ConfigurationType> + <UseOfMfc>false</UseOfMfc> + <CharacterSet>MultiByte</CharacterSet> + <PlatformToolset>v110</PlatformToolset> + </PropertyGroup> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> <ImportGroup Label="ExtensionSettings"> </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets"> <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> </ImportGroup> + <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets"> + <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" /> + </ImportGroup> <PropertyGroup Label="UserMacros" /> <PropertyGroup> <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion> <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\$(ProjectName)\$(Configuration)\</OutDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">..\..\bin\$(ProjectName)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental> <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\$(ProjectName)\$(Configuration)\</OutDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">..\..\bin\$(ProjectName)\$(Configuration)\</IntDir> <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental> + <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental> <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)..\..\include;$(ProjectDir)..\..\..\ptlib\include;$(IncludePath)</IncludePath> + <IncludePath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)..\..\include;$(ProjectDir)..\..\..\ptlib\include;$(IncludePath)</IncludePath> <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)..\..\lib;$(ProjectDir)..\..\..\ptlib\lib;$(LibraryPath)</LibraryPath> + <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)..\..\lib;$(ProjectDir)..\..\..\ptlib\lib;$(LibraryPath)</LibraryPath> <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)..\..\lib;$(ProjectDir)..\..\..\ptlib\lib;$(LibraryPath)</LibraryPath> + <LibraryPath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)..\..\lib;$(ProjectDir)..\..\..\ptlib\lib;$(LibraryPath)</LibraryPath> <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)..\..\include;$(ProjectDir)..\..\..\ptlib\include;$(IncludePath)</IncludePath> + <IncludePath Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)..\..\include;$(ProjectDir)..\..\..\ptlib\include;$(IncludePath)</IncludePath> <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">ivropal</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">ivropal</TargetName> <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">ivropal</TargetName> + <TargetName Condition="'$(Configuration)|$(Platform)'=='Release|x64'">ivropal</TargetName> </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <OutDir>..\..\bin\$(ProjectName)\$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(OutDir)</IntDir> + </PropertyGroup> + <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <OutDir>..\..\bin\$(ProjectName)\$(Platform)\$(Configuration)\</OutDir> + <IntDir>$(OutDir)</IntDir> + </PropertyGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> <Midl> <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> @@ -88,9 +130,45 @@ <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention> </DataExecutionPrevention> - <TargetMachine>MachineX86</TargetMachine> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> + <Midl> + <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MkTypLibCompatible>true</MkTypLibCompatible> + <SuppressStartupBanner>true</SuppressStartupBanner> + <TypeLibraryName>.\Release/vidtest.tlb</TypeLibraryName> + <HeaderFileName> + </HeaderFileName> + </Midl> + <ClCompile> + <Optimization>MaxSpeed</Optimization> + <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion> + <PreprocessorDefinitions>PTRACING=2;P_64BIT;_CONSOLE;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <StringPooling>true</StringPooling> + <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> + <FunctionLevelLinking>true</FunctionLevelLinking> + <RuntimeTypeInfo>true</RuntimeTypeInfo> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>precompile.h</PrecompiledHeaderFile> + <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName> + <SuppressStartupBanner>true</SuppressStartupBanner> + <WarningLevel>Level4</WarningLevel> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>NDEBUG;_AFXDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0c09</Culture> + </ResourceCompile> + <Link> + <SuppressStartupBanner>true</SuppressStartupBanner> + <AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + </Link> + </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <Midl> <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> @@ -127,10 +205,47 @@ <RandomizedBaseAddress>false</RandomizedBaseAddress> <DataExecutionPrevention> </DataExecutionPrevention> - <TargetMachine>MachineX86</TargetMachine> <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> </Link> </ItemDefinitionGroup> + <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'"> + <Midl> + <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <MkTypLibCompatible>true</MkTypLibCompatible> + <SuppressStartupBanner>true</SuppressStartupBanner> + <TypeLibraryName>.\Debug/vidtest.tlb</TypeLibraryName> + <HeaderFileName> + </HeaderFileName> + </Midl> + <ClCompile> + <Optimization>Disabled</Optimization> + <PreprocessorDefinitions>PTRACING=2;P_64BIT;_CONSOLE;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> + <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> + <RuntimeTypeInfo>true</RuntimeTypeInfo> + <PrecompiledHeader>Use</PrecompiledHeader> + <PrecompiledHeaderFile>precompile.h</PrecompiledHeaderFile> + <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName> + <WarningLevel>Level4</WarningLevel> + <SuppressStartupBanner>true</SuppressStartupBanner> + <DebugInformationFormat>ProgramDatabase</DebugInformationFormat> + </ClCompile> + <ResourceCompile> + <PreprocessorDefinitions>_DEBUG;_AFXDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> + <Culture>0x0c09</Culture> + </ResourceCompile> + <Link> + <SuppressStartupBanner>true</SuppressStartupBanner> + <AdditionalLibraryDirectories>..\..\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories> + <GenerateDebugInformation>true</GenerateDebugInformation> + <ProgramDatabaseFile>$(OutDir)$(TargetName).pdb</ProgramDatabaseFile> + <SubSystem>Console</SubSystem> + <RandomizedBaseAddress>false</RandomizedBaseAddress> + <DataExecutionPrevention> + </DataExecutionPrevention> + <ImageHasSafeExceptionHandlers>false</ImageHasSafeExceptionHandlers> + </Link> + </ItemDefinitionGroup> <ItemGroup> <ProjectReference Include="..\..\..\ptlib\src\ptlib\msos\PTLib_2012.vcxproj"> <Project>{85f4f26a-1a5d-4685-a48a-448102c5c5bc}</Project> @@ -142,19 +257,31 @@ <ItemGroup> <ClCompile Include="main.cxx"> <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization> + <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks> + <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks> <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization> + <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> </ClCompile> <ClCompile Include="precompile.cxx"> <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Disabled</Optimization> + <Optimization Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Disabled</Optimization> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">EnableFastChecks</BasicRuntimeChecks> + <BasicRuntimeChecks Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">EnableFastChecks</BasicRuntimeChecks> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">MaxSpeed</Optimization> + <Optimization Condition="'$(Configuration)|$(Platform)'=='Release|x64'">MaxSpeed</Optimization> <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">%(PreprocessorDefinitions)</PreprocessorDefinitions> + <PreprocessorDefinitions Condition="'$(Configuration)|$(Platform)'=='Release|x64'">%(PreprocessorDefinitions)</PreprocessorDefinitions> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader> + <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader> </ClCompile> </ItemGroup> <ItemGroup> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-18 04:19:05
|
Revision: 28921 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28921&view=rev Author: rjongbloed Date: 2013-01-18 04:18:54 +0000 (Fri, 18 Jan 2013) Log Message: ----------- Finally supported RFC 3261 section 18.1.1 where if SIP/UDP request is > 1300 bytes, we should switch automatically to TCP, and if that fails, switch back to UDP. Modified Paths: -------------- opal/branches/v3_12/include/sip/handlers.h opal/branches/v3_12/include/sip/sipcon.h opal/branches/v3_12/include/sip/sipep.h opal/branches/v3_12/include/sip/sippdu.h opal/branches/v3_12/src/im/sipim.cxx opal/branches/v3_12/src/opal/transports.cxx opal/branches/v3_12/src/sip/handlers.cxx opal/branches/v3_12/src/sip/sipcon.cxx opal/branches/v3_12/src/sip/sipep.cxx opal/branches/v3_12/src/sip/sippdu.cxx Modified: opal/branches/v3_12/include/sip/handlers.h =================================================================== --- opal/branches/v3_12/include/sip/handlers.h 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/include/sip/handlers.h 2013-01-18 04:18:54 UTC (rev 28921) @@ -93,7 +93,6 @@ virtual Comparison Compare(const PObject & other) const; // Overrides from SIPTransactionOwner - virtual SIPURL GetTargetURI() const { return m_remoteAddress; } virtual PString GetAuthID() const { return m_username; } virtual PString GetPassword() const { return m_password; } @@ -150,7 +149,6 @@ const OpalProductInfo & GetProductInfo() const { return m_productInfo; } const PString & GetRealm() const { return m_realm; } - const SIPURL & GetRemoteAddress() const { return m_remoteAddress; } virtual bool ShutDown(); @@ -166,7 +164,6 @@ const SIP_PDU::Methods m_method; const SIPURL m_addressOfRecord; - SIPURL m_remoteAddress; SIPMIMEInfo m_mime; unsigned m_lastCseq; @@ -222,30 +219,10 @@ }; -class SIPHandlerWithDialog : public SIPHandler +class SIPSubscribeHandler : public SIPHandler { - PCLASSINFO(SIPHandlerWithDialog, SIPHandler); + PCLASSINFO(SIPSubscribeHandler, SIPHandler); public: - SIPHandlerWithDialog( - SIP_PDU::Methods method, - SIPEndPoint & ep, - const SIPParameters & params, - const SIPDialogContext & dialog - ); - - virtual OpalTransportAddress GetRemoteTransportAddress(PINDEX dnsEntry) const; - virtual SIPURL GetTargetURI() const; - virtual bool IsDuplicateCSeq(unsigned sequenceNumber); - -protected: - SIPDialogContext m_dialog; -}; - - -class SIPSubscribeHandler : public SIPHandlerWithDialog -{ - PCLASSINFO(SIPSubscribeHandler, SIPHandlerWithDialog); -public: SIPSubscribeHandler(SIPEndPoint & ep, const SIPSubscribe::Params & params); ~SIPSubscribeHandler(); @@ -264,19 +241,17 @@ virtual PBoolean SendRequest(SIPHandler::State state); virtual void WriteTransaction(OpalTransport & transport, bool & succeeded); void SendStatus(SIP_PDU::StatusCodes code, State state); - bool DispatchNOTIFY(SIP_PDU & request); + bool DispatchNOTIFY(SIP_PDU & request, SIP_PDU & response); SIPSubscribe::Params m_parameters; bool m_unconfirmed; SIPEventPackageHandler * m_packageHandler; - - SIP_PDU * m_previousResponse; }; -class SIPNotifyHandler : public SIPHandlerWithDialog +class SIPNotifyHandler : public SIPHandler { - PCLASSINFO(SIPNotifyHandler, SIPHandlerWithDialog); + PCLASSINFO(SIPNotifyHandler, SIPHandler); public: SIPNotifyHandler( SIPEndPoint & ep, Modified: opal/branches/v3_12/include/sip/sipcon.h =================================================================== --- opal/branches/v3_12/include/sip/sipcon.h 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/include/sip/sipcon.h 2013-01-18 04:18:54 UTC (rev 28921) @@ -609,8 +609,6 @@ OpalTransportAddress GetDefaultSDPConnectAddress(WORD port = 0) const; SIPEndPoint & GetEndPoint() const { return SIPTransactionOwner::m_endpoint; } - SIPDialogContext & GetDialog() { return m_dialog; } - const SIPDialogContext & GetDialog() const { return m_dialog; } SIPAuthentication * GetAuthenticator() const { return m_authentication; } /// Mode for reliable provisional responses. @@ -659,8 +657,6 @@ ); // Overrides from SIPTransactionOwner - virtual OpalTransportAddress GetRemoteTransportAddress(PINDEX dnsEntry) const; - virtual SIPURL GetTargetURI() const; virtual PString GetAuthID() const; @@ -740,9 +736,8 @@ ); void UpdateRemoteAddresses(); - bool SetNewTransportProto(const PString & proto); #if OPAL_SRTP - virtual bool CanDoSRTP() const { return GetTargetURI().GetTransportProto() == "tls"; } + virtual bool CanDoSRTP() const { return m_dialog.GetRequestURI().GetTransportProto() == "tls"; } #endif void NotifyDialogState( @@ -783,7 +778,6 @@ bool m_handlingINVITE; bool m_resolveMultipleFormatReINVITE; bool m_symmetricOpenStream; - SIPDialogContext m_dialog; OpalGloballyUniqueID m_dialogNotifyId; int m_appearanceCode; PString m_alertInfo; Modified: opal/branches/v3_12/include/sip/sipep.h =================================================================== --- opal/branches/v3_12/include/sip/sipep.h 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/include/sip/sipep.h 2013-01-18 04:18:54 UTC (rev 28921) @@ -783,6 +783,9 @@ */ void SetDefaultPRACKMode(SIPConnection::PRACKMode mode) { m_defaultPrackMode = mode; } + void SetMaxPacketSizeUDP(PINDEX sz) { m_maxPacketSizeUDP = sz; } + PINDEX GetMaxPacketSizeUDP() const { return m_maxPacketSizeUDP; } + void SetMaxRetries(unsigned r) { maxRetries = r; } unsigned GetMaxRetries() const { return maxRetries; } @@ -968,6 +971,7 @@ SIPConnection::PRACKMode m_defaultPrackMode; + PINDEX m_maxPacketSizeUDP; unsigned maxRetries; PTimeInterval retryTimeoutMin; // T1 PTimeInterval retryTimeoutMax; // T2 Modified: opal/branches/v3_12/include/sip/sippdu.h =================================================================== --- opal/branches/v3_12/include/sip/sippdu.h 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/include/sip/sippdu.h 2013-01-18 04:18:54 UTC (rev 28921) @@ -610,7 +610,8 @@ friend ostream & operator<<(ostream & strm, StatusCodes status); SIP_PDU( - Methods method = SIP_PDU::NumMethods + Methods method = SIP_PDU::NumMethods, + const OpalTransportPtr & transport = NULL ); /** Construct a Response message @@ -635,12 +636,10 @@ const SIPURL & to, const SIPURL & from, const PString & callID, - unsigned cseq, - const PString & via + unsigned cseq ); void InitialiseHeaders( SIPDialogContext & dialog, - const PString & via, unsigned cseq = 0 ); void InitialiseHeaders( @@ -662,39 +661,23 @@ */ void SetAllow(unsigned bitmask); - /**Update the VIA field following RFC3261, 18.2.1 and RFC3581. - */ - void AdjustVia(); - - PString CreateVia(); - /**Read PDU from the specified transport. */ - StatusCodes Read( - const OpalTransportPtr & transport - ); + StatusCodes Read(); StatusCodes Parse( istream & strm, bool truncated - PTRACE_PARAM(, OpalTransport * transport = NULL) ); /**Write the PDU to the transport. */ - PBoolean Write( - OpalTransport & transport - ); + bool Send(); /**Write PDU as a response to a request. */ bool SendResponse( - SIPEndPoint & endpoint, StatusCodes code ); - bool SendResponse( - SIPEndPoint & endpoint, - SIP_PDU & response - ); /** Construct the PDU string to output. Returns the total length of the PDU. @@ -721,9 +704,14 @@ SDPSessionDescription * GetSDP() { return m_SDP; } void SetSDP(SDPSessionDescription * sdp); bool DecodeSDP(const OpalMediaFormatList & masterList); - OpalTransport * GetTransport() const { return m_transport; } + const PString & GetExternalTransportAddress() const { return m_externalTransportAddress; } + OpalTransportPtr GetTransport() const { return m_transport; } + protected: + void CalculateVia(); + StatusCodes InternalSend(bool canDoTCP); + Methods m_method; // Request type, ==NumMethods for Response StatusCodes m_statusCode; SIPURL m_uri; // display name & URI, no tag @@ -736,7 +724,9 @@ SDPSessionDescription * m_SDP; - OpalTransportPtr m_transport; + OpalTransportPtr m_transport; + OpalTransportAddress m_viaAddress; + OpalTransportAddress m_externalTransportAddress; }; @@ -805,6 +795,7 @@ OpalTransportAddress GetRemoteTransportAddress(PINDEX dnsEntry) const; const PString & GetInterface() const { return m_interface; } + void SetInterface(const PString & newInterface) { m_interface = newInterface; } void SetForking(bool f) { m_forking = f; } @@ -955,11 +946,10 @@ ); virtual ~SIPTransactionOwner(); - virtual OpalTransportAddress GetRemoteTransportAddress(PINDEX dnsEntry) const; - virtual SIPURL GetTargetURI() const = 0; virtual PString GetAuthID() const = 0; virtual PString GetPassword() const { return PString::Empty(); } virtual unsigned GetAllowedMethods() const; + virtual void OnStartTransaction(SIPTransaction & /*transaction*/) { } virtual void OnReceivedResponse(SIPTransaction & transaction, SIP_PDU & response); virtual void OnTransactionFailed(SIPTransaction & transaction); @@ -971,20 +961,26 @@ const OpalTransport::WriteConnectCallback & function ); + SIP_PDU::StatusCodes SwitchTransportProto(const char * proto, OpalTransportPtr * transport); + SIP_PDU::StatusCodes HandleAuthentication(const SIP_PDU & response); SIPEndPoint & GetEndPoint() const { return m_endpoint; } - const SIPURL & GetProxy() const { return m_proxy; } - const PString & GetInterface() const { return m_localInterface; } - void ResetInterface() { m_localInterface.MakeEmpty(); } + OpalTransportAddress GetRemoteTransportAddress() const { return m_dialog.GetRemoteTransportAddress(m_dnsEntry); } + const SIPURL & GetRequestURI() const { return m_dialog.GetRequestURI(); } + const SIPURL & GetRemoteURI() const { return m_dialog.GetRemoteURI(); } + const SIPURL & GetProxy() const { return m_dialog.GetProxy(); } + const PString & GetInterface() const { return m_dialog.GetInterface(); } + void ResetInterface() { m_dialog.SetInterface(PString::Empty()); } PINDEX GetDNSEntry() const { return m_dnsEntry; } SIPAuthentication * GetAuthenticator() const { return m_authentication; } + SIPDialogContext & GetDialog() { return m_dialog; } + const SIPDialogContext & GetDialog() const { return m_dialog; } protected: PSafeObject & m_object; SIPEndPoint & m_endpoint; - SIPURL m_proxy; - PString m_localInterface; + SIPDialogContext m_dialog; // Not all derived classes use this as a dialog, but many fields useful PINDEX m_dnsEntry; SIPAuthentication * m_authentication; unsigned m_authenticateErrors; @@ -1043,7 +1039,7 @@ but different ID needs to be created, e.g. when get authentication error. */ virtual SIPTransaction * CreateDuplicate() const = 0; - PBoolean Start(); + bool Start(); bool IsTrying() const { return m_state == Trying; } bool IsProceeding() const { return m_state == Proceeding; } bool IsInProgress() const { return m_state == Trying || m_state == Proceeding; } @@ -1066,7 +1062,6 @@ static PString GenerateCallID(); protected: - bool SendPDU(SIP_PDU & pdu); bool ResendCANCEL(); void SetParameters(const SIPParameters & params); @@ -1129,7 +1124,7 @@ virtual SIPTransaction * CreateDuplicate() const; - bool Send(SIP_PDU & command); + bool Resend(SIP_PDU & command); }; @@ -1168,8 +1163,8 @@ PCLASSINFO(SIPAck, SIP_PDU); public: SIPAck( - SIPTransaction & invite, - SIP_PDU & response + const SIPTransaction & invite, + const SIP_PDU & response ); virtual SIPTransaction * CreateDuplicate() const; Modified: opal/branches/v3_12/src/im/sipim.cxx =================================================================== --- opal/branches/v3_12/src/im/sipim.cxx 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/src/im/sipim.cxx 2013-01-18 04:18:54 UTC (rev 28921) @@ -405,7 +405,7 @@ } // After this, response is owned by transaction layer and will be deleted there - response->Send(request); + response->Send(); } Modified: opal/branches/v3_12/src/opal/transports.cxx =================================================================== --- opal/branches/v3_12/src/opal/transports.cxx 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/src/opal/transports.cxx 2013-01-18 04:18:54 UTC (rev 28921) @@ -1626,6 +1626,7 @@ ok = true; } } + socket->SetInterface(PString::Empty()); return ok; } Modified: opal/branches/v3_12/src/sip/handlers.cxx =================================================================== --- opal/branches/v3_12/src/sip/handlers.cxx 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/src/sip/handlers.cxx 2013-01-18 04:18:54 UTC (rev 28921) @@ -84,7 +84,6 @@ , m_realm(params.m_realm) , m_method(method) , m_addressOfRecord(params.m_addressOfRecord) - , m_remoteAddress(params.m_remoteAddress) , m_lastCseq(0) , m_lastResponseStatus(SIP_PDU::Information_Trying) , m_currentExpireTime(params.m_expire) @@ -96,17 +95,25 @@ { PTRACE_CONTEXT_ID_NEW(); + m_dialog.SetRequestURI(m_addressOfRecord); + m_dialog.SetCallID(m_callID); + + SIPURL remoteAddress(params.m_remoteAddress); + // Look for a "proxy" parameter to override default proxy - m_proxy = params.m_proxyAddress; - if (m_remoteAddress.GetParamVars().Contains(OPAL_PROXY_PARAM)) { - if (m_proxy.IsEmpty()) - m_proxy.Parse(m_remoteAddress.GetParamVars().Get(OPAL_PROXY_PARAM)); - m_remoteAddress.SetParamVar(OPAL_PROXY_PARAM, PString::Empty()); + SIPURL proxy = params.m_proxyAddress; + if (remoteAddress.GetParamVars().Contains(OPAL_PROXY_PARAM)) { + if (proxy.IsEmpty()) + proxy.Parse(remoteAddress.GetParamVars().Get(OPAL_PROXY_PARAM)); + remoteAddress.SetParamVar(OPAL_PROXY_PARAM, PString::Empty()); } - if (m_proxy.IsEmpty()) - m_proxy = ep.GetProxy(); + if (proxy.IsEmpty()) + proxy = ep.GetProxy(); + m_dialog.SetProxy(proxy, true); + m_dialog.SetRemoteURI(remoteAddress); + PTRACE(4, "SIP\tConstructed " << m_method << " handler for " << m_addressOfRecord); } @@ -305,7 +312,7 @@ SIPMIMEInfo & mime = transaction->GetMIME(); - if (m_localInterface.IsEmpty()) { + if (GetInterface().IsEmpty()) { if (m_lastCseq == 0) m_lastCseq = mime.GetCSeqIndex(); else @@ -519,7 +526,7 @@ SIPURL local = params.m_localAddress.IsEmpty() ? params.m_addressOfRecord : params.m_localAddress; local.SetTag(); m_parameters.m_localAddress = local.AsQuotedString(); - m_parameters.m_proxyAddress = m_proxy.AsString(); + m_parameters.m_proxyAddress = GetProxy().AsString(); } @@ -826,47 +833,14 @@ ///////////////////////////////////////////////////////////////////////// -SIPHandlerWithDialog::SIPHandlerWithDialog(SIP_PDU::Methods method, - SIPEndPoint & ep, - const SIPParameters & params, - const SIPDialogContext & dialog) - : SIPHandler(method, ep, params, dialog.GetCallID()) - , m_dialog(dialog) -{ -} - - -OpalTransportAddress SIPHandlerWithDialog::GetRemoteTransportAddress(PINDEX dnsEntry) const -{ - return m_dialog.GetRemoteTransportAddress(dnsEntry); -} - - -SIPURL SIPHandlerWithDialog::GetTargetURI() const -{ - return m_dialog.GetRequestURI(); -} - - -bool SIPHandlerWithDialog::IsDuplicateCSeq(unsigned sequenceNumber) -{ - return m_dialog.IsDuplicateCSeq(sequenceNumber); -} - - -///////////////////////////////////////////////////////////////////////// - SIPSubscribeHandler::SIPSubscribeHandler(SIPEndPoint & endpoint, const SIPSubscribe::Params & params) - : SIPHandlerWithDialog(SIP_PDU::Method_SUBSCRIBE, endpoint, params, SIPDialogContext()) + : SIPHandler(SIP_PDU::Method_SUBSCRIBE, endpoint, params) , m_parameters(params) , m_unconfirmed(true) , m_packageHandler(SIPEventPackageFactory::CreateInstance(params.m_eventPackage)) - , m_previousResponse(NULL) { PTRACE_CONTEXT_ID_TO(m_packageHandler); - m_parameters.m_proxyAddress = m_proxy.AsString(); - if (m_parameters.m_contentType.IsEmpty() && (m_packageHandler != NULL)) m_parameters.m_contentType = m_packageHandler->GetContentType(); } @@ -875,7 +849,6 @@ SIPSubscribeHandler::~SIPSubscribeHandler() { delete m_packageHandler; - delete m_previousResponse; } @@ -884,13 +857,11 @@ // Do all the following here as must be after we have called GetTransport() // which sets various fields correctly for transmission if (!m_dialog.IsEstablished()) { - m_dialog.SetRequestURI(GetAddressOfRecord()); if (m_parameters.m_eventPackage.IsWatcher()) m_parameters.m_localAddress = GetAddressOfRecord().AsString(); m_dialog.SetRemoteURI(m_parameters.m_addressOfRecord); m_dialog.SetLocalURI(m_parameters.m_localAddress.IsEmpty() ? m_parameters.m_addressOfRecord : m_parameters.m_localAddress); - m_dialog.SetProxy(m_parameters.m_proxyAddress.IsEmpty() ? m_proxy : m_parameters.m_proxyAddress, true); } m_parameters.m_expire = GetState() != Unsubscribing ? GetExpire() : 0; @@ -925,7 +896,7 @@ void SIPSubscribeHandler::WriteTransaction(OpalTransport & transport, bool & succeeded) { - m_dialog.SetForking(m_localInterface.IsEmpty()); + m_dialog.SetForking(GetInterface().IsEmpty()); SIPHandler::WriteTransaction(transport, succeeded); m_dialog.SetForking(false); } @@ -1025,25 +996,10 @@ requestMIME.GetProductInfo(m_productInfo); - // If we received this NOTIFY before, send the previous response - if (m_dialog.IsDuplicateCSeq(requestMIME.GetCSeqIndex())) { + // Remember response for retries by using transaction, note: deleted by SIPEndPoint + SIPResponse * response = new SIPResponse(m_endpoint, request, SIP_PDU::Failure_BadRequest); + PTRACE_CONTEXT_ID_TO(response); - // duplicate CSEQ but no previous response? That's unpossible! - if (m_previousResponse == NULL) - return request.SendResponse(m_endpoint, SIP_PDU::Failure_InternalServerError); - - /* Make sure our repeat response has the CSeq/Via etc of this request, due - to retries at various protocol layers we can have old and even older - NOTIFY packets still coming in requiring matching responses. */ - m_previousResponse->InitialiseHeaders(request); - return request.SendResponse(m_endpoint, *m_previousResponse); - } - - // remove last response - delete m_previousResponse; - m_previousResponse = new SIP_PDU(request, SIP_PDU::Failure_BadRequest); - PTRACE_CONTEXT_ID_TO(m_previousResponse); - PStringToString subscriptionStateInfo; PCaselessString subscriptionState = requestMIME.GetSubscriptionState(subscriptionStateInfo); if (subscriptionState.IsEmpty()) { @@ -1054,8 +1010,8 @@ // Check the susbscription state if (subscriptionState == "terminated") { PTRACE(3, "SIP\tSubscription is terminated, state=" << GetState()); - m_previousResponse->SetStatusCode(SIP_PDU::Successful_OK); - request.SendResponse(m_endpoint, *m_previousResponse); + response->SetStatusCode(SIP_PDU::Successful_OK); + response->Send(); switch (GetState()) { case Unsubscribed : @@ -1078,9 +1034,9 @@ PString requestEvent = requestMIME.GetEvent(); if (m_parameters.m_eventPackage != requestEvent) { PTRACE(2, "SIP\tNOTIFY received for incorrect event \"" << requestEvent << "\", requires \"" << m_parameters.m_eventPackage << '"'); - m_previousResponse->SetStatusCode(SIP_PDU::Failure_BadEvent); - m_previousResponse->GetMIME().SetAt("Allow-Events", m_parameters.m_eventPackage); - return request.SendResponse(m_endpoint, *m_previousResponse); + response->SetStatusCode(SIP_PDU::Failure_BadEvent); + response->GetMIME().SetAt("Allow-Events", m_parameters.m_eventPackage); + return response->Send(); } // Check any Requires field @@ -1089,10 +1045,10 @@ require -= "eventlist"; if (!require.IsEmpty()) { PTRACE(2, "SIPPres\tNOTIFY contains unsupported Require field \"" << setfill(',') << require << '"'); - m_previousResponse->SetStatusCode(SIP_PDU::Failure_BadExtension); - m_previousResponse->GetMIME().SetUnsupported(require); - m_previousResponse->SetInfo("Unsupported Require"); - return request.SendResponse(m_endpoint, *m_previousResponse); + response->SetStatusCode(SIP_PDU::Failure_BadExtension); + response->GetMIME().SetUnsupported(require); + response->SetInfo("Unsupported Require"); + return response->Send(); } // check the ContentType @@ -1105,18 +1061,18 @@ ) { PTRACE(2, "SIPPres\tNOTIFY contains unsupported Content-Type \"" << requestContentType << "\", expecting \"" << m_parameters.m_contentType << "\" or multipart/related or other validated type"); - m_previousResponse->SetStatusCode(SIP_PDU::Failure_UnsupportedMediaType); - m_previousResponse->GetMIME().SetAt("Accept", m_parameters.m_contentType); - m_previousResponse->SetInfo("Unsupported Content-Type"); - return request.SendResponse(m_endpoint, *m_previousResponse); + response->SetStatusCode(SIP_PDU::Failure_UnsupportedMediaType); + response->GetMIME().SetAt("Accept", m_parameters.m_contentType); + response->SetInfo("Unsupported Content-Type"); + return response->Send(); } } // Check if we know how to deal with this event if (m_packageHandler == NULL && m_parameters.m_onNotify.IsNULL()) { PTRACE(2, "SIP\tNo handler for NOTIFY received for event \"" << requestEvent << '"'); - m_previousResponse->SetStatusCode(SIP_PDU::Failure_InternalServerError); - return request.SendResponse(m_endpoint, *m_previousResponse); + response->SetStatusCode(SIP_PDU::Failure_InternalServerError); + return response->Send(); } // Adjust timeouts if state is a go @@ -1131,11 +1087,11 @@ // Check for empty body, if so then is OK, just a ping ... if (request.GetEntityBody().IsEmpty()) - m_previousResponse->SetStatusCode(SIP_PDU::Successful_OK); + response->SetStatusCode(SIP_PDU::Successful_OK); else { PMultiPartList parts; if (!m_parameters.m_eventList || !requestMIME.DecodeMultiPartList(parts, request.GetEntityBody())) - sendResponse = DispatchNOTIFY(request); + sendResponse = DispatchNOTIFY(request, *response); else { // If GetMultiParts() returns true there as at least one part and that // part must be the meta list, guranteed by DecodeMultiPartList() @@ -1144,8 +1100,8 @@ // First part is always Meta Information if (iter->m_mime.GetString(PMIMEInfo::ContentTypeTag) != "application/rlmi+xml") { PTRACE(2, "SIP\tNOTIFY received without RLMI as first multipart body"); - m_previousResponse->SetInfo("No Resource List Meta-Information"); - return request.SendResponse(m_endpoint, *m_previousResponse); + response->SetInfo("No Resource List Meta-Information"); + return response->Send(); } #if P_EXPAT @@ -1153,12 +1109,12 @@ if (!xml.Load(iter->m_textBody)) { PTRACE(2, "SIP\tNOTIFY received with illegal RLMI\n" "Line " << xml.GetErrorLine() << ", Column " << xml.GetErrorColumn() << ": " << xml.GetErrorString()); - m_previousResponse->SetInfo("Bad Resource List Meta-Information"); - return request.SendResponse(m_endpoint, *m_previousResponse); + response->SetInfo("Bad Resource List Meta-Information"); + return response->Send(); } if (parts.GetSize() == 1) - m_previousResponse->SetStatusCode(SIP_PDU::Successful_OK); + response->SetStatusCode(SIP_PDU::Successful_OK); else { while (++iter != parts.end()) { SIP_PDU pdu(request.GetMethod()); @@ -1188,7 +1144,7 @@ } } - if (DispatchNOTIFY(pdu)) + if (DispatchNOTIFY(pdu, *response)) sendResponse = false; } } @@ -1206,14 +1162,14 @@ } if (sendResponse) - request.SendResponse(m_endpoint, *m_previousResponse); + response->Send(); return true; } -bool SIPSubscribeHandler::DispatchNOTIFY(SIP_PDU & request) +bool SIPSubscribeHandler::DispatchNOTIFY(SIP_PDU & request, SIP_PDU & response) { - SIPSubscribe::NotifyCallbackInfo notifyInfo(*this, GetEndPoint(), request, *m_previousResponse); + SIPSubscribe::NotifyCallbackInfo notifyInfo(*this, GetEndPoint(), request, response); if (!m_parameters.m_onNotify.IsNULL()) { PTRACE(4, "SIP\tCalling NOTIFY callback for AOR \"" << m_addressOfRecord << "\""); @@ -1228,7 +1184,7 @@ } PTRACE(2, "SIP\tNo NOTIFY handler for AOR \"" << m_addressOfRecord << "\""); - m_previousResponse->SetStatusCode(SIP_PDU::Failure_BadEvent); + response.SetStatusCode(SIP_PDU::Failure_BadEvent); return true; } @@ -1776,15 +1732,17 @@ SIPNotifyHandler::SIPNotifyHandler(SIPEndPoint & endpoint, const SIPEventPackage & eventPackage, const SIPDialogContext & dialog) - : SIPHandlerWithDialog(SIP_PDU::Method_NOTIFY, - endpoint, - SIPParameters(dialog.GetLocalURI().AsString(), dialog.GetRemoteURI().AsString()), - dialog) + : SIPHandler(SIP_PDU::Method_NOTIFY, + endpoint, + SIPParameters(dialog.GetLocalURI().AsString(), dialog.GetRemoteURI().AsString()), + dialog.GetCallID()) , m_eventPackage(eventPackage) , m_reason(Deactivated) , m_packageHandler(SIPEventPackageFactory::CreateInstance(eventPackage)) { PTRACE_CONTEXT_ID_TO(m_packageHandler); + + m_dialog = dialog; } @@ -1832,7 +1790,7 @@ void SIPNotifyHandler::WriteTransaction(OpalTransport & transport, bool & succeeded) { - m_dialog.SetForking(m_localInterface.IsEmpty()); + m_dialog.SetForking(GetInterface().IsEmpty()); SIPHandler::WriteTransaction(transport, succeeded); m_dialog.SetForking(false); } @@ -1868,7 +1826,6 @@ , m_parameters(params) , m_body(body) { - m_parameters.m_proxyAddress = m_proxy.AsString(); } @@ -2206,7 +2163,6 @@ , m_parameters(params) , m_messageSent(false) { - m_parameters.m_proxyAddress = m_proxy.AsString(); m_parameters.m_id = GetCallID(); m_offlineExpireTime = 0; // No retries for offline, just give up @@ -2275,8 +2231,6 @@ : SIPHandler(SIP_PDU::Method_OPTIONS, endpoint, params) , m_parameters(params) { - m_parameters.m_proxyAddress = m_proxy.AsString(); - m_offlineExpireTime = 0; // No retries for offline, just give up SetState(Subscribed); Modified: opal/branches/v3_12/src/sip/sipcon.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-18 04:18:54 UTC (rev 28921) @@ -304,7 +304,7 @@ void SIPConnection::OnApplyStringOptions() { m_prackMode = (PRACKMode)m_stringOptions.GetInteger(OPAL_OPT_PRACK_MODE, m_prackMode); - m_localInterface = m_stringOptions(OPAL_OPT_INTERFACE, m_localInterface); + m_dialog.SetInterface(m_stringOptions(OPAL_OPT_INTERFACE, GetInterface())); OpalRTPConnection::OnApplyStringOptions(); } @@ -315,43 +315,6 @@ } -bool SIPConnection::SetNewTransportProto(const PString & proto) -{ - SIPURL newTransportAddress(m_dialog.GetRemoteURI()); - newTransportAddress.SetParamVar("transport", proto); - m_dialog.SetRemoteURI(newTransportAddress); - - PTRACE(4, "SIP\tSetting new transport for destination \"" << newTransportAddress << '"'); - - SIP_PDU::StatusCodes reason; - OpalTransport * newTransport = GetEndPoint().GetTransport(*this, reason); - if (newTransport != NULL) { - PTRACE_CONTEXT_ID_TO(newTransport); - return true; - } - - switch (reason) { - case SIP_PDU::Local_NotAuthenticated : - Release(EndedByCertificateAuthority); - break; - - case SIP_PDU::Local_BadTransportAddress : - case SIP_PDU::Local_CannotMapScheme : - Release(EndedByIllegalAddress); - break; - - case SIP_PDU::Local_TransportLost : - Release(EndedByTransportFail); - break; - - default : - Release(EndedByUnreachable); - } - - return false; -} - - void SIPConnection::OnReleased() { PTRACE(3, "SIP\tOnReleased: " << *this); @@ -387,7 +350,7 @@ SIP_PDU response(*m_lastReceivedINVITE, sipCode); AdjustInviteResponse(response); response.GetMIME().SetContact(m_forwardParty); - m_lastReceivedINVITE->SendResponse(GetEndPoint(), response); + response.Send(); } /* Wait for ACK from remote before destroying object. Note that we either @@ -791,7 +754,7 @@ return false; } - OpalTransportAddress remoteMediaAddress(GetTargetURI().GetHostName(), 0, OpalTransportAddress::UdpPrefix()); + OpalTransportAddress remoteMediaAddress(m_dialog.GetRequestURI().GetHostName(), 0, OpalTransportAddress::UdpPrefix()); if (!mediaSession->Open(GetInterface(), remoteMediaAddress, true)) { PTRACE(1, "SIP\tCould not open RTP session " << sessionId << " for media type " << mediaType); return false; @@ -1276,7 +1239,7 @@ { PIPSocket::Address localIP = GetInterface(); if (localIP.IsValid()) - return OpalTransportAddress(localIP, port, GetTargetURI().GetTransportProto()); + return OpalTransportAddress(localIP, port, m_dialog.GetRequestURI().GetTransportProto()); PTRACE(1, "SIP\tNot using IP transport"); return OpalTransportAddress(); @@ -1578,7 +1541,7 @@ void SIPConnection::WriteINVITE(OpalTransport & transport, bool & succeeded) { - m_dialog.SetForking(m_localInterface.IsEmpty()); + m_dialog.SetForking(GetInterface().IsEmpty()); SIPURL myAddress = m_stringOptions(OPAL_OPT_CALLING_PARTY_URL); if (myAddress.IsEmpty()) @@ -1711,8 +1674,8 @@ if (m_needReINVITE) ++m_sdpVersion; - PString oldInterface = m_localInterface; - m_localInterface = request.GetTransport()->GetInterface(); + PString oldInterface = GetInterface(); + m_dialog.SetInterface(request.GetTransport()->GetInterface()); SDPSessionDescription * sdp = new SDPSessionDescription(m_sdpSessionId, m_sdpVersion, OpalTransportAddress()); if (OnSendOfferSDP(*sdp, m_needReINVITE)) { request.m_sessions.Assign(m_sessions, !m_needReINVITE); @@ -1722,7 +1685,7 @@ delete sdp; Release(EndedByCapabilityExchange); } - m_localInterface = oldInterface; + m_dialog.SetInterface(oldInterface); } } @@ -1947,8 +1910,8 @@ if (!lock.IsLocked()) return; - if (m_localInterface.IsEmpty()) - m_localInterface = pdu.GetTransport()->GetInterface(); + if (GetInterface().IsEmpty()) + m_dialog.SetInterface(pdu.GetTransport()->GetInterface()); if (m_remoteAddress.IsEmpty()) m_remoteAddress = pdu.GetTransport()->GetRemoteAddress(); @@ -2023,7 +1986,7 @@ if (m_lastSentAck != NULL) { if (m_lastSentAck->GetTransactionID() == transaction.GetTransactionID()) { - transaction.SendPDU(*m_lastSentAck); + m_lastSentAck->Send(); return false; } @@ -2116,7 +2079,7 @@ } // And end connect mode on the transport - m_localInterface = transaction.GetInterface(); + m_dialog.SetInterface(transaction.GetInterface()); m_contactAddress = transaction.GetMIME().GetContact(); } @@ -2131,7 +2094,7 @@ PTRACE(3, "SIP\tDuplicate response " << response.GetStatusCode() << ", already PRACK'ed"); } else { - m_localInterface = transaction.GetInterface(); // Make sure same as response + m_dialog.SetInterface(transaction.GetInterface()); // Make sure same as response SIPTransaction * prack = new SIPPrack(*this, *transaction.GetTransport(), rseq & transaction.GetMIME().GetCSeq()); prack->Start(); } @@ -2208,7 +2171,7 @@ if (!OnSendAnswerSDP(*m_delayedAckInviteResponse->GetSDP(), *sdp)) Release(EndedByCapabilityExchange); else { - if (!transaction->SendPDU(*m_lastSentAck)) + if (!m_lastSentAck->Send()) Release(EndedByCapabilityExchange); else StartMediaStreams(); @@ -2423,14 +2386,32 @@ break; case SIP_PDU::Failure_MessageTooLarge : - if (SetNewTransportProto("tcp")) { - SIPTransaction * newTransaction = transaction.CreateDuplicate(); - if (!newTransaction->Start()) { - PTRACE(2, "SIP\tCould not restart " << transaction << " for switch to TCP"); - break; - } + switch (SwitchTransportProto("tcp", NULL)) { + case SIP_PDU::Local_NotAuthenticated : + Release(EndedByCertificateAuthority); + return; - m_forkedInvitations.Append(newTransaction); + case SIP_PDU::Local_BadTransportAddress : + case SIP_PDU::Local_CannotMapScheme : + Release(EndedByIllegalAddress); + return; + + case SIP_PDU::Local_TransportLost : + Release(EndedByTransportFail); + return; + + default : + Release(EndedByUnreachable); + return; + + case SIP_PDU::Successful_OK : + SIPTransaction * newTransaction = transaction.CreateDuplicate(); + if (!newTransaction->Start()) { + PTRACE(2, "SIP\tCould not restart " << transaction << " for switch to TCP"); + break; + } + + m_forkedInvitations.Append(newTransaction); } return; @@ -2658,7 +2639,7 @@ if (prackRequired) { SIP_PDU response(request, SIP_PDU::Failure_BadExtension); response.GetMIME().SetUnsupported("100rel"); - request.SendResponse(GetEndPoint(), response); + response.Send(); return; } // Ignore, if just supported @@ -2673,7 +2654,7 @@ if (!m_prackEnabled) { SIP_PDU response(request, SIP_PDU::Failure_ExtensionRequired); response.GetMIME().SetRequire("100rel"); - request.SendResponse(GetEndPoint(), response); + response.Send(); return; } } @@ -2768,7 +2749,7 @@ { if (m_handlingINVITE || GetPhase() < ConnectedPhase) { PTRACE(2, "SIP\tRe-INVITE from " << request.GetURI() << " received while INVITE in progress on " << *this); - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_RequestPending); + request.SendResponse(SIP_PDU::Failure_RequestPending); return; } @@ -2849,13 +2830,13 @@ void SIPConnection::OnReceivedOPTIONS(SIP_PDU & request) { if (request.GetMIME().GetAccept().Find("application/sdp") == P_MAX_INDEX) - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_UnsupportedMediaType); + request.SendResponse(SIP_PDU::Failure_UnsupportedMediaType); else { SDPSessionDescription sdp(m_sdpSessionId, m_sdpVersion, OpalTransportAddress()); SIP_PDU response(request, SIP_PDU::Successful_OK); response.SetAllow(GetAllowedMethods()); response.SetEntityBody(sdp.Encode()); - request.SendResponse(GetEndPoint(), response); + response.Send(); } } @@ -2881,7 +2862,7 @@ SIPSubscribe::EventPackage package(mime.GetEvent()); if (m_allowedEvents.Contains(package)) { PTRACE(2, "SIP\tReceived Notify for allowed event " << package); - request.SendResponse(GetEndPoint(), SIP_PDU::Successful_OK); + request.SendResponse(SIP_PDU::Successful_OK); OnAllowedEventNotify(package); return; } @@ -2890,19 +2871,19 @@ // do it later if we ever support multiple simultaneous REFERs if (package.Find("refer") == P_MAX_INDEX) { PTRACE(2, "SIP\tNOTIFY in a connection only supported for REFER requests"); - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_BadEvent); + request.SendResponse(SIP_PDU::Failure_BadEvent); return; } if (!m_referInProgress) { PTRACE(2, "SIP\tNOTIFY for REFER we never sent."); - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_TransactionDoesNotExist); + request.SendResponse(SIP_PDU::Failure_TransactionDoesNotExist); return; } if (mime.GetContentType() != "message/sipfrag") { PTRACE(2, "SIP\tNOTIFY for REFER has incorrect Content-Type"); - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_BadRequest); + request.SendResponse(SIP_PDU::Failure_BadRequest); return; } @@ -2910,11 +2891,11 @@ unsigned code = body.Mid(body.Find(' ')).AsUnsigned(); if (body.NumCompare("SIP/") != EqualTo || code < 100) { PTRACE(2, "SIP\tNOTIFY for REFER has incorrect body"); - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_BadRequest); + request.SendResponse(SIP_PDU::Failure_BadRequest); return; } - request.SendResponse(GetEndPoint(), SIP_PDU::Successful_OK); + request.SendResponse(SIP_PDU::Successful_OK); PStringToString info; PCaselessString state = mime.GetSubscriptionState(info); @@ -2944,7 +2925,7 @@ if (referTo.IsEmpty()) { SIP_PDU response(request, SIP_PDU::Failure_BadRequest); response.SetInfo("Missing refer-to header"); - request.SendResponse(GetEndPoint(), response); + response.Send(); return; } @@ -2979,13 +2960,13 @@ else response.SetStatusCode(SIP_PDU::Failure_NotImplemented); - request.SendResponse(GetEndPoint(), response); + response.Send(); return; } } // send response before attempting the transfer - if (!request.SendResponse(GetEndPoint(), response)) + if (!response.Send()) return; m_redirectingParty = requestMIME.GetReferredBy(); @@ -3019,7 +3000,7 @@ void SIPConnection::OnReceivedBYE(SIP_PDU & request) { PTRACE(3, "SIP\tBYE received for call " << request.GetMIME().GetCallID()); - request.SendResponse(GetEndPoint(), SIP_PDU::Successful_OK); + request.SendResponse(SIP_PDU::Successful_OK); if (IsReleased()) { PTRACE(2, "SIP\tAlready released " << *this); @@ -3042,7 +3023,7 @@ if (m_lastReceivedINVITE == NULL || m_lastReceivedINVITE->GetTransactionID() != request.GetTransactionID()) { PTRACE(2, "SIP\tUnattached " << request << " received for " << *this); - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_TransactionDoesNotExist); + request.SendResponse(SIP_PDU::Failure_TransactionDoesNotExist); return; } @@ -3050,7 +3031,7 @@ SIP_PDU response(request, SIP_PDU::Successful_OK); response.GetMIME().SetTo(m_dialog.GetLocalURI()); - request.SendResponse(GetEndPoint(), response); + response.Send(); if (IsOriginating()) return; @@ -3086,18 +3067,6 @@ } -OpalTransportAddress SIPConnection::GetRemoteTransportAddress(PINDEX dnsEntry) const -{ - return m_dialog.GetRemoteTransportAddress(dnsEntry); -} - - -SIPURL SIPConnection::GetTargetURI() const -{ - return m_dialog.GetRequestURI(); -} - - PString SIPConnection::GetAuthID() const { return m_dialog.GetLocalURI().GetUserName(); @@ -3467,7 +3436,7 @@ AdjustInviteResponse(response); response.SetEntityBody(externalSDP); - return m_lastReceivedINVITE->SendResponse(GetEndPoint(), response); + return response.Send(); } @@ -3483,7 +3452,7 @@ if (sdp != NULL) response.GetSDP()->SetSessionName(response.GetMIME().GetUserAgent()); - return m_lastReceivedINVITE->SendResponse(GetEndPoint(), response); + return response.Send(); } @@ -3566,7 +3535,7 @@ timeout = GetEndPoint().GetRetryTimeoutMax(); m_responseRetryTimer = timeout; - m_lastReceivedINVITE->SendResponse(GetEndPoint(), m_responsePackets.front()); // Not really a resonse but the function will work } + m_responsePackets.front().Send(); } @@ -3601,7 +3570,7 @@ { PStringArray rack = request.GetMIME().GetString("RAck").Tokenise(" \r\n\t", false); if (rack.GetSize() != 3) { - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_BadRequest); + request.SendResponse(SIP_PDU::Failure_BadRequest); return; } @@ -3610,14 +3579,14 @@ !(rack[2] *= "INVITE") || m_responsePackets.empty() || m_responsePackets.front().GetMIME().GetString("RSeq").AsUnsigned() != rack[0].AsUnsigned()) { - request.SendResponse(GetEndPoint(), SIP_PDU::Failure_TransactionDoesNotExist); + request.SendResponse(SIP_PDU::Failure_TransactionDoesNotExist); return; } m_responseFailTimer.Stop(false); // Asynchronous stop to avoid deadlock m_responseRetryTimer.Stop(false); - request.SendResponse(GetEndPoint(), SIP_PDU::Successful_OK); + request.SendResponse(SIP_PDU::Successful_OK); // Got PRACK for our response, pop it off and send next, if on m_responsePackets.pop(); @@ -3626,7 +3595,7 @@ m_responseRetryCount = 0; m_responseRetryTimer = GetEndPoint().GetRetryTimeoutMin(); m_responseFailTimer = GetEndPoint().GetAckTimeout(); - m_lastReceivedINVITE->SendResponse(GetEndPoint(), m_responsePackets.front()); + m_responsePackets.front().Send(); } request.DecodeSDP(GetLocalMediaFormats()); @@ -3719,7 +3688,7 @@ } #endif - request.SendResponse(GetEndPoint(), status); + request.SendResponse(status); if (status == SIP_PDU::Successful_OK) { #if OPAL_PTLIB_DTMF @@ -3737,7 +3706,7 @@ void SIPConnection::OnReceivedPING(SIP_PDU & request) { PTRACE(3, "SIP\tReceived PING"); - request.SendResponse(GetEndPoint(), SIP_PDU::Successful_OK); + request.SendResponse(SIP_PDU::Successful_OK); } @@ -3764,7 +3733,7 @@ else { SIP_PDU response(request, SIP_PDU::Failure_BadEvent); response.GetMIME().SetAllowEvents(m_allowedEvents); // Required by spec - request.SendResponse(GetEndPoint(), response); + response.Send(); } } @@ -3936,7 +3905,7 @@ PBoolean SIPConnection::OnMediaControlXML(SIP_PDU & request) { // Must always send OK, even if not OK - request.SendResponse(GetEndPoint(), SIP_PDU::Successful_OK); + request.SendResponse(SIP_PDU::Successful_OK); // Ignore empty body PCaselessString body = request.GetEntityBody(); Modified: opal/branches/v3_12/src/sip/sipep.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipep.cxx 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/src/sip/sipep.cxx 2013-01-18 04:18:54 UTC (rev 28921) @@ -69,6 +69,8 @@ SIPEndPoint::SIPEndPoint(OpalManager & mgr, unsigned maxThreads) : OpalRTPEndPoint(mgr, "sip", CanTerminateCall|SupportsE164) , m_defaultPrackMode(SIPConnection::e_prackSupported) + , m_maxPacketSizeUDP(1300) // As per RFC 3261 section 18.1.1 + , maxRetries(10) , retryTimeoutMin(500) // 0.5 seconds , retryTimeoutMax(0, 4) // 4 seconds , nonInviteTimeout(0, 16) // 16 seconds @@ -88,7 +90,6 @@ , m_disableTrying(true) { defaultSignalPort = SIPURL::DefaultPort; - maxRetries = 10; m_allowedEvents += SIPEventPackage(SIPSubscribe::Dialog); m_allowedEvents += SIPEventPackage(SIPSubscribe::Conference); @@ -235,18 +236,16 @@ OpalTransportPtr SIPEndPoint::GetTransport(const SIPTransactionOwner & transactor, SIP_PDU::StatusCodes & reason) { - SIPURL targetURI = transactor.GetTargetURI(); - - OpalTransportAddress remoteAddress = transactor.GetRemoteTransportAddress(transactor.GetDNSEntry()); + OpalTransportAddress remoteAddress = transactor.GetRemoteTransportAddress(); if (remoteAddress.IsEmpty()) { for (PSafePtr<SIPHandler> handler = activeSIPHandlers.GetFirstHandler(); ; ++handler) { if (handler == NULL) { reason = SIP_PDU::Local_CannotMapScheme; - PTRACE(1, "SIP\tCannot use " << targetURI.GetScheme() << " URI without phone-context or existing registration."); + PTRACE(1, "SIP\tCannot use " << transactor.GetRequestURI().GetScheme() << " URI without phone-context or existing registration."); return NULL; } if (handler->GetMethod() == SIP_PDU::Method_REGISTER) { - remoteAddress = handler->GetTargetURI().GetTransportAddress(); + remoteAddress = handler->GetRemoteTransportAddress(); break; } } @@ -268,7 +267,7 @@ localAddress = OpalTransportAddress(localInterface, 0, remoteAddress.GetProtoPrefix()); } else { - PString domain = targetURI.GetHostPort(); + PString domain = transactor.GetRequestURI().GetHostPort(); PSafePtr<SIPHandler> handler = activeSIPHandlers.FindSIPHandlerByDomain(domain, SIP_PDU::Method_REGISTER, PSafeReadOnly); if (handler != NULL) { localAddress = handler->GetInterface(); @@ -324,7 +323,7 @@ return NULL; } - if (!transport->IsAuthenticated(targetURI.GetHostName())) { + if (!transport->IsAuthenticated(transactor.GetRequestURI().GetHostName())) { PTRACE(1, "SIP\tCould not connect to " << remoteAddress << " - " << transport->GetErrorText()); reason = SIP_PDU::Local_NotAuthenticated; transport->CloseWait(); @@ -345,10 +344,10 @@ void SIPEndPoint::HandlePDU(const OpalTransportPtr & transport) { // create a SIP_PDU structure, then get it to read and process PDU - SIP_PDU * pdu = new SIP_PDU; + SIP_PDU * pdu = new SIP_PDU(SIP_PDU::NumMethods, transport); PTRACE(4, "SIP\tWaiting for PDU on " << *transport); - SIP_PDU::StatusCodes status = pdu->Read(transport); + SIP_PDU::StatusCodes status = pdu->Read(); switch (status/100) { case 0 : if (status == SIP_PDU::Local_KeepAlive) @@ -367,7 +366,7 @@ !mime.GetCallID().IsEmpty() && !mime.GetFrom().IsEmpty() && !mime.GetTo().IsEmpty()) - pdu->SendResponse(*this, status); + pdu->SendResponse(status); } delete pdu; @@ -651,7 +650,6 @@ break; case SIP_PDU::Method_INVITE : - pdu->AdjustVia(); // // Adjust the Via list if (toToken.IsEmpty()) { PWaitAndSignal mutex(m_receivedConnectionMutex); @@ -674,26 +672,25 @@ case SIPConnection::IsLoopedINVITE : // Send back error if looped INVITE SIP_PDU response(*pdu, SIP_PDU::Failure_LoopDetected); response.GetMIME().SetProductInfo(GetUserAgent(), connection->GetProductInfo()); - pdu->SendResponse(*this, response); + response.Send(); return false; } } } - pdu->SendResponse(*this, SIP_PDU::Information_Trying); + pdu->SendResponse(SIP_PDU::Information_Trying); return OnReceivedConnectionlessPDU(pdu); } if (!hasToConnection) { // Has to tag but doesn't correspond to anything, odd. - pdu->SendResponse(*this, SIP_PDU::Failure_TransactionDoesNotExist); + pdu->SendResponse(SIP_PDU::Failure_TransactionDoesNotExist); return false; } - pdu->SendResponse(*this, SIP_PDU::Information_Trying); + pdu->SendResponse(SIP_PDU::Information_Trying); break; case SIP_PDU::Method_ACK : - pdu->AdjustVia(); // // Adjust the Via list break; case SIP_PDU::NumMethods : // unknown method @@ -701,7 +698,7 @@ default : // any known method other than INVITE, CANCEL and ACK if (!m_disableTrying) - pdu->SendResponse(*this, SIP_PDU::Information_Trying); + pdu->SendResponse(SIP_PDU::Information_Trying); break; } @@ -730,13 +727,13 @@ PTRACE(2, "SIP\tReceived response for unmatched transaction, id=" << id); if (pdu->GetMethod() == SIP_PDU::Method_CANCEL) - pdu->SendResponse(*this, SIP_PDU::Failure_TransactionDoesNotExist); + pdu->SendResponse(SIP_PDU::Failure_TransactionDoesNotExist); return false; } // Prevent any new INVITE/SUBSCRIBE etc etc while we are on the way out. if (m_shuttingDown) { - pdu->SendResponse(*this, SIP_PDU::Failure_ServiceUnavailable); + pdu->SendResponse(SIP_PDU::Failure_ServiceUnavailable); return false; } @@ -746,49 +743,43 @@ PSafePtr<SIPResponse> transaction = PSafePtrCast<SIPTransaction, SIPResponse>(GetTransaction(id, PSafeReadOnly)); if (transaction != NULL) { PTRACE(4, "SIP\tRetransmitting previous response for transaction id=" << id); - transaction->Send(*pdu); + transaction->Resend(*pdu); return false; } } switch (pdu->GetMethod()) { case SIP_PDU::Method_INVITE : - pdu->AdjustVia(); // // Adjust the Via list return OnReceivedINVITE(pdu); case SIP_PDU::Method_REGISTER : - pdu->AdjustVia(); // // Adjust the Via list if (OnReceivedREGISTER(*pdu)) return false; break; case SIP_PDU::Method_SUBSCRIBE : - pdu->AdjustVia(); // // Adjust the Via list if (OnReceivedSUBSCRIBE(*pdu, NULL)) return false; break; case SIP_PDU::Method_NOTIFY : - pdu->AdjustVia(); // // Adjust the Via list if (OnReceivedNOTIFY(*pdu)) return false; break; case SIP_PDU::Method_MESSAGE : - pdu->AdjustVia(); // // Adjust the Via list if (OnReceivedMESSAGE(*pdu)) return false; break; case SIP_PDU::Method_OPTIONS : - pdu->AdjustVia(); // // Adjust the Via list if (OnReceivedOPTIONS(*pdu)) return false; break; case SIP_PDU::Method_BYE : // If we receive a BYE outside of the context of a connection, tell them. - pdu->SendResponse(*this, SIP_PDU::Failure_TransactionDoesNotExist); + pdu->SendResponse(SIP_PDU::Failure_TransactionDoesNotExist); return false; // If we receive an ACK outside of the context of a connection, ignore it. @@ -801,7 +792,7 @@ SIP_PDU response(*pdu, SIP_PDU::Failure_MethodNotAllowed); response.SetAllow(GetAllowedMethods()); // Required by spec - pdu->SendResponse(*this, response); + response.Send(); return false; } @@ -831,7 +822,7 @@ if ((canNotify = CanNotify(eventPackage, dialog->GetLocalURI())) == CannotNotify) { SIPResponse * response = new SIPResponse(*this, request, SIP_PDU::Failure_BadEvent); response->GetMIME().SetAllowEvents(m_allowedEvents); // Required by spec - response->Send(request); + response->Send(); return true; } @@ -846,10 +837,10 @@ unsigned expires = mime.GetExpires(); SIPResponse * response = new SIPResponse(*this, request, - canNotify == CanNotifyImmediate ? SIP_PDU::Successful_OK : SIP_PDU::Successful_Accepted); + canNotify == CanNotifyImmediate ? SIP_PDU::Successful_OK : SIP_PDU::Successful_Accepted); response->GetMIME().SetEvent(eventPackage); // Required by spec response->GetMIME().SetExpires(expires); // Required by spec - response->Send(request); + response->Send(); if (handler->IsDuplicateCSeq(mime.GetCSeqIndex())) return true; @@ -935,7 +926,7 @@ SIPURL toAddr(mime.GetTo()); if (!IsAcceptedAddress(toAddr)) { PTRACE(2, "SIP\tIncoming INVITE for " << request->GetURI() << " for unacceptable address " << toAddr); - request->SendResponse(*this, SIP_PDU::Failure_NotFound); + request->SendResponse(SIP_PDU::Failure_NotFound); return false; } @@ -948,7 +939,7 @@ response.GetMIME().SetAccept("application/sdp"); response.GetMIME().SetAcceptEncoding("identity"); response.SetAllow(GetAllowedMethods()); - request->SendResponse(*this, response); + response.Send(); return false; } @@ -962,7 +953,7 @@ "SIP\tBad Replaces header in INVITE for " << request->GetURI()); PTRACE_IF(2, errorCode==SIP_PDU::Failure_TransactionDoesNotExist, "SIP\tNo connection matching dialog info in Replaces header of INVITE from " << request->GetURI()); - request->SendResponse(*this, errorCode); + request->SendResponse(errorCode); return false; } @@ -975,7 +966,7 @@ // Get new instance of a call, abort if none created call = manager.InternalCreateCall(); if (call == NULL) { - request->SendResponse(*this, SIP_PDU::Failure_TemporarilyUnavailable); + request->SendResponse(SIP_PDU::Failure_TemporarilyUnavailable); return false; } } @@ -989,7 +980,7 @@ SIPConnection *connection = CreateConnection(init); if (!AddConnection(connection)) { PTRACE(1, "SIP\tFailed to create SIPConnection for INVITE for " << request->GetURI() << " to " << toAddr); - request->SendResponse(*this, SIP_PDU::Failure_NotFound); + request->SendResponse(SIP_PDU::Failure_NotFound); return false; } @@ -1029,7 +1020,7 @@ if (handler == NULL) { PTRACE(3, "SIP\tCould not find a SUBSCRIBE corresponding to the NOTIFY " << eventPackage); SIPResponse * response = new SIPResponse(*this, request, SIP_PDU::Failure_TransactionDoesNotExist); - response->Send(request); + response->Send(); return true; } @@ -1054,7 +1045,7 @@ case ConnectionlessMessageInfo::SendOK : { SIPResponse * response = new SIPResponse(*this, request, SIP_PDU::Successful_OK); - response->Send(request); + response->Send(); } // Do next case @@ -1078,7 +1069,7 @@ bool SIPEndPoint::OnReceivedOPTIONS(SIP_PDU & request) { SIPResponse * response = new SIPResponse(*this, request, SIP_PDU::Successful_OK); - response->Send(request); + response->Send(); return true; } Modified: opal/branches/v3_12/src/sip/sippdu.cxx =================================================================== --- opal/branches/v3_12/src/sip/sippdu.cxx 2013-01-18 00:01:31 UTC (rev 28920) +++ opal/branches/v3_12/src/sip/sippdu.cxx 2013-01-18 04:18:54 UTC (rev 28921) @@ -1771,13 +1771,14 @@ //////////////////////////////////////////////////////////////////////////////////// -SIP_PDU::SIP_PDU(Methods meth) +SIP_PDU::SIP_PDU(Methods meth, const OpalTransportPtr & transport) : m_method(meth) , m_statusCode(IllegalStatusCode) , m_versionMajor(SIP_VER_MAJOR) , m_versionMinor(SIP_VER_MINOR) , m_transactionID(TransactionPrefix + OpalGloballyUniqueID().AsString()) , m_SDP(NULL) + , m_transport(transport) { PTRACE_CONTEXT_ID_TO(m_mime); } @@ -1789,6 +1790,7 @@ : m_method(NumMethods) , m_statusCode(code) , m_SDP(sdp != NULL ? new SDPSessionDescription(*sdp) : NULL) + , m_transport(request.GetTransport()) { PTRACE_CONTEXT_ID_TO(m_mime); InitialiseHeaders(request); @@ -1844,8 +1846,7 @@ const SIPURL & to, const SIPURL & from, const PString & callID, - unsigned cseq, - const PString & via) + unsigned cseq) { m_uri = dest; m_uri.Sanitise(m_method == Method_REGISTER ? SIPURL::RegisterURI : SIPURL::RequestURI); @@ -1873,16 +1874,16 @@ valid = callID.FindSpan(ValidCallID, valid+1); m_mime.SetCallID(callID.Left(valid)); m_mime.SetMaxForwards(70); - m_mime.SetVia(via); + CalculateVia(); SetCSeq(cseq); } -PString SIP_PDU::CreateVia() +void SIP_PDU::CalculateVia() { if (m_transport == NULL) - return PString::Empty(); + return; OpalTransportAddress via = m_transport->GetLocalAddress(); @@ -1896,11 +1897,11 @@ else str << via.Mid(protoLen); str << ";branch=" << m_transactionID << ";rport"; - return str; + m_mime.SetVia(str); } -void SIP_PDU::InitialiseHeaders(SIPDialogContext & dialog, const PString & via, unsigned cseq) +void SIP_PDU::InitialiseHeaders(SIPDialogContext & dialog, unsigned cseq) { // Assume the dialog URI's are already sanitised. m_uri = dialog.GetRequestURI(); @@ -1909,14 +1910,14 @@ m_mime.SetCallID(dialog.GetCallID()); m_mime.SetCSeq(PString(cseq != 0 ? cseq : dialog.GetNextCSeq()) & MethodNames[m_method]); m_mime.SetMaxForwards(70); - m_mime.SetVia(via); + CalculateVia(); SetRoute(dialog.GetRouteSet()); } void SIP_PDU::InitialiseHeaders(SIPConnection & connection, unsigned cseq) { - InitialiseHeaders(connection.GetDialog(), CreateVia(), cseq); + InitialiseHeaders(connection.GetDialog(), cseq); connection.GetEndPoint().AdjustToRegistration(*this, &connection); } @@ -1925,6 +1926,7 @@ { m_versionMajor = request.GetVersionMajor(); m_versionMinor = request.GetVersionMinor(); + m_viaAddress = request.m_viaAddress; // add mandatory fields to response (RFC 2543, 11.2) const SIPMIMEInfo & requestMIME = request.GetMIME(); @@ -1934,6 +1936,38 @@ if (!value.IsEmpty()) m_mime.Set(FieldsToCopy[i], value); } + + // Update the VIA field following RFC3261, 18.2.1 and RFC3581 + PStringList viaList; + if (!requestMIME.GetViaList(viaList)) + return; + + PString & via = viaList.front(); + PINDEX space = via.Find(' '); + if (space == P_MAX_INDEX) { + PTRACE(2, "SIP\tIllegal via string \"" << via << '"'); + return; + } + + PIPSocketAddressAndPort addrport(via(space+1, via.Find(';', space)-1), SIPURL::DefaultPort); + if (!addrport.IsValid()) + return; + + PIPSocket::Address remoteIp; + WORD remotePort; + if (!m_viaAddress.GetIpAndPort(remoteIp, remotePort)) + return; + + PINDEX start, val, end; + if (LocateFieldParameter(via, "rport", start, val, end)) { + // fill in empty rport and received for RFC 3581 + via = SIPMIMEInfo::InsertFieldParameter(via, "rport", remotePort); + via = SIPMIMEInfo::InsertFieldParameter(via, "received", remoteIp); + } + else if (remoteIp != addrport.GetAddress()) // set received when remote transport address different from Via address + via = SIPMIMEInfo::InsertFieldParameter(via, "received", remoteIp); + + m_mime.SetViaList(viaList); } @@ -1993,92 +2027,13 @@ } -void SIP_PDU::AdjustVia() +bool SIP_PDU::SendResponse(StatusCodes code) { - // Update the VIA field following RFC3261, 18.2.1 and RFC3581 - PStringList viaList; - if (!m_mime.GetViaList(viaList)) - return; - - PString & via = viaList.front(); - PINDEX space = via.Find(' '); - if (space == P_MAX_INDEX) { - PTRACE(2, "SIP\tIllegal via string \"" << via << '"'); - return; - } - - PIPSocketAddressAndPort addrport(via(space+1, via.Find(';', space)-1), SIPURL::DefaultPort); - if (!addrport.IsValid()) - return; - - PIPSocket::Address remoteIp; - WORD remotePort; - if (!m_transport->GetLastReceivedAddress().GetIpAndPort(remoteIp, remotePort)) - return; - - PINDEX start, val, end; - if (LocateFieldParameter(via, "rport", start, val, end)) { - // fill in empty rport and received for RFC 3581 - via = SIPMIMEInfo::InsertFieldParameter(via, "rport", remotePort); - via = SIPMIMEInfo::InsertFieldParameter(via, "received", remoteIp); - } - else if (remoteIp != addrport.GetAddress()) // set received when remote transport address different from Via address - via = SIPMIMEInfo::InsertFieldParameter(via, "received", remoteIp); - - m_mime.SetViaList(viaList); -} - - -bool SIP_PDU::SendResponse(SIPEndPoint & endpoint, StatusCodes code) -{ SIP_PDU response(*this, code); - return SendResponse(endpoint, response); + return response.Send(); } -bool SIP_PDU::SendResponse(SIPEndPoint & endpoint, SIP_PDU & response) -{ - if (!m_transport->IsReliable()) { - PString via = m_mime.GetFirstVia(); - PINDEX space = via.Find(' '); - if (via.IsEmpty() || space == P_MAX_INDEX) - m_transport->SetRemoteAddress(m_transport->GetLastReceivedAddress()); // Send back from whence it came - else { - PIPSocketAddressAndPort addrport(SIPURL::DefaultPort); - - // rport is present. be careful to distinguish between not present and empty - PINDEX start, pos, end; - if (LocateFieldParameter(via, "rport", start, pos, end)) { - // rport is present. be careful to distinguish between not present and emp... [truncated message content] |
From: <cso...@us...> - 2013-01-18 12:34:30
|
Revision: 28932 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28932&view=rev Author: csoutheren Date: 2013-01-18 12:34:20 +0000 (Fri, 18 Jan 2013) Log Message: ----------- Backport various patches from trunk, including fixes for cross-compilation, MingW32/64 compilation, and various 64 bit cleanups Modified Paths: -------------- opal/branches/v3_12/Makefile opal/branches/v3_12/configure opal/branches/v3_12/configure.ac opal/branches/v3_12/include/codec/opalplugin.h opal/branches/v3_12/make/opal.m4 opal/branches/v3_12/make/opal_defs.mak.in opal/branches/v3_12/make/toplevel.mak.in opal/branches/v3_12/plugins/audio/Speex/speexcodec.cxx opal/branches/v3_12/plugins/plugin-inc.mak.in opal/branches/v3_12/samples/opalcodecinfo/Makefile opal/branches/v3_12/src/codec/rfc2833.cxx opal/branches/v3_12/src/codec/vidcodec.cxx opal/branches/v3_12/src/h323/gkclient.cxx opal/branches/v3_12/src/lids/lid.cxx opal/branches/v3_12/src/opal/mediafmt.cxx opal/branches/v3_12/src/opal/patch.cxx opal/branches/v3_12/src/rtp/rtp.cxx opal/branches/v3_12/src/sip/handlers.cxx opal/branches/v3_12/src/sip/sipcon.cxx opal/branches/v3_12/src/sip/sippdu.cxx opal/branches/v3_12/src/t38/t38proto.cxx Modified: opal/branches/v3_12/Makefile =================================================================== --- opal/branches/v3_12/Makefile 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/Makefile 2013-01-18 12:34:20 UTC (rev 28932) @@ -26,9 +26,7 @@ # $Date: 2012-03-17 21:28:55 +1100 (Sat, 17 Mar 2012) $ # -ifdef OPALDIR - override CFG_ARGS+=--prefix=$(OPALDIR) -else +ifndef OPALDIR export OPALDIR=$(CURDIR) endif @@ -47,30 +45,39 @@ ACLOCAL := aclocal -ifneq ($(MAKECMDGOALS),config) - $(MAKECMDGOALS): default +ifeq (,$(findstring $(MAKECMDGOALS),config clean distclean default_clean sterile)) +$(MAKECMDGOALS): default endif default: $(CONFIG_FILES) @$(MAKE) -f $(TOP_LEVEL_MAKE) $(MAKECMDGOALS) .PHONY:config -config: - $(CONFIGURE) $(CFG_ARGS) +config: $(CONFIG_FILES) + $(CONFIGURE) -# this complexity is so if any of CONFIG_FILES does not exist it is created -# with ./configure only being executed once. -FIRST_CONFIG := $(firstword $(CONFIG_FILES)) -OTHER_CONFIGS := $(wordlist 2,1000,$(CONFIG_FILES)) +.PHONY:clean +clean: + @$(MAKE) -f $(TOP_LEVEL_MAKE) clean -$(FIRST_CONFIG): $(OTHER_CONFIGS) $(CONFIGURE) $(PLUGIN_CONFIG) $(addsuffix .in, $(CONFIG_FILES)) - $(CONFIGURE) $(CFG_ARGS) - touch $@ +.PHONY:default_clean +default_clean: + @$(MAKE) -f $(TOP_LEVEL_MAKE) default_clean -$(OTHER_CONFIGS): - touch $@ +.PHONY:distclean +distclean: + @$(MAKE) -f $(TOP_LEVEL_MAKE) distclean +.PHONY:sterile +sterile: + @$(MAKE) -f $(TOP_LEVEL_MAKE) sterile +$(CONFIG_FILES) : config.status $(addsuffix .in, $(CONFIG_FILES)) + ./config.status + +config.status: $(CONFIGURE) $(addsuffix .in, $(CONFIG_FILES)) + $(CONFIGURE) + ifneq (,$(AUTOCONF)) ifneq (,$(shell which $(AUTOCONF))) ifneq (,$(shell which $(ACLOCAL))) Modified: opal/branches/v3_12/configure =================================================================== --- opal/branches/v3_12/configure 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/configure 2013-01-18 12:34:20 UTC (rev 28932) @@ -2749,11 +2749,19 @@ +OBJ_ARCH= +if test "x$OPALDIR" != "x" ; then + ac_default_prefix=$OPALDIR + OBJ_ARCH=1 +fi + + + if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then if test -n "$ac_tool_prefix"; then # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. @@ -5526,7 +5534,7 @@ OPAL_DAHDI=no -if test "x$OPALDIR" = "x"; then +if test "x$OBJ_ARCH" = "x"; then OPALDIR=`pwd` fi @@ -5611,6 +5619,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_CFLAGS=`$PKG_CONFIG --cflags "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5627,6 +5636,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_LIBS=`$PKG_CONFIG --libs "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5646,9 +5656,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` else - PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ptlib >= ${PTLIB_REQUIRED_VERSION}" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PTLIB_PKG_ERRORS" >&5 @@ -5663,7 +5673,6 @@ Alternatively, you may set the environment variables PTLIB_CFLAGS and PTLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 - elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5679,7 +5688,6 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } - else PTLIB_CFLAGS=$pkg_cv_PTLIB_CFLAGS PTLIB_LIBS=$pkg_cv_PTLIB_LIBS @@ -5703,6 +5711,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_CFLAGS=`$PKG_CONFIG --cflags "ptlib" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5719,6 +5728,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_PTLIB_LIBS=`$PKG_CONFIG --libs "ptlib" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -5738,9 +5748,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "ptlib" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ptlib" 2>&1` else - PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors "ptlib" 2>&1` + PTLIB_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ptlib" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$PTLIB_PKG_ERRORS" >&5 @@ -5755,7 +5765,6 @@ Alternatively, you may set the environment variables PTLIB_CFLAGS and PTLIB_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details." "$LINENO" 5 - elif test $pkg_failed = untried; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } @@ -5771,7 +5780,6 @@ To get pkg-config, see <http://pkg-config.freedesktop.org/>. See \`config.log' for more details" "$LINENO" 5; } - else PTLIB_CFLAGS=$pkg_cv_PTLIB_CFLAGS PTLIB_LIBS=$pkg_cv_PTLIB_LIBS @@ -5798,17 +5806,24 @@ old_LIBS="$LIBS" old_LDFLAGS="$LDFLAGS" +echo "CXXFLAGS = $CXXFLAGS" +echo "PKG_CONFIG_PATH = $PKG_CONFIG_PATH" +echo "DL_LIBS = $DL_LIBS" +echo "LIBS = $LIBS" + CXXFLAGS="$CXXFLAGS $PTLIB_CFLAGS $PTLIB_CXXFLAGS" { $as_echo "$as_me:${as_lineno-$LINENO}: checking linkable PTLib" >&5 $as_echo_n "checking linkable PTLib... " >&6; } - suffix="""""" + + suffix="""""""" if test "x$suffix" = "x" ; then LIBS=`$PKG_CONFIG ptlib "" --libs` else LIBS=`$PKG_CONFIG ptlib --define-variable=suffix=$suffix "" --libs` fi + LIBS+=$DL_LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5830,18 +5845,19 @@ conftest$ac_exeext conftest.$ac_ext - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: opt, shared" >&5 + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: opt, shared" >&5 $as_echo "opt, shared" >&6; } - else + else - suffix="_d""" + suffix="""_d""" if test "x$suffix" = "x" ; then LIBS=`$PKG_CONFIG ptlib "" --libs` else LIBS=`$PKG_CONFIG ptlib --define-variable=suffix=$suffix "" --libs` fi + LIBS+=$DL_LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5863,20 +5879,21 @@ conftest$ac_exeext conftest.$ac_ext - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: debug, shared" >&5 + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: debug, shared" >&5 $as_echo "debug, shared" >&6; } - else - DEBUG_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_d_s --libs` - RELEASE_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_s --libs` + else + DEBUG_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_d_s --libs` + RELEASE_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_s --libs` - suffix="""_s" + suffix="""""_s" if test "x$suffix" = "x" ; then LIBS=`$PKG_CONFIG ptlib --static --libs` else LIBS=`$PKG_CONFIG ptlib --define-variable=suffix=$suffix --static --libs` fi + LIBS+=$DL_LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5898,18 +5915,19 @@ conftest$ac_exeext conftest.$ac_ext - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: release, static" >&5 + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: release, static" >&5 $as_echo "release, static" >&6; } - else + else - suffix="_d_s" + suffix="""_d_s" if test "x$suffix" = "x" ; then LIBS=`$PKG_CONFIG ptlib --static --libs` else LIBS=`$PKG_CONFIG ptlib --define-variable=suffix=$suffix --static --libs` fi + LIBS+=$DL_LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -5931,22 +5949,24 @@ conftest$ac_exeext conftest.$ac_ext - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - { $as_echo "$as_me:${as_lineno-$LINENO}: result: debug, static" >&5 + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: debug, static" >&5 $as_echo "debug, static" >&6; } - else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 + fi + fi + fi + fi + + if test "x$DEFAULT_LIBS" = "x" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 $as_echo "not found" >&6; } - echo PTLIB_VERSION=$PTLIB_VERSION - echo PTLIB_CFLAGS=$PTLIB_CFLAGS - echo PTLIB_CXXFLAGS=$PTLIB_CXXFLAGS - echo PTLIB_LIBS=$PTLIB_LIBS - exit -1 - fi - fi - fi - fi + echo PTLIB_VERSION=$PTLIB_VERSION + echo PTLIB_CFLAGS=$PTLIB_CFLAGS + echo PTLIB_CXXFLAGS=$PTLIB_CXXFLAGS + echo PTLIB_LIBS=$PTLIB_LIBS + exit -1 + fi CXXFLAGS="$old_CXXFLAGS" LDFLAGS="$old_LDFLAGS" @@ -7053,6 +7073,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SPEEXDSP_CFLAGS=`$PKG_CONFIG --cflags "speexdsp" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -7069,6 +7090,7 @@ $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then pkg_cv_SPEEXDSP_LIBS=`$PKG_CONFIG --libs "speexdsp" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes else pkg_failed=yes fi @@ -7088,9 +7110,9 @@ _pkg_short_errors_supported=no fi if test $_pkg_short_errors_supported = yes; then - SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "speexdsp" 2>&1` + SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "speexdsp" 2>&1` else - SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --print-errors "speexdsp" 2>&1` + SPEEXDSP_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "speexdsp" 2>&1` fi # Put the nasty error message in config.log where it belongs echo "$SPEEXDSP_PKG_ERRORS" >&5 @@ -9203,11 +9225,16 @@ +cfg_prefix=$libdir +if test "$exec_prefix" = "NONE" ; then + cfg_prefix=./include +fi + ac_config_files="$ac_config_files make/opal_defs.mak" ac_config_files="$ac_config_files make/toplevel.mak" -ac_config_headers="$ac_config_headers include/opal/buildopts.h" +ac_config_headers="$ac_config_headers ${cfg_prefix}/opal/buildopts.h:include/opal/buildopts.h.in" ac_config_files="$ac_config_files opal.pc" @@ -9922,7 +9949,7 @@ case $ac_config_target in "make/opal_defs.mak") CONFIG_FILES="$CONFIG_FILES make/opal_defs.mak" ;; "make/toplevel.mak") CONFIG_FILES="$CONFIG_FILES make/toplevel.mak" ;; - "include/opal/buildopts.h") CONFIG_HEADERS="$CONFIG_HEADERS include/opal/buildopts.h" ;; + "${cfg_prefix}/opal/buildopts.h") CONFIG_HEADERS="$CONFIG_HEADERS ${cfg_prefix}/opal/buildopts.h:include/opal/buildopts.h.in" ;; "opal.pc") CONFIG_FILES="$CONFIG_FILES opal.pc" ;; "opal.spec") CONFIG_FILES="$CONFIG_FILES opal.spec" ;; "opal_cfg.dxy") CONFIG_FILES="$CONFIG_FILES opal_cfg.dxy" ;; Modified: opal/branches/v3_12/configure.ac =================================================================== --- opal/branches/v3_12/configure.ac 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/configure.ac 2013-01-18 12:34:20 UTC (rev 28932) @@ -11,6 +11,11 @@ m4_include(make/opal.m4) +OBJ_ARCH= +if test "x$OPALDIR" != "x" ; then + ac_default_prefix=$OPALDIR + OBJ_ARCH=1 +fi PKG_PROG_PKG_CONFIG() if test -z "$PKG_CONFIG" ; then @@ -99,7 +104,7 @@ dnl ######################################################################## dnl set the OPAL directory to the current directory -if test "x$OPALDIR" = "x"; then +if test "x$OBJ_ARCH" = "x"; then OPALDIR=`pwd` fi AC_SUBST(OPALDIR) @@ -671,9 +676,14 @@ dnl Output files dnl ######################################################################## +cfg_prefix=$libdir +if test "$exec_prefix" = "NONE" ; then + cfg_prefix=./include +fi + AC_CONFIG_FILES(make/opal_defs.mak) AC_CONFIG_FILES(make/toplevel.mak) -AC_CONFIG_HEADERS(include/opal/buildopts.h) +AC_CONFIG_HEADERS(${cfg_prefix}/opal/buildopts.h:include/opal/buildopts.h.in) AC_CONFIG_FILES(opal.pc) AC_CONFIG_FILES(opal.spec) AC_CONFIG_FILES(opal_cfg.dxy) Modified: opal/branches/v3_12/include/codec/opalplugin.h =================================================================== --- opal/branches/v3_12/include/codec/opalplugin.h 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/include/codec/opalplugin.h 2013-01-18 12:34:20 UTC (rev 28932) @@ -61,7 +61,7 @@ #pragma warning(disable:4201) #endif -#ifdef _WIN32 +#ifdef _MSC_VER # ifdef PLUGIN_CODEC_DLL_EXPORTS # define PLUGIN_CODEC_DLL_API __declspec(dllexport) # else Modified: opal/branches/v3_12/make/opal.m4 =================================================================== --- opal/branches/v3_12/make/opal.m4 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/make/opal.m4 2013-01-18 12:34:20 UTC (rev 28932) @@ -233,6 +233,7 @@ else LIBS=`$PKG_CONFIG ptlib --define-variable=suffix=$suffix $3 --libs` fi + LIBS+=$DL_LIBS AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <ptlib.h>]], [[PString str;]])], @@ -245,6 +246,35 @@ dnl PTLIB dnl ######################################################################## +AC_DEFUN([OPAL_FIND_PTLIB_OBJ], + [ + OPAL_CHECK_PTLIB_EXISTENCE(["$1"], [""], [""]) + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + AC_MSG_RESULT([opt, shared]) + else + OPAL_CHECK_PTLIB_EXISTENCE([$1_d], [""], [""]) + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + AC_MSG_RESULT([debug, shared]) + else + DEBUG_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_d_s --libs` + RELEASE_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_s --libs` + OPAL_CHECK_PTLIB_EXISTENCE(["$1"], [_s], [--static]) + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + AC_MSG_RESULT([release, static]) + else + OPAL_CHECK_PTLIB_EXISTENCE([$1_d], [_s], [--static]) + if test "x$found" = "x1" ; then + DEFAULT_LIBS=$LIBS + AC_MSG_RESULT([debug, static]) + fi + fi + fi + fi + ]) + dnl OPAL_FIND_PTLIB dnl Find ptlib, either in PTLIBDIR or whereever on the system dnl Arguments: @@ -301,40 +331,28 @@ old_LIBS="$LIBS" old_LDFLAGS="$LDFLAGS" +echo "CXXFLAGS = $CXXFLAGS" +echo "PKG_CONFIG_PATH = $PKG_CONFIG_PATH" +echo "DL_LIBS = $DL_LIBS" +echo "LIBS = $LIBS" + CXXFLAGS="$CXXFLAGS $PTLIB_CFLAGS $PTLIB_CXXFLAGS" AC_MSG_CHECKING([linkable PTLib]) - OPAL_CHECK_PTLIB_EXISTENCE([""], [""], [""]) - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - AC_MSG_RESULT([opt, shared]) - else - OPAL_CHECK_PTLIB_EXISTENCE([_d], [""], [""]) - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - AC_MSG_RESULT([debug, shared]) - else - DEBUG_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_d_s --libs` - RELEASE_LIBS=`$PKG_CONFIG ptlib --static --define-variable=suffix=_s --libs` - OPAL_CHECK_PTLIB_EXISTENCE([""], [_s], [--static]) - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - AC_MSG_RESULT([release, static]) - else - OPAL_CHECK_PTLIB_EXISTENCE([_d], [_s], [--static]) - if test "x$found" = "x1" ; then - DEFAULT_LIBS=$LIBS - AC_MSG_RESULT([debug, static]) - else - AC_MSG_RESULT([not found]) - echo PTLIB_VERSION=$PTLIB_VERSION - echo PTLIB_CFLAGS=$PTLIB_CFLAGS - echo PTLIB_CXXFLAGS=$PTLIB_CXXFLAGS - echo PTLIB_LIBS=$PTLIB_LIBS - exit -1 - fi - fi - fi + OPAL_FIND_PTLIB_OBJ("") + if test "x$DEFAULT_LIBS" = "x" ; then + dnl LDFLAGS+="-L$PTLIBDIR/lib_${target_os}_${target_cpu}" + dnl OPAL_FIND_PTLIB_OBJ("") + dnl if test "x$DEFAULT_LIBS" = "x" ; then + AC_MSG_RESULT([not found]) + echo PTLIB_VERSION=$PTLIB_VERSION + echo PTLIB_CFLAGS=$PTLIB_CFLAGS + echo PTLIB_CXXFLAGS=$PTLIB_CXXFLAGS + echo PTLIB_LIBS=$PTLIB_LIBS + exit -1 + dnl fi + dnl DEBUG_LIBS+="-L$PTLIBDIR/lib_${target_os}_${target_cpu}" + dnl RELEASE_LIBS+="-L$PTLIBDIR/lib_${target_os}_${target_cpu}" fi CXXFLAGS="$old_CXXFLAGS" Modified: opal/branches/v3_12/make/opal_defs.mak.in =================================================================== --- opal/branches/v3_12/make/opal_defs.mak.in 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/make/opal_defs.mak.in 2013-01-18 12:34:20 UTC (rev 28932) @@ -40,6 +40,7 @@ exec_prefix = @exec_prefix@ libdir = @libdir@ includedir = @includedir@ +bindir = @bindir@ datarootdir = @datarootdir@ # Tool names detected by configure @@ -52,6 +53,8 @@ ARCHIVE = @ARCHIVE@ SWIG = @SWIG@ +OPAL_LIBDIR =@libdir@ + # The library file names RELEASE_LIB_NAME = @RELEASE_LIB_NAME@ RELEASE_LIB_FILENAME_STATIC = @RELEASE_LIB_FILENAME_STATIC@ Modified: opal/branches/v3_12/make/toplevel.mak.in =================================================================== --- opal/branches/v3_12/make/toplevel.mak.in 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/make/toplevel.mak.in 2013-01-18 12:34:20 UTC (rev 28932) @@ -610,7 +610,7 @@ clean: rm -rf $(OPAL_LIBDIR) - @set -e; $(foreach dir,$(SUBDIRS),if test -d ${dir} ; then $(MAKE) -C $(dir) clean; fi ; ) + @set -e; $(foreach dir,$(SUBDIRS),if test -d ${dir} ; then $(MAKE) -C $(dir) CC=@CC@ CXX=@CXX@ LD=@CXX@ clean; fi ; ) depend: $(DEPS) @set -e; $(foreach dir,$(SUBDIRS),if test -d ${dir} ; then $(MAKE) -C $(dir) depend; fi ; ) Modified: opal/branches/v3_12/plugins/audio/Speex/speexcodec.cxx =================================================================== --- opal/branches/v3_12/plugins/audio/Speex/speexcodec.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/plugins/audio/Speex/speexcodec.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -30,6 +30,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include <stdint.h> #ifndef PLUGIN_CODEC_DLL_EXPORTS #include "plugin-config.h" @@ -84,7 +85,7 @@ static void * create_encoder(const struct PluginCodec_Definition * codec) { - int mode = (int)(long)(codec->userData); + intptr_t mode = (intptr_t)codec->userData; struct PluginSpeexContext * context = new PluginSpeexContext; Modified: opal/branches/v3_12/plugins/plugin-inc.mak.in =================================================================== --- opal/branches/v3_12/plugins/plugin-inc.mak.in 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/plugins/plugin-inc.mak.in 2013-01-18 12:34:20 UTC (rev 28932) @@ -79,7 +79,7 @@ ifneq ($(SUBDIRS),) .PHONY: $(SUBDIRS) $(SUBDIRS): - $(MAKE) -C $@ + $(MAKE) -C $@ CC=@CC@ CXX=@CXX@ LD=@CXX@ endif install: Modified: opal/branches/v3_12/samples/opalcodecinfo/Makefile =================================================================== --- opal/branches/v3_12/samples/opalcodecinfo/Makefile 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/samples/opalcodecinfo/Makefile 2013-01-18 12:34:20 UTC (rev 28932) @@ -36,7 +36,7 @@ PROG = codecinfo SOURCES := main.cxx -ifndef OPENH323DIR +ifndef OPALDIR OPALDIR=$(CURDIR)/../.. endif Modified: opal/branches/v3_12/src/codec/rfc2833.cxx =================================================================== --- opal/branches/v3_12/src/codec/rfc2833.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/codec/rfc2833.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -479,7 +479,11 @@ if (hasNSE && rfc2833 >= NSECodeBase && rfc2833 < NSECodeBase+(PINDEX)sizeof(NSEEvents)-1) return NSEEvents[rfc2833-NSECodeBase]; - if (rfc2833 >= 0 && rfc2833 < (PINDEX)sizeof(RFC2833Table1Events)-1) + if ( +#ifndef __GNUC__ + rfc2833 >= 0 && +#endif + rfc2833 < (PINDEX)sizeof(RFC2833Table1Events)-1) return RFC2833Table1Events[rfc2833]; return '\0'; Modified: opal/branches/v3_12/src/codec/vidcodec.cxx =================================================================== --- opal/branches/v3_12/src/codec/vidcodec.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/codec/vidcodec.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -126,7 +126,7 @@ SetFrameBytes(inputMediaFormat, OpalVideoFormat::MaxRxFrameWidthOption(), OpalVideoFormat::MaxRxFrameHeightOption(), inDataSize); SetFrameBytes(outputMediaFormat, OpalVideoFormat::FrameWidthOption(), OpalVideoFormat::FrameHeightOption(), outDataSize); - if (outputMediaFormat.GetOptionInteger(OpalMediaFormat::MaxTxPacketSizeOption()) > maxOutputSize) { + if (outputMediaFormat.GetOptionInteger(OpalMediaFormat::MaxTxPacketSizeOption()) > (int)maxOutputSize) { PTRACE(4, "Media\tReducing \"" << OpalMediaFormat::MaxTxPacketSizeOption() << "\" to " << maxOutputSize); outputMediaFormat.SetOptionInteger(OpalMediaFormat::MaxTxPacketSizeOption(), maxOutputSize); } Modified: opal/branches/v3_12/src/h323/gkclient.cxx =================================================================== --- opal/branches/v3_12/src/h323/gkclient.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/h323/gkclient.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -522,7 +522,7 @@ rrq.m_terminalAliasPattern.Append(new H225_AddressPattern); H225_AddressPattern &addressPattern = rrq.m_terminalAliasPattern[0]; - for( int i = 0; i < aliasNamePatterns.GetSize(); i++){ + for( PINDEX i = 0; i < aliasNamePatterns.GetSize(); i++){ PStringArray nameRange = aliasNamePatterns[i].Tokenise('-', FALSE); if (nameRange.GetSize() == 2 && nameRange[0].FindSpan("1234567890*#") == P_MAX_INDEX && @@ -1654,7 +1654,7 @@ PBoolean sent) { // Are unknown Q.931 PDU - if (pdu.m_h323_message_body.GetTag() == P_MAX_INDEX) + if ((PINDEX)pdu.m_h323_message_body.GetTag() > H225_H323_UU_PDU_h323_message_body::e_notify) return; // Check mask of things to report on Modified: opal/branches/v3_12/src/lids/lid.cxx =================================================================== --- opal/branches/v3_12/src/lids/lid.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/lids/lid.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -53,7 +53,7 @@ static const char * const CallProgressTonesNames[OpalLineInterfaceDevice::NumTones+1] = { "NoTone", "DialTone", "RingTone", "BusyTone", "CongestionTone", "ClearTone", "MwiTone", "RoutingTone", "CNGTone", "CEDTone", "UserTone" }; - if (t+1 < PARRAYSIZE(CallProgressTonesNames) && CallProgressTonesNames[t+1] != NULL) + if ((size_t)t+1 < PARRAYSIZE(CallProgressTonesNames) && CallProgressTonesNames[t+1] != NULL) return o << CallProgressTonesNames[t+1]; else return o << "UnknownTone:" << (unsigned)t; Modified: opal/branches/v3_12/src/opal/mediafmt.cxx =================================================================== --- opal/branches/v3_12/src/opal/mediafmt.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/opal/mediafmt.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -527,7 +527,11 @@ void OpalMediaOptionEnum::SetValue(PINDEX value) { PINDEX maxEnum = m_merge != IntersectionMerge ? m_enumerations.GetSize() : (1LL << m_enumerations.GetSize()); - if (value >= 0 && value < maxEnum) + if ( +#ifndef __GNUC__ + value >= 0 && +#endif + value < maxEnum) m_value = value; else { m_value = maxEnum; Modified: opal/branches/v3_12/src/opal/patch.cxx =================================================================== --- opal/branches/v3_12/src/opal/patch.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/opal/patch.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -519,7 +519,7 @@ for (PList<Filter>::iterator f = filters.begin(); f != filters.end(); ++f) { if (f->stage.IsEmpty() || f->stage == mediaFormat) - f->notifier(frame, (INT)this); + f->notifier(frame, (P_INT_PTR)this); } UnlockReadOnly(); Modified: opal/branches/v3_12/src/rtp/rtp.cxx =================================================================== --- opal/branches/v3_12/src/rtp/rtp.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/rtp/rtp.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -301,7 +301,7 @@ BYTE * ptr = (BYTE *)&theArray[MinHeaderSize + 4*GetContribSrcCount()]; unsigned idPresent = *(PUInt16b *)ptr; - int extensionSize = *(PUInt16b *)(ptr += 2) * 4; + PINDEX extensionSize = *(PUInt16b *)(ptr += 2) * 4; ptr += 2; switch (type) { Modified: opal/branches/v3_12/src/sip/handlers.cxx =================================================================== --- opal/branches/v3_12/src/sip/handlers.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/sip/handlers.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -1154,7 +1154,7 @@ pdu.GetMIME().AddMIME(iter->m_mime); pdu.SetEntityBody(iter->m_textBody); - if (DispatchNOTIFY(pdu)) + if (DispatchNOTIFY(pdu, *response)) sendResponse = false; } #endif Modified: opal/branches/v3_12/src/sip/sipcon.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/sip/sipcon.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -3640,7 +3640,7 @@ default: PStringArray lines = request.GetEntityBody().Lines(); PINDEX i; - char tone = -1; + char tone = 0; int duration = -1; for (i = 0; i < lines.GetSize(); ++i) { PStringArray tokens = lines[i].Tokenise('=', false); @@ -3654,7 +3654,7 @@ duration = val.AsInteger(); } } - if (tone != -1) + if (tone != 0) OnUserInputTone(tone, duration == 0 ? 100 : duration); status = SIP_PDU::Successful_OK; break; Modified: opal/branches/v3_12/src/sip/sippdu.cxx =================================================================== --- opal/branches/v3_12/src/sip/sippdu.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/sip/sippdu.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -2201,7 +2201,7 @@ // if a content length is specified, read that length // if no content length is specified (which is not the same as zero length) // then read until end of datagram or stream - PINDEX contentLength = m_mime.GetContentLength(); + int contentLength = m_mime.GetContentLength(); bool contentLengthPresent = m_mime.IsContentLengthPresent(); if (!contentLengthPresent) { Modified: opal/branches/v3_12/src/t38/t38proto.cxx =================================================================== --- opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-18 12:31:11 UTC (rev 28931) +++ opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-18 12:34:20 UTC (rev 28932) @@ -217,7 +217,7 @@ } optint = mediaFormat.GetOptionInteger("T38FaxMaxDatagram", m_datagramSize); - if (optint != m_datagramSize) { + if (optint != (int)m_datagramSize) { PWaitAndSignal mutex(m_writeMutex); m_datagramSize = optint; PTRACE(3, "UDPTL\tDatagram size set to " << m_datagramSize); @@ -426,7 +426,7 @@ int redundancy = 0; for (std::map<int, int>::iterator i = m_redundancy.begin() ; i != m_redundancy.end() ; i++) { - if (plLen <= i->first) { + if ((int)plLen <= i->first) { if (redundancy < i->second) redundancy = i->second; @@ -609,7 +609,7 @@ if (secondaryPackets.GetSize() > 0) { PTRACE(4, "UDPTL\tUsing redundant data to reconstruct missing/out of order packet at SN=" << m_expectedSequenceNumber); m_secondaryPacket = missing; - if (m_secondaryPacket > secondaryPackets.GetSize()) + if ((PINDEX)m_secondaryPacket > secondaryPackets.GetSize()) m_secondaryPacket = secondaryPackets.GetSize(); SetFrameFromIFP(frame, secondaryPackets[m_secondaryPacket-1], m_receivedPacket->m_seq_number - m_secondaryPacket); --m_secondaryPacket; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2013-01-18 13:43:58
|
Revision: 28938 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28938&view=rev Author: csoutheren Date: 2013-01-18 13:43:51 +0000 (Fri, 18 Jan 2013) Log Message: ----------- Fix problem on linux with incorrect lib directory in samples Modified Paths: -------------- opal/branches/v3_12/configure opal/branches/v3_12/configure.ac Modified: opal/branches/v3_12/configure =================================================================== --- opal/branches/v3_12/configure 2013-01-18 13:21:17 UTC (rev 28937) +++ opal/branches/v3_12/configure 2013-01-18 13:43:51 UTC (rev 28938) @@ -6370,11 +6370,9 @@ ;; esac -if test "$prefix" = "$OPALDIR"; then +if test "x$OBJ_ARCH" != "x" ; then includedir=$OPALDIR/include libdir=$OPALDIR/lib_$target -else - includedir="$includedir/opal" fi Modified: opal/branches/v3_12/configure.ac =================================================================== --- opal/branches/v3_12/configure.ac 2013-01-18 13:21:17 UTC (rev 28937) +++ opal/branches/v3_12/configure.ac 2013-01-18 13:43:51 UTC (rev 28938) @@ -208,11 +208,9 @@ dnl ######################################################################## dnl set libdir accordingly -if test "$prefix" = "$OPALDIR"; then +if test "x$OBJ_ARCH" != "x" ; then includedir=$OPALDIR/include libdir=$OPALDIR/lib_$target -else - includedir="$includedir/opal" fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-21 23:02:00
|
Revision: 28953 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28953&view=rev Author: rjongbloed Date: 2013-01-21 23:01:53 +0000 (Mon, 21 Jan 2013) Log Message: ----------- Fixed presence peer to peer mode incoming SUSBCRIBE being accepted. Also fixed some documentation around the CanNotify() callback. Modified Paths: -------------- opal/branches/v3_12/include/sip/sipep.h opal/branches/v3_12/src/sip/sipep.cxx Modified: opal/branches/v3_12/include/sip/sipep.h =================================================================== --- opal/branches/v3_12/include/sip/sipep.h 2013-01-21 22:51:40 UTC (rev 28952) +++ opal/branches/v3_12/include/sip/sipep.h 2013-01-21 23:01:53 UTC (rev 28953) @@ -628,22 +628,29 @@ SIP_PDU::StatusCodes reason ///< Status of subscription ); - /** Indicate notifications for the specified event package are supported. + /** Indicate notification capability for an event package. + Default behaviour handles conference and presence event packages if the + \p aor parameter matches something we have. + + All other event packages are checked against the m_allowedEvents set + member variable. */ - virtual bool CanNotify( - const PString & eventPackage ///< Event package we support - ); - enum CanNotifyResult { - CannotNotify, - CanNotifyImmediate, - CanNotifyDeferrred + CannotNotify, ///< Refuse SUBSCRIBE + CanNotifyImmediate, ///< Accept SUBSCRIBE and send NOTIFY + CanNotifyDeferrred ///> Accept SUBSCRIBE, but NOTIFY will be sent at a later time by caller }; + + /** Indicate notifications for the specified event package are supported. + */ virtual CanNotifyResult CanNotify( const PString & eventPackage, ///< Event package we support - const SIPURL & aor + const SIPURL & aor ///< Address of record for SUBSCRIBE ); + // For backward compatobility + virtual bool CanNotify(const PString & eventPackage); + /** Send notification to all remotes that are subcribed to the event package. */ bool Notify( Modified: opal/branches/v3_12/src/sip/sipep.cxx =================================================================== --- opal/branches/v3_12/src/sip/sipep.cxx 2013-01-21 22:51:40 UTC (rev 28952) +++ opal/branches/v3_12/src/sip/sipep.cxx 2013-01-21 23:01:53 UTC (rev 28953) @@ -44,6 +44,7 @@ #include <sip/sipep.h> #include <ptclib/enum.h> +#include <sip/sippres.h> #include <im/sipim.h> @@ -836,8 +837,7 @@ // Update expiry time unsigned expires = mime.GetExpires(); - SIPResponse * response = new SIPResponse(*this, request, - canNotify == CanNotifyImmediate ? SIP_PDU::Successful_OK : SIP_PDU::Successful_Accepted); + SIPResponse * response = new SIPResponse(*this, request, SIP_PDU::Successful_Accepted); response->GetMIME().SetEvent(eventPackage); // Required by spec response->GetMIME().SetExpires(expires); // Required by spec response->Send(); @@ -1460,32 +1460,43 @@ if (m_allowedEvents.Contains(eventPackage)) return true; - PTRACE(3, "SIP\tCannot notify event \"" << eventPackage << "\" not one of " - << setfill(',') << m_allowedEvents << setfill(' ')); + PTRACE(3, "SIP\tCannot notify event \"" << eventPackage << "\" not one of [" + << setfill(',') << m_allowedEvents << setfill(' ') << ']'); return false; } SIPEndPoint::CanNotifyResult SIPEndPoint::CanNotify(const PString & eventPackage, const SIPURL & aor) { - if (SIPEventPackage(SIPSubscribe::Conference) != eventPackage) - return CanNotify(eventPackage) ? CanNotifyImmediate : CannotNotify; + if (SIPEventPackage(SIPSubscribe::Conference) == eventPackage) { + OpalConferenceStates states; + if (manager.GetConferenceStates(states, aor.GetUserName()) || states.empty()) { + PString uri = states.front().m_internalURI; + ConferenceMap::iterator it = m_conferenceAOR.find(uri); + while (it != m_conferenceAOR.end() && it->first == uri) { + if (it->second == aor) + return CanNotifyImmediate; + } - OpalConferenceStates states; - if (!manager.GetConferenceStates(states, aor.GetUserName()) || states.empty()) { - PTRACE(3, "SIP\tCannot notify event \"" << eventPackage << "\" event, no conferences enabled."); + m_conferenceAOR.insert(ConferenceMap::value_type(uri, aor)); + return CanNotifyImmediate; + } + + PTRACE(3, "SIP\tCannot notify \"" << eventPackage << "\" event, no conferences for " << aor); return CannotNotify; } - PString uri = states.front().m_internalURI; - ConferenceMap::iterator it = m_conferenceAOR.find(uri); - while (it != m_conferenceAOR.end() && it->first == uri) { - if (it->second == aor) + if (SIPEventPackage(SIPSubscribe::Presence) == eventPackage) { + PSafePtr<OpalPresentity> presentity = manager.GetPresentity(aor); + if (presentity != NULL && presentity->GetAttributes().GetEnum( + SIP_Presentity::SubProtocolKey, SIP_Presentity::e_WithAgent) == SIP_Presentity::e_PeerToPeer) return CanNotifyImmediate; + + PTRACE(3, "SIP\tCannot notify \"" << eventPackage << "\" event, no presentity " << aor); + return CannotNotify; } - m_conferenceAOR.insert(ConferenceMap::value_type(uri, aor)); - return CanNotifyImmediate; + return CanNotify(eventPackage) ? CanNotifyImmediate : CannotNotify; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-24 08:38:40
|
Revision: 28983 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28983&view=rev Author: rjongbloed Date: 2013-01-24 08:38:29 +0000 (Thu, 24 Jan 2013) Log Message: ----------- Trace log fixes, especially in the area of the context ID. Modified Paths: -------------- opal/branches/v3_12/include/sip/sippdu.h opal/branches/v3_12/src/ep/opalmixer.cxx opal/branches/v3_12/src/opal/endpoint.cxx opal/branches/v3_12/src/opal/patch.cxx opal/branches/v3_12/src/sip/sippdu.cxx Modified: opal/branches/v3_12/include/sip/sippdu.h =================================================================== --- opal/branches/v3_12/include/sip/sippdu.h 2013-01-24 07:39:12 UTC (rev 28982) +++ opal/branches/v3_12/include/sip/sippdu.h 2013-01-24 08:38:29 UTC (rev 28983) @@ -905,6 +905,7 @@ { PSafePtr<Target_T> target; if (GetTarget(target)) { + PTRACE_CONTEXT_ID_PUSH_THREAD(target); (target->*m_callback)(); PTRACE(4, "SIP\tHandled timeout"); } Modified: opal/branches/v3_12/src/ep/opalmixer.cxx =================================================================== --- opal/branches/v3_12/src/ep/opalmixer.cxx 2013-01-24 07:39:12 UTC (rev 28982) +++ opal/branches/v3_12/src/ep/opalmixer.cxx 2013-01-24 08:38:29 UTC (rev 28983) @@ -1183,6 +1183,8 @@ , m_videoMixer(*m_info) #endif { + PTRACE_CONTEXT_ID_NEW(); + m_connections.DisallowDeleteObjects(); AddName(m_info->m_name); Modified: opal/branches/v3_12/src/opal/endpoint.cxx =================================================================== --- opal/branches/v3_12/src/opal/endpoint.cxx 2013-01-24 07:39:12 UTC (rev 28982) +++ opal/branches/v3_12/src/opal/endpoint.cxx 2013-01-24 08:38:29 UTC (rev 28983) @@ -129,8 +129,10 @@ PBoolean OpalEndPoint::GarbageCollection() { - for (PSafePtr<OpalConnection> connection(connectionsActive, PSafeReference); connection != NULL; ++connection) + for (PSafePtr<OpalConnection> connection(connectionsActive, PSafeReference); connection != NULL; ++connection) { + PTRACE_CONTEXT_ID_PUSH_THREAD(connection); connection->GarbageCollection(); + } return connectionsActive.DeleteObjectsToBeRemoved(); } Modified: opal/branches/v3_12/src/opal/patch.cxx =================================================================== --- opal/branches/v3_12/src/opal/patch.cxx 2013-01-24 07:39:12 UTC (rev 28982) +++ opal/branches/v3_12/src/opal/patch.cxx 2013-01-24 08:38:29 UTC (rev 28983) @@ -75,7 +75,7 @@ void OpalMediaPatch::PrintOn(ostream & strm) const { - strm << "Patch[" << this << "] " << source; + strm << GetClass() << '[' << this << "] " << source; if (!LockReadOnly()) return; Modified: opal/branches/v3_12/src/sip/sippdu.cxx =================================================================== --- opal/branches/v3_12/src/sip/sippdu.cxx 2013-01-24 07:39:12 UTC (rev 28982) +++ opal/branches/v3_12/src/sip/sippdu.cxx 2013-01-24 08:38:29 UTC (rev 28983) @@ -2940,7 +2940,7 @@ , m_retryTimer(GetEndPoint().GetThreadPool(), GetEndPoint(), GetTransactionID(), &SIPTransaction::OnRetry) , m_completionTimer(GetEndPoint().GetThreadPool(), GetEndPoint(), GetTransactionID(), &SIPTransaction::OnTimeout) { - PTRACE_CONTEXT_ID_FROM(transport); + PTRACE_CONTEXT_ID_FROM(m_owner.m_object); PAssert(m_owner.m_object.SafeReference(), "Transaction created on owner pending deletion."); @@ -4142,8 +4142,7 @@ return false; } - PTRACE_CONTEXT_ID_PUSH_THREAD(*transaction); - PTRACE(3, "SIP\tHandling timeout for transaction using id=" << m_token); + PTRACE(3, transaction, "SIP\tHandling timeout for transaction using id=" << m_token); return true; } @@ -4159,8 +4158,7 @@ return false; } - PTRACE_CONTEXT_ID_PUSH_THREAD(*connection); - PTRACE(3, "SIP\tHandling timeout for connection using token=" << m_token); + PTRACE(3, connection, "SIP\tHandling timeout for connection using token=" << m_token); return true; } @@ -4176,8 +4174,7 @@ return false; } - PTRACE_CONTEXT_ID_PUSH_THREAD(*handler); - PTRACE(3, "SIP\tHandling timeout for handler using token=" << m_token); + PTRACE(3, handler, "SIP\tHandling timeout for handler using token=" << m_token); return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2013-01-25 06:35:38
|
Revision: 28991 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=28991&view=rev Author: rjongbloed Date: 2013-01-25 06:35:29 +0000 (Fri, 25 Jan 2013) Log Message: ----------- Allow receive fax to use '*' in URI to indicate a new file name is to be generated. OpenPhone changed to use it. Modified Paths: -------------- opal/branches/v3_12/samples/openphone/main.cxx opal/branches/v3_12/src/t38/t38proto.cxx Modified: opal/branches/v3_12/samples/openphone/main.cxx =================================================================== --- opal/branches/v3_12/samples/openphone/main.cxx 2013-01-25 06:26:29 UTC (rev 28990) +++ opal/branches/v3_12/samples/openphone/main.cxx 2013-01-25 06:35:29 UTC (rev 28991) @@ -339,8 +339,8 @@ #if OPAL_FAX "t38:.* = sip:<da>", "fax:.* = sip:<da>", - ".*:.*\t.*:(fax|329)@.*|(fax|329) = fax:incoming.tif;receive", - ".*:.*\t.*:(t38|838)@.*|(t38|838) = t38:incoming.tif;receive", + ".*:.*\t.*:(fax|329)@.*|(fax|329) = fax:*;receive", + ".*:.*\t.*:(t38|838)@.*|(t38|838) = t38:*;receive", #endif "h323:.* = pots:<dn>", Modified: opal/branches/v3_12/src/t38/t38proto.cxx =================================================================== --- opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-25 06:26:29 UTC (rev 28990) +++ opal/branches/v3_12/src/t38/t38proto.cxx 2013-01-25 06:35:29 UTC (rev 28991) @@ -672,10 +672,21 @@ stationId = tokens[i].Mid(10); } - PString filename = tokens[0]; - if (!PFilePath::IsAbsolutePath(filename)) - filename.Splice(m_defaultDirectory, 0); + PFilePath filename; + PString fileparam = tokens[0]; + PINDEX star = fileparam.Find('*'); + if (star == 0) + filename = PFilePath("opal_fax_", m_defaultDirectory); + else if (star != P_MAX_INDEX) + filename = PFilePath(fileparam.Left(star), m_defaultDirectory); + else if (PFilePath::IsAbsolutePath(fileparam)) + filename = fileparam; + else + filename = m_defaultDirectory + fileparam; + if (filename.GetType().IsEmpty()) + filename.SetType(".tif"); + if (!receiving && !PFile::Exists(filename)) { PTRACE(2, "Fax\tCannot find filename '" << filename << "'"); return NULL; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cso...@us...> - 2013-01-26 12:19:36
|
Revision: 29003 http://opalvoip.svn.sourceforge.net/opalvoip/?rev=29003&view=rev Author: csoutheren Date: 2013-01-26 12:19:27 +0000 (Sat, 26 Jan 2013) Log Message: ----------- Fix install target and default build Modified Paths: -------------- opal/branches/v3_12/Makefile opal/branches/v3_12/configure opal/branches/v3_12/configure.ac Modified: opal/branches/v3_12/Makefile =================================================================== --- opal/branches/v3_12/Makefile 2013-01-26 12:08:36 UTC (rev 29002) +++ opal/branches/v3_12/Makefile 2013-01-26 12:19:27 UTC (rev 29003) @@ -26,8 +26,10 @@ # $Date: 2012-03-17 21:28:55 +1100 (Sat, 17 Mar 2012) $ # +ENV_OPALDIR := $(OPALDIR) ifndef OPALDIR - export OPALDIR=$(CURDIR) + export OPALDIR:=$(CURDIR) + $(info Setting default OPALDIR to $(OPALDIR)) endif TOP_LEVEL_MAKE := $(OPALDIR)/make/toplevel.mak @@ -72,25 +74,26 @@ sterile: @$(MAKE) -f $(TOP_LEVEL_MAKE) sterile -$(CONFIG_FILES) : config.status $(addsuffix .in, $(CONFIG_FILES)) - ./config.status +ifneq (,$(shell which ./config.status)) +CONFIG_PARMS=$(shell ./config.status --config) +endif -config.status: $(CONFIGURE) $(addsuffix .in, $(CONFIG_FILES)) - $(CONFIGURE) +$(CONFIG_FILES) : $(CONFIGURE) $(addsuffix .in, $(CONFIG_FILES)) + OPALDIR=$(ENV_OPALDIR) $(CONFIGURE) $(CONFIG_PARMS) ifneq (,$(AUTOCONF)) ifneq (,$(shell which $(AUTOCONF))) ifneq (,$(shell which $(ACLOCAL))) -$(CONFIGURE): $(CONFIGURE).ac $(ACLOCAL).m4 $(OPALDIR)/make/*.m4 +$(CONFIGURE): $(CONFIGURE).ac $(OPALDIR)/make/*.m4 $(ACLOCAL).m4 $(AUTOCONF) - -$(PLUGIN_CONFIG): $(PLUGIN_CONFIG).ac $(PLUGIN_ACLOCAL) $(OPALDIR)/make/*.m4 - ( cd $(dir $@) ; $(AUTOCONF) ) - + $(ACLOCAL).m4: $(ACLOCAL) +$(PLUGIN_CONFIG): $(PLUGIN_CONFIG).ac $(PLUGIN_ACLOCAL) $(OPALDIR)/make/*.m4 + ( cd $(dir $@) ; $(AUTOCONF) ) + $(PLUGIN_ACLOCAL): ( cd $(dir $@) ; $(ACLOCAL) ) Modified: opal/branches/v3_12/configure =================================================================== --- opal/branches/v3_12/configure 2013-01-26 12:08:36 UTC (rev 29002) +++ opal/branches/v3_12/configure 2013-01-26 12:19:27 UTC (rev 29003) @@ -1,11 +1,9 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.68 for opal 3. +# Generated by GNU Autoconf 2.69 for opal 3. # # -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software -# Foundation, Inc. +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation @@ -134,6 +132,31 @@ # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh @@ -167,7 +190,8 @@ else exitcode=1; echo positional parameters were not saved. fi -test x\$exitcode = x0 || exit 1" +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && @@ -212,21 +236,25 @@ if test "x$CONFIG_SHELL" != x; then : - # We cannot yet assume a decent shell, so we have to provide a - # neutralization value for shells without unset; and this also - # works around shells that cannot unset nonexistent variables. - # Preserve -v and -x to the replacement shell. - BASH_ENV=/dev/null - ENV=/dev/null - (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV - export CONFIG_SHELL - case $- in # (((( - *v*x* | *x*v* ) as_opts=-vx ;; - *v* ) as_opts=-v ;; - *x* ) as_opts=-x ;; - * ) as_opts= ;; - esac - exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"} + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 fi if test x$as_have_required = xno; then : @@ -328,6 +356,14 @@ } # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take @@ -449,6 +485,10 @@ chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). @@ -483,16 +523,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -504,28 +544,8 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +as_test_x='test -x' +as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -1295,8 +1315,6 @@ if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe - $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used" >&2 elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi @@ -1611,9 +1629,9 @@ if $ac_init_version; then cat <<\_ACEOF opal configure 3 -generated by GNU Autoconf 2.68 +generated by GNU Autoconf 2.69 -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF @@ -1806,7 +1824,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2007,7 +2025,7 @@ test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || - $as_test_x conftest$ac_exeext + test -x conftest$ac_exeext }; then : ac_retval=0 else @@ -2043,7 +2061,8 @@ main () { static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2059,7 +2078,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2085,7 +2105,8 @@ main () { static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2101,7 +2122,8 @@ main () { static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2135,7 +2157,8 @@ main () { static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0 +test_array [0] = 0; +return test_array [0]; ; return 0; @@ -2295,7 +2318,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by opal $as_me 3, which was -generated by GNU Autoconf 2.68. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2782,7 +2805,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -2825,7 +2848,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3016,7 +3039,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3056,7 +3079,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3109,7 +3132,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3150,7 +3173,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -3208,7 +3231,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3252,7 +3275,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -3698,8 +3721,7 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4010,7 +4032,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4054,7 +4076,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CXX="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4261,7 +4283,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4301,7 +4323,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="gcc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4354,7 +4376,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="${ac_tool_prefix}cc" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4395,7 +4417,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ac_prog_rejected=yes continue @@ -4453,7 +4475,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4497,7 +4519,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4693,8 +4715,7 @@ /* end confdefs.h. */ #include <stdarg.h> #include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> +struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); @@ -4816,7 +4837,7 @@ # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. @@ -4889,7 +4910,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -4929,7 +4950,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_RANLIB="ranlib" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5118,7 +5139,7 @@ for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue + as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in @@ -5184,7 +5205,7 @@ for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue + as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in @@ -5361,7 +5382,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_AR="${ac_tool_prefix}ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -5401,7 +5422,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_AR="ar" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -6371,8 +6392,8 @@ esac if test "x$OBJ_ARCH" != "x" ; then - includedir=$OPALDIR/include - libdir=$OPALDIR/lib_$target + includedir=${prefix}/include + libdir=$s{prefix}/lib_$target fi @@ -7521,7 +7542,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -7639,7 +7660,7 @@ IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_HAS_RUBY="yes" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 @@ -9650,16 +9671,16 @@ # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. + # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' + as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi else - as_ln_s='cp -p' + as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null @@ -9719,29 +9740,17 @@ as_mkdir_p=false fi -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in #( - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" @@ -9762,7 +9771,7 @@ # values after options handling. ac_log=" This file was extended by opal $as_me 3, which was -generated by GNU Autoconf 2.68. Invocation command line was +generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS @@ -9824,10 +9833,10 @@ ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ opal config.status 3 -configured by $0, generated by GNU Autoconf 2.68, +configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" -Copyright (C) 2010 Free Software Foundation, Inc. +Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -9916,7 +9925,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' Modified: opal/branches/v3_12/configure.ac =================================================================== --- opal/branches/v3_12/configure.ac 2013-01-26 12:08:36 UTC (rev 29002) +++ opal/branches/v3_12/configure.ac 2013-01-26 12:19:27 UTC (rev 29003) @@ -209,8 +209,8 @@ dnl ######################################################################## dnl set libdir accordingly if test "x$OBJ_ARCH" != "x" ; then - includedir=$OPALDIR/include - libdir=$OPALDIR/lib_$target + includedir=${prefix}/include + libdir=$s{prefix}/lib_$target fi This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |