28 #ifndef OPAL_SIP_SIPPDU_H
29 #define OPAL_SIP_SIPPDU_H
39 #include <ptclib/mime.h>
40 #include <ptclib/url.h>
41 #include <ptclib/http.h>
42 #include <ptclib/pxml.h>
43 #include <ptclib/threadpool.h>
60 class SDPSessionDescription;
73 PCLASSINFO_WITH_CLONE(
SIPURL, PURL);
85 ) { PURL::operator=(url);
return *
this; }
91 const char * defaultScheme = NULL
95 ) { Parse(cstr);
return *
this; }
101 const char * defaultScheme = NULL
105 ) { Parse(str);
return *
this; }
117 const PString & name,
119 WORD listenerPort = 0,
120 const char * scheme = NULL
125 WORD listenerPort = 0,
126 const char * scheme = NULL
176 PINDEX dnsEntry = P_MAX_INDEX
221 const PString & name,
224 const char * scheme);
229 const char * defaultScheme
235 const char * defaultScheme
250 bool reversed =
false
302 virtual void PrintOn(ostream & strm)
const;
303 virtual bool InternalAddMIME(
const PString & fieldName,
const PString & fieldValue);
307 PCaselessString
GetContentType(
bool includeParameters =
false)
const;
310 bool GetSDP(
const PString & entityBody, PString & sdp, PMultiPartList & parts)
const;
353 void SetVia(
const PString & v);
372 void SetCSeq(
const PString & v);
375 void SetDate(
const PString & v);
379 unsigned GetExpires(
unsigned dflt = UINT_MAX)
const;
439 void GetAlertInfo(PString & info,
int & appearance)
const;
440 void SetAlertInfo(
const PString & info,
int appearance);
451 const PString & fieldName,
452 const PString & paramName,
453 const PString & defaultValue = PString::Empty()
461 const PString & fieldName,
462 const PString & paramName,
463 const PString & newValue
469 const PString & fieldValue,
470 const PString & paramName,
471 const PString & defaultValue = PString::Empty()
479 const PString & fieldValue,
480 const PString & paramName,
481 const PString & newValue
486 void AddTokenSet(
const char * field,
const PString & token);
487 void SetTokenSet(
const char * field,
const PStringSet & tokens);
524 PCLASSINFO(
SIP_PDU, PSafeObject);
626 const PString & transactionID = PString::Empty()
635 const SDPSessionDescription * sdp = NULL
650 const PString & callID,
697 void Build(PString & pduStr, PINDEX & pduLen);
717 void SetSDP(SDPSessionDescription * sdp);
841 const PString & aor = PString::Empty(),
842 const PString & remote = PString::Empty()
846 const PString & defaultUser,
847 const PTimeInterval & defaultExpire
887 virtual void Work() = 0;
889 bool GetTarget(PSafePtr<SIPTransaction> & transaction);
890 bool GetTarget(PSafePtr<SIPConnection> & connection);
891 bool GetTarget(PSafePtr<SIPHandler> & handler);
901 typedef PQueuedThreadPool<SIPWorkItem> BaseClass;
905 : BaseClass(maxWorkers, 0, threadName, PThread::HighPriority)
911 template <
class Target_T>
926 PSafePtr<Target_T> target;
928 PTRACE_CONTEXT_ID_PUSH_THREAD(target);
930 PTRACE(4,
"SIP\tHandled timeout");
939 template <
class Target_T>
940 class SIPPoolTimer :
public PPoolTimerArg3<SIPTimeoutWorkItem<Target_T>,
943 void (Target_T::*)(),
947 typedef PPoolTimerArg3<Work_T, SIPEndPoint &, PString, void (Target_T::*)(), SIPWorkItem> BaseClass;
953 : BaseClass(pool, ep, token, callback)
960 this->m_stopped =
true;
976 PSafeObject &
object,
1034 const PString & transactionID
1035 ) :
SIP_PDU(method, transport, transactionID) { }
1039 const PString & transactionID
1064 bool deleteOwner =
false,
1065 const PString & transactionID = PString::Empty()
1080 bool IsCanceled()
const {
const States state =
GetState();
return state == Cancelling || state == Terminated_Cancelled || state == Terminated_Aborted; }
1114 Terminated_RetriesExceeded,
1115 Terminated_TransportError,
1116 Terminated_Cancelled,
1140 #define OPAL_PROXY_PARAM "OPAL-proxy"
1141 #define OPAL_LOCAL_ID_PARAM "OPAL-local-id"
1142 #define OPAL_INTERFACE_PARAM "OPAL-interface"
1162 virtual bool Send();
1241 e_CannotRegisterMultipleContacts,
1245 e_CannotRegisterPrivateContacts,
1249 e_HasApplicationLayerGateway,
1286 const PString & callId,
1296 ostream &
operator<<(ostream & strm, SIPRegister::CompatibilityModes mode);
1341 bool operator==(
const PString & str)
const {
return Compare(str) == EqualTo; }
1343 virtual Comparison
InternalCompare(PINDEX offset, PINDEX length,
const char * cstr)
const;
1369 bool LoadAndValidate(
1371 const PXML::ValidationInfo * validator,
1372 PXML::Options options = PXML::WithNS
1378 const char * extra = NULL
1440 unsigned m_expectedSequenceNumber;
1469 const SIPEventPackage & eventPackage,
1470 const PString & state,
1471 const PString & body
1488 const PString & sipIfMatch,
1490 const PString & body
1514 const SIPURL & referred_by,
1579 Params m_parameters;
1596 :
m_acceptContent(
"application/sdp, application/media_control+xml, application/dtmf, application/dtmf-relay")
1631 Params(
const PString & contentType = PString::Empty(),
1632 const PString & body = PString::Empty())
1634 if (!contentType.IsEmpty() || !body.IsEmpty())
1635 m_body.AddPart(body, contentType);
1641 const Params & params
1679 const PString & rack
1688 #endif // OPAL_SIP_SIPPDU_H
Definition: sippdu.h:1318
static const WORD DefaultPort
Definition: sippdu.h:75
PNotifierTemplate< const SubscriptionStatus & > m_onSubcribeStatus
Definition: sippdu.h:1411
static PString ExtractFieldParameter(const PString &fieldValue, const PString ¶mName, const PString &defaultValue=PString::Empty())
virtual bool ReSend(const SIP_PDU &)
Definition: sippdu.h:1089
OpalTransportAddressArray m_responseAddresses
Definition: sippdu.h:744
SIPReferNotify(SIPConnection &connection, StatusCodes code)
void SetUserAgent(const PString &v)
const PString & GetTransactionID() const
Definition: sippdu.h:699
Definition: sippdu.h:1328
friend ostream & operator<<(ostream &strm, const SubscriptionStatus &status)
bool ReallyInternalParse(bool fromField, const char *cstr, const char *defaultScheme)
const SIPURL & GetRequestURI() const
Definition: sippdu.h:1003
PCaselessString m_contactAddress
Definition: sippdu.h:854
SIP_PDU & m_pdu
Definition: sippdu.h:509
PString GetRecordRoute() const
PString GetFieldParameter(const PString &fieldName, const PString ¶mName, const PString &defaultValue=PString::Empty()) const
Definition: sippdu.h:450
virtual PString GetMethod()
PString GetOrganization() const
SIPRefer(SIPConnection &connection, const SIPURL &referTo, const SIPURL &referred_by, ReferSubMode referSubMode)
PTimeInterval m_retryTimeoutMin
Definition: sippdu.h:1125
const SIPURL & GetProxy() const
Definition: sippdu.h:793
Definition: sippdu.h:1324
SIP_PDU & operator=(const SIP_PDU &)
bool SendResponse(SIP_PDU::StatusCodes status=SIP_PDU::Successful_OK, const char *extra=NULL)
Methods m_method
Definition: sippdu.h:730
PCaselessString m_interface
Definition: sippdu.h:855
virtual PBoolean OnReceivedResponse(SIP_PDU &response)
PString GetAcceptLanguage() const
bool IsInProgress() const
Definition: sippdu.h:1077
friend ostream & operator<<(ostream &strm, const SIPURLList &urls)
virtual SIPTransaction * CreateDuplicate() const
uint32_t MessageID
Definition: im.h:91
Definition: sippdu.h:1303
void SetMaxForwards(PINDEX v)
unsigned m_restoreTime
Definition: sippdu.h:862
Definition: sippdu.h:1150
PString m_ciscoDeviceType
Definition: sippdu.h:1279
void SetWWWAuthenticate(const PString &v)
OpalTransportAddress m_viaAddress
Definition: sippdu.h:743
~SIPPoolTimer()
Definition: sippdu.h:958
void AddRequire(const PString &v)
unsigned GetVersionMinor() const
Definition: sippdu.h:707
SIPURL GetReferTo() const
PString GetAllowEvents() const
PStringSet GetUnsupported() const
PredefinedPackages
Definition: sippdu.h:1309
void SetEntityBody(const PString &body)
Definition: sippdu.h:710
PQUEUE(SIP_PDU_Queue, SIP_PDU)
Definition: sippdu.h:1056
OpalProductInfo m_productInfo
Server product info from registrar if available.
Definition: sippdu.h:1355
Definition: sippdu.h:1544
static const WORD DefaultSecurePort
Definition: sippdu.h:76
SIPMIMEInfo & GetMIME()
Definition: sippdu.h:715
void SetContentEncoding(const PString &v)
PCaselessString & m_registrarAddress
Definition: sippdu.h:1276
SIPPoolTimer< SIPTransaction > PoolTimer
Definition: sippdu.h:1101
virtual bool ReSend(const SIP_PDU &cmd)
void SetSIPIfMatch(const PString &v)
void SetProductInfo(const PString &ua, const OpalProductInfo &info)
SIPThreadPool(unsigned maxWorkers, const char *threadName)
Definition: sippdu.h:904
SIPEndPoint & m_sipEndpoint
Definition: sippdu.h:1014
Definition: sippdu.h:1314
void SetProxyAuthenticate(const PString &v)
SIPPoolTimer(SIPThreadPool &pool, SIPEndPoint &ep, const PString &token, void(Target_T::*callback)())
Definition: sippdu.h:952
SIP_PDU::StatusCodes m_reason
Reason for status change.
Definition: sippdu.h:1354
static ReferSubMode SubModeFromBooleans(bool avoid, bool sub)
Definition: sippdu.h:1509
bool m_forking
Definition: sippdu.h:830
Definition: sippdu.h:1548
virtual SIPTransaction * CreateDuplicate() const
virtual SIPTransaction * CreateDuplicate() const
void SetAllow(const PString &v)
NotifyCallbackInfo(SIPSubscribeHandler &handler, SIPEndPoint &ep, SIP_PDU &request, SIP_PDU &response)
bool m_retryForbidden
Definition: sippdu.h:865
void SetProxy(const SIPURL &proxy, bool addToRouteSet)
void SetContentLength(PINDEX v)
Definition: sippdu.h:1215
PString AsQuotedString() const
virtual SIPTransaction * CreateDuplicate() const
SIPDialogContext m_dialog
Definition: sippdu.h:1015
SIPDialogContext & GetDialog()
Definition: sippdu.h:1009
const SIPURL & GetProxy() const
Definition: sippdu.h:1005
virtual SIPTransaction * CreateDuplicate() const =0
const PString & GetEntityBody() const
Definition: sippdu.h:709
virtual PBoolean InternalParse(const char *cstr, const char *defaultScheme)
Definition: sippdu.h:227
bool SendResponse(StatusCodes code)
const OpalTransportAddressArray & GetResponseAddresses() const
Definition: sippdu.h:722
void SetContentType(const PString &v)
virtual Comparison Compare(const PObject &obj) const
virtual void PrintOn(ostream &strm) const
virtual bool ValidateContentType(const PString &type, const SIPMIMEInfo &mime)
void SetAcceptEncoding(const PString &v)
PString GetAccept() const
SIPInvite(SIPConnection &connection, OpalTransport *transport=NULL)
PString m_interface
Definition: sippdu.h:832
P_REMOVE_VIRTUAL(bool, OnReceivedNOTIFY(SIPHandler &, SIP_PDU &), false)
PString GetWWWAuthenticate() const
SIP_PDU & m_request
Definition: sippdu.h:1383
SIPTransactionOwner *const m_owner
Definition: sippdu.h:1122
static PString InsertFieldParameter(const PString &fieldValue, const PString ¶mName, const PString &newValue)
SIPAuthenticator(SIP_PDU &pdu)
void SetRequire(const PStringSet &v)
void * m_userData
User data corresponding to this registration.
Definition: sippdu.h:1356
virtual SIPTransaction * CreateDuplicate() const
PMultiPartList m_body
Definition: sippdu.h:857
virtual const char * GetGroup(const Work_T &) const
Definition: sippdu.h:963
Callback m_callback
Definition: sippdu.h:935
PString m_remoteTag
Definition: sippdu.h:825
bool IsTrying() const
Definition: sippdu.h:1075
virtual void OnStartTransaction(SIPTransaction &)
Definition: sippdu.h:985
Definition: sippdu.h:1027
StatusCodes m_statusCode
Definition: sippdu.h:731
Definition: transports.h:788
PTimeInterval m_maxRetryTime
Definition: sippdu.h:864
Definition: sippdu.h:1671
Definition: sippdu.h:1312
Definition: sippdu.h:1388
SIPURL m_uri
Definition: sippdu.h:732
EventPackage(PredefinedPackages=NumPredefinedPackages)
bool GetTarget(PSafePtr< SIPTransaction > &transaction)
virtual void OnTransactionFailed(SIPTransaction &transaction)
const PString & GetInfo() const
Definition: sippdu.h:712
PString GetProxyAuthenticate() const
virtual SIPTransaction * CreateDuplicate() const
PString GetAcceptEncoding() const
PStringOptions & GetFieldParameters()
Definition: sippdu.h:165
Definition: sippdu.h:1311
PString m_realm
Definition: sippdu.h:860
SIPEndPoint & GetEndPoint() const
Definition: sippdu.h:1001
virtual bool ValidateNotificationSequence(SIPSubscribeHandler &handler, unsigned newSequenceNumber, bool fullUpdate)
Definition: sippdu.h:1505
SIPNotify(SIPTransactionOwner &owner, OpalTransport &transport, SIPDialogContext &dialog, const SIPEventPackage &eventPackage, const PString &state, const PString &body)
PString m_displayName
Definition: sippdu.h:239
OpalTransportAddressArray m_responseAddresses
Definition: sippdu.h:829
void SetLocalTag(const PString &tag)
Definition: sippdu.h:779
bool operator==(PredefinedPackages pkg) const
Definition: sippdu.h:1340
PCaselessString m_contentType
Definition: sippdu.h:1601
StatusCodes
Definition: sippdu.h:544
void SetExpires(unsigned v)
PCaselessString m_remoteAddress
Definition: sippdu.h:850
Definition: sippdu.h:1320
void InitialiseHeaders(const SIPURL &dest, const SIPURL &to, const SIPURL &from, const PString &callID, unsigned cseq)
SDPSessionDescription * m_SDP
Definition: sippdu.h:740
void AddSupported(const PString &v)
PCaselessString & m_agentAddress
Definition: sippdu.h:1406
Definition: sippdu.h:1527
SIPURL & operator=(const PURL &url)
Definition: sippdu.h:83
SIPURLList m_routeSet
Definition: sippdu.h:826
PSafeObject & m_object
Definition: sippdu.h:1013
bool GetViaList(PStringList &v) const
PString GetCallID() const
SIPURL m_localURI
Definition: sippdu.h:822
const PString & GetLocalTag() const
Definition: sippdu.h:778
void SetCompactForm(bool form)
Definition: sippdu.h:305
SIPURL GetPPreferredIdentity() const
const PString & GetInterface() const
Definition: sippdu.h:814
EventPackage & operator=(const PString &str)
Definition: sippdu.h:1337
virtual PString GetEntityBody()
Definition: sippdu.h:1198
Registration Contact header field.
Definition: sippdu.h:194
SIPRegister(SIPTransactionOwner &owner, OpalTransport &transport, const PString &callId, unsigned cseq, const Params ¶ms)
SIPURL m_proxy
Definition: sippdu.h:831
OpalTransportAddress GetRemoteTransportAddress(PINDEX dnsEntry) const
SIPEndPoint & m_endpoint
Definition: sippdu.h:894
PString m_addressofRecord
Address of record for registration.
Definition: sippdu.h:1351
PString GetSIPETag() const
PCaselessString GetContentEncoding() const
unsigned GetMinExpires() const
SIPMessage(SIPTransactionOwner &owner, OpalTransport &transport, const Params ¶ms)
virtual SIPTransaction * CreateDuplicate() const
void SetTransport(const OpalTransportPtr &transport PTRACE_PARAM(, const char *location))
SIP_PDU & m_response
Definition: sippdu.h:1384
SIPEndPoint & m_endpoint
Definition: sippdu.h:1382
void SetRouteSet(const PString &str)
Definition: sippdu.h:791
unsigned m_lastSentCSeq
Definition: sippdu.h:827
SIPAuthentication * GetAuthenticator() const
Definition: sippdu.h:1008
void SetReferredBy(const PString &r)
PSafeDictionary< PKey< unsigned >, OpalMediaSession > SessionMap
Definition: rtpconn.h:320
Definition: sippdu.h:1480
SIPSubscribe::EventPackage SIPEventPackage
Definition: sippdu.h:1431
SIPWorkItem(SIPEndPoint &ep, const PString &token)
virtual SIPTransaction * CreateDuplicate() const
PoolTimer m_completionTimer
Definition: sippdu.h:1131
void SetInterface(const PString &newInterface)
Definition: sippdu.h:815
void SetAlertInfo(const PString &info, int appearance)
void SetVia(const PString &v)
PString GetUserAgent() const
const SIPMIMEInfo & GetMIME() const
Definition: sippdu.h:714
virtual SIPTransaction * CreateDuplicate() const
PTimeInterval m_minRetryTime
Definition: sippdu.h:863
void SetSIPETag(const PString &v)
const PString & GetInterface() const
Definition: sippdu.h:1006
States m_state
Definition: sippdu.h:1128
PNotifierTemplate< bool & > WriteConnectCallback
Definition: transports.h:965
PString GetSubject() const
SIPURL & operator=(const PString &str)
Definition: sippdu.h:103
bool operator==(const char *cstr) const
Definition: sippdu.h:1342
virtual SIP_PDU::StatusCodes StartTransaction(const OpalTransport::WriteConnectCallback &function)
SIPSubscribe(SIPTransactionOwner &owner, OpalTransport &transport, SIPDialogContext &dialog, const Params ¶ms)
virtual void OnReceivedResponse(SIPTransaction &transaction, SIP_PDU &response)
void SetCSeq(const PString &v)
PCaselessString m_contentType
Definition: sippdu.h:1556
virtual PBoolean OnCompleted(SIP_PDU &response)
Params()
Definition: sippdu.h:1595
unsigned m_lastReceivedCSeq
Definition: sippdu.h:828
bool SetRoute(const SIPURLList &routeSet)
PCaselessString GetTransportProto() const
Return the correct "transport" parameter, using correct default based on scheme.
void SetAcceptLanguage(const PString &v)
WORD GetDefaultPort() const
void SetOrganization(const PString &v)
virtual bool IsTerminated() const
Definition: sippdu.h:1042
void SetURI(const SIPURL &newuri)
Definition: sippdu.h:705
Definition: sippdu.h:1506
virtual bool InternalAddMIME(const PString &fieldName, const PString &fieldValue)
PString GetFirstVia() const
CompatibilityModes m_compatibility
Definition: sippdu.h:1277
PCaselessString m_localAddress
Definition: sippdu.h:851
Definition: sippdu.h:1175
SIPMIMEInfo(bool compactForm=false)
bool IsFailed() const
Definition: sippdu.h:1078
virtual PMIMEInfo & GetMIME()
PString m_ciscoDevicePattern
Definition: sippdu.h:1280
virtual void Work()
Definition: sippdu.h:924
PString GetFromTag() const
General Contact header field.
Definition: sippdu.h:193
void SetPPreferredIdentity(const PString &v)
bool IsProceeding() const
Definition: sippdu.h:1076
ReferSubMode
Definition: sippdu.h:1503
SIPPrack(SIPConnection &conn, OpalTransport &transport, const PString &rack)
void SetSubject(const PString &v)
const SIPURL & GetLocalAddress() const
Definition: sippdu.h:1576
SIP_PDU(Methods method=SIP_PDU::NumMethods, const OpalTransportPtr &transport=NULL, const PString &transactionID=PString::Empty())
void SetContact(const PString &v)
void SetSubscriptionState(const PString &v)
bool GetContacts(SIPURLList &contacts, unsigned defaultExpires) const
Definition: sippdu.h:1321
SIPSubscribeHandler & m_handler
Definition: sippdu.h:1381
bool CleanPendingTransactions()
Definition: sippdu.h:1588
Redirect Contact header field.
Definition: sippdu.h:192
void SetViaList(const PStringList &v)
Definition: sippdu.h:1593
void AddUnsupported(const PString &v)
virtual PBoolean OnReceivedResponse(SIP_PDU &response)
PString m_authID
Definition: sippdu.h:858
static PString GenerateCallID()
const bool m_deleteOwner
Definition: sippdu.h:1123
void Build(PString &pduStr, PINDEX &pduLen)
SIPURL FindCompatible(const OpalTransportAddress &addr PTRACE_PARAM(, const char *listType)) const
unsigned m_versionMinor
Definition: sippdu.h:734
const PString & GetRemoteTag() const
Definition: sippdu.h:784
bool CanLookupSRV() const
Indicate we can do an SRV lookup for host names.
Params()
Definition: sippdu.h:1550
unsigned m_retry
Definition: sippdu.h:1129
SIPEndPoint & GetEndPoint() const
Definition: sippdu.h:1091
SIPAck(const SIPTransaction &invite, const SIP_PDU &response)
SIPBye(SIPEndPoint &endpoint, SIPDialogContext &dialog)
PCaselessString m_acceptContent
Definition: sippdu.h:1600
virtual unsigned GetAllowedMethods() const
void SetReferTo(const PString &r)
bool DecodeSDP(SIPConnection &connection, PMultiPartList &parts)
Definition: handlers.h:49
Definition: sippdu.h:1316
SIPURL m_remoteURI
Definition: sippdu.h:824
PCaselessString GetSubscriptionState(PStringToString &info) const
bool GetSDP(const PString &entityBody, PString &sdp, PMultiPartList &parts) const
#define PTRACE(level, section, args)
Definition: opalplugin.hpp:84
Definition: sippdu.h:1652
virtual SIPTransaction * CreateDuplicate() const
static PString GenerateTag()
Generate a unique string suitable as a dialog tag.
SIPPublish(SIPTransactionOwner &owner, OpalTransport &transport, const PString &id, const PString &sipIfMatch, const SIPSubscribe::Params ¶ms, const PString &body)
PCaselessString m_contentType
Definition: sippdu.h:1409
virtual SIPTransaction * CreateDuplicate() const
PTimeInterval m_retryTimeoutMax
Definition: sippdu.h:1126
void IncrementCSeq(unsigned inc)
Definition: sippdu.h:799
bool m_reSubscribing
Was a registration refresh.
Definition: sippdu.h:1353
bool operator==(const PString &str) const
Definition: sippdu.h:1341
OpalTransportAddress GetRemoteTransportAddress() const
Definition: sippdu.h:1002
void SetParameters(const SIPParameters ¶ms)
PString m_localTag
Definition: sippdu.h:823
StatusCodes InternalSend(bool canDoTCP)
SIPPing(SIPTransactionOwner &owner, OpalTransport &transport, const SIPURL &address)
void SetRemoteURI(const SIPURL &url)
void SetMinExpires(PINDEX v)
Methods GetMethod() const
Definition: sippdu.h:701
virtual PCaselessString GetContentType() const =0
EventPackage(const char *str)
Definition: sippdu.h:1334
EventPackage & operator=(const char *str)
Definition: sippdu.h:1338
SIPInfo(SIPConnection &conn, const Params ¶ms)
const SIPURL & GetRemoteURI() const
Definition: sippdu.h:787
void PrintOn(ostream &strm) const
void AbortPendingTransactions(bool all=true)
Definition: sippdu.h:1349
unsigned GetAllowBitMask() const
Definition: sippdu.h:1313
Definition: sippdu.h:1310
Definition: sippdu.h:1233
PHTTPClientAuthentication SIPAuthentication
Definition: sippdu.h:497
friend PredefinedPackages operator|(PredefinedPackages p1, PredefinedPackages p2)
Definition: sippdu.h:1326
Params(const Params ¶m)
Definition: sippdu.h:1396
SIPTimeoutWorkItem(SIPEndPoint &ep, const PString &token, Callback callback)
Definition: sippdu.h:918
Definition: sippdu.h:1438
void * m_userData
Definition: sippdu.h:866
To header field.
Definition: sippdu.h:189
UsageContext
Definition: sippdu.h:186
URI on REGISTER request line.
Definition: sippdu.h:195
Request-URI (after the INVITE)
Definition: sippdu.h:188
virtual ~SIPEventPackageHandler()
Definition: sippdu.h:1445
PINDEX m_dnsEntry
Definition: sippdu.h:1016
P_DECLARE_TRACED_ENUM(CompatibilityModes, e_FullyCompliant, e_CannotRegisterMultipleContacts, e_CannotRegisterPrivateContacts, e_HasApplicationLayerGateway, e_RFC5626, e_Cisco)
PString m_callId
Definition: sippdu.h:820
unsigned GetCSeqIndex() const
Definition: sippdu.h:401
void SetTo(const SIPURL &v)
PCaselessString m_addressOfRecord
Definition: sippdu.h:853
const SIPURL & GetRemoteURI() const
Definition: sippdu.h:1004
bool IsContentSDP(bool emptyOK=false) const
virtual void SetTerminated(States newState)
void SetRecordRoute(const PString &v)
void SetDisplayName(const PString &str)
Definition: sippdu.h:158
void SetUnsupported(const PStringSet &v)
P_DECLARE_TRACED_ENUM(States, NotStarted, Trying, Proceeding, Cancelling, Completed, Terminated_Success, Terminated_Timeout, Terminated_RetriesExceeded, Terminated_TransportError, Terminated_Cancelled, Terminated_Aborted)
ostream & operator<<(ostream &strm, OpalSilenceDetector::Mode mode)
PGloballyUniqueID m_instanceId
Definition: sippdu.h:1278
void SetLocalURI(const SIPURL &url)
Definition: sippdu.h:1461
virtual PString OnSendNOTIFY(SIPHandler &, const PObject *)
Definition: sippdu.h:1450
StatusCodes GetStatusCode() const
Definition: sippdu.h:702
OpalTransportPtr GetTransport() const
Definition: sippdu.h:723
void SetCallID(const PString &v)
static PString GetStatusCodeDescription(int code)
virtual SIPTransaction * CreateDuplicate() const
SIPURL(const PURL &url)
Definition: sippdu.h:80
PString m_id
Definition: sippdu.h:1557
PINDEX GetContentLength() const
SIPOptions(SIPEndPoint &endpoint, const Params ¶ms)
SIP_PDU::StatusCodes HandleAuthentication(const SIP_PDU &response)
bool IsEstablished() const
Definition: sippdu.h:803
PString m_localInterface
Definition: sippdu.h:1134
SIPURL GetContact() const
virtual Comparison InternalCompare(PINDEX offset, PINDEX length, const char *cstr) const
PNotifierTemplate< NotifyCallbackInfo & > m_onNotify
Definition: sippdu.h:1412
const SIPURL & GetRequestURI() const
Definition: sippdu.h:775
SIPURL m_requestURI
Definition: sippdu.h:821
bool IsCanceled() const
Definition: sippdu.h:1080
void Sanitise(UsageContext context)
PSafePtr< OpalTransport > OpalTransportPtr
Definition: transports.h:50
void SetAllowEvents(const PString &v)
Params(const PString &contentType=PString::Empty(), const PString &body=PString::Empty())
Definition: sippdu.h:1631
OpalRTPConnection::SessionMap m_sessions
Definition: sippdu.h:1189
virtual PString GetPassword() const
Definition: sippdu.h:982
void SetPAssertedIdentity(const PString &v)
unsigned GetVersionMajor() const
Definition: sippdu.h:706
void InternalFromString(const PString &str, SIPURL::UsageContext context, bool reversed)
PoolTimer m_retryTimer
Definition: sippdu.h:1130
const SIPURL & GetURI() const
Definition: sippdu.h:704
void GetProductInfo(OpalProductInfo &info) const
URI used anywhere outside of protocol.
Definition: sippdu.h:187
virtual SIPTransaction * CreateDuplicate() const
Definition: handlers.h:205
OpalTransportAddress GetViaReceivedAddress() const
SIPMIMEInfo m_mime
Definition: sippdu.h:856
Registrar parameters.
Definition: sippdu.h:1260
SIPURL GetPAssertedIdentity() const
PCaselessString m_proxyAddress
Definition: sippdu.h:852
const Params & GetParameters() const
Definition: sippdu.h:1575
void SetInfo(const PString &info)
Definition: sippdu.h:713
void SetCallID(const PString &id)
Definition: sippdu.h:773
Params(const Params ¶m)
Definition: sippdu.h:1267
Params()
Definition: sippdu.h:1261
void SetSupported(const PStringSet &v)
virtual SIPTransaction * CreateDuplicate() const
bool m_sendResponse
Definition: sippdu.h:1385
void SetRoute(const PString &v)
bool m_eventList
Definition: sippdu.h:1408
unsigned m_authenticateErrors
Definition: sippdu.h:1018
SIPURL GetReferredBy() const
Definition: sippdu.h:1624
Definition: sippdu.h:1322
void Construct(const Params ¶ms)
PStringSet GetSupported() const
SIPAuthentication * m_authentication
Definition: sippdu.h:1017
PString GetSIPIfMatch() const
bool IsCompleted() const
Definition: sippdu.h:1079
unsigned GetMaxForwards() const
void SetAllow(unsigned bitmask)
void SetForking(bool f)
Definition: sippdu.h:817
const SIPURL & GetLocalURI() const
Definition: sippdu.h:781
PStringSet GetRequire() const
void SetAccept(const PString &v)
Methods
Definition: sippdu.h:526
SIPEventPackageHandler()
Definition: sippdu.h:1443
void SetCSeq(unsigned cseq)
unsigned m_versionMajor
Definition: sippdu.h:733
PString GetTag() const
Get a tag.
const SIPURLList & GetRouteSet() const
Definition: sippdu.h:790
void SetFieldParameter(const PString &fieldName, const PString ¶mName, const PString &newValue)
Definition: sippdu.h:460
friend ostream & operator<<(ostream &strm, StatusCodes status)
Definition: sippdu.h:1499
const PStringOptions & GetFieldParameters() const
Return string options in field parameters.
Definition: sippdu.h:164
virtual void OnReceivedNOTIFY(SIPSubscribe::NotifyCallbackInfo ¬ifyInfo)=0
void SetTokenSet(const char *field, const PStringSet &tokens)
PTIMER_OPERATORS(SIPPoolTimer)
PString m_transactionID
Definition: sippdu.h:738
void SetHostAddress(const OpalTransportAddress &addr)
StatusCodes Parse(istream &strm, bool truncated)
bool FromString(const PString &str)
bool IsTerminated() const
Definition: sippdu.h:1081
Params(PredefinedPackages pkg=NumPredefinedPackages)
Definition: sippdu.h:1390
void SetStatusCode(StatusCodes c)
Definition: sippdu.h:703
SIPURL & operator=(const char *cstr)
Definition: sippdu.h:93
PFactory< SIPEventPackageHandler, SIPEventPackage > SIPEventPackageFactory
Definition: sippdu.h:1456
PString m_token
Definition: sippdu.h:895
SIPMIMEInfo m_mime
Definition: sippdu.h:736
void SetEvent(const PString &v)
PSyncPoint m_completed
Definition: sippdu.h:1132
EventPackage & operator=(PredefinedPackages pkg)
void SetFrom(const SIPURL &v)
void ParseAsAddress(const PString &name, const OpalTransportAddress &address, WORD listenerPort, const char *scheme)
bool Normalise(const PString &defaultUser, const PTimeInterval &defaultExpire)
SIPSubscribeHandler * m_handler
Handler for subscription.
Definition: sippdu.h:1350
SIPTransactionBase(Methods method, const OpalTransportPtr &transport, const PString &transactionID)
Definition: sippdu.h:1031
OpalTransportPtr m_transport
Definition: sippdu.h:742
PString GetInterface() const
const PString & GetCallID() const
Definition: sippdu.h:772
PString GetDisplayName(PBoolean useDefault=true) const
Definition: sippdu.h:1360
Definition: transports.h:151
PString m_info
Definition: sippdu.h:735
Definition: transports.h:326
EventPackage m_eventPackage
Definition: sippdu.h:1407
void SetRequestURI(const SIPURL &url)
bool compactForm
Encode using compact form.
Definition: sippdu.h:490
bool IsDuplicateCSeq(unsigned sequenceNumber)
void GetAlertInfo(PString &info, int &appearance) const
PINDEX GetDNSEntry() const
Definition: sippdu.h:1007
SIPTransactionBase(const PString &transactionID)
Definition: sippdu.h:1038
unsigned GetExpires(unsigned dflt=UINT_MAX) const
void(Target_T::* Callback)()
Definition: sippdu.h:916
SIPParameters(const PString &aor=PString::Empty(), const PString &remote=PString::Empty())
virtual SIPTransaction * CreateDuplicate() const
PCaselessString GetContentType(bool includeParameters=false) const
Definition: sippdu.h:1507
void SetRemoteTag(const PString &tag)
Definition: sippdu.h:785
void AddTokenSet(const char *field, const PString &token)
const SIPDialogContext & GetDialog() const
Definition: sippdu.h:1010
SIPTransaction(Methods method, SIPTransactionOwner *owner, OpalTransport *transport, bool deleteOwner=false, const PString &transactionID=PString::Empty())
bool FromString(const PString &str, SIPURL::UsageContext context=SIPURL::RouteURI, bool reversed=false)
OpalIM::MessageID m_messageId
Definition: sippdu.h:1559
void FinaliseForking(SIPTransaction &transaction, SIP_PDU &response)
unsigned m_expire
Definition: sippdu.h:861
From header field.
Definition: sippdu.h:190
PString m_entityBody
Definition: sippdu.h:737
SIPResponse(SIPEndPoint &endpoint, const SIP_PDU &command, StatusCodes code)
Definition: sippdu.h:1629
PString SetTag(const PString &tag=GenerateTag(), bool force=false)
Set a tag with a new unique ID.
PDECLARE_MUTEX(m_forkMutex)
PStringSet GetTokenSet(const char *field) const
SIPConnection * GetConnection() const
virtual PString GetAuthID() const =0
PStringOptions m_fieldParameters
Definition: sippdu.h:240
PString m_password
Definition: sippdu.h:859
bool m_pduSizeOK
Definition: sippdu.h:1133
OpalTransportAddress GetTransportAddress(PINDEX dnsEntry=P_MAX_INDEX) const
Record-Route header field.
Definition: sippdu.h:191
SDPSessionDescription * GetSDP()
Definition: sippdu.h:716
PBoolean IsContentLengthPresent() const
SIP_PDU::StatusCodes SwitchTransportProto(const char *proto, SIP_PDU *pdu)
EventPackage(const PString &str)
Definition: sippdu.h:1333
Definition: connection.h:358
SIPTransactionOwner(PSafeObject &object, SIPEndPoint &endpoint)
PString GetCallInfo() const
void Update(const SIP_PDU &response)
void SetSDP(SDPSessionDescription *sdp)
virtual ~SIPTransactionOwner()
PSafeArray< SIPTransaction > m_transactions
Definition: sippdu.h:1020
bool m_wasSubscribing
Was registering or unregistering.
Definition: sippdu.h:1352