28 #ifndef OPAL_OPAL_ENDPOINT_H
29 #define OPAL_OPAL_ENDPOINT_H
81 const PCaselessString & prefix,
125 const PStringArray & interfaces,
137 const PString & address
170 virtual bool ApplySSLCredentials(
171 PSSLContext & context,
217 virtual void NewIncomingConnection(
268 const PString & party,
269 void * userData = NULL,
270 unsigned int options = 0,
361 virtual OpalConnection::AnswerCallResponse
OnAnswerCall(
363 const PString & caller
436 const PString & remoteParty
488 const PStringToString & info,
503 const PString & token,
505 PSyncPoint * sync = NULL
513 const PString & token,
515 PSyncPoint * sync = NULL
542 const PString & token,
543 PSafetyMode mode = PSafeReadWrite
552 template <
class ConnClass>
554 const PString & token,
555 PSafetyMode mode = PSafeReadWrite
558 PSafePtr<ConnClass> connection = PSafePtrCast<OpalConnection, ConnClass>(
GetConnectionWithLock(token, mode));
559 if (connection == NULL) {
562 connection = PSafePtrCast<OpalConnection, ConnClass>(call->GetConnection(0, mode));
563 if (connection == NULL)
564 connection = PSafePtrCast<OpalConnection, ConnClass>(call->GetConnection(1, mode));
581 const PString & token
666 const PString & reason
680 const PStringArray & security
704 const PString & value
731 const char * terminators =
"#\r\n",
732 unsigned lastDigitTimeout = 4,
733 unsigned firstDigitTimeout = 30
749 const PString & type,
750 const PString & body,
752 PString & conversationId
764 #endif // OPAL_HAS_IM
780 const PString & party,
782 const PString & extraInfo
802 const PString & name = PString::Empty()
902 bool overwrite =
false
973 virtual void DeleteObject(PObject *
object)
const;
984 P_REMOVE_VIRTUAL_VOID(
OnMessageReceived(
const PURL&,
const PString&,
const PURL&,
const PString&,
const PString&,
const PString&));
986 P_REMOVE_VIRTUAL(PBoolean, NewIncomingConnection(
OpalTransport *),
false);
989 P_REMOVE_VIRTUAL(PNatMethod *, GetNatMethod(
const PIPSocket::Address &)
const, NULL);
996 const PString & number,
1001 #endif // OPAL_OPAL_ENDPOINT_H
virtual PStringList GetAvailableStringOptions() const
PCaselessString m_prefixName
Definition: endpoint.h:954
void PrintOn(ostream &strm) const
virtual OpalMediaFormatList GetMediaFormats() const =0
Attributes m_attributes
Definition: endpoint.h:955
Definition: manager.h:150
Definition: endpoint.h:65
virtual void OnClosedMediaStream(const OpalMediaStream &stream)
virtual void OnProceeding(OpalConnection &connection)
bool OpalIsE164(const PString &number, bool strict=false)
Test for if string is a valid E.164 number.
virtual void SetToken(const PString &newToken)
virtual void OnNewConnection(OpalCall &call, OpalConnection &connection)
void SetMediaCryptoSuites(const PStringArray &security)
virtual PStringList GetNetworkURIs(const PString &name) const
virtual void OnUserInputString(OpalConnection &connection, const PString &value)
void SetDefaultDisplayName(const PString &name)
Definition: endpoint.h:875
virtual void OnConferenceStatusChanged(OpalEndPoint &endpoint, const PString &uri, OpalConferenceState::ChangeType change)
PStringList GetAllConnections()
PBoolean RemoveListener(OpalListener *listener)
virtual PString ReadUserInput(OpalConnection &connection, const char *terminators="#\r\n", unsigned lastDigitTimeout=4, unsigned firstDigitTimeout=30)
const OpalConnection::StringOptions & GetDefaultStringOptions() const
Definition: endpoint.h:896
OpalBandwidth m_initialRxBandwidth
Definition: endpoint.h:964
std::map< OpalMediaType, PIPSocket::QoS > MediaQoSMap
Definition: manager.h:2076
virtual void OnUserInputTone(OpalConnection &connection, char tone, int duration)
Definition: transports.h:788
PSafePtr< OpalCall > FindCallWithLock(const PString &token, PSafetyMode mode=PSafeReadWrite) const
Definition: manager.h:344
virtual PBoolean OnForwarded(OpalConnection &connection, const PString &remoteParty)
void SetProductInfo(const OpalProductInfo &info)
Definition: endpoint.h:855
OpalBandwidth GetInitialBandwidth(OpalBandwidth::Direction dir) const
void SetDefaultStringOption(const PCaselessString &key, const PString &data)
Definition: endpoint.h:907
void SetSendUserInputMode(OpalConnection::SendUserInputModes mode)
Definition: endpoint.h:923
OpalTransportAddressArray GetInterfaceAddresses(const OpalTransport *associatedTransport=NULL) const
void SetSignalQoS(const PIPSocket::QoS &qos)
Definition: endpoint.h:931
virtual PBoolean HasConnection(const PString &token)
virtual void OnFailedMediaStream(OpalConnection &connection, bool fromRemote, const PString &reason)
virtual void OnEstablished(OpalConnection &connection)
const PIPSocket::QoS & GetSignalQoS() const
Definition: endpoint.h:927
virtual OpalConnection::AnswerCallResponse OnAnswerCall(OpalConnection &connection, const PString &caller)
OpalConnection::SendUserInputModes m_defaultSendUserInputMode
Definition: endpoint.h:967
P_DECLARE_BITWISE_ENUM(Attributes, 2,(NoAttributes, IsNetworkEndPoint, SupportsE164))
Definition: transports.h:411
void SetDefaultStringOptions(const OpalConnection::StringOptions &opts, bool overwrite=false)
PSafePtr< OpalConnection > GetConnectionWithLock(const PString &token, PSafetyMode mode=PSafeReadWrite) const
PStringArray GetMediaCryptoSuites() const
Definition: endpoint.h:687
Definition: endpoint.h:971
OpalConnection::StringOptions m_defaultStringOptions
Definition: endpoint.h:966
virtual PSafePtr< OpalConnection > MakeConnection(OpalCall &call, const PString &party, void *userData=NULL, unsigned int options=0, OpalConnection::StringOptions *stringOptions=NULL)=0
virtual PBoolean ClearCallSynchronous(const PString &token, OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
OpalConnection * AddConnection(OpalConnection *connection)
void RemoveDefaultStringOption(const PCaselessString &key)
Definition: endpoint.h:911
virtual bool GetMediaTransportAddresses(const OpalConnection &provider, const OpalConnection &consumer, unsigned sessionId, const OpalMediaType &mediaType, OpalTransportAddressArray &transports) const
virtual void OnMessageReceived(const OpalIM &message)
Definition: mediafmt.h:60
PBoolean StopListener(const OpalTransportAddress &iface)
Definition: connection.h:530
virtual void OnHold(OpalConnection &connection, bool fromRemote, bool onHold)
OpalBandwidth m_initialTxBandwidth
Definition: endpoint.h:965
virtual WORD GetDefaultSignalPort() const
MessageWaitingType
Message waiting sub-types.
Definition: manager.h:1394
virtual PStringArray GetAllMediaCryptoSuites() const
virtual PBoolean OnIncomingConnection(OpalConnection &connection, unsigned options, OpalConnection::StringOptions *stringOptions)
PINDEX m_maxSizeUDP
Definition: endpoint.h:956
Direction
Definition: mediafmt.h:64
OpalListenerList m_listeners
Definition: endpoint.h:969
OpalProductInfo m_productInfo
Definition: endpoint.h:957
bool FindListenerForProtocol(const char *proto, OpalTransportAddress &addr)
void SetMediaQoS(const OpalMediaType &type, const PIPSocket::QoS &qos)
const PString & GetDefaultLocalPartyName() const
Definition: endpoint.h:861
PStringArray m_mediaCryptoSuites
Definition: endpoint.h:960
virtual bool StartListener(const PString &address)
void SetMaxSizeUDP(PINDEX size)
Definition: endpoint.h:949
PINDEX GetConnectionCount() const
Definition: endpoint.h:576
virtual PBoolean ClearCall(const PString &token, OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PSyncPoint *sync=NULL)
virtual void OnReleased(OpalConnection &connection)
virtual void OnAlerting(OpalConnection &connection, bool withMedia)
OpalManager & GetManager() const
Definition: endpoint.h:839
ChangeType
Definition: manager.h:76
virtual void DestroyConnection(OpalConnection *connection)
OpalListener * FindListener(const OpalTransportAddress &iface)
OpalEndPoint(OpalManager &manager, const PCaselessString &prefix, Attributes attributes)
PString m_defaultDisplayName
Definition: endpoint.h:959
OpalManager & m_manager
Definition: endpoint.h:953
Definition: connection.h:462
PSafePtr< OpalTransport > OpalTransportPtr
Definition: transports.h:50
virtual void OnConnected(OpalConnection &connection)
OpalManager::MediaQoSMap m_mediaQoS
Definition: endpoint.h:962
virtual void AdjustMediaFormats(bool local, const OpalConnection &connection, OpalMediaFormatList &mediaFormats) const
PDECLARE_AcceptHandlerNotifier(OpalEndPoint, NewIncomingConnection)
PINDEX GetMaxSizeUDP() const
Definition: endpoint.h:945
PIPSocket::QoS m_signalQoS
Definition: endpoint.h:961
virtual void ClearAllCalls(OpalConnection::CallEndReason reason=OpalConnection::EndedByLocalUser, PBoolean wait=true)
virtual PBoolean Message(const PString &to, const PString &body)
virtual PBoolean OnOpenMediaStream(OpalConnection &connection, OpalMediaStream &stream)
Definition: connection.h:415
PSafePtr< ConnClass > GetConnectionWithLockAs(const PString &token, PSafetyMode mode=PSafeReadWrite) const
Definition: endpoint.h:553
std::list< OpalConferenceState > OpalConferenceStates
Definition: manager.h:131
bool HasAttribute(Attributes opt) const
Definition: endpoint.h:847
virtual PBoolean GarbageCollection()
virtual PBoolean OnSetUpConnection(OpalConnection &connection)
const OpalProductInfo & GetProductInfo() const
Definition: endpoint.h:851
OpalEndPoint::ConnectionDict m_connectionsActive
bool SetInitialBandwidth(OpalBandwidth::Direction dir, OpalBandwidth bandwidth)
bool StartListeners(const PStringArray &interfaces, bool add=true)
Definition: transports.h:151
Definition: transports.h:326
OpalConnection::SendUserInputModes GetSendUserInputMode() const
Definition: endpoint.h:919
virtual bool OnTransferNotify(OpalConnection &connection, const PStringToString &info, const OpalConnection *transferringConnection)
virtual void OnMWIReceived(const PString &party, OpalManager::MessageWaitingType type, const PString &extraInfo)
virtual void SetDefaultLocalPartyName(const PString &name)
Definition: endpoint.h:865
virtual PString GetDefaultTransport() const
const PString & GetDefaultDisplayName() const
Definition: endpoint.h:871
virtual PStringArray GetDefaultListeners() const
const PString & GetPrefixName() const
Definition: endpoint.h:843
PString m_defaultLocalPartyName
Definition: endpoint.h:958
virtual bool GetConferenceStates(OpalConferenceStates &states, const PString &name=PString::Empty()) const
const PIPSocket::QoS & GetMediaQoS(const OpalMediaType &type) const
Definition: connection.h:358
const OpalListenerList & GetListeners() const
Definition: endpoint.h:892