reSIProcate
SIP stack, Dialog Usage Manager and related libraries
Loading...
Searching...
No Matches
Profile.cxx
Go to the documentation of this file.
1
5
6#include <utility>
7
8using namespace resip;
9#define RESIPROCATE_SUBSYSTEM Subsystem::DUM
10
12 mHasOutboundDecorator(false)
13{
14 Profile::reset(); // set defaults
15}
16
17Profile::Profile(std::shared_ptr<Profile> baseProfile) :
18 mHasOutboundDecorator(false),
19 mBaseProfile(baseProfile)
20{
21 resip_assert(mBaseProfile.get());
22
23 Profile::reset(); // default all settings to fallthrough to mBaseProfile
24}
25
26void
59
60void
62{
63 mDefaultRegistrationExpires = secs;
64 mHasDefaultRegistrationExpires = true;
65}
66
69{
70 // Fall through setting (if required)
71 if (!mHasDefaultRegistrationExpires && mBaseProfile)
72 {
73 return mBaseProfile->getDefaultRegistrationTime();
74 }
75 return mDefaultRegistrationExpires;
76}
77
78void
80{
81 if (mBaseProfile)
82 {
83 mHasDefaultRegistrationExpires = false;
84 }
85 else // No Base profile - so return to default setting
86 {
87 mHasDefaultRegistrationExpires = true;
88 mDefaultRegistrationExpires = 3600; // 1 hour
89 }
90}
91
92void
94{
95 mDefaultMaxRegistrationExpires = secs;
96 mHasDefaultMaxRegistrationExpires = true;
97}
98
101{
102 // Fall through setting (if required)
103 if (!mHasDefaultMaxRegistrationExpires && mBaseProfile)
104 {
105 return mBaseProfile->getDefaultMaxRegistrationTime();
106 }
107 return mDefaultMaxRegistrationExpires;
108}
109
110void
112{
113 if (mBaseProfile)
114 {
115 mHasDefaultMaxRegistrationExpires = false;
116 }
117 else // No Base profile - so return to default setting
118 {
119 mHasDefaultMaxRegistrationExpires = true;
120 mDefaultMaxRegistrationExpires = 0; // No restriction
121 }
122}
123
124void
126{
127 mDefaultRegistrationRetryInterval = secs;
128 mHasDefaultRegistrationRetryInterval = true;
129}
130
131int
133{
134 // Fall through setting (if required)
135 if (!mHasDefaultRegistrationRetryInterval && mBaseProfile)
136 {
137 return mBaseProfile->getDefaultRegistrationRetryTime();
138 }
139 return mDefaultRegistrationRetryInterval;
140}
141
142void
144{
145 if (mBaseProfile)
146 {
147 mHasDefaultRegistrationRetryInterval = false;
148 }
149 else // No Base profile - so return to default setting
150 {
151 mHasDefaultRegistrationRetryInterval = true;
152 mDefaultRegistrationRetryInterval = 0; // Retries disabled
153 }
154}
155
156void
158{
159 mDefaultSubscriptionExpires = secs;
160 mHasDefaultSubscriptionExpires = true;
161}
162
165{
166 // Fall through setting (if required)
167 if (!mHasDefaultSubscriptionExpires && mBaseProfile)
168 {
169 return mBaseProfile->getDefaultSubscriptionTime();
170 }
171 return mDefaultSubscriptionExpires;
172}
173
174void
176{
177 if (mBaseProfile)
178 {
179 mHasDefaultSubscriptionExpires = false;
180 }
181 else // No Base profile - so return to default setting
182 {
183 mHasDefaultSubscriptionExpires = true;
184 mDefaultSubscriptionExpires = 3600; // 1 hour
185 }
186}
187
188void
190{
191 mDefaultPublicationExpires = secs;
192 mHasDefaultPublicationExpires = true;
193}
194
197{
198 // Fall through setting (if required)
199 if (!mHasDefaultPublicationExpires && mBaseProfile)
200 {
201 return mBaseProfile->getDefaultPublicationTime();
202 }
203 return mDefaultPublicationExpires;
204}
205
206void
208{
209 if (mBaseProfile)
210 {
211 mHasDefaultPublicationExpires = false;
212 }
213 else // No Base profile - so return to default setting
214 {
215 mHasDefaultPublicationExpires = true;
216 mDefaultPublicationExpires = 3600; // 1 hour
217 }
218}
219
220void
222{
223 mDefaultStaleCallTime = secs;
224 mHasDefaultStaleCallTime = true;
225}
226
227int
229{
230 // Fall through setting (if required)
231 if (!mHasDefaultStaleCallTime && mBaseProfile)
232 {
233 return mBaseProfile->getDefaultStaleCallTime();
234 }
235 return mDefaultStaleCallTime;
236}
237
238void
240{
241 if (mBaseProfile)
242 {
243 mHasDefaultStaleCallTime = false;
244 }
245 else // No Base profile - so return to default setting
246 {
247 mHasDefaultStaleCallTime = true;
248 mDefaultStaleCallTime = 180; // 3 minutes
249 }
250}
251
252void
254{
255 mDefaultStaleReInviteTime = secs;
256 mHasDefaultStaleReInviteTime = true;
257}
258
259int
261{
262 // Fall through setting (if required)
263 if (!mHasDefaultStaleReInviteTime && mBaseProfile)
264 {
265 return mBaseProfile->getDefaultStaleReInviteTime();
266 }
267 return mDefaultStaleReInviteTime;
268}
269
270void
272{
273 if (mBaseProfile)
274 {
275 mHasDefaultStaleReInviteTime = false;
276 }
277 else // No Base profile - so return to default setting
278 {
279 mHasDefaultStaleReInviteTime = true;
280 mDefaultStaleReInviteTime = 40; // 40 Seconds (slightly longer than T1*64)
281 }
282}
283
284void
286{
287 mDefaultSessionExpires = secs;
288 mHasDefaultSessionExpires = true;
289}
290
293{
294 // Fall through setting (if required)
295 if (!mHasDefaultSessionExpires && mBaseProfile)
296 {
297 return mBaseProfile->getDefaultSessionTime();
298 }
299 return mDefaultSessionExpires;
300}
301
302void
304{
305 if (mBaseProfile)
306 {
307 mHasDefaultSessionExpires = false;
308 }
309 else // No Base profile - so return to default setting
310 {
311 mHasDefaultSessionExpires = true;
312 mDefaultSessionExpires = 1800; // 30 minutes
313 }
314}
315
316void
318{
319 mDefaultSessionTimerMode = mode;
320 mHasDefaultSessionTimerMode = true;
321}
322
325{
326 // Fall through setting (if required)
327 if (!mHasDefaultSessionTimerMode && mBaseProfile)
328 {
329 return mBaseProfile->getDefaultSessionTimerMode();
330 }
331 return mDefaultSessionTimerMode;
332}
333
334void
336{
337 if (mBaseProfile)
338 {
339 mHasDefaultSessionTimerMode = false;
340 }
341 else // No Base profile - so return to default setting
342 {
343 mHasDefaultSessionTimerMode = true;
344 mDefaultSessionTimerMode = Profile::PreferCallerRefreshes;
345 }
346}
347
348void
350{
351 m1xxRetransmissionTime = secs;
352 mHas1xxRetransmissionTime = true;
353}
354
355int
357{
358 // Fall through setting (if required)
359 if (!mHas1xxRetransmissionTime && mBaseProfile)
360 {
361 return mBaseProfile->get1xxRetransmissionTime();
362 }
363 return m1xxRetransmissionTime;
364}
365
366void
368{
369 if (mBaseProfile)
370 {
371 mHas1xxRetransmissionTime = false;
372 }
373 else // No Base profile - so return to default setting
374 {
375 mHas1xxRetransmissionTime = true;
376 m1xxRetransmissionTime = 60; // RFC3261 13.3.1 specifies this timeout should be 1 minute
377 }
378}
379
380void
382{
383 m1xxRelResubmitTime = secs;
384 mHas1xxRelResubmitTime = true;
385}
386
387int
389{
390 // Fall through setting (if required)
391 if (!mHas1xxRelResubmitTime && mBaseProfile)
392 {
393 return mBaseProfile->get1xxRelResubmitTime();
394 }
395 return m1xxRelResubmitTime;
396}
397
398void
400{
401 if (mBaseProfile)
402 {
403 mHas1xxRelResubmitTime = false;
404 }
405 else // No Base profile - so return to default setting
406 {
407 mHas1xxRelResubmitTime = true;
408 m1xxRelResubmitTime = 150; // RFC3262 section says the UAS SHOULD send provisional reliable responses once every two and half minutes
409 }
410}
411
412void
414{
415 mOverrideHostPort = hostPort;
416 mHasOverrideHostPort = true;
417}
418
419bool
421{
422 // Fall through setting (if required)
423 if (!mHasOverrideHostPort && mBaseProfile)
424 {
425 return mBaseProfile->hasOverrideHostAndPort();
426 }
427 return mHasOverrideHostPort;
428}
429
430const Uri&
432{
433 // Fall through setting (if required)
434 if (!mHasOverrideHostPort && mBaseProfile)
435 {
436 return mBaseProfile->getOverrideHostAndPort();
437 }
438 return mOverrideHostPort;
439}
440
441void
443{
444 mHasOverrideHostPort = false;
445}
446
447void
449{
450 resip_assert(header == Headers::Allow ||
451 header == Headers::AcceptEncoding ||
452 header == Headers::AcceptLanguage ||
453 header == Headers::AllowEvents ||
454 header == Headers::Supported);
455
456 mAdvertisedCapabilities.insert(header);
457 mHasAdvertisedCapabilities = true;
458}
459
460bool
462{
463 // Fall through setting (if required)
464 if (!mHasAdvertisedCapabilities && mBaseProfile)
465 {
466 return mBaseProfile->isAdvertisedCapability(header);
467 }
468 return mAdvertisedCapabilities.find(header) != mAdvertisedCapabilities.end();
469}
470
471void
473{
474 mHasAdvertisedCapabilities = true;
475 return mAdvertisedCapabilities.clear();
476}
477
478void
480{
481 if (mBaseProfile)
482 {
483 mHasAdvertisedCapabilities = false;
484 }
485 else // No Base profile - so return to default setting
486 {
487 mHasAdvertisedCapabilities = true;
488 addAdvertisedCapability(Headers::Allow);
489 addAdvertisedCapability(Headers::Supported);
490 }
491}
492
493void
495{
496 Uri tmpUri(uri);
497 tmpUri.param(p_lr);
498 mOutboundProxy = NameAddr(tmpUri);
499 mHasOutboundProxy = true;
500}
501
502const NameAddr&
504{
505 // Fall through setting (if required)
506 if (!mHasOutboundProxy && mBaseProfile)
507 {
508 return mBaseProfile->getOutboundProxy();
509 }
510 resip_assert(mHasOutboundProxy);
511 return mOutboundProxy;
512}
513
514bool
516{
517 // Fall through setting (if required)
518 if (!mHasOutboundProxy && mBaseProfile)
519 {
520 return mBaseProfile->hasOutboundProxy();
521 }
522 return mHasOutboundProxy;
523}
524
525void
527{
528 mHasOutboundProxy = false;
529}
530
531void
533{
534 mForceOutboundProxyOnAllRequestsEnabled = enabled;
535 mHasForceOutboundProxyOnAllRequestsEnabled = true;
536}
537
538bool
540{
541 // Fall through setting (if required)
542 if (!mHasForceOutboundProxyOnAllRequestsEnabled && mBaseProfile)
543 {
544 return mBaseProfile->getForceOutboundProxyOnAllRequestsEnabled();
545 }
546 return mForceOutboundProxyOnAllRequestsEnabled;
547}
548
549void
551{
552 if (mBaseProfile)
553 {
554 mHasForceOutboundProxyOnAllRequestsEnabled = false;
555 }
556 else
557 {
558 mHasForceOutboundProxyOnAllRequestsEnabled = true;
559 mForceOutboundProxyOnAllRequestsEnabled = false;
560 }
561}
562
563void
565{
566 mExpressOutboundAsRouteSetEnabled = enabled;
567 mHasExpressOutboundAsRouteSetEnabled = true;
568}
569
570bool
572{
573 // Fall through setting (if required)
574 if (!mHasExpressOutboundAsRouteSetEnabled && mBaseProfile)
575 {
576 return mBaseProfile->getExpressOutboundAsRouteSetEnabled();
577 }
578 return mExpressOutboundAsRouteSetEnabled;
579}
580
581void
583{
584 if (mBaseProfile)
585 {
586 mHasExpressOutboundAsRouteSetEnabled = false;
587 }
588 else
589 {
590 mHasExpressOutboundAsRouteSetEnabled = true;
591 mExpressOutboundAsRouteSetEnabled = false;
592 }
593}
594
595void
596Profile::setRportEnabled(bool enabled) noexcept
597{
598 mRportEnabled = enabled;
599 mHasRportEnabled = true;
600}
601
602bool
604{
605 // Fall through setting (if required)
606 if (!mHasRportEnabled && mBaseProfile)
607 {
608 return mBaseProfile->getRportEnabled();
609 }
610 return mRportEnabled;
611}
612
613void
615{
616 if (mBaseProfile)
617 {
618 mHasRportEnabled = false;
619 }
620 else // No Base profile - so return to default setting
621 {
622 mHasRportEnabled = true;
623 mRportEnabled = true;
624 }
625}
626
627void
628Profile::setUserAgent( const Data& userAgent )
629{
630 mUserAgent = userAgent;
631 mHasUserAgent = true;
632}
633
634const Data&
636{
637 // Fall through setting (if required)
638 if (!mHasUserAgent && mBaseProfile)
639 {
640 return mBaseProfile->getUserAgent();
641 }
642 resip_assert(mHasUserAgent);
643 return mUserAgent;
644}
645
646bool
647Profile::hasUserAgent() const noexcept
648{
649 // Fall through setting (if required)
650 if (!mHasUserAgent && mBaseProfile)
651 {
652 return mBaseProfile->hasUserAgent();
653 }
654 return mHasUserAgent;
655}
656
657void
659{
660 mHasUserAgent = false;
661}
662
663void
664Profile::setProxyRequires( const Tokens& proxyRequires )
665{
666 mProxyRequires = proxyRequires;
667 mHasProxyRequires = true;
668}
669
670const Tokens&
672{
673 // Fall through setting (if required)
674 if (!mHasProxyRequires && mBaseProfile)
675 {
676 return mBaseProfile->getProxyRequires();
677 }
678 resip_assert(mHasProxyRequires);
679 return mProxyRequires;
680}
681
682bool
684{
685 // Fall through setting (if required)
686 if (!mHasProxyRequires && mBaseProfile)
687 {
688 return mBaseProfile->hasProxyRequires();
689 }
690 return mHasProxyRequires;
691}
692
693void
695{
696 mHasProxyRequires = false;
697}
698
699void
700Profile::setKeepAliveTimeForDatagram(int keepAliveTime) noexcept
701{
702 mKeepAliveTimeForDatagram = keepAliveTime;
703 mHasKeepAliveTimeForDatagram = true;
704}
705
706int
708{
709 // Fall through setting (if required)
710 if (!mHasKeepAliveTimeForDatagram && mBaseProfile)
711 {
712 return mBaseProfile->getKeepAliveTimeForDatagram();
713 }
714 return mKeepAliveTimeForDatagram;
715}
716
717void
719{
720 if (mBaseProfile)
721 {
722 mHasKeepAliveTimeForDatagram = false;
723 }
724 else // No Base profile - so return to default setting
725 {
726 mHasKeepAliveTimeForDatagram = true;
727 mKeepAliveTimeForDatagram = 30; // 30 seconds.
728 }
729}
730
731void
732Profile::setKeepAliveTimeForStream(int keepAliveTime) noexcept
733{
734 mKeepAliveTimeForStream = keepAliveTime;
735 mHasKeepAliveTimeForStream = true;
736}
737
738int
740{
741 // Fall through setting (if required)
742 if (!mHasKeepAliveTimeForStream && mBaseProfile)
743 {
744 return mBaseProfile->getKeepAliveTimeForStream();
745 }
746 return mKeepAliveTimeForStream;
747}
748
749void
751{
752 if (mBaseProfile)
753 {
754 mHasKeepAliveTimeForStream = false;
755 }
756 else // No Base profile - so return to default setting
757 {
758 mHasKeepAliveTimeForStream = true;
759 mKeepAliveTimeForStream = 180; // 3 minutes.
760 }
761}
762
763void
764Profile::setFixedTransportPort(int fixedTransportPort) noexcept
765{
766 mFixedTransportPort = fixedTransportPort;
767 mHasFixedTransportPort = true;
768}
769
770int
772{
773 // Fall through setting (if required)
774 if (!mHasFixedTransportPort && mBaseProfile)
775 {
776 return mBaseProfile->getFixedTransportPort();
777 }
778 return mFixedTransportPort;
779}
780
781void
783{
784 if (mBaseProfile)
785 {
786 mHasFixedTransportPort = false;
787 }
788 else // No Base profile - so return to default setting
789 {
790 mHasFixedTransportPort = true;
791 mFixedTransportPort = 0;
792 }
793}
794
795void
796Profile::setFixedTransportInterface(const Data& fixedTransportInterface)
797{
798 mFixedTransportInterface = fixedTransportInterface;
799 mHasFixedTransportInterface = true;
800}
801
802const Data&
804{
805 // Fall through setting (if required)
806 if (!mHasFixedTransportInterface && mBaseProfile)
807 {
808 return mBaseProfile->getFixedTransportInterface();
809 }
810 return mFixedTransportInterface;
811}
812
813void
815{
816 if (mBaseProfile)
817 {
818 mHasFixedTransportInterface = false;
819 }
820 else // No Base profile - so return to default setting
821 {
822 mHasFixedTransportInterface = true;
823 mFixedTransportInterface = Data::Empty;
824 }
825}
826
827
828void
829Profile::setRinstanceEnabled(bool enabled) noexcept
830{
831 mRinstanceEnabled = enabled;
832 mHasRinstanceEnabled = true;
833}
834
835bool
837{
838 // Fall through setting (if required)
839 if (!mHasRinstanceEnabled && mBaseProfile)
840 {
841 return mBaseProfile->getRinstanceEnabled();
842 }
843 return mRinstanceEnabled;
844}
845
846void
848{
849 if (mBaseProfile)
850 {
851 mHasRinstanceEnabled = false;
852 }
853 else
854 {
855 mHasRinstanceEnabled = true;
856 mRinstanceEnabled = true;
857 }
858}
859
861 //virtual void setOutboundDecorator(std::shared_ptr<MessageDecorator> outboundDecorator);
862 //virtual std::shared_ptr<MessageDecorator> getOutboundDecorator();
863 //virtual void unsetOutboundDecorator();
864
865void
866Profile::setOutboundDecorator(std::shared_ptr<MessageDecorator> outboundDecorator) noexcept
867{
868 mOutboundDecorator = outboundDecorator;
869 mHasOutboundDecorator = true;
870}
871
872std::shared_ptr<MessageDecorator>
874{
875 // Fall through setting (if required)
876 if (!mHasOutboundDecorator && mBaseProfile)
877 {
878 return mBaseProfile->getOutboundDecorator();
879 }
880 return mOutboundDecorator;
881}
882
883void
885{
886 if (mHasOutboundDecorator)
887 {
888 mOutboundDecorator.reset();
889 }
890
891 mHasOutboundDecorator = false;
892}
893
894void
896{
897 mMethodsParamEnabled = enabled;
898 mHasMethodsParamEnabled = true;
899}
900
901bool
903{
904 // Fall through setting (if required)
905 if (!mHasMethodsParamEnabled && mBaseProfile)
906 {
907 return mBaseProfile->getMethodsParamEnabled();
908 }
909 return mMethodsParamEnabled;
910}
911
912void
914{
915 if (mBaseProfile)
916 {
917 mHasMethodsParamEnabled = false;
918 }
919 else
920 {
921 mHasMethodsParamEnabled = true;
922 mMethodsParamEnabled = false;
923 }
924}
925
926void
928{
929 mUserAgentCapabilities = capabilities;
930 mHasUserAgentCapabilities = true;
931}
932
933const NameAddr&
935{
936 // Fall through setting (if required)
937 if (!mHasUserAgentCapabilities && mBaseProfile)
938 {
939 return mBaseProfile->getUserAgentCapabilities();
940 }
941 resip_assert(mHasUserAgentCapabilities);
942 return mUserAgentCapabilities;
943}
944
945bool
947{
948 // Fall through setting (if required)
949 if (!mHasUserAgentCapabilities && mBaseProfile)
950 {
951 return mBaseProfile->hasUserAgentCapabilities();
952 }
953 return mHasUserAgentCapabilities;
954}
955
956void
958{
959 mHasUserAgentCapabilities = false;
960}
961
962void
964{
965 mExtraHeadersInReferNotifySipFragEnabled = enabled;
966 mHasExtraHeadersInReferNotifySipFragEnabled = true;
967}
968
969bool
971{
972 // Fall through setting (if required)
973 if (!mHasExtraHeadersInReferNotifySipFragEnabled && mBaseProfile)
974 {
975 return mBaseProfile->getExtraHeadersInReferNotifySipFragEnabled();
976 }
977 return mExtraHeadersInReferNotifySipFragEnabled;
978}
979
980void
982{
983 if (mBaseProfile)
984 {
985 mHasExtraHeadersInReferNotifySipFragEnabled = false;
986 }
987 else
988 {
989 mHasExtraHeadersInReferNotifySipFragEnabled = true;
990 mExtraHeadersInReferNotifySipFragEnabled = false;
991 }
992}
993
994void
996{
997 mHandleInviteSession491AsGeneralFailureEnabled = enabled;
998 mHasHandleInviteSession491AsGeneralFailureEnabled = true;
999}
1000
1001bool
1003{
1004 // Fall through seting (if required)
1005 if(!mHasHandleInviteSession491AsGeneralFailureEnabled && mBaseProfile.get())
1006 {
1007 return mBaseProfile->getHandleInviteSession491AsGeneralFailureEnabled();
1008 }
1009 return mHandleInviteSession491AsGeneralFailureEnabled;
1010}
1011
1012void
1014{
1015 if(mBaseProfile.get())
1016 {
1017 mHasHandleInviteSession491AsGeneralFailureEnabled = false;
1018 }
1019 else
1020 {
1021 mHasHandleInviteSession491AsGeneralFailureEnabled = true;
1022 mHandleInviteSession491AsGeneralFailureEnabled = false;
1023 }
1024}
1025
1026/* ====================================================================
1027 * The Vovida Software License, Version 1.0
1028 *
1029 * Copyright (c) 2000 Vovida Networks, Inc. All rights reserved.
1030 *
1031 * Redistribution and use in source and binary forms, with or without
1032 * modification, are permitted provided that the following conditions
1033 * are met:
1034 *
1035 * 1. Redistributions of source code must retain the above copyright
1036 * notice, this list of conditions and the following disclaimer.
1037 *
1038 * 2. Redistributions in binary form must reproduce the above copyright
1039 * notice, this list of conditions and the following disclaimer in
1040 * the documentation and/or other materials provided with the
1041 * distribution.
1042 *
1043 * 3. The names "VOCAL", "Vovida Open Communication Application Library",
1044 * and "Vovida Open Communication Application Library (VOCAL)" must
1045 * not be used to endorse or promote products derived from this
1046 * software without prior written permission. For written
1047 * permission, please contact vocal@vovida.org.
1048 *
1049 * 4. Products derived from this software may not be called "VOCAL", nor
1050 * may "VOCAL" appear in their name, without prior written
1051 * permission of Vovida Networks, Inc.
1052 *
1053 * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED
1054 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
1055 * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND
1056 * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL VOVIDA
1057 * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES
1058 * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL,
1059 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
1060 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
1061 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
1062 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
1063 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
1064 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
1065 * DAMAGE.
1066 *
1067 * ====================================================================
1068 *
1069 * This software consists of voluntary contributions made by Vovida
1070 * Networks, Inc. and many individuals on behalf of Vovida Networks,
1071 * Inc. For more information on Vovida Networks, Inc., please see
1072 * <http://www.vovida.org/>.
1073 *
1074 */
#define resip_assert(x)
This file needs to work for both C and C++ code.
An alternative to std::string, encapsulates an arbitrary buffer of bytes.
Definition Data.hxx:90
static const Data Empty
Constant that represents a zero-length data.
Definition Data.hxx:882
Represents the "name-addr" and the "addr-spec" elements in the RFC 3261 grammar.
Definition NameAddr.hxx:19
virtual void unsetAdvertisedCapabilities()
Definition Profile.cxx:479
virtual void unsetOutboundDecorator() noexcept
Definition Profile.cxx:884
virtual void set1xxRetransmissionTime(int secs) noexcept
The amount of time that can pass before dum will resubmit an unreliable provisional response.
Definition Profile.cxx:349
virtual void unsetDefaultPublicationTime() noexcept
Definition Profile.cxx:207
virtual void unsetKeepAliveTimeForStream() noexcept
Definition Profile.cxx:750
virtual void setDefaultSessionTime(uint32_t secs) noexcept
Only used if timer option tag is set in MasterProfile.
Definition Profile.cxx:285
virtual bool getMethodsParamEnabled() const noexcept
Definition Profile.cxx:902
virtual void setFixedTransportInterface(const Data &fixedTransportInterface)
If set dum will provide a interface in the via for requests sent down to the stack.
Definition Profile.cxx:796
virtual void unsetDefaultRegistrationTime() noexcept
Definition Profile.cxx:79
virtual void setKeepAliveTimeForStream(int keepAliveTime) noexcept
Definition Profile.cxx:732
virtual void unsetKeepAliveTimeForDatagram() noexcept
Definition Profile.cxx:718
virtual int getKeepAliveTimeForStream() const noexcept
Definition Profile.cxx:739
virtual void unsetOutboundProxy() noexcept
Definition Profile.cxx:526
virtual void unsetDefaultRegistrationRetryTime() noexcept
Definition Profile.cxx:143
virtual void setDefaultPublicationTime(uint32_t secs) noexcept
This default is used if no value is passed in when creating a publication.
Definition Profile.cxx:189
virtual bool hasOverrideHostAndPort() const noexcept
Definition Profile.cxx:420
virtual void unsetDefaultSubscriptionTime() noexcept
Definition Profile.cxx:175
virtual void setUserAgent(const Data &userAgent)
if set then UserAgent header is added to outbound messages
Definition Profile.cxx:628
virtual void clearAdvertisedCapabilities() noexcept
Definition Profile.cxx:472
virtual void setDefaultSubscriptionTime(uint32_t secs) noexcept
This default is used if no value is passed in when creating a subscription.
Definition Profile.cxx:157
virtual void setDefaultStaleCallTime(int secs) noexcept
Call is stale if UAC gets no final response within the stale call timeout (default 3 minutes)
Definition Profile.cxx:221
virtual bool getHandleInviteSession491AsGeneralFailureEnabled() const
Definition Profile.cxx:1002
virtual void setForceOutboundProxyOnAllRequestsEnabled(bool enabled) noexcept
If enabled, forces use of outbound proxy on all requests, including mid-dialog requests.
Definition Profile.cxx:532
virtual void setDefaultRegistrationTime(uint32_t secs) noexcept
Note: setXXXX methods will set this setting internally in this object.
Definition Profile.cxx:61
virtual void setHandleInviteSession491AsGeneralFailureEnabled(bool enabled)
Definition Profile.cxx:995
virtual void unsetExpressOutboundAsRouteSetEnabled() noexcept
Definition Profile.cxx:582
virtual void setKeepAliveTimeForDatagram(int keepAliveTime) noexcept
time between CR/LF keepalive messages in seconds.
Definition Profile.cxx:700
virtual void unsetForceOutboundProxyOnAllRequestsEnabled() noexcept
Definition Profile.cxx:550
virtual void setDefaultRegistrationRetryTime(int secs) noexcept
The time to retry registrations on error responses (if Retry-After header is not present in error) Se...
Definition Profile.cxx:125
virtual void unsetHandleInviteSession491AsGeneralFailureEnabled()
Definition Profile.cxx:1013
virtual const NameAddr & getOutboundProxy() const
Definition Profile.cxx:503
virtual void setOverrideHostAndPort(const Uri &hostPort)
overrides the value used to populate the contact ?dcm? – also change via entries? Also,...
Definition Profile.cxx:413
virtual bool getExtraHeadersInReferNotifySipFragEnabled() const noexcept
Definition Profile.cxx:970
virtual void unsetUserAgent() noexcept
Definition Profile.cxx:658
virtual void setUserAgentCapabilities(const NameAddr &capabilities)
If set, the parameters on the provided NameAddr are used in the contact header Example: #include <res...
Definition Profile.cxx:927
virtual uint32_t getDefaultSessionTime() const noexcept
Definition Profile.cxx:292
virtual bool getForceOutboundProxyOnAllRequestsEnabled() const noexcept
Definition Profile.cxx:539
virtual int getKeepAliveTimeForDatagram() const noexcept
Definition Profile.cxx:707
virtual void unsetProxyRequires() noexcept
Definition Profile.cxx:694
virtual void unsetFixedTransportPort() noexcept
Definition Profile.cxx:782
virtual void setProxyRequires(const Tokens &proxyRequires)
if set then ProxyRequires header is added to outbound messages
Definition Profile.cxx:664
virtual const Data & getUserAgent() const
Definition Profile.cxx:635
virtual std::shared_ptr< MessageDecorator > getOutboundDecorator() noexcept
Definition Profile.cxx:873
virtual uint32_t getDefaultSubscriptionTime() const noexcept
Definition Profile.cxx:164
virtual int getDefaultStaleCallTime() const noexcept
Definition Profile.cxx:228
virtual void setOutboundDecorator(std::shared_ptr< MessageDecorator > outboundDecorator) noexcept
Definition Profile.cxx:866
virtual void reset()
Reset this profile to it's initial state - (same as calling unsetXXX for each setting) If no fall thr...
Definition Profile.cxx:27
virtual bool getRinstanceEnabled() const noexcept
Definition Profile.cxx:836
virtual const Tokens & getProxyRequires() const
Definition Profile.cxx:671
virtual void unsetRinstanceEnabled() noexcept
Definition Profile.cxx:847
virtual void unsetExtraHeadersInReferNotifySipFragEnabled() noexcept
Definition Profile.cxx:981
virtual void setFixedTransportPort(int fixedTransportPort) noexcept
If set dum will provide a port in the via for requests sent down to the stack.
Definition Profile.cxx:764
virtual void setDefaultStaleReInviteTime(int secs) noexcept
ReInvite is stale if UAC gets no final response within the stale reinvite timeout (default 40 seconds...
Definition Profile.cxx:253
virtual void unsetUserAgentCapabilities() noexcept
Definition Profile.cxx:957
virtual const Uri & getOverrideHostAndPort() const
Definition Profile.cxx:431
virtual void addAdvertisedCapability(Headers::Type header)
enable/disable sending of Allow/Supported/Accept-Language/Accept-Encoding headers on initial outbound...
Definition Profile.cxx:448
virtual void unsetDefaultStaleCallTime() noexcept
Definition Profile.cxx:239
virtual void setExtraHeadersInReferNotifySipFragEnabled(bool enabled) noexcept
If enabled then dialog identifying headers are added to SipFrag bodies that are generated in an Invit...
Definition Profile.cxx:963
virtual void unsetOverrideHostAndPort() noexcept
Definition Profile.cxx:442
virtual int get1xxRetransmissionTime() const noexcept
Definition Profile.cxx:356
virtual bool hasUserAgent() const noexcept
Definition Profile.cxx:647
virtual void unsetDefaultSessionTimerMode() noexcept
Definition Profile.cxx:335
virtual int getFixedTransportPort() const noexcept
Definition Profile.cxx:771
virtual void setExpressOutboundAsRouteSetEnabled(bool enabled) noexcept
If enabled, add a route header for the outbound proxy.
Definition Profile.cxx:564
virtual int getDefaultStaleReInviteTime() const noexcept
Definition Profile.cxx:260
virtual void unsetDefaultStaleReInviteTime() noexcept
Definition Profile.cxx:271
virtual uint32_t getDefaultPublicationTime() const noexcept
Definition Profile.cxx:196
virtual void unset1xxRetransmissionTime() noexcept
Definition Profile.cxx:367
virtual bool hasProxyRequires() const noexcept
Definition Profile.cxx:683
virtual bool getExpressOutboundAsRouteSetEnabled() const noexcept
Definition Profile.cxx:571
virtual const Data & getFixedTransportInterface() const
Definition Profile.cxx:803
virtual void unsetFixedTransportInterface()
Definition Profile.cxx:814
virtual Profile::SessionTimerMode getDefaultSessionTimerMode() const noexcept
Definition Profile.cxx:324
virtual uint32_t getDefaultRegistrationTime() const noexcept
Definition Profile.cxx:68
virtual void set1xxRelResubmitTime(int secs) noexcept
The amount of time that can pass before dum will resubmit a reliable provisional response.
Definition Profile.cxx:381
virtual int get1xxRelResubmitTime() const noexcept
Definition Profile.cxx:388
virtual const NameAddr & getUserAgentCapabilities() const
Definition Profile.cxx:934
virtual void setRinstanceEnabled(bool enabled) noexcept
If enabled then rinstance parameter is added to contacts.
Definition Profile.cxx:829
virtual bool isAdvertisedCapability(Headers::Type header) const
Definition Profile.cxx:461
virtual int getDefaultRegistrationRetryTime() const noexcept
Definition Profile.cxx:132
virtual bool hasOutboundProxy() const noexcept
Definition Profile.cxx:515
virtual bool hasUserAgentCapabilities() const noexcept
Definition Profile.cxx:946
virtual void setDefaultSessionTimerMode(Profile::SessionTimerMode mode) noexcept
Definition Profile.cxx:317
virtual void unsetDefaultMaxRegistrationTime() noexcept
Definition Profile.cxx:111
virtual void unsetDefaultSessionTime() noexcept
Definition Profile.cxx:303
virtual void setOutboundProxy(const Uri &uri)
Use to route all outbound requests through a particular proxy.
Definition Profile.cxx:494
virtual void setRportEnabled(bool enabled) noexcept
enable/disable rport for requests. rport is enabled by default
Definition Profile.cxx:596
virtual void setDefaultMaxRegistrationTime(uint32_t secs) noexcept
If a registration gets rejected with a 423, then we ensure the MinExpires value is less than this bef...
Definition Profile.cxx:93
virtual bool getRportEnabled() const noexcept
Definition Profile.cxx:603
virtual void unsetMethodsParamEnabled() noexcept
Definition Profile.cxx:913
virtual uint32_t getDefaultMaxRegistrationTime() const noexcept
Definition Profile.cxx:100
virtual void unsetRportEnabled() noexcept
Definition Profile.cxx:614
virtual void unset1xxRelResubmitTime() noexcept
Definition Profile.cxx:399
virtual void setMethodsParamEnabled(bool enabled) noexcept
If enabled then methods parameter is added to contacts.
Definition Profile.cxx:895
SessionTimerMode
Only used if timer option tag is set in MasterProfile.
Definition Profile.hxx:100
Represents the "SIP-URI" and "SIPS-URI" elements in the RFC 3261 grammar.
Definition Uri.hxx:22
const Data & param(const ExtensionParameter &param) const
Const accessor for non-natively-supported parameter types.
dcm! – add UnusedChecking(_enum) below;
unsigned int uint32_t
Definition Stun.hxx:34