35 #ifndef OPAL_OPAL_CONNECTION_H
36 #define OPAL_OPAL_CONNECTION_H
48 #include <ptclib/dtmf.h>
49 #include <ptlib/safecoll.h>
59 #include <ptclib/lua.h>
71 #define OPAL_URL_PARAM_PREFIX "OPAL-"
73 #define OPAL_OPT_AUTO_START "AutoStart"
74 #define OPAL_OPT_CALL_IDENTIFIER "Call-Identifier"
75 #define OPAL_OPT_CALLING_PARTY_URL "Calling-Party-URL"
76 #define OPAL_OPT_CALLING_PARTY_NUMBER "Calling-Party-Number"
77 #define OPAL_OPT_CALLING_PARTY_NAME "Calling-Party-Name"
78 #define OPAL_OPT_CALLING_PARTY_DOMAIN "Calling-Party-Domain"
79 #define OPAL_OPT_CALLING_DISPLAY_NAME "Calling-Display-Name"
80 #define OPAL_OPT_CALLED_PARTY_NAME "Called-Party-Name"
81 #define OPAL_OPT_CALLED_DISPLAY_NAME "Called-Display-Name"
82 #define OPAL_OPT_REDIRECTING_PARTY "Redirecting-Party"
83 #define OPAL_OPT_PRESENTATION_BLOCK "Presentation-Block"
84 #define OPAL_OPT_ORIGINATOR_ADDRESS "Originator-Address"
85 #define OPAL_OPT_INTERFACE "Interface"
86 #define OPAL_OPT_USER_INPUT_MODE "User-Input-Mode"
87 #define OPAL_OPT_ENABLE_INBAND_DTMF "EnableInbandDTMF"
89 #define OPAL_OPT_ENABLE_INBAND_DTMF "EnableInbandDTMF"
90 #define OPAL_OPT_DETECT_INBAND_DTMF "DetectInBandDTMF"
91 #define OPAL_OPT_SEND_INBAND_DTMF "SendInBandDTMF"
92 #define OPAL_OPT_DTMF_MULT "dtmfmult"
93 #define OPAL_OPT_DTMF_DIV "dtmfdiv"
94 #define OPAL_OPT_DISABLE_JITTER "Disable-Jitter"
95 #define OPAL_OPT_MAX_JITTER "Max-Jitter"
96 #define OPAL_OPT_MIN_JITTER "Min-Jitter"
97 #define OPAL_OPT_RECORD_AUDIO "Record-Audio"
98 #define OPAL_OPT_ALERTING_TYPE "Alerting-Type"
99 #define OPAL_OPT_REMOVE_CODEC "Remove-Codec"
481 const PString & token,
482 unsigned options = 0,
594 PSyncPoint * sync = NULL
623 const PString & remoteParty
738 const PString & calleeName,
759 const PString & callerName
865 const PStringToString & info,
880 bool synchronous =
false
925 const PString & forwardParty
1103 const PString & streamID,
1211 PVideoInputDevice * & device,
1212 PBoolean & autoDelete
1221 PVideoOutputDevice * & device,
1222 PBoolean & autoDelete
1231 unsigned sessionID = 0,
1249 unsigned & percentage
1285 unsigned newBandwidth,
1286 PBoolean force =
false
1304 unsigned releasedBandwidth,
1305 unsigned requiredBandwidth
1348 const PString & value
1369 unsigned duration = 0
1379 const PString & value
1397 unsigned duration = 500
1403 unsigned timeout = 30
1411 const PString & input
1417 const char * terminators =
"#\r\n",
1418 unsigned lastDigitTimeout = 4,
1419 unsigned firstDigitTimeout = 30
1714 const StringOptions & options,
1732 virtual bool TransmitInternalIM(
1740 virtual void OnReceiveInternalIM(
1748 virtual bool TransmitExternalIM(
1756 virtual bool OnReceiveExternalIM(
1765 RFC4103Context & GetRFC4103Context(PINDEX i) {
return m_rfc4103Context[i]; };
1791 PMutex m_phaseMutex;
1831 PDTMFDecoder m_dtmfDecoder;
1832 bool m_detectInBandDTMF;
1833 unsigned m_dtmfScaleMultiplier;
1834 unsigned m_dtmfScaleDivisor;
1835 PNotifier m_dtmfDetectNotifier;
1838 bool m_sendInBandDTMF;
1840 PBYTEArray m_inBandDTMF;
1841 PINDEX m_emittedInBandDTMF;
1842 PMutex m_inBandMutex;
1843 PNotifier m_dtmfSendNotifier;
1896 bool m_luaScriptLoaded;
1900 PLUA_BINDING2(LuaSetOption, "SetOption")
1902 PLUA_DECLARE_FUNCTION(LuaSetOption);
1916 P_REMOVE_VIRTUAL(PBoolean, IsConnectionOnHold(),
false);
1917 P_REMOVE_VIRTUAL_VOID(OnMediaPatchStart(
unsigned,
bool));
1918 P_REMOVE_VIRTUAL_VOID(OnMediaPatchStop(
unsigned,
bool));
1923 P_REMOVE_VIRTUAL(
bool, HoldConnection(),
false);
1924 P_REMOVE_VIRTUAL(
bool, RetrieveConnection(),
false);
1925 P_REMOVE_VIRTUAL(
bool, IsConnectionOnHold(
bool),
false);
1931 #endif // OPAL_OPAL_CONNECTION_H