30#define YSIG_API __declspec(dllexport)
33#define YSIG_API __declspec(dllimport)
49class SignallingDumper;
50class SignallingDumpable;
51class SignallingNotifier;
53class SignallingCounter;
54class SignallingFactory;
55class SignallingComponent;
56class SignallingEngine;
57class SignallingThreadPrivate;
58class SignallingMessage;
59class SignallingCallControl;
62class SignallingCircuitEvent;
63class SignallingCircuit;
64class SignallingCircuitRange;
65class SignallingCircuitGroup;
66class SignallingCircuitSpan;
67class SignallingInterface;
68class SignallingReceiver;
69struct SignallingFlags;
71class SignallingMessageTimer;
72class SignallingMessageTimerList;
116class SccpLocalSubsystem;
118class SS7AnsiSccpManagement;
119class SS7ItuSccpManagement;
125class SS7TCAPTransaction;
126class SS7TCAPComponent;
128class SS7TCAPTransactionANSI;
130class SS7TCAPTransactionITU;
136class ISDNQ921Passive;
137class ISDNQ921Management;
140class ISDNQ931Message;
144class ISDNQ931CallMonitor;
145class ISDNQ931ParserData;
147class ISDNQ931Monitor;
150#define YSIGFACTORY(clas) \
151class clas ## Factory : public SignallingFactory \
154virtual SignallingComponent* create(const String& type, NamedList& name) \
155 { return (type == #clas) ? new clas : 0; } \
157static clas ## Factory s_ ## clas ## Factory
160#define YSIGFACTORY2(clas) \
161class clas ## Factory : public SignallingFactory \
164virtual SignallingComponent* create(const String& type, NamedList& name) \
165 { return clas::create(type,name); } \
167static clas ## Factory s_ ## clas ## Factory
170#define YSIGCREATE(type,name) (static_cast<type*>(SignallingFactory::buildInternal(#type,name)))
217 {
return m_network; }
245 bool dump(
void* buf,
unsigned int len,
bool sent =
false,
int link = 0);
268 bool network =
false,
bool create =
true,
bool append =
false);
307 : m_type(type), m_dumpNet(network), m_dumper(0)
318 inline bool dump(
void* buf,
unsigned int len,
bool sent =
false,
int link = 0)
319 {
return (m_dumper && m_dumper->dump(buf,len,sent,link)); }
336 { m_dumpNet = network; }
404 : m_interval(
interval), m_timeout(0)
405 {
if (time)
start(time); }
412 { m_interval = value; }
425 unsigned int minVal,
unsigned int defVal,
bool allowDisable,
bool sec =
false) {
426 m_interval =
getInterval(params,param,minVal,defVal,0,allowDisable);
436 {
return m_interval; }
443 {
return m_timeout; }
450 {
if (m_interval) m_timeout = time + m_interval; }
457 { m_timeout = time; }
470 {
return m_timeout > 0; }
478 {
return started() && (m_timeout < time); }
491 unsigned int minVal,
unsigned int defVal,
unsigned int maxVal = 0,
492 bool allowDisable =
false);
495 u_int64_t m_interval;
511 : m_max(
maxVal), m_count(0)
540 { m_count = down ? 0 : m_max; }
571 {
return m_count == 0; }
578 {
return m_count ==
maxVal(); }
637 friend class SignallingEngine;
692 virtual void engine(SignallingEngine* eng);
714 {
return m_compType; }
763 { m_compType = type; }
771 unsigned long tickSleep(
unsigned long usec = 1000000)
const;
774 SignallingEngine* m_engine;
786 friend class SignallingComponent;
787 friend class SignallingThreadPrivate;
811 void insert(SignallingComponent* component);
817 void remove(SignallingComponent* component);
864 bool find(
const SignallingComponent* component);
892 { m_notifier = notifier; }
900 if (m_notifier == notifier)
923 {
return m_usecSleep; }
930 {
return s_maxLockWait; }
943 template <
class Obj>
static inline void destruct(Obj*& obj)
948 obj->engine()->remove(obj);
949 TelEngine::destruct(obj);
966 SignallingThreadPrivate* m_thread;
968 unsigned long m_usecSleep;
969 unsigned long m_tickSleep;
970 static long s_maxLockWait;
993 inline const char*
name()
const
1023 friend class SignallingCall;
1024 friend class SS7ISUPCall;
1025 friend class ISDNQ931Call;
1026 friend class ISDNQ931CallMonitor;
1063 { m_exiting =
true; }
1070 {
return m_exiting; }
1105 {
return m_circuits; }
1147 const String* list = 0,
bool mandatory =
true,
bool reverseRestrict =
false);
1171 virtual void cleanup(
const char* reason =
"net-out-of-order")
1188 { reason =
"not-implemented";
return 0; }
1203 {
return m_strategy; }
1222 SignallingCall*
call = 0)
1223 { TelEngine::destruct(event);
return 0; }
1243 void setVerify(
bool restartTimer =
false,
bool fireNow =
false,
const Time* time = 0);
1313 {
return m_outgoing; }
1319 {
return m_controller; }
1326 { m_private = data; }
1333 {
return m_private; }
1340 {
return m_signalOnly; }
1507 {
return m_message; }
1513 {
return m_controller; }
1519 {
return m_cicEvent; }
1527 {
return lookup(t,s_types,0); }
1609 {
return m_circuit; }
1629 friend class SignallingCircuitGroup;
1630 friend class SignallingCircuitEvent;
1661 LockLocalHWFail = 0x0001,
1662 LockLocalMaint = 0x0002,
1663 LockingHWFail = 0x0004,
1664 LockingMaint = 0x0008,
1665 LockLocalHWFailChg = 0x0010,
1666 LockLocalMaintChg = 0x0020,
1668 LockRemoteHWFail = 0x0100,
1669 LockRemoteMaint = 0x0200,
1670 LockRemoteHWFailChg = 0x1000,
1671 LockRemoteMaintChg = 0x2000,
1673 LockLocal = LockLocalHWFail | LockLocalMaint,
1674 LockRemote = LockRemoteHWFail | LockRemoteMaint,
1675 LockLocked = LockLocal | LockRemote,
1676 LockBusy = LockingHWFail | LockingMaint | Resetting,
1677 LockLockedBusy = LockLocked | LockBusy,
1678 LockLocalChg = LockLocalHWFailChg | LockLocalMaintChg,
1679 LockRemoteChg = LockRemoteHWFailChg | LockRemoteMaintChg,
1680 LockChanged = LockLocalChg | LockRemoteChg,
1695 { m_status = newStat;
return true; }
1709 {
return m_status; }
1717 {
return (m_lock & flags); }
1724 { m_lock |= flags; }
1731 { m_lock &= ~flags; }
1774 {
return defValue; }
1783 {
return defValue; }
1812 inline const SignallingCircuitGroup*
group()
const
1834 {
return m_status == Idle; }
1841 {
return m_status == Connected; }
1863 {
return status() == Connected &&
status(Reserved,
true); }
1870 {
return status(Disabled,
true); }
1880 bool hwLock(
bool set,
bool remote,
bool changed =
false,
bool setChanged =
false);
1890 bool maintLock(
bool set,
bool remote,
bool changed =
false,
bool setChanged =
false);
1965 SignallingCircuitGroup* m_group;
1967 unsigned int m_code;
1972 SignallingCircuitEvent* m_lastEvent;
1986 friend class SignallingCircuitGroup;
2014 inline const unsigned int*
range()
const
2015 {
return (
const unsigned int*)m_range.data(); }
2030 { m_range.clear(); m_count = 0; }
2038 {
return range()[index]; }
2048 return add(rangeStr);
2063 void add(
unsigned int* codes,
unsigned int len);
2069 inline void add(
unsigned int code)
2077 void add(
unsigned int first,
unsigned int last);
2105 unsigned int m_count;
2106 unsigned int m_last;
2108 unsigned int m_used;
2118 friend class SignallingCircuit;
2119 friend class SignallingCallControl;
2120 friend class SS7ISUP;
2121 friend class ISDNQ931;
2148 const char* name =
"circgroup");
2160 {
return m_circuits.count(); }
2174 {
return m_range.m_last; }
2181 {
return m_range.m_strategy; }
2194 {
return m_circuits; }
2272 SignallingCircuit*
find(
unsigned int cic,
bool local =
false);
2327 inline bool release(SignallingCircuit* cic,
bool sync =
false)
2328 {
return cic && cic->
status(SignallingCircuit::Idle,sync); }
2362 unsigned int m_base;
2428 friend class SignallingReceiver;
2483 : m_recvMutex(true,
"SignallingInterface::recv"), m_receiver(0)
2502 {
return m_receiver; }
2547 SignallingReceiver* m_receiver;
2557 friend class SignallingInterface;
2581 inline SignallingInterface*
iface()
const
2582 {
return m_interface; }
2620 SignallingInterface* m_interface;
2676 static inline const TokenDict*
dict(
unsigned int index,
unsigned char coding = 0)
2680 return (!coding ? s_dictCCITT[index] : 0);
2733 const TokenDict* tokens,
unsigned int val);
2745 const unsigned char* buf,
unsigned int len,
char sep =
' ');
2760 const unsigned char* buf,
unsigned int len,
char sep =
' ');
2774 const SignallingFlags* flags,
const unsigned char* buf,
unsigned int len);
2787 unsigned int len,
const char* prefix,
bool isup);
2800 unsigned int len,
const char* prefix,
bool isup);
2837 const char* prefix,
bool isup,
bool fail =
false);
2849 const char* prefix,
bool isup);
2864 unsigned int& count,
bool discardDup);
2884 m_globalTimer(
global), m_msg(0)
2891 { TelEngine::destruct(m_msg); }
2913 {
return m_globalTimer; }
2920 {
return m_globalTimer; }
2929 return m_globalTimer.fireTime();
2984 friend class AnalogLineGroup;
3074 {
return m_circuit; }
3081 {
return m_address; }
3088 {
return !m_inband; }
3095 {
return m_answerOnPolarity; }
3102 {
return m_hangupOnPolarity; }
3109 {
return m_polarityControl; }
3116 {
return m_callSetup; }
3123 {
return m_callSetupTimeout; }
3130 {
return m_noRingTimeout; }
3137 {
return m_alarmTimeout; }
3144 {
return m_delayDial; }
3151 { m_acceptPulseDigit = ok; }
3158 {
return m_private; }
3170 m_peer->userdata(data,
false);
3178 {
return m_address; }
3191 {
return state() != OutOfService && m_circuit && m_circuit->reserve(); }
3200 {
return m_circuit && m_circuit->setParam(param,value); }
3277 bool enable(
bool ok,
bool sync,
bool connectNow =
true);
3305 bool m_acceptPulseDigit;
3306 bool m_answerOnPolarity;
3307 bool m_hangupOnPolarity;
3308 bool m_polarityControl;
3310 u_int64_t m_callSetupTimeout;
3311 u_int64_t m_noRingTimeout;
3312 u_int64_t m_alarmTimeout;
3313 u_int64_t m_delayDial;
3314 AnalogLineGroup* m_group;
3320 bool m_getPeerEvent;
3336 : m_line(0), m_event(
event)
3344 TelEngine::destruct(m_line);
3345 TelEngine::destruct(m_event);
3367 TelEngine::destruct(m_line);
3368 TelEngine::destruct(m_event);
3532 : m_network(0), m_cluster(0), m_member(0)
3554 {
return m_network; }
3561 {
return m_cluster; }
3568 {
return m_member; }
3595 bool assign(
Type type,
const unsigned char* src,
int len = -1,
unsigned char* spare = 0);
3609 {
return m_network == original.
network() && m_cluster == original.
cluster() && m_member == original.
member(); }
3616 {
return m_network != original.
network() || m_cluster != original.
cluster() || m_member != original.
member(); }
3646 bool store(
Type type,
unsigned char* dest,
unsigned char spare = 0)
const;
3668 {
return (
Type)TelEngine::lookup(text,s_names,(
int)Other); }
3676 {
return TelEngine::lookup((
int)type,s_names); }
3680 unsigned char m_network;
3681 unsigned char m_cluster;
3682 unsigned char m_member;
3686#define YSS7_PCTYPE_COUNT (SS7PointCode::DefinedTypes-1)
3693YSIG_API String&
operator<<(String& str,
const SS7PointCode& cp);
3741 unsigned int opc,
unsigned char sls,
unsigned char spare = 0);
3770 unsigned int opc,
unsigned char sls,
unsigned char spare = 0);
3841 inline unsigned char sls()
const
3863 { m_spare =
spare; }
3870 {
return length(m_type); }
3884 {
return size(m_type); }
3897 unsigned char m_sls;
3898 unsigned char m_spare;
3909#define MAX_TDM_MSU_SIZE 273
3967 International = 0x00,
3968 SpareInternational = 0x40,
3970 ReservedNational = 0xc0
4001 inline SS7MSU(
void* value,
unsigned int len,
bool copyData =
true)
4012 SS7MSU(
unsigned char sio,
const SS7Label label,
void* value = 0,
unsigned int len = 0);
4022 SS7MSU(
unsigned char sif,
unsigned char ssf,
const SS7Label label,
void* value = 0,
unsigned int len = 0);
4057 inline unsigned char*
getData(
unsigned int offs,
unsigned int len = 1)
4058 {
return (offs+len <=
length()) ? offs + (
unsigned char*)
data() : 0; }
4066 inline const unsigned char*
getData(
unsigned int offs,
unsigned int len = 1)
const
4067 {
return (offs+len <=
length()) ? offs + (
const unsigned char*)
data() : 0; }
4092 {
return null() ? -1 : *(
const unsigned char*)
data(); }
4099 {
return null() ? -1 : 0x0f & *(
const unsigned char*)
data(); }
4106 {
return null() ? -1 : 0xf0 & *(
const unsigned char*)
data(); }
4113 {
return null() ? -1 : 0x30 & *(
const unsigned char*)
data(); }
4120 {
return null() ? -1 : 0xc0 & *(
const unsigned char*)
data(); }
4146 static unsigned char getPriority(
const char* name,
unsigned char defVal = Regular);
4180 { m_result = result; }
4187 { m_result = success ? Accepted : Failure; }
4194 { m_result = original; }
4201 { m_result = result;
return *
this; }
4208 { m_result = original;
return *
this; }
4215 {
return m_result == result; }
4222 {
return m_result == result; }
4229 {
return m_result != result; }
4236 {
return m_result != result; }
4242 inline operator Result()
const
4243 {
return m_result; }
4250 {
return Accepted == m_result; }
4256 inline unsigned char upu()
const
4257 {
return (Accepted > m_result) ? m_result : Rejected; }
4270 friend class SIGTRAN;
4289 {
return m_sigtran; }
4339 bool processMSG(
unsigned char msgVersion,
unsigned char msgClass,
4340 unsigned char msgType,
const DataBlock& msg,
int streamId)
const;
4403 virtual bool transmitMSG(
unsigned char msgVersion,
unsigned char msgClass,
4404 unsigned char msgType,
const DataBlock& msg,
int streamId = 0);
4425 friend class SIGTransport;
4495 AsptmACTIVE_ACK = 3,
4496 AsptmINACTIVE_ACK = 4,
4549 {
return m_payload; }
4556 {
return m_defPort; }
4581 static const char*
typeName(
unsigned char msgClass,
unsigned char msgType,
4582 const char* defValue = 0);
4594 unsigned char msgType,
const DataBlock& msg,
int streamId = 0)
const;
4604 inline bool transmitMSG(
unsigned char msgClass,
unsigned char msgType,
4605 const DataBlock& msg,
int streamId = 0)
const
4606 {
return transmitMSG(1,msgClass,msgType,msg,streamId); }
4630 { TelEngine::destruct(newTransport);
return false; }
4653 virtual bool processMSG(
unsigned char msgVersion,
unsigned char msgClass,
4654 unsigned char msgType,
const DataBlock& msg,
int streamId) = 0;
4657 SIGTransport* m_trans;
4658 u_int32_t m_payload;
4659 u_int16_t m_defPort;
4660 mutable Mutex m_transMutex;
4676 TrafficOverride = 1,
4677 TrafficLoadShare = 2,
4678 TrafficBroadcast = 3,
4681 enum HeartbeatState {
4682 HeartbeatDisabled = 0,
4683 HeartbeatEnabled = 1,
4684 HeartbeatWaitResponse = 2,
4688 InvalidVersion = 0x01,
4690 UnsupportedMessageClass = 0x03,
4691 UnsupportedMessageType = 0x04,
4692 UnsupportedTrafficMode = 0x05,
4693 UnexpectedMessage = 0x06,
4694 ProtocolError = 0x07,
4695 UnsupportedIIDType = 0x08,
4696 InvalidStreamIdentifier = 0x09,
4697 UnassignedTEI = 0x0a,
4698 UnrecognizedSAPI = 0x0b,
4699 InvalidTEISAPI = 0x0c,
4700 ManagementBlocking = 0x0d,
4701 ASPIDRequired = 0x0e,
4702 InvalidASPID = 0x0f,
4703 ASPActiveIID = 0x10,
4704 InvalidParameterValue = 0x11,
4705 ParameterFieldError = 0x12,
4706 UnexpectedParameter = 0x13,
4707 DestinationStatusUnknown = 0x14,
4708 InvalidNetworkAppearance = 0x15,
4709 MissingParameter = 0x16,
4710 InvalidRoutingContext = 0x19,
4711 NotConfiguredAS = 0x1a,
4712 SubsystemStatusUnknown = 0x1b,
4713 InvalidLoadsharingLabel = 0x1c
4813 u_int32_t
payload = 0, u_int16_t port = 0);
4824 unsigned char msgType,
const DataBlock& msg,
int streamId);
4875 for (
int i = 0;i < 32;i++)
4876 m_streamsHB[i] = HeartbeatDisabled;
4886 m_streamsHB[streamId] = HeartbeatEnabled;
4889 unsigned int m_maxRetransmit;
4892 unsigned char m_streamsHB[32];
4901 friend class SIGAdaptUser;
4930 u_int32_t
payload = 0, u_int16_t port = 0);
4970 {
return m_state >= AspUp; }
4977 {
return m_state >= AspActive; }
5010 void attach(SIGAdaptUser* user);
5011 void detach(SIGAdaptUser* user);
5032 u_int32_t
payload = 0, u_int16_t port = 0)
5070 friend class SIGAdaptClient;
5090 {
return m_adaptation; }
5097 {
return m_adaptation ? m_adaptation->transport() : 0; }
5116 {
return m_adaptation && m_adaptation->activate(); }
5123 {
return m_adaptation && m_adaptation->aspUp(); }
5130 {
return m_adaptation && m_adaptation->aspActive(); }
5150 SIGAdaptClient* m_adaptation;
5228 friend class SCCPManagement;
5232 CoordinateRequest = 0,
5233 CoordinateConfirm = 1,
5234 CoordinateIndication = 2,
5235 CoordinateResponse = 3,
5236 StatusIndication = 4,
5238 PointCodeStatusIndication = 6,
5239 TraficIndication = 7,
5240 SubsystemStatus = 8,
5307 virtual void updateTables(
const NamedList& params)
5309 Lock lock(m_translatorLocker);
5311 m_translator->updateTables(params);
5322 const String& nextPrefix);
5365 Mutex m_translatorLocker;
5366 Mutex m_usersLocker;
5379 : m_interval(interval), m_statusInfo(interval), m_remoteSccp(0), m_remoteSubsystem(0),
5380 m_markAllowed(false)
5401 {
return m_remoteSccp; };
5408 {
return m_statusInfo.started() && m_statusInfo.timeout(); }
5414 {
return m_remoteSubsystem; }
5425 {
return m_markAllowed; }
5432 { m_markAllowed = allowed; }
5434 u_int32_t m_interval;
5567 friend class SS7TCAP;
5569 TCAPUser(
const char* name,
const NamedList* params = 0)
5619 inline void setTCAP(SS7TCAP*
tcap)
5638 friend class SS7Layer2;
5685 friend class SS7MTP3;
5692 NormalAlignment = 1,
5693 EmergencyAlignment = 2,
5695 ProcessorOutage = 4,
5699 N = NormalAlignment,
5700 E = EmergencyAlignment,
5702 PO = ProcessorOutage,
5794 {
return m_l2user; }
5808 {
if ((m_sls < 0) || !m_l2user) m_sls = linkSel; }
5815 {
return m_inhibited; }
5823 {
return (m_inhibited & flags) != 0; }
5862 m_l2userMutex(true,
"SS7Layer2::l2user"), m_l2user(0), m_sls(-1),
5863 m_checkTime(0), m_checkFail(0), m_inhibited(Unchecked), m_lastUp(0),
5880 m_l2userMutex.lock();
5882 m_l2userMutex.unlock();
5883 return tmp && tmp->receivedMSU(msu,
this,m_sls);
5893 m_l2userMutex.lock();
5895 m_l2userMutex.unlock();
5896 return tmp && tmp->recoveredMSU(msu,
this,m_sls);
5937 Mutex m_l2userMutex;
5940 u_int64_t m_checkTime;
5954 friend class SS7Layer3;
5955 friend class SS7Router;
5969 NotCongested = 0x78,
5970 NotRestricted = 0x7c,
5971 NotProhibited = 0x7e,
5987 unsigned int maxDataLength = MAX_TDM_MSU_SIZE)
5988 :
Mutex(true,
"SS7Route"), m_packed(
packed), m_type(type),
5989 m_priority(
priority), m_shift(
shift),m_maxDataLength(maxDataLength),
5990 m_state(Unknown),m_buffering(0), m_congCount(0),m_congBytes(0)
5991 { m_networks.setDelete(
false); }
5998 :
Mutex(true,
"SS7Route"), m_packed(original.
packed()),
5999 m_type(original.m_type), m_priority(original.
priority()),
6001 m_state(original.
state()), m_buffering(0), m_congCount(0), m_congBytes(0)
6002 { m_networks.setDelete(
false); }
6043 {
return m_priority; }
6050 {
return m_maxDataLength; }
6057 {
return m_packed; }
6115 const SS7Label& label,
int sls,
State states,
const SS7Layer3* source = 0);
6129 int transmitInternal(
const SS7Router* router,
const SS7MSU& msu,
6130 const SS7Label& label,
int sls,
State states,
const SS7Layer3* source);
6131 void rerouteCheck(u_int64_t when);
6132 void rerouteFlush();
6133 unsigned int m_packed;
6135 unsigned int m_priority;
6136 unsigned int m_shift;
6137 unsigned int m_maxDataLength;
6140 u_int64_t m_buffering;
6142 unsigned int m_congCount;
6143 unsigned int m_congBytes;
6152 friend class SS7Layer3;
6153 friend class SS7Router;
6201 virtual void notify(SS7Layer3* link,
int sls);
6236 friend class SS7L3User;
6237 friend class SS7Router;
6238 friend class SS7Route;
6284 {
return (
inhibited(sls) & flags) != 0; }
6293 virtual bool inhibit(
int sls,
int setFlags,
int clrFlags = 0)
6348 {
return m_l3user; }
6391 {
return getNI(pcType,m_defNI); }
6483 {
return (
type < SS7PointCode::DefinedTypes) ? m_local[
type-1] : 0; }
6509 m_l3userMutex.lock();
6511 m_l3userMutex.unlock();
6512 return tmp ? tmp->receivedMSU(msu,label,
this,sls) :
HandledMSU(HandledMSU::Unequipped);
6524 m_l3userMutex.lock();
6526 m_l3userMutex.unlock();
6527 return tmp && tmp->recoveredMSU(msu,label,
this,sls);
6536 m_l3userMutex.lock();
6538 m_l3userMutex.unlock();
6540 tmp->notify(
this,sls);
6610 {
return (
type < SS7PointCode::DefinedTypes) ? &
m_route[
type-1] : 0; }
6618 {
return (
type < SS7PointCode::DefinedTypes) ? &
m_route[
type-1] : 0; }
6627 Mutex m_l3userMutex;
6628 SS7L3User* m_l3user;
6631 unsigned int m_local[YSS7_PCTYPE_COUNT];
6632 unsigned char m_defNI;
6666 {
return m_layer3; }
6672 inline unsigned char sio()
const
6679 inline unsigned char sif()
const
6680 {
return m_sio & 0x0f; }
6686 inline unsigned char ssf()
const
6687 {
return m_sio & 0xf0; }
6694 {
return m_sio & 0x30; }
6700 inline unsigned char ni()
const
6701 {
return m_sio & 0xc0; }
6760 return tmp ? tmp->transmitMSU(msu,label,sls) : -1;
6770 SS7Layer3* m_layer3;
6975 unsigned int remotePC = 0,
const SS7Layer3* network = 0);
6988 unsigned int remotePC = 0,
const SS7Layer3* network = 0);
7001 unsigned int remotePC = 0,
const SS7Layer3* network = 0)
7066 unsigned int remotePC = 0,
const SS7Layer3* network = 0,
7067 unsigned int onlyPC = 0,
bool forced =
false);
7075 virtual void notify(SS7Layer3* network,
int sls);
7109 void sendRestart(
const SS7Layer3* network = 0);
7111 void silentAllow(
const SS7Layer3* network = 0);
7113 void checkRoutes(
const SS7Layer3* noResume = 0);
7114 void clearRoutes(SS7Layer3* network,
bool ok);
7115 void reroute(
const SS7Layer3* network);
7116 void rerouteCheck(
const Time& when);
7117 void rerouteFlush();
7119 unsigned int srcPC,
SS7Route::State state,
const SS7Layer3* changer = 0);
7123 void sendRouteTest();
7132 bool m_testRestricted;
7133 bool m_transferSilent;
7137 bool m_sendProhibited;
7138 unsigned long m_rxMsu;
7139 unsigned long m_txMsu;
7140 unsigned long m_fwdMsu;
7141 unsigned long m_failMsu;
7142 unsigned long m_congestions;
7159 ProvingEmergency = 3,
7161 ProcessorOutage = 5,
7162 ProcessorRecovered = 6,
7179 enum M2PAOperations {
7180 Pause = SS7Layer2::Pause,
7182 Resume = SS7Layer2::Resume,
7184 Align = SS7Layer2::Align,
7186 Status = SS7Layer2::Status,
7188 TransRestart = 0x500
7234 {
return control((M2PAOperations)oper,params); }
7330 {
return (nr == 0xffffff) ? (nr = 0) : nr++; }
7338 {
return (nr == 0xffffff) ? 0 : nr + 1; }
7370 virtual bool processMSG(
unsigned char msgVersion,
unsigned char msgClass,
7371 unsigned char msgType,
const DataBlock& msg,
int streamId);
7386 void dumpMsg(u_int8_t version, u_int8_t mClass, u_int8_t type,
7387 const DataBlock& data,
int stream,
bool send);
7388 void setLocalStatus(
unsigned int status);
7389 void setRemoteStatus(
unsigned int status);
7391 u_int32_t m_needToAck;
7392 u_int32_t m_lastAck;
7393 u_int32_t m_confCounter;
7394 u_int32_t m_maxUnack;
7395 u_int32_t m_maxQueueSize;
7396 unsigned int m_localStatus;
7397 unsigned int m_state;
7398 unsigned int m_remoteStatus;
7399 unsigned int m_transportState;
7400 unsigned int m_connFailCounter;
7401 unsigned int m_connFailThreshold;
7432 virtual bool processMSG(
unsigned char msgVersion,
unsigned char msgClass,
7433 unsigned char msgType,
const DataBlock& msg,
int streamId);
7444 friend class SS7M2UAClient;
7529 SS7M2UAClient* client()
const
7530 {
return static_cast<SS7M2UAClient*
>(
adaptation()); }
7531 virtual bool processMGMT(
unsigned char msgType,
const DataBlock& msg,
int streamId);
7532 virtual bool processMAUP(
unsigned char msgType,
const DataBlock& msg,
int streamId);
7533 void postRetrieve();
7712 void unqueueAck(
unsigned char bsn);
7714 void setLocalStatus(
unsigned int status);
7715 void setRemoteStatus(
unsigned int status);
7719 unsigned int m_status, m_lStatus, m_rStatus;
7721 u_int64_t m_interval;
7727 u_int64_t m_fillTime;
7731 unsigned char m_bsn, m_fsn;
7735 unsigned char m_lastFsn;
7737 unsigned char m_lastBsn;
7741 unsigned int m_errors;
7743 unsigned int m_maxErrors;
7745 unsigned int m_resendMs;
7747 unsigned int m_abortMs;
7749 unsigned int m_fillIntervalMs;
7828 virtual bool inhibit(
int sls,
int setFlags,
int clrFlags = 0);
7899 {
return m_checked; }
7906 {
return m_active; }
7913 {
return &m_links; }
7939 {
return !m_inhibit; }
7975 unsigned int m_total;
7977 unsigned int m_checked;
7979 unsigned int m_active;
7991 u_int64_t m_checkT1;
7992 u_int64_t m_checkT2;
7994 unsigned int* m_allowed[YSS7_PCTYPE_COUNT];
8084 {
return m_type & 0x0f; }
8105 const unsigned char* buf,
unsigned int len);
8119 {
return TelEngine::lookup(
type,
names(),defvalue); }
8128 {
return static_cast<Type>(TelEngine::lookup(
name,
names(),defvalue)); }
8131 unsigned char m_type;
8158 static inline const char*
lookup(
Type type,
const char* defvalue = 0)
8159 {
return TelEngine::lookup(type,names(),defvalue); }
8168 {
return static_cast<Type>(TelEngine::lookup(name,names(),defvalue)); }
8178 friend class SS7ISUPCall;
8259 EndOfParameters = 0,
8260 CallReference = 0x01,
8261 TransmissionMediumRequirement = 0x02,
8262 AccessTransport = 0x03,
8263 CalledPartyNumber = 0x04,
8264 SubsequentNumber = 0x05,
8265 NatureOfConnectionIndicators = 0x06,
8266 ForwardCallIndicators = 0x07,
8267 OptionalForwardCallIndicators = 0x08,
8268 CallingPartyCategory = 0x09,
8269 CallingPartyNumber = 0x0a,
8270 RedirectingNumber = 0x0b,
8271 RedirectionNumber = 0x0c,
8272 ConnectionRequest = 0x0d,
8273 InformationRequestIndicators = 0x0e,
8274 InformationIndicators = 0x0f,
8275 ContinuityIndicators = 0x10,
8276 BackwardCallIndicators = 0x11,
8277 CauseIndicators = 0x12,
8278 RedirectionInformation = 0x13,
8279 GroupSupervisionTypeIndicator = 0x15,
8280 RangeAndStatus = 0x16,
8281 CallModificationIndicators = 0x17,
8282 FacilityIndicator = 0x18,
8283 FacilityInformationIndicators = 0x19,
8284 CUG_InterlockCode = 0x1a,
8286 CUG_CheckResponseIndicators = 0x1c,
8287 UserServiceInformation = 0x1d,
8288 SignallingPointCode = 0x1e,
8289 UserToUserInformation = 0x20,
8290 ConnectedNumber = 0x21,
8291 SuspendResumeIndicators = 0x22,
8292 TransitNetworkSelection = 0x23,
8293 EventInformation = 0x24,
8294 CircuitAssignmentMap = 0x25,
8295 CircuitStateIndicator = 0x26,
8296 AutomaticCongestionLevel = 0x27,
8297 OriginalCalledNumber = 0x28,
8298 OptionalBackwardCallIndicators = 0x29,
8299 UserToUserIndicators = 0x2a,
8300 OriginationISCPointCode = 0x2b,
8301 GenericNotification = 0x2c,
8302 CallHistoryInformation = 0x2d,
8303 AccessDeliveryInformation = 0x2e,
8304 NetworkSpecificFacilities = 0x2f,
8305 UserServiceInformationPrime = 0x30,
8306 PropagationDelayCounter = 0x31,
8307 RemoteOperations = 0x32,
8308 ServiceActivation = 0x33,
8309 UserTeleserviceInformation = 0x34,
8310 TransmissionMediumUsed = 0x35,
8311 CallDiversionInformation = 0x36,
8312 EchoControlInformation = 0x37,
8313 MessageCompatInformation = 0x38,
8314 ParameterCompatInformation = 0x39,
8315 MLPP_Precedence = 0x3a,
8316 Precedence = MLPP_Precedence,
8317 MCID_RequestIndicator = 0x3b,
8318 MCID_ResponseIndicator = 0x3c,
8320 TransMediumRequirementPrime = 0x3e,
8321 LocationNumber = 0x3f,
8322 RedirectionNumberRestriction = 0x40,
8323 FreephoneIndicators = 0x41,
8324 GenericReference = 0x42,
8325 CCSScallIndication = 0x4b,
8327 BackwardGVNS = 0x4d,
8328 RedirectCapability = 0x4e,
8329 CalledINNumber = 0x6f,
8330 UID_ActionIndicators = 0x74,
8331 UID_CapabilityIndicators = 0x75,
8332 RedirectCounter = 0x77,
8333 ApplicationTransport = 0x78,
8334 CCNRpossibleIndicator = 0x7a,
8335 PivotRoutingIndicators = 0x7c,
8336 CalledDirectoryNumber = 0x7d,
8337 OriginalCalledINNumber = 0x7f,
8338 CallingGeodeticLocation = 0x81,
8339 HTR_Information = 0x82,
8340 NetworkRoutingNumber = 0x84,
8341 QueryOnReleaseCapability = 0x85,
8343 PivotCounter = 0x87,
8344 PivotRoutingForwardInformation = 0x88,
8345 PivotRoutingBackInformation = 0x89,
8346 RedirectStatus = 0x8a,
8347 RedirectForwardInformation = 0x8b,
8348 RedirectBackwardInformation = 0x8c,
8349 NumberPortabilityInformation = 0x8d,
8350 GenericNumber = 0xc0,
8351 GenericAddress = GenericNumber,
8352 GenericDigits = 0xc1,
8353 OperatorServicesInformation = 0xc2,
8355 Jurisdiction = 0xc4,
8356 CarrierIdentification = 0xc5,
8357 BusinessGroup = 0xc6,
8359 NotificationIndicator = 0xe1,
8360 TransactionRequest = 0xe3,
8361 CircuitGroupCharactIndicator = 0xe5,
8362 CircuitValidationRespIndicator = 0xe6,
8363 OutgoingTrunkGroupNumber = 0xe7,
8364 CircuitIdentificationName = 0xe8,
8365 CommonLanguage = 0xe9,
8366 OriginatingLineInformation = 0xea,
8367 ChargeNumber = 0xeb,
8368 ServiceCodeIndicator = 0xec,
8369 SpecialProcessingRequest = 0xed,
8370 CarrierSelectionInformation = 0xee,
8371 NetworkTransport = 0xef,
8372 NationalForwardCallIndicatorsLinkByLink = 0xf4,
8373 NationalInformationIndicators = 0xf5,
8374 NationalInformationRequestIndicators = 0xf6,
8375 CalledSubscribersTerminatingFacilMarks = 0xf7,
8376 CallingSubscribersOriginatingFacilMarks = 0xf8,
8377 CallingSubscribersBasicServiceMarks = 0xf9,
8378 CalledSubscribersBasicServiceMarks = 0xfa,
8380 LastDivertingLineIdentity = 0xfc,
8381 PresentationNumber = 0xfd,
8382 NationalForwardCallIndicators = 0xfe,
8411 inline unsigned int cic()
const
8423 const void* raw = 0,
unsigned int rawLen = 0)
const;
8438 {
return TelEngine::lookup(
type,
names(),defvalue); }
8447 {
return static_cast<Type>(TelEngine::lookup(
name,
names(),defvalue)); }
8525 u_int64_t interval, u_int64_t global = 0,
bool force =
false,
const Time& when =
Time());
8526 bool timeout(
const SS7MSU& msu,
const SS7Label& label,
int txSls,
bool final);
8548 Mutex(true,
"SS7Testing"),
8549 m_timer(0), m_exp(0), m_seq(0), m_len(16), m_sharing(false)
8593 void setParams(
const NamedList& params,
bool setSeq =
false);
8608 friend class SS7ISUP;
8643 {
return m_state <= Setup && !m_testCall; }
8650 {
return m_cicRange; }
8656 inline unsigned int id()
const
8657 {
return m_circuit ? m_circuit->code() : 0; }
8682 const char* diagnostic = 0,
const char* location = 0)
8686 m_gracefully = gracefully;
8687 setReason(reason,0,diagnostic,location);
8711 int sls = -1,
const char* range = 0,
bool testCall =
false);
8724 bool timeout =
false);
8764 void setReason(
const char* reason,
SignallingMessage* msg,
const char* diagnostic = 0,
8765 const char* location = 0);
8767 bool validMsgState(
bool send,
SS7MsgISUP::Type type,
bool hasBkwCallInd =
false);
8769 bool connectCircuit(
const char* special = 0);
8773 bool transmitSAM(
const char* extra = 0);
8775 bool transmitREL(
const NamedList* params = 0);
8785 inline bool transmitMessage(
SS7MsgISUP* msg);
8787 inline SS7ISUP* isup()
const;
8789 void setOverlapped(
bool on,
bool numberComplete =
true);
8798 bool m_circuitChanged;
8799 bool m_circuitTesting;
8800 bool m_inbandAvailable;
8801 int m_replaceCounter;
8811 unsigned int m_sentSamDigits;
8827 friend class SS7ISUPCall;
8839 enum ChargeProcess {
8889 {
return m_format; }
8896 {
return m_ignoreUnkDigits; }
8929 {
return !m_remotePoint || (pc == *m_remotePoint); }
8939 unsigned char sls = 255)
8940 { label.
assign(m_type,dpc,opc,sls); }
8947 inline void setDebug(
bool printMsg,
bool extendedDebug)
8948 { m_extendedDebug = ((m_printMsg = printMsg) && extendedDebug); }
8988 virtual void cleanup(
const char* reason =
"net-out-of-order");
9007 const unsigned char* paramPtr,
unsigned int paramLen);
9020 const NamedList& params,
unsigned int* cic = 0);
9038 {
return m_chargeProcessType; }
9093 const unsigned char* paramPtr,
unsigned int paramLen,
9115 SignallingCall*
call = 0);
9146 bool resetCircuit(
unsigned int cic,
bool remote,
bool checkCall);
9149 bool blockCircuit(
unsigned int cic,
bool block,
bool remote,
bool hwFail,
9150 bool changed,
bool changedState,
bool resetLocking =
false);
9153 SS7ISUPCall* findCall(
unsigned int cic);
9158 call = findCall(cic);
9162 const SS7Label& label,
unsigned int cic,
const String& param)
const;
9166 bool sendLocalLock(
const Time& when =
Time());
9170 bool setLabel(
SS7Label& label,
unsigned int cic);
9173 bool remove =
false);
9176 const String& param,
const String& value,
bool remove =
false);
9178 bool transmitMessages(
ObjList& list);
9180 bool handleCicBlockCommand(
const NamedList& p,
bool block);
9182 bool handleCicBlockRemoteCommand(
const NamedList& p,
unsigned int* cics,
9183 unsigned int count,
bool block);
9185 bool handleCicEventCommand(
const NamedList& p);
9192 void replaceCircuit(
unsigned int cic,
const String& map,
bool rel =
true);
9195 void cicHwBlocked(
unsigned int cic,
const String& map);
9201 unsigned char m_sls;
9205 unsigned int m_maxCalledDigits;
9208 String m_numPresentation;
9214 bool m_dropOnUnknown;
9215 bool m_ignoreGRSSingle;
9216 bool m_ignoreCGBSingle;
9217 bool m_ignoreCGUSingle;
9218 bool m_duplicateCGB;
9219 bool m_ignoreUnkDigits;
9221 ChargeProcess m_chargeProcessType;
9222 u_int64_t m_t1Interval;
9223 u_int64_t m_t5Interval;
9224 u_int64_t m_t7Interval;
9225 u_int64_t m_t9Interval;
9226 u_int64_t m_t12Interval;
9227 u_int64_t m_t13Interval;
9228 u_int64_t m_t14Interval;
9229 u_int64_t m_t15Interval;
9230 u_int64_t m_t16Interval;
9231 u_int64_t m_t17Interval;
9232 u_int64_t m_t18Interval;
9233 u_int64_t m_t19Interval;
9234 u_int64_t m_t20Interval;
9235 u_int64_t m_t21Interval;
9236 u_int64_t m_t27Interval;
9237 u_int64_t m_t34Interval;
9241 bool m_userPartAvail;
9243 unsigned int m_uptCicCode;
9245 int m_replaceCounter;
9249 u_int32_t m_rscInterval;
9250 u_int32_t m_rscSpeedup;
9256 bool m_extendedDebug;
9320 friend class SS7SCCP;
9321 friend class SccpLocalSubsystem;
9336 enum LocalBroadcast {
9341 SccpRemoteInaccessible,
9342 SccpRemoteAccessible,
9348 Allowed = SS7Route::Allowed,
9349 Prohibited = SS7Route::Prohibited,
9350 Unknown = SS7Route::Unknown,
9473 static const char*
stateName(SCCPManagement::SccpStates state)
9474 {
return lookup(state,s_states); }
9484 inline SS7SCCP* sccp()
9498 {
return m_testTimeout; }
9542 {
Lock lock(
this); m_statusTest.clear(); }
9567 int rl = -1,
int ssn = -1,
int ss = -1);
9600 {
return m_printMessages; }
9633 {
return m_coordTimeout; }
9640 {
return m_ignoreStatusTestsInterval; }
9643 void putValue(
NamedList& params,
int val,
const char* name,
bool dict =
false);
9647 unsigned int m_subsystemFailure;
9648 unsigned int m_routeFailure;
9649 u_int32_t m_testTimeout;
9650 u_int32_t m_coordTimeout;
9651 u_int32_t m_ignoreStatusTestsInterval;
9653 bool m_printMessages;
9654 static const TokenDict s_broadcastType[];
9690 EndOfParameters = 0,
9691 DestinationLocalReference = 0x01,
9692 SourceLocalReference = 0x02,
9693 CalledPartyAddress = 0x03,
9694 CallingPartyAddress = 0x04,
9695 ProtocolClass = 0x05,
9697 ReceiveSequenceNumber = 0x07,
9700 ReleaseCause = 0x0a,
9704 RefusalCause = 0x0e,
9706 Segmentation = 0x10,
9710 MessageTypeInterworking = 0xf8,
9751 {
return m_type == LUDT || m_type == LUDTS; }
9760 {
return !(
params().getParam(YSTRING(
"Importance")) ||
9761 params().getParam(YSTRING(
"HopCounter"))); }
9772 const void* raw = 0,
unsigned int rawLen = 0)
const;
9787 {
return TelEngine::lookup(
type,
names(),defvalue); }
9796 {
return static_cast<Type>(TelEngine::lookup(
name,
names(),defvalue)); }
9878 {
return m_timeout > 0 ?
Time::msecNow() > m_timeout :
false; }
9885 {
return m_remainingSegments == 0; }
9889 u_int32_t m_segmentationLocalReference;
9890 u_int64_t m_timeout;
9891 unsigned char m_remainingSegments;
9892 unsigned int m_firstSgmDataLen;
9905 inline SccpSubsystem(
int ssn, SCCPManagement::SccpStates state = SCCPManagement::Allowed,
unsigned char smi = 0)
9906 : m_ssn(ssn), m_smi(smi), m_state(state)
9931 { m_state = state; }
9946 dest <<
"Subsystem: " << m_ssn <<
" , smi: " << m_smi;
9950 unsigned char m_ssn;
9951 unsigned char m_smi;
9952 SCCPManagement::SccpStates m_state;
9967 : m_ssn(ssn), m_pointcode(pointcode), m_waitForGrant(wfg)
9979 inline bool equals(
unsigned char ssn,
int pointcode)
9980 {
return m_pointcode == pointcode && m_ssn == ssn; }
9986 { m_waitForGrant =
false; }
9993 {
return m_waitForGrant; }
9996 unsigned char m_ssn;
9998 bool m_waitForGrant;
10012 SccpLocalSubsystem(
unsigned char ssn, u_int64_t coordInterval, u_int64_t istInterval,
unsigned char smi = 0);
10031 { m_state = newState; }
10038 {
return m_state; }
10044 { m_coordTimer.start(); }
10050 {
return m_ignoreTestsTimer.started(); }
10074 { m_coordTimer.stop(); }
10101 { m_coordTimer.stop(); m_ignoreTestsTimer.stop(); }
10118 m_backups.append(backup);
10121 unsigned char m_ssn;
10122 unsigned char m_smi;
10123 SCCPManagement::SccpStates m_state;
10127 bool m_receivedAll;
10169 {
return m_state; }
10189 {
return m_pointcode; }
10196 {
return m_pointcode.pack(m_pointcodeType); }
10225 {
return m_subsystems; }
10232 { m_congestionLevel = cl; }
10238 { m_congestionLevel = 0; }
10245 {
return m_congestionLevel; }
10250 SCCPManagement::SccpStates m_state;
10251 unsigned int m_congestionLevel;
10378 : m_length(length), m_index(index)
10393 { temp.
assign(orig.
data(m_index,m_length),m_length,
false); }
10396 unsigned int m_length;
10397 unsigned int m_index;
10407 friend class SCCPManagement;
10409 enum ReturnCauses {
10410 NoTranslationAddressNature = 0x00,
10411 NoTranslationSpecificAddress = 0x01,
10412 SubsystemCongestion = 0x02,
10413 SubsystemFailure = 0x03,
10414 UnequippedUser = 0x04,
10416 NetworkCongestion = 0x06,
10417 Unqualified = 0x07,
10418 ErrorInMessageTransport = 0x08,
10419 ErrorInLocalProcessing = 0x09,
10420 DestinationCanNotPerformReassembly = 0x0a,
10421 SccpFailure = 0x0b,
10422 HopCounterViolation = 0x0c,
10423 SegmentationNotSupported = 0x0d,
10424 SegmentationFailure = 0x0e,
10426 MessageChangeFailure = 0xf7,
10427 InvalidINSRoutingRequest = 0xf8,
10428 InvalidISNIRoutingRequest = 0xf9,
10429 UnauthorizedMessage = 0xfa,
10430 MessageIncompatibility = 0xfb,
10431 NotSupportedISNIRouting = 0xfc,
10432 RedundantISNIConstrainedRouting = 0xfd,
10433 ISNIIdentificationFailed = 0xfe,
10439 EnableExtendedMonitoring = 0x03,
10440 DisableExtendedMonitoring = 0x04,
10441 EnablePrintMsg = 0x05,
10442 DisablePrintMsg = 0x06,
10529 {
return m_type == SS7PointCode::ITU; }
10536 {
return m_ignoreUnkDigits; }
10557 {
return m_totalSent; }
10564 {
return m_totalReceived; }
10571 {
return m_errors; }
10578 {
return m_totalGTTranslations; }
10585 {
return m_localPointCode; }
10599 {
return m_localPointCode ? m_localPointCode->pack(m_type) : 0; }
10606 {
return m_layer3Up; }
10620 {
return m_extendedMonitoring; }
10642 {
return m_endpoint; }
10652 unsigned int getAddressLength(
const NamedList& params,
const String& prefix);
10657 unsigned int& udtLength,
unsigned int& xudtLength,
unsigned int& ludtLength);
10660 ObjList* getDataSegments(
unsigned int dataLength,
unsigned int maxSegmentSize);
10665 int getPointCode(
SS7MsgSCCP* msg,
const String& prefix,
const char* pCode,
bool translate);
10667 int sendSCCPMessage(
SS7MsgSCCP* sccpMsg,
int dpc,
int opc,
bool local);
10669 inline bool isSCLCMessage(
int msgType)
10670 {
return msgType == SS7MsgSCCP::UDT || msgType == SS7MsgSCCP::XUDT || msgType == SS7MsgSCCP::LUDT; }
10672 inline bool isSCLCSMessage(
int msgType)
10673 {
return msgType == SS7MsgSCCP::UDTS || msgType == SS7MsgSCCP::XUDTS || msgType == SS7MsgSCCP::LUDTS; }
10674 bool isSCOCMsg(
int msgType);
10676 bool fillLabelAndReason(String& dest,
const SS7Label& label,
const SS7MsgSCCP* msg);
10677 inline bool unknownPointCodeType()
10678 {
return m_type != SS7PointCode::ITU && m_type != SS7PointCode::ANSI && m_type != SS7PointCode::ANSI8; }
10680 int checkImportanceLevel(
int msgType,
int initialImportance);
10682 void checkSCLCOptParams(SS7MsgSCCP* msg);
10684 void archiveMessage(SS7MsgSCCP* msg);
10686 void dumpArchive(String& msg,
bool extended);
10689 unsigned int paramLen,
const SS7Label& label, SS7Layer3* network,
int sls);
10692 const unsigned char* paramPtr,
unsigned int paramLen);
10694 void returnMessage(SS7MsgSCCP* message,
int error);
10696 static void switchAddresses(
const NamedList& source, NamedList& dest);
10698 void printStatus(
bool extended);
10699 void setNetworkUp(
bool operational);
10701 SS7MSU* buildMSU(SS7MsgSCCP* msg,
const SS7Label& label,
bool checkLength =
true)
const;
10702 bool routeSCLCMessage(SS7MsgSCCP*& msg,
const SS7Label& label);
10705 SS7PointCode* m_localPointCode;
10706 SCCPManagement* m_management;
10707 ObjList m_reassembleList;
10708 u_int8_t m_hopCounter;
10709 NamedList m_msgReturnStatus;
10710 u_int32_t m_segTimeout;
10711 bool m_ignoreUnkDigits;
10713 unsigned int m_maxUdtLength;
10714 u_int32_t m_totalSent;
10715 u_int32_t m_totalReceived;
10716 u_int32_t m_errors;
10717 u_int32_t m_totalGTTranslations;
10718 u_int32_t m_gttFailed;
10719 bool m_extendedMonitoring;
10720 const char* m_mgmName;
10723 bool m_extendedDebug;
10751 : m_msgParams(params), m_msgData(data), m_notice(notice)
10759 {
return m_msgParams; }
10766 {
return m_msgData; }
10773 {
return m_notice; }
10808 TC_InvokeNotLast = 7,
10809 TC_ResultNotLast = 8,
10812 TC_TimerReset = 11,
10820 TC_Unidirectional = 1,
10823 TC_QueryWithoutPerm,
10825 TC_ConversationWithPerm,
10826 TC_ConversationWithoutPerm,
10838 SuccessOrFailureReport = 1,
10839 FailureOnlyReport = 2,
10840 SuccessOnlyReport = 3,
10934 {
return m_tcapType; }
10941 { m_tcapType = type; }
10996 bool initLocal =
true) = 0;
11067 switch (counterType) {
11074 case DiscardedMsgs:
11095 switch (counterType) {
11100 case DiscardedMsgs:
11101 return m_discardMsgs;
11103 return m_normalMsgs;
11105 return m_abnormalMsgs;
11147 bool sendSCCPNotify(
NamedList& params);
11154 Mutex m_inQueueMtx;
11156 unsigned int m_SSN;
11157 unsigned int m_defaultRemoteSSN;
11158 unsigned int m_defaultHopCounter;
11161 u_int64_t m_trTimeout;
11164 Mutex m_transactionsMtx;
11167 TCAPType m_tcapType;
11170 u_int32_t m_idsPool;
11173 unsigned int m_recvMsgs;
11174 unsigned int m_sentMsgs;
11175 unsigned int m_discardMsgs;
11176 unsigned int m_normalMsgs;
11177 unsigned int m_abnormalMsgs;
11180 SCCPManagement::LocalBroadcast m_ssnStatus;
11188 Transact_UnrecognizedPackageType,
11189 Transact_IncorrectTransactionPortion,
11190 Transact_BadlyStructuredTransaction,
11191 Transact_UnassignedTransactionID,
11192 Transact_PermissionToReleaseProblem,
11193 Transact_ResourceUnavailable,
11196 Dialog_UnrecognizedDialoguePortionID,
11197 Dialog_BadlyStructuredDialoguePortion,
11198 Dialog_MissingDialoguePortion,
11199 Dialog_InconsistentDialoguePortion,
11203 General_UnrecognizedComponentType,
11204 General_IncorrectComponentPortion,
11205 General_BadlyStructuredCompPortion,
11206 General_IncorrectComponentCoding,
11209 Invoke_DuplicateInvokeID,
11210 Invoke_UnrecognizedOperationCode,
11211 Invoke_IncorrectParameter,
11212 Invoke_UnrecognizedCorrelationID,
11213 Invoke_ResourceLimitation,
11214 Invoke_InitiatingRelease,
11215 Invoke_LinkedResponseUnexpected,
11216 Invoke_UnexpectedLinkedOperation,
11219 Result_UnrecognizedInvokeID,
11220 Result_UnrecognisedCorrelationID,
11221 Result_UnexpectedReturnResult,
11222 Result_IncorrectParameter,
11225 Error_UnrecognizedInvokeID,
11226 Error_UnrecognisedCorrelationID,
11227 Error_UnexpectedReturnError,
11228 Error_UnrecognisedError,
11229 Error_UnexpectedError,
11230 Error_IncorrectParameter,
11259 {
return m_error; }
11266 { m_error =
error; }
11313 enum TransactionState {
11316 PackageReceived = 2,
11320 enum TransactionTransmit {
11322 PendingTransmit = 256,
11336 u_int64_t timeout,
bool initLocal =
true);
11415 {
Lock l(
this); m_type = type; }
11434 m_transmit = PendingTransmit;
11442 {
return m_state; }
11455 {
return m_transmit; }
11469 {
return m_localID; }
11476 { m_userName = name; }
11483 {
return m_userName; }
11490 {
return m_basicEnd; }
11504 {
return m_endNow; }
11518 {
return m_timeout.timeout(); }
11577 TransactionState m_state;
11578 TransactionTransmit m_transmit;
11674 { m_id = invokeID; }
11688 {
return m_corrID; }
11695 {
return m_opTimer.timeout(); }
11708 {
return m_state; }
11722 {
return m_opClass; }
11751 TransactionIDTag = 0xc7,
11753 UserAbortPTag = 0xd8 ,
11754 UserAbortCTag = 0xf8,
11757 enum TCAPDialogTags {
11758 DialogPortionTag = 0xf9,
11759 ProtocolVersionTag = 0xda,
11760 IntApplicationContextTag = 0xdb,
11761 OIDApplicationContextTag = 0xdc,
11762 UserInformationTag = 0xfd,
11763 IntSecurityContextTag = 0x80,
11764 OIDSecurityContextTag = 0x81,
11765 ConfidentialityTag = 0xa2,
11768 enum UserInfoTags {
11769 DirectReferenceTag = 0x06,
11770 DataDescriptorTag = 0x07,
11771 ExternalTag = 0x28,
11772 SingleASNTypePEncTag = 0x80,
11773 SingleASNTypeCEncTag = 0xa0,
11774 OctetAlignEncTag = 0x81,
11775 ArbitraryEncTag = 0x82,
11778 enum ConfidentialityTags {
11779 IntConfidentialContextTag = 0x80,
11780 OIDConfidentialContextTag = 0x81,
11783 enum TCAPComponentTags {
11784 ComponentPortionTag = 0xe8,
11785 ComponentsIDsTag = 0xcf,
11786 OperationNationalTag = 0xd0,
11787 OperationPrivateTag = 0xd1,
11788 ErrorNationalTag = 0xd3,
11789 ErrorPrivateTag = 0xd4,
11790 ProblemCodeTag = 0xd5,
11791 ParameterSetTag = 0xf2,
11792 ParameterSeqTag = 0x30,
11815 bool initLocal =
true);
11829 enum TCAPANSIComponentType {
11833 ReturnResultLast = 0xea,
11834 ReturnError = 0xeb,
11836 InvokeNotLast = 0xed,
11837 ReturnResultNotLast = 0xee,
11840 enum ANSITransactionType {
11842 Unidirectional = 0xe1,
11843 QueryWithPermission = 0xe2,
11844 QueryWithoutPermission = 0xe3,
11846 ConversationWithPermission = 0xe5,
11847 ConversationWithoutPermission = 0xe6,
11861 u_int64_t timeout,
bool initLocal =
true);
11950 OriginatingIDTag = 0x48,
11951 DestinationIDTag = 0x49,
11955 enum TCAPDialogTags {
11956 DialogPortionTag = 0x6b,
11957 ProtocolVersionTag = 0x80,
11958 ApplicationContextTag = 0xa1,
11959 UserInformationTag = 0xbe,
11962 enum UserInfoTags {
11963 DirectReferenceTag = 0x06,
11964 DataDescriptorTag = 0x07,
11965 ExternalTag = 0x28,
11966 SingleASNTypePEncTag = 0x80,
11967 SingleASNTypeCEncTag = 0xa0,
11968 OctetAlignEncTag = 0x81,
11969 ArbitraryEncTag = 0x82,
11972 enum TCAPComponentTags {
11973 ComponentPortionTag = 0x6c,
11975 LinkedIDTag = 0x80,
11977 ParameterSeqTag = 0x30,
11978 ParameterSetTag = 0x31,
12001 bool initLocal =
true);
12015 enum ITUComponentType {
12019 ReturnResultLast = 0xa2,
12020 ReturnError = 0xa3,
12022 ReturnResultNotLast = 0xa7,
12025 enum ITUTransactionType {
12027 Unidirectional = 0x61,
12034 enum ITUDialogTags {
12035 AARQDialogTag = 0x60,
12036 AAREDialogTag = 0x61,
12037 ABRTDialogTag = 0x64,
12038 ResultDiagnosticUserTag = 0xa1,
12039 ResultDiagnosticProviderTag = 0xa2,
12041 ResultDiagnosticTag = 0xa3,
12044 enum ITUDialogValues {
12045 ResultAccepted = 0,
12046 ResultRejected = 1,
12047 DiagnosticUserNull = 0x10,
12048 DiagnosticUserNoReason = 0x11,
12049 DiagnosticUserAppCtxtNotSupported = 0x12,
12050 DiagnosticProviderNull = 0x20,
12051 DiagnosticProviderNoReason = 0x21,
12052 DiagnosticProviderNoCommonDialog = 0x22,
12053 AbortSourceUser = 0x30,
12054 AbortSourceProvider = 0x31,
12067 u_int64_t timeout,
bool initLocal =
true);
12126 {
return !(m_appCtxt.null()); }
12196 friend class ISDNQ921Management;
12217 {
return m_layer3; }
12224 {
return m_state; }
12231 {
return m_network; }
12238 {
return m_detectType; }
12259 {
return m_maxUserData; }
12266 {
return m_teiAssigned; }
12273 {
return m_autoRestart; }
12280 {
return m_lastUp ? (
Time::secNow() - m_lastUp) : 0; }
12325 {
return lookup((
int)s,m_states); }
12342 {
return m_layerMutex; }
12416 { m_autoRestart = restart; }
12434 Mutex m_layerMutex;
12435 Mutex m_layer3Mutex;
12442 u_int32_t m_lastUp;
12444 bool m_teiAssigned;
12445 bool m_autoRestart;
12446 u_int32_t m_maxUserData;
12447 unsigned int m_teiRefNumber;
12530 m_layerMutex(true,
"ISDNLayer3::layer")
12538 {
return m_layerMutex; }
12541 Mutex m_layerMutex;
12550 friend class ISDNQ921;
12551 friend class ISDNQ921Management;
12570 ErrUnknownCR = 101,
12571 ErrHdrLength = 102,
12572 ErrDataLength = 103,
12575 ErrInvalidEA = 106,
12576 ErrInvalidAddress = 107,
12577 ErrUnsupported = 108,
12578 ErrInvalidCR = 109,
12621 {
return m_error; }
12628 {
return m_category; }
12635 {
return m_command; }
12677 {
return m_headerLength; }
12684 {
return m_dataLength; }
12691 {
return m_buffer; }
12704 { m_sent = value; }
12725 { dest.
assign((u_int8_t*)m_buffer.data() + m_headerLength,m_dataLength); }
12753 {
return static_cast<u_int8_t
>(data.
at(3,0)); }
12761 {
return static_cast<u_int8_t
>(data.
at(4,0) >> 1); }
12790 {
return network; }
12799 {
return !network; }
12808 {
return cr ? sentByNetwork : !sentByNetwork; }
12845 u_int8_t
sapi, u_int8_t
tei,
bool pf, u_int8_t
nr = 0);
12868 bool m_senderNetwork;
12876 u_int8_t m_headerLength;
12877 u_int32_t m_dataLength;
12890 friend class ISDNQ921Management;
12900 ISDNQ921(
const NamedList& params,
const char* name = 0, ISDNQ921Management* mgmt = 0, u_int8_t tei = 0);
12919 {
return m_retransTimer.interval() * m_n200.maxVal(); }
12949 {
return sendUFrame(ISDNFrame::SABME,
true,
true); }
12964 { m_extendedDebug = ((m_printFrames = printFrames) && extendedDebug); }
13014 virtual bool control(
NamedList& params)
13018 bool ackOutgoingFrames(
const ISDNFrame* frame);
13022 bool processDataFrame(
const ISDNFrame* frame,
bool ack);
13025 bool processSFrame(
const ISDNFrame* frame);
13031 bool processUFrame(
const ISDNFrame* frame, State& newState,
13032 bool& confirmation);
13037 bool acceptFrame(
ISDNFrame* frame,
bool& reject);
13039 void rejectFrame(
const ISDNFrame* frame,
const char* reason = 0);
13041 void dropFrame(
const ISDNFrame* frame,
const char* reason = 0);
13044 bool retrans =
false);
13050 bool sendFrame(
const ISDNFrame* frame);
13055 bool sendOutgoingData(
bool retrans =
false);
13061 void timer(
bool start,
bool t203, u_int64_t time = 0);
13066 bool m_timerRecovery;
13068 bool m_pendingDMSabme;
13081 u_int32_t m_txFrames;
13082 u_int32_t m_txFailFrames;
13083 u_int32_t m_rxFrames;
13084 u_int32_t m_rxRejectedFrames;
13085 u_int32_t m_rxDroppedFrames;
13086 u_int32_t m_hwErrors;
13088 bool m_printFrames;
13089 bool m_extendedDebug;
13092 bool m_errorReceive;
13362 { m_extendedDebug = ((m_printFrames = printFrames) && extendedDebug); }
13399 virtual bool control(
NamedList& params)
13404 bool acceptFrame(
ISDNFrame* frame,
bool& cmd,
bool& value);
13406 bool dropFrame(
const ISDNFrame* frame,
const char* reason = 0);
13408 bool m_checkLinkSide;
13410 u_int8_t m_lastFrame;
13411 u_int32_t m_rxFrames;
13412 u_int32_t m_rxDroppedFrames;
13413 u_int32_t m_hwErrors;
13414 bool m_printFrames;
13415 bool m_extendedDebug;
13416 bool m_errorReceive;
13434 virtual bool processMSG(
unsigned char msgVersion,
unsigned char msgClass,
13435 unsigned char msgType,
const DataBlock& msg,
int streamId);
13446 friend class ISDNIUAClient;
13510 virtual bool processMGMT(
unsigned char msgType,
const DataBlock& msg,
int streamId);
13511 virtual bool processQPTM(
unsigned char msgType,
const DataBlock& msg,
int streamId);
13521 friend class ISDNQ931Message;
13530 SendComplete = 0xa1,
13537 CallIdentity = 0x10,
13541 NetFacility = 0x20,
13542 Notification = 0x27,
13547 ConnectedNo = 0x4c,
13549 CallingSubAddr = 0x6d,
13551 CalledSubAddr = 0x71,
13554 LoLayerCompat = 0x7c,
13555 HiLayerCompat = 0x7d,
13578 {
return (u_int8_t)m_type; }
13586 {
addParam(*
this+
"."+name,value); }
13647 ReleaseComplete = 0x5a,
13651 CongestionCtrl = 0x79,
13655 StatusEnquiry = 0x75,
13700 {
return m_initiator; }
13707 {
return m_callRef; }
13714 {
return m_callRefLen; }
13721 {
return m_dummy; }
13728 {
return m_unkMandatory; }
13734 { m_unkMandatory =
true; }
13767 const char* defVal = 0)
13770 return (ie ? ie->
getValue(param?param:ie->
c_str(),defVal) : defVal);
13795 {
return 0 != m_ie.append(ie); }
13851 {
return lookup(t,
s_type,
"Unknown"); }
13866 u_int32_t m_callRef;
13867 u_int8_t m_callRefLen;
13868 bool m_unkMandatory;
13877class YSIG_API ISDNQ931IEData
13879 friend class ISDNQ931Call;
13880 friend class ISDNQ931CallMonitor;
13881 friend class ISDNQ931;
13882 friend class ISDNQ931Monitor;
13885 ISDNQ931IEData(
bool bri =
false);
13907 String m_callerScreening;
13911 String m_transferCapability;
13920 bool m_channelMandatory;
13921 bool m_channelByNumber;
13942 CallInitiated = 0x01,
13943 OverlapSend = 0x02,
13944 OutgoingProceeding = 0x03,
13945 CallDelivered = 0x04,
13946 CallPresent = 0x06,
13947 CallReceived = 0x07,
13949 IncomingProceeding = 0x09,
13951 DisconnectReq = 0x0b,
13952 DisconnectIndication = 0x0c,
13957 OverlapRecv = 0x19,
14018 friend class ISDNQ931;
14030 {
return m_callRef; }
14037 {
return m_callRefLen; }
14051 {
return m_circuit; }
14122 bool reserveCircuit();
14156 bool sendReleaseComplete(
const char* reason = 0,
const char* diag = 0, u_int8_t tei = 0);
14159 bool sendSetupAck();
14166 void changeState(
State newState);
14168 void removeFromController();
14170 inline ISDNQ931* q931();
14173 u_int32_t m_callRef;
14174 u_int32_t m_callRefLen;
14177 bool m_circuitChange;
14178 bool m_channelIDSent;
14179 bool m_rspBearerCaps;
14180 bool m_inbandAvailable;
14184 bool m_broadcast[127];
14204 friend class ISDNQ931Monitor;
14216 {
return m_netInit; }
14269 bool reserveCircuit();
14270 void releaseCircuit();
14272 bool connectCircuit(
bool caller);
14274 void changeState(
State newState);
14276 void removeFromController();
14278 inline ISDNQ931Monitor* q931();
14280 u_int32_t m_callRef;
14285 bool m_circuitChange;
14312 {
return (0 != (m_flags & mask)); }
14315 u_int32_t m_maxMsgLen;
14318 u_int8_t m_maxDisplay;
14319 bool m_allowSegment;
14320 u_int8_t m_maxSegments;
14321 bool m_extendedDebug;
14331 friend class ISDNQ931Call;
14341 SendNonIsdnSource = 0x00000001,
14344 IgnoreNonIsdnDest = 0x00000002,
14347 ForcePresNetProv = 0x00000004,
14349 Translate31kAudio = 0x00000008,
14353 URDITransferCapsOnly = 0x00000010,
14356 NoLayer1Caps = 0x00000020,
14358 IgnoreNonLockedIE = 0x00000040,
14362 NoDisplayIE = 0x00000080,
14364 NoDisplayCharset = 0x00000100,
14366 ForceSendComplete = 0x00000200,
14370 NoActiveOnConnect = 0x00000400,
14372 CheckNotifyInd = 0x00000800,
14374 ChannelExclusive = 0x00001000,
14383 EuroIsdnE1 = ForceSendComplete|CheckNotifyInd|NoDisplayCharset|URDITransferCapsOnly,
14385 EuroIsdnT1 = ForceSendComplete|CheckNotifyInd,
14387 NationalIsdn = SendNonIsdnSource,
14389 Dms100 = ForcePresNetProv|IgnoreNonIsdnDest,
14391 Lucent5e = IgnoreNonLockedIE,
14393 Att4ess = ForcePresNetProv|IgnoreNonLockedIE|Translate31kAudio|NoLayer1Caps,
14395 QSIG = NoActiveOnConnect|NoDisplayIE|NoDisplayCharset
14437 {
return m_primaryRate; }
14444 {
return m_q921 ? m_q921->network() : m_networkHint; }
14451 {
return m_transferModeCircuit; }
14458 {
return m_parserData; }
14465 {
return m_numPlan; }
14472 {
return m_numType; }
14479 {
return m_numPresentation; }
14486 {
return m_numScreening; }
14493 {
return m_format; }
14565 const char* display = 0,
const char* diagnostic = 0)
14568 call->outgoing(),
call->state(),display,diagnostic);
14582 inline bool sendRelease(ISDNQ931Call*
call,
bool release,
const char* cause, u_int8_t tei = 0,
14583 const char* diag = 0,
const char* display = 0,
const char* signal = 0)
14586 call->outgoing(),cause,diag,display,signal);
14615 { m_parserData.m_extendedDebug = m_extendedDebug =
14616 ((m_printMsg = printMsg) && extendedDebug); }
14634 TelEngine::destruct(
attach(0));
14653 ISDNQ931Call*
findCall(u_int32_t callRef,
bool outgoing, u_int8_t tei = 0);
14744 bool sendStatus(
const char* cause, u_int8_t callRefLen, u_int32_t callRef = 0,
14745 u_int8_t tei = 0,
bool initiator =
false,
ISDNQ931Call::State state = ISDNQ931Call::Null,
14746 const char* display = 0,
const char* diagnostic = 0);
14761 bool sendRelease(
bool release, u_int8_t callRefLen, u_int32_t callRef, u_int8_t tei,
14762 bool initiator,
const char* cause = 0,
const char* diag = 0,
14763 const char* display = 0,
const char* signal = 0);
14766 virtual bool control(
NamedList& params)
14768 bool q921Up()
const;
14772 bool m_networkHint;
14773 bool m_primaryRate;
14774 bool m_transferModeCircuit;
14775 u_int32_t m_callRef;
14776 u_int8_t m_callRefLen;
14777 u_int32_t m_callRefMask;
14791 String m_numPresentation;
14797 unsigned int m_lastRestart;
14802 u_int8_t m_remaining;
14805 bool m_extendedDebug;
14807 bool m_flagQ921Down;
14808 bool m_flagQ921Invalid;
14818 friend class ISDNQ931CallMonitor;
14897 {
return net ? m_q921Net : m_q921Cpe; }
14905 { m_parserData.m_extendedDebug = m_extendedDebug =
14906 ((m_printMsg = printMsg) && extendedDebug); }
14977 ISDNQ931CallMonitor* findMonitor(
unsigned int value,
bool byCallRef);
14989 bool m_extendedDebug;
Abstract SS7 ASP user interface.
Definition yatesig.h:5158
A single analog line related event.
Definition yatesig.h:3328
AnalogLineEvent(AnalogLine *line, SignallingCircuitEvent *event)
Definition yatesig.h:3335
virtual ~AnalogLineEvent()
Definition yatesig.h:3342
virtual void destruct()
Definition yatesig.h:3365
SignallingCircuitEvent * event()
Definition yatesig.h:3359
AnalogLine * line()
Definition yatesig.h:3352
AnalogLineGroup(const char *name, AnalogLineGroup *fxo)
bool appendLine(AnalogLine *line, bool destructOnFail=true)
ObjList & lines()
Definition yatesig.h:3418
bool slave()
Definition yatesig.h:3432
virtual ~AnalogLineGroup()
virtual AnalogLineEvent * getEvent(const Time &when)
void removeLine(AnalogLine *line)
AnalogLine * findLine(unsigned int cic)
AnalogLineGroup(AnalogLine::Type type, const char *name, bool slave=false)
ObjList m_lines
Definition yatesig.h:3485
void removeLine(unsigned int cic)
AnalogLineGroup * fxo()
Definition yatesig.h:3425
AnalogLine::Type type() const
Definition yatesig.h:3411
AnalogLine * findLine(const String &address)
An analog line.
Definition yatesig.h:2982
u_int64_t delayDial() const
Definition yatesig.h:3143
void * userdata() const
Definition yatesig.h:3157
bool resetCircuit()
Definition yatesig.h:3190
virtual void checkTimeouts(const Time &when)
Definition yatesig.h:3258
u_int64_t noRingTimeout() const
Definition yatesig.h:3129
Type
Definition yatesig.h:2989
bool sendEvent(SignallingCircuitEvent::Type type, NamedList *params=0)
void resetEcho(bool train)
bool answerOnPolarity() const
Definition yatesig.h:3094
bool changeState(State newState, bool sync=false)
bool sendEvent(SignallingCircuitEvent::Type type, State newState, NamedList *params=0)
Definition yatesig.h:3231
void userdata(void *data, bool sync=true)
Definition yatesig.h:3165
AnalogLine(AnalogLineGroup *grp, unsigned int cic, const NamedList ¶ms)
void acceptPulseDigit(bool ok)
Definition yatesig.h:3150
bool setCircuitParam(const char *param, const char *value=0)
Definition yatesig.h:3199
AnalogLineGroup * group()
Definition yatesig.h:3052
virtual AnalogLineEvent * getEvent(const Time &when)
State
Definition yatesig.h:3000
SignallingCircuit * circuit()
Definition yatesig.h:3073
u_int64_t callSetupTimeout() const
Definition yatesig.h:3122
void setPeer(AnalogLine *line=0, bool sync=true)
bool disconnect(bool sync)
bool enable(bool ok, bool sync, bool connectNow=true)
const char * address() const
Definition yatesig.h:3080
virtual AnalogLineEvent * getMonitorEvent(const Time &when)
virtual const String & toString() const
Definition yatesig.h:3177
bool polarityControl() const
Definition yatesig.h:3108
bool hangupOnPolarity() const
Definition yatesig.h:3101
State state() const
Definition yatesig.h:3045
CallSetupInfo
Definition yatesig.h:3014
u_int64_t alarmTimeout() const
Definition yatesig.h:3136
Type type() const
Definition yatesig.h:3038
static const TokenDict * typeNames()
static const TokenDict * csNames()
AnalogLine * getPeer()
Definition yatesig.h:3059
bool outbandDtmf() const
Definition yatesig.h:3087
CallSetupInfo callSetup() const
Definition yatesig.h:3115
static const TokenDict * stateNames()
A class that holds just a block of raw data.
Definition yateclass.h:4237
int at(unsigned int offs, int defvalue=-1) const
Definition yateclass.h:4307
bool null() const
Definition yateclass.h:4314
void * data() const
Definition yateclass.h:4289
DataBlock & operator=(const DataBlock &value)
unsigned int length() const
Definition yateclass.h:4321
DataBlock & assign(void *value, unsigned int len, bool copyData=true, unsigned int allocated=0)
DataBlock(unsigned int overAlloc=0)
A holder for a debug level.
Definition yateclass.h:312
DebugEnabler(int level=TelEngine::debugLevel(), bool enabled=true)
Definition yateclass.h:319
int debugLevel() const
Definition yateclass.h:330
Abstract SS7 SCCP GTT interface.
Definition yatesig.h:5166
SCCP * sccp() const
Definition yatesig.h:5210
virtual NamedList * routeGT(const NamedList >, const String &prefix, const String &nextPrefix)
virtual bool initialize(const NamedList *config)
virtual void updateTables(const NamedList ¶ms)
Definition yatesig.h:5203
GTT(const NamedList &config)
virtual void attach(SCCP *sccp)
MSU handling result codes (Q.704 15.17.5 and more)
Definition yatesig.h:4162
bool ok() const
Definition yatesig.h:4249
HandledMSU(const HandledMSU &original)
Definition yatesig.h:4193
HandledMSU & operator=(Result result)
Definition yatesig.h:4200
bool operator==(const HandledMSU &result)
Definition yatesig.h:4221
bool operator!=(const HandledMSU &result)
Definition yatesig.h:4235
HandledMSU(Result result=Rejected)
Definition yatesig.h:4179
bool operator==(Result result)
Definition yatesig.h:4214
unsigned char upu() const
Definition yatesig.h:4256
bool operator!=(Result result)
Definition yatesig.h:4228
HandledMSU(bool success)
Definition yatesig.h:4186
HandledMSU & operator=(const HandledMSU &original)
Definition yatesig.h:4207
An ISDN frame.
Definition yatesig.h:12549
void sent(bool value)
Definition yatesig.h:12703
Type
Definition yatesig.h:12556
static u_int8_t getType(const DataBlock &data)
Definition yatesig.h:12752
Type error() const
Definition yatesig.h:12620
static bool isCommand(u_int8_t cr, bool sentByNetwork)
Definition yatesig.h:12807
ISDNFrame(Type type, bool command, bool senderNetwork, u_int8_t sapi, u_int8_t tei, bool pf, u_int8_t nr=0)
bool checkTeiManagement() const
static ISDNFrame * parse(const DataBlock &data, ISDNLayer2 *receiver)
u_int8_t sapi() const
Definition yatesig.h:12641
bool sent() const
Definition yatesig.h:12697
ISDNFrame(Type type=Invalid)
const DataBlock & buffer() const
Definition yatesig.h:12690
u_int8_t tei() const
Definition yatesig.h:12648
TeiManagement
Definition yatesig.h:12584
ISDNFrame(bool ack, bool senderNetwork, u_int8_t sapi, u_int8_t tei, bool pf, const DataBlock &data)
u_int8_t ns() const
Definition yatesig.h:12662
static bool commandBit(bool network)
Definition yatesig.h:12789
static bool buildTeiManagement(DataBlock &data, u_int8_t type, u_int16_t ri, u_int8_t ai)
Category category() const
Definition yatesig.h:12627
static bool responseBit(bool network)
Definition yatesig.h:12798
static u_int8_t getAi(const DataBlock &data)
Definition yatesig.h:12760
const char * name() const
Definition yatesig.h:12710
bool command() const
Definition yatesig.h:12634
u_int8_t headerLength() const
Definition yatesig.h:12676
Category
Definition yatesig.h:12597
u_int32_t dataLength() const
Definition yatesig.h:12683
void getData(DataBlock &dest) const
Definition yatesig.h:12724
u_int8_t nr() const
Definition yatesig.h:12669
void update(u_int8_t *ns=0, u_int8_t *nr=0)
void toString(String &dest, bool extendedDebug) const
bool poll() const
Definition yatesig.h:12655
Type type() const
Definition yatesig.h:12613
static const char * typeName(Type type)
Definition yatesig.h:12815
static u_int16_t getRi(const DataBlock &data)
static const TokenDict s_types[]
Definition yatesig.h:12821
Client side of SIGTRAN ISDN Q.921 UA.
Definition yatesig.h:13424
virtual bool processMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId)
ISDNIUAClient(const NamedList ¶ms)
Definition yatesig.h:13430
virtual bool initialize(const NamedList *config)
virtual bool sendData(const DataBlock &data, u_int8_t tei, bool ack)
int32_t iid() const
Definition yatesig.h:13504
virtual bool multipleFrame(u_int8_t tei, bool establish, bool force)
ISDNIUA(const NamedList ¶ms, const char *name=0, u_int8_t tei=0)
virtual void activeChange(bool active)
Abstract ISDN layer 2 (Q.921) message transport.
Definition yatesig.h:12194
bool detectType() const
Definition yatesig.h:12237
void teiAssigned(bool status)
u_int8_t localSapi() const
Definition yatesig.h:12244
static const char * stateName(State s)
Definition yatesig.h:12324
void changeState(State newState, const char *reason=0)
void setRi(u_int16_t ri)
Definition yatesig.h:12422
u_int32_t maxUserData() const
Definition yatesig.h:12258
bool network() const
Definition yatesig.h:12230
State
Definition yatesig.h:12201
ISDNLayer3 * layer3() const
Definition yatesig.h:12216
virtual void attach(ISDNLayer3 *layer3)
Mutex & l2Mutex()
Definition yatesig.h:12341
ISDNLayer2(const NamedList ¶ms, const char *name=0, u_int8_t tei=0)
ISDNFrame * parsePacket(const DataBlock &packet)
bool autoRestart() const
Definition yatesig.h:12272
virtual bool sendData(const DataBlock &data, u_int8_t tei, bool ack)
Definition yatesig.h:12302
void dataLinkState(u_int8_t tei, bool cmd, bool value)
void multipleFrameEstablished(u_int8_t tei, bool confirm, bool timeout)
virtual bool multipleFrame(u_int8_t tei, bool establish, bool force)
Definition yatesig.h:12291
State state() const
Definition yatesig.h:12223
u_int8_t localTei() const
Definition yatesig.h:12251
void autoRestart(bool restart)
Definition yatesig.h:12415
unsigned int upTime() const
Definition yatesig.h:12279
void receiveData(const DataBlock &data, u_int8_t tei)
bool teiAssigned() const
Definition yatesig.h:12265
void multipleFrameReleased(u_int8_t tei, bool confirm, bool timeout)
Abstract ISDN layer 3 (Q.931) message transport.
Definition yatesig.h:12456
virtual void multipleFrameEstablished(u_int8_t tei, bool confirm, bool timeout, ISDNLayer2 *layer2)
Definition yatesig.h:12468
ISDNLayer3(const char *name=0)
Definition yatesig.h:12528
virtual void dataLinkState(u_int8_t tei, bool cmd, bool value, ISDNLayer2 *layer2)
Definition yatesig.h:12494
virtual void multipleFrameReleased(u_int8_t tei, bool confirm, bool timeout, ISDNLayer2 *layer2)
Definition yatesig.h:12480
virtual void receiveData(const DataBlock &data, u_int8_t tei, ISDNLayer2 *layer2)=0
virtual void idleTimeout(ISDNLayer2 *layer2)
Definition yatesig.h:12502
Mutex & l3Mutex()
Definition yatesig.h:12537
virtual ISDNLayer2 * attach(ISDNLayer2 *layer2)
Definition yatesig.h:12519
ISDN Layer 2 BRI TEI management or PRI with D-channel(s) backup.
Definition yatesig.h:13103
virtual void multipleFrameEstablished(u_int8_t tei, bool confirm, bool timeout, ISDNLayer2 *layer2)
void processTeiCheckRequest(u_int8_t ai, bool pf)
virtual bool notify(SignallingInterface::Notification event)
bool processTeiManagement(ISDNFrame *frame)
void processTeiVerify(u_int8_t ai, bool pf)
void processTeiRequest(u_int16_t ri, u_int8_t ai, bool pf)
virtual ~ISDNQ921Management()
bool sendTeiManagement(ISDNFrame::TeiManagement type, u_int16_t ri, u_int8_t ai, u_int8_t tei=127, bool pf=false)
void processTeiAssigned(u_int16_t ri, u_int8_t ai)
virtual void dataLinkState(u_int8_t tei, bool cmd, bool value, ISDNLayer2 *layer2)
virtual void multipleFrameReleased(u_int8_t tei, bool confirm, bool timeout, ISDNLayer2 *layer2)
virtual void engine(SignallingEngine *eng)
void sendTeiReq(u_int8_t tei)
void processTeiRemove(u_int8_t ai)
virtual void receiveData(const DataBlock &data, u_int8_t tei, ISDNLayer2 *layer2)
bool sendFrame(const ISDNFrame *frame, const ISDNQ921 *q921=0)
virtual bool initialize(const NamedList *config)
virtual bool sendData(const DataBlock &data, u_int8_t tei, bool ack)
void processTeiDenied(u_int16_t ri)
virtual bool multipleFrame(u_int8_t tei, bool establish, bool force)
void processTeiCheckResponse(u_int16_t ri, u_int8_t ai)
virtual void timerTick(const Time &when)
ISDNQ921Management(const NamedList ¶ms, const char *name=0, bool net=true)
virtual bool receivedPacket(const DataBlock &packet)
Stateless pasive ISDN Q.921 implementation on top of a hardware interface.
Definition yatesig.h:13326
virtual bool notify(SignallingInterface::Notification event)
virtual void destroyed()
Definition yatesig.h:13368
void setDebug(bool printFrames, bool extendedDebug)
Definition yatesig.h:13361
virtual ~ISDNQ921Passive()
ISDNQ921Passive(const NamedList ¶ms, const char *name=0)
virtual bool initialize(const NamedList *config)
virtual void timerTick(const Time &when)
virtual bool receivedPacket(const DataBlock &packet)
ISDN Q.921 implementation on top of a hardware interface.
Definition yatesig.h:12888
bool receivedFrame(ISDNFrame *frame)
virtual bool notify(SignallingInterface::Notification event)
virtual void destroyed()
Definition yatesig.h:12970
void setDebug(bool printFrames, bool extendedDebug)
Definition yatesig.h:12963
virtual bool initialize(const NamedList *config)
virtual bool sendData(const DataBlock &data, u_int8_t tei, bool ack)
u_int64_t dataTimeout() const
Definition yatesig.h:12918
virtual bool multipleFrame(u_int8_t tei, bool establish, bool force)
virtual void timerTick(const Time &when)
bool sendSabme()
Definition yatesig.h:12948
virtual bool receivedPacket(const DataBlock &packet)
ISDNQ921(const NamedList ¶ms, const char *name=0, ISDNQ921Management *mgmt=0, u_int8_t tei=0)
SignallingEvent * releaseComplete(const char *reason=0)
virtual void * getObject(const String &name) const
virtual SignallingEvent * getEvent(const Time &when)
virtual ~ISDNQ931CallMonitor()
ISDNQ931CallMonitor(ISDNQ931Monitor *controller, u_int32_t callRef, bool netInit)
bool netInit() const
Definition yatesig.h:14215
void setTerminate(const char *reason)
A Q.931 ISDN call.
Definition yatesig.h:14017
virtual void * getObject(const String &name) const
void dataLinkState(bool up)
virtual SignallingEvent * getEvent(const Time &when)
ISDNQ931Call(ISDNQ931 *controller, bool outgoing, u_int32_t callRef, u_int8_t callRefLen, u_int8_t tei=0)
u_int8_t callTei() const
Definition yatesig.h:14043
void setTerminate(bool destroy, const char *reason)
SignallingCircuit * circuit()
Definition yatesig.h:14050
SignallingEvent * releaseComplete(const char *reason=0, const char *diag=0)
u_int32_t callRef() const
Definition yatesig.h:14029
u_int32_t callRefLen() const
Definition yatesig.h:14036
virtual bool sendEvent(SignallingEvent *event)
SignallingEvent * getCircuitEvent(const Time &when)
A Q.931 message IE data processor.
Definition yatesig.h:13878
A Q.931 ISDN Layer 3 message Information Element.
Definition yatesig.h:13520
static const TokenDict s_type[]
Definition yatesig.h:13609
Type
Definition yatesig.h:13526
DataBlock m_buffer
Definition yatesig.h:13614
void addParamPrefix(const char *name, const char *value)
Definition yatesig.h:13585
u_int8_t type() const
Definition yatesig.h:13577
ISDNQ931IE(u_int16_t type)
static const char * typeName(int type, const char *defVal=0)
Definition yatesig.h:13603
void toString(String &dest, bool extendedDebug, const char *before=0)
A Q.931 ISDN Layer 3 message.
Definition yatesig.h:13625
const char * getIEValue(ISDNQ931IE::Type type, const char *param, const char *defVal=0)
Definition yatesig.h:13766
bool append(ISDNQ931IE *ie)
Definition yatesig.h:13794
static const TokenDict s_type[]
Definition yatesig.h:13856
virtual void * getObject(const String &name) const
Type
Definition yatesig.h:13630
ISDNQ931Message(Type type)
bool initiator() const
Definition yatesig.h:13699
ISDNQ931Message(Type type, bool initiator, u_int32_t callRef, u_int8_t callRefLen)
DataBlock m_buffer
Definition yatesig.h:13861
bool dummyCallRef() const
Definition yatesig.h:13720
static ISDNQ931Message * parse(ISDNQ931ParserData &parserData, const DataBlock &buffer, DataBlock *segData)
void setUnknownMandatory()
Definition yatesig.h:13733
virtual ~ISDNQ931Message()
u_int8_t encode(ISDNQ931ParserData &parserData, ObjList &dest)
ISDNQ931IE * removeIE(ISDNQ931IE::Type type, ISDNQ931IE *base=0)
ISDNQ931IE * getIE(ISDNQ931IE::Type type, ISDNQ931IE *base=0)
ObjList * ieList()
Definition yatesig.h:13740
u_int8_t callRefLen() const
Definition yatesig.h:13713
void toString(String &dest, bool extendedDebug, const char *indent=0) const
ISDNQ931IE * appendIEValue(ISDNQ931IE::Type type, const char *param, const char *value)
Definition yatesig.h:13780
bool unknownMandatory() const
Definition yatesig.h:13727
ISDNQ931Message(Type type, ISDNQ931Call *call)
Type type() const
Definition yatesig.h:13692
static const char * typeName(int t)
Definition yatesig.h:13850
u_int32_t callRef() const
Definition yatesig.h:13706
bool appendSafe(ISDNQ931IE *ie)
virtual ~ISDNQ931Monitor()
bool reserveCircuit(unsigned int code, bool netInit, SignallingCircuit **caller, SignallingCircuit **called)
ISDNQ921Passive * circuits(bool net) const
Definition yatesig.h:14896
virtual void destroyed()
Definition yatesig.h:14928
virtual SignallingCircuitGroup * attach(SignallingCircuitGroup *circuits, bool net)
virtual void cleanup(const char *reason="offline")
Definition yatesig.h:14913
virtual void dataLinkState(u_int8_t tei, bool cmd, bool value, ISDNLayer2 *layer2)
virtual void receiveData(const DataBlock &data, u_int8_t tei, ISDNLayer2 *layer2)
virtual ISDNQ921Passive * attach(ISDNQ921Passive *q921, bool net)
virtual bool initialize(const NamedList *config)
void terminateMonitor(ISDNQ931CallMonitor *mon, const char *reason)
virtual void idleTimeout(ISDNLayer2 *layer2)
void processMsgRestart(ISDNQ931Message *msg)
void setDebug(bool printMsg, bool extendedDebug)
Definition yatesig.h:14904
virtual void timerTick(const Time &when)
bool releaseCircuit(SignallingCircuit *circuit)
ISDNQ931Monitor(const NamedList ¶ms, const char *name=0)
virtual const char * statusName() const
Q.931 message parser data.
Definition yatesig.h:14297
ISDNQ931ParserData(const NamedList ¶ms, DebugEnabler *dbg=0)
bool flag(int mask) const
Definition yatesig.h:14311
bool checkStateSend(int type)
ISDNQ931State()
Definition yatesig.h:13966
State
Definition yatesig.h:13938
bool checkStateRecv(int type, bool *retrans)
static const TokenDict s_states[]
Definition yatesig.h:13987
State m_state
Definition yatesig.h:14008
static const char * stateName(u_int8_t s)
Definition yatesig.h:13981
State state() const
Definition yatesig.h:13973
void processInvalidMsg(ISDNQ931Message *msg, u_int8_t tei=0)
virtual void multipleFrameEstablished(u_int8_t tei, bool confirm, bool timeout, ISDNLayer2 *layer2)
bool sendStatus(const char *cause, u_int8_t callRefLen, u_int32_t callRef=0, u_int8_t tei=0, bool initiator=false, ISDNQ931Call::State state=ISDNQ931Call::Null, const char *display=0, const char *diagnostic=0)
void sendRestart(u_int64_t time=Time::msecNow(), bool retrans=false)
ISDNQ931Message * endReceiveSegment(const char *reason=0)
virtual void destroyed()
Definition yatesig.h:14632
const String & numPlan() const
Definition yatesig.h:14464
void processMsgRestart(ISDNQ931Message *msg, u_int8_t tei=0)
ISDNQ931Call * findCall(unsigned int circuit)
bool transferModeCircuit() const
Definition yatesig.h:14450
static const TokenDict s_flags[]
Definition yatesig.h:14621
bool network() const
Definition yatesig.h:14443
const String & numPresentation() const
Definition yatesig.h:14478
const ISDNLayer2 * layer2() const
Definition yatesig.h:14429
virtual void cleanup(const char *reason="offline")
ISDNQ931Call * findCall(u_int32_t callRef, bool outgoing, u_int8_t tei=0)
bool sendMessage(ISDNQ931Message *msg, u_int8_t tei, String *reason=0)
virtual void multipleFrameReleased(u_int8_t tei, bool confirm, bool timeout, ISDNLayer2 *layer2)
const String & numScreening() const
Definition yatesig.h:14485
virtual void receiveData(const DataBlock &data, u_int8_t tei, ISDNLayer2 *layer2)
BehaviourFlags
Definition yatesig.h:14337
bool restart(const char *circuits)
virtual bool initialize(const NamedList *config)
bool sendStatus(ISDNQ931Call *call, const char *cause, u_int8_t tei=0, const char *display=0, const char *diagnostic=0)
Definition yatesig.h:14564
SignallingCall * call(SignallingMessage *msg, String &reason)
bool primaryRate() const
Definition yatesig.h:14436
ISDNQ931(const NamedList ¶ms, const char *name=0)
static const TokenDict s_swType[]
Definition yatesig.h:14626
void terminateCalls(ObjList *list, const char *reason)
void setDebug(bool printMsg, bool extendedDebug)
Definition yatesig.h:14614
void endRestart(bool restart, u_int64_t time, bool timeout=false)
bool acceptNewCall(bool outgoing, String &reason)
ISDNQ931ParserData & parserData()
Definition yatesig.h:14457
virtual void timerTick(const Time &when)
const String & numType() const
Definition yatesig.h:14471
ISDNQ931Message * getMsg(const DataBlock &data)
const String & format() const
Definition yatesig.h:14492
void setInterval(SignallingTimer &timer, int id)
void processGlobalMsg(ISDNQ931Message *msg, u_int8_t tei=0)
virtual ISDNLayer2 * attach(ISDNLayer2 *q921)
SwitchType
Definition yatesig.h:14380
bool sendRelease(bool release, u_int8_t callRefLen, u_int32_t callRef, u_int8_t tei, bool initiator, const char *cause=0, const char *diag=0, const char *display=0, const char *signal=0)
virtual const char * statusName() const
bool sendRelease(ISDNQ931Call *call, bool release, const char *cause, u_int8_t tei=0, const char *diag=0, const char *display=0, const char *signal=0)
Definition yatesig.h:14582
Ephemeral mutex or semaphore locking object.
Definition yateclass.h:5833
Mutex support.
Definition yateclass.h:5607
Mutex(bool recursive=false, const char *name=0)
virtual bool lock(long maxwait=-1)
A named string container class.
Definition yateclass.h:5016
NamedList(const char *name)
const char * getValue(const String &name, const char *defvalue=0) const
NamedList & addParam(NamedString *param)
An object list class.
Definition yateclass.h:1454
Templated smart pointer class.
Definition yateclass.h:1306
Definition yatesig.h:9956
RemoteBackupSubsystem(unsigned char ssn, int pointcode, bool wfg=false)
Definition yatesig.h:9966
bool equals(unsigned char ssn, int pointcode)
Definition yatesig.h:9979
void permisionGranted()
Definition yatesig.h:9985
bool waitingForGrant()
Definition yatesig.h:9992
Abstract SS7 SCCP Management.
Definition yatesig.h:9319
static const TokenDict * broadcastType()
void handleCoordinateChanged(unsigned char ssn, int smi, const NamedList ¶ms)
virtual bool processMessage(SS7MsgSCCP *message)
virtual void startSst(SccpRemote *remoteSccp, SccpSubsystem *rSubsystem)
virtual void routeStatus(SS7PointCode::Type type, const SS7PointCode &node, SS7Route::State state)
virtual ~SCCPManagement()
virtual void stopSst(SccpRemote *remoteSccp, SccpSubsystem *rSubsystem=0, SccpSubsystem *less=0)
bool handleMessage(int msgType, unsigned char ssn, unsigned char smi, NamedList ¶ms)
SCCPManagement(const NamedList ¶ms, SS7PointCode::Type type)
SccpRemote * getRemoteSccp(int pointcode)
virtual void subsystemFailure(SS7MsgSCCP *msg, const SS7Label &label)
void routeStatus(String &dest, bool extended=false)
virtual void notify(SCCP::Type type, NamedList ¶ms)
u_int32_t getTestTimeout()
Definition yatesig.h:9497
virtual void notifyConcerned(MsgType msg, unsigned char ssn, int smi)
virtual void updateTables(SccpRemote *rsccp, SccpSubsystem *ssn=0)
void stopSSTs()
Definition yatesig.h:9541
bool sendSST(SccpRemote *remote, SccpSubsystem *sub)
void subsystemsStatus(String &dest, bool extended=true)
virtual bool sendMessage(SCCPManagement::MsgType msgType, const NamedList ¶ms)=0
virtual void sccpUnavailable(const SS7PointCode &pointcode, unsigned char cause)
virtual void printMessage(String &dest, MsgType type, const NamedList ¶ms)
virtual bool initialize(const NamedList *config)
u_int32_t getIgnoreTestsInterval()
Definition yatesig.h:9639
virtual void pointcodeStatus(SS7Layer3 *link, bool operational)
virtual void handleSubsystemStatus(SccpSubsystem *subsystem, bool allowed, SccpRemote *remote, int smi)
Definition yatesig.h:9625
void attach(SS7SCCP *sccp)
bool managementMessage(SCCP::Type type, NamedList ¶ms)
void handleSog(unsigned char ssn, int pointcode)
static const char * stateName(SCCPManagement::SccpStates state)
Definition yatesig.h:9473
virtual void manageSccpRemoteStatus(SccpRemote *rsccp, SS7Route::State newState)
Definition yatesig.h:9592
virtual void timerTick(const Time &when)
virtual void routeFailure(SS7MsgSCCP *msg)
SccpLocalSubsystem * getLocalSubsystem(unsigned char ssn)
bool printMessagess()
Definition yatesig.h:9599
u_int32_t getCoordTimeout()
Definition yatesig.h:9632
void localBroadcast(SCCP::Type type, int pointcode, int sps, int rss=-1, int rl=-1, int ssn=-1, int ss=-1)
Abstract SS7 SCCP user interface.
Definition yatesig.h:5446
SCCP * sccp() const
Definition yatesig.h:5548
virtual HandledMSU receivedData(DataBlock &data, NamedList ¶ms)
virtual HandledMSU notifyData(DataBlock &data, NamedList ¶ms)
virtual bool sccpNotify(SCCP::Type type, NamedList ¶ms)
virtual bool sendData(DataBlock &data, NamedList ¶ms)
SCCPUser(const NamedList ¶ms)
virtual bool initialize(const NamedList *config)
virtual bool managementNotify(SCCP::Type type, NamedList ¶ms)
virtual void attach(SCCP *sccp)
Abstract SS7 SCCP interface.
Definition yatesig.h:5226
static const TokenDict * notifTypes()
virtual void attachGTT(GTT *gtt)
HandledMSU notifyMessage(DataBlock &data, NamedList ¶ms, int ssn)
virtual int sendMessage(DataBlock &data, const NamedList ¶ms)
NamedList * translateGT(const NamedList ¶ms, const String &prefix, const String &nextPrefix)
HandledMSU pushMessage(DataBlock &data, NamedList ¶ms, int ssn)
bool managementMessage(Type type, NamedList ¶ms)
virtual bool isEndpoint()
Definition yatesig.h:5354
void resolveGTParams(SS7MsgSCCP *msg, const NamedList *gtParams)
virtual bool managementStatus(Type type, NamedList ¶ms)
virtual void attach(SCCPUser *user)
virtual void detach(SCCPUser *user)
ObjList & users()
Definition yatesig.h:4996
TrafficMode m_traffic
Definition yatesig.h:5007
AspState
Definition yatesig.h:4907
bool aspActive() const
Definition yatesig.h:4976
virtual bool processAspsmMSG(unsigned char msgType, const DataBlock &msg, int streamId)
int32_t m_aspId
Definition yatesig.h:5002
void setState(AspState state, bool notify=true)
virtual bool processAsptmMSG(unsigned char msgType, const DataBlock &msg, int streamId)
virtual bool processMgmtMSG(unsigned char msgType, const DataBlock &msg, int streamId)
SIGAdaptClient(const char *name=0, const NamedList *params=0, u_int32_t payload=0, u_int16_t port=0)
virtual void notifyLayer(SignallingInterface::Notification status)
bool aspUp() const
Definition yatesig.h:4969
virtual void activeChange(bool active)
SIGAdaptServer(const char *name=0, const NamedList *params=0, u_int32_t payload=0, u_int16_t port=0)
Definition yatesig.h:5031
virtual bool processAspsmMSG(unsigned char msgType, const DataBlock &msg, int streamId)
virtual bool processAsptmMSG(unsigned char msgType, const DataBlock &msg, int streamId)
virtual bool processMgmtMSG(unsigned char msgType, const DataBlock &msg, int streamId)
bool activate()
Definition yatesig.h:5115
bool aspActive() const
Definition yatesig.h:5129
unsigned char m_streamId
Definition yatesig.h:5147
SIGAdaptUser()
Definition yatesig.h:5081
unsigned char getStreamId()
Definition yatesig.h:5136
virtual void activeChange(bool active)=0
SIGTransport * transport() const
Definition yatesig.h:5096
SIGAdaptClient * adaptation() const
Definition yatesig.h:5089
void adaptation(SIGAdaptClient *adapt)
bool m_autostart
Definition yatesig.h:5142
bool aspUp() const
Definition yatesig.h:5122
static void addTag(DataBlock &data, uint16_t tag, const String &value)
SIGAdaptation(const char *name=0, const NamedList *params=0, u_int32_t payload=0, u_int16_t port=0)
void enableHeartbeat(unsigned char streamId)
Definition yatesig.h:4883
static bool findTag(const DataBlock &data, int &offset, uint16_t tag, uint16_t &length)
void resetHeartbeat()
Definition yatesig.h:4872
static bool getTag(const DataBlock &data, uint16_t tag, DataBlock &value)
static bool getTag(const DataBlock &data, uint16_t tag, String &value)
static void addTag(DataBlock &data, uint16_t tag, uint32_t value)
virtual bool processMgmtMSG(unsigned char msgType, const DataBlock &msg, int streamId)=0
static bool nextTag(const DataBlock &data, int &offset, uint16_t &tag, uint16_t &length)
bool processHeartbeat(unsigned char msgType, const DataBlock &msg, int streamId)
static bool getTag(const DataBlock &data, uint16_t tag, uint32_t &value)
virtual bool processCommonMSG(unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId)
virtual bool initialize(const NamedList *config)
static void addTag(DataBlock &data, uint16_t tag, const DataBlock &value)
virtual bool processAspsmMSG(unsigned char msgType, const DataBlock &msg, int streamId)=0
virtual void timerTick(const Time &when)
void notifyLayer(SignallingInterface::Notification status)
TrafficMode
Definition yatesig.h:4674
virtual bool processAsptmMSG(unsigned char msgType, const DataBlock &msg, int streamId)=0
virtual void attach(SIGTransport *trans)
MsgMGMT
Definition yatesig.h:4460
SIGTRAN(u_int32_t payload=0, u_int16_t port=0)
bool transmitMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId=0) const
static const TokenDict * classNames()
bool transmitMSG(unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId=0) const
Definition yatesig.h:4604
static const char * typeName(unsigned char msgClass, unsigned char msgType, const char *defValue=0)
bool hasTransportThread()
MsgSSNM
Definition yatesig.h:4468
MsgRKM
Definition yatesig.h:4502
bool getSocketParams(const String ¶ms, NamedList &result)
MsgASPSM
Definition yatesig.h:4480
u_int32_t payload() const
Definition yatesig.h:4548
bool connected(int streamId=0) const
virtual bool processMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId)=0
SIGTransport * transport() const
Definition yatesig.h:4541
void stopTransportThread()
MsgClass
Definition yatesig.h:4430
MsgASPTM
Definition yatesig.h:4492
u_int16_t defPort() const
Definition yatesig.h:4555
virtual bool transportNotify(SIGTransport *newTransport, const SocketAddr &addr)
Definition yatesig.h:4629
MsgIIM
Definition yatesig.h:4512
An abstract SIGTRAN transport layer.
Definition yatesig.h:4268
virtual bool reliable() const =0
virtual void stopThread()
Definition yatesig.h:4377
u_int32_t defPort() const
SIGTransport(const char *name=0)
Definition yatesig.h:4384
virtual bool getSocketParams(const String ¶ms, NamedList &result)
Definition yatesig.h:4355
virtual void attached(bool hasUAL)=0
virtual bool transmitMSG(const DataBlock &header, const DataBlock &msg, int streamId=0)=0
SIGTRAN * sigtran() const
Definition yatesig.h:4288
virtual bool connected(int streamId) const =0
virtual bool initialize(const NamedList *config)
Definition yatesig.h:4314
virtual bool transmitMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId=0)
Transport
Definition yatesig.h:4275
virtual bool transportNotify(SIGTransport *newTransport, const SocketAddr &addr)
virtual bool hasThread()
Definition yatesig.h:4371
void attach(SIGTRAN *sigtran)
virtual void reconnect(bool force=false)
Definition yatesig.h:4346
bool processMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId) const
void notifyLayer(SignallingInterface::Notification status)
Definition yatesig.h:10255
virtual bool sendMessage(SCCPManagement::MsgType msgType, const NamedList ¶ms)
virtual bool processMessage(SS7MsgSCCP *message)
virtual void handleSubsystemStatus(SccpSubsystem *subsystem, bool allowed, SccpRemote *remote, int smi)
virtual void manageSccpRemoteStatus(SccpRemote *rsccp, SS7Route::State newState)
SS7AnsiSccpManagement(const NamedList ¶ms)
Definition yatesig.h:10262
bool handleMessage(int msgType, NamedList ¶ms)
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
SS7BICC(const NamedList ¶ms, unsigned char sio=SS7MSU::BICC|SS7MSU::National)
void setTerminate(bool gracefully, const char *reason=0, const char *diagnostic=0, const char *location=0)
Definition yatesig.h:8681
virtual void * getObject(const String &name) const
bool earlyState() const
Definition yatesig.h:8642
virtual SignallingEvent * getEvent(const Time &when)
const String & cicRange() const
Definition yatesig.h:8649
SS7ISUPCall(SS7ISUP *controller, SignallingCircuit *cic, const SS7PointCode &local, const SS7PointCode &remote, bool outgoing, int sls=-1, const char *range=0, bool testCall=false)
State
Definition yatesig.h:8613
void stopWaitSegment(bool discard)
SignallingEvent * releaseComplete(bool final, SS7MsgISUP *msg=0, const char *reason=0, bool timeout=false)
bool replaceCircuit(SignallingCircuit *circuit, SS7MsgISUP *msg=0)
State state() const
Definition yatesig.h:8635
unsigned int id() const
Definition yatesig.h:8656
virtual bool sendEvent(SignallingEvent *event)
bool startCircuitReset(SignallingCircuit *&cic, const String &timer)
bool processParamCompat(const NamedList &list, unsigned int cic, bool *callReleased=0)
void setLabel(SS7Label &label, const SS7PointCode &opc, const SS7PointCode &dpc, unsigned char sls=255)
Definition yatesig.h:8938
virtual SignallingCall * call(SignallingMessage *msg, String &reason)
virtual SS7MSU * createMSU(SS7MsgISUP::Type type, unsigned char ssf, const SS7Label &label, unsigned int cic, const NamedList *params=0) const
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
virtual void notify(SS7Layer3 *link, int sls)
int transmitMessage(SS7MsgISUP *msg, const SS7Label &label, bool recvLbl, int sls=SlsDefault)
bool setPointCode(SS7PointCode *pc, bool def)
SS7MSU * buildMSU(SS7MsgISUP::Type type, unsigned char sio, const SS7Label &label, unsigned int cic, const NamedList *params) const
unsigned int setPointCode(const NamedList ¶ms)
ChargeProcess getChargeProcessType() const
Definition yatesig.h:9037
bool encodeMessage(DataBlock &buf, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const NamedList ¶ms, unsigned int *cic=0)
virtual void cleanup(const char *reason="net-out-of-order")
SS7ISUP(const NamedList ¶ms, unsigned char sio=SS7MSU::ISUP|SS7MSU::National)
virtual bool initialize(const NamedList *config)
SS7PointCode * hasPointCode(const SS7PointCode &pc)
bool decodeMessage(NamedList &msg, SS7MsgISUP::Type msgType, SS7PointCode::Type pcType, const unsigned char *paramPtr, unsigned int paramLen)
bool handlesRemotePC(const SS7PointCode &pc) const
Definition yatesig.h:8928
void setDebug(bool printMsg, bool extendedDebug)
Definition yatesig.h:8947
virtual bool processMSU(SS7MsgISUP::Type type, unsigned int cic, const unsigned char *paramPtr, unsigned int paramLen, const SS7Label &label, SS7Layer3 *network, int sls)
virtual void attach(SS7Layer3 *network)
virtual SignallingEvent * processCircuitEvent(SignallingCircuitEvent *&event, SignallingCall *call=0)
bool ignoreUnknownAddrSignals() const
Definition yatesig.h:8895
virtual void timerTick(const Time &when)
const String & format() const
Definition yatesig.h:8888
virtual void receivedUPU(SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label &label, int sls)
unsigned int cicLen() const
Definition yatesig.h:8881
unsigned int m_cicLen
Definition yatesig.h:9130
virtual const char * statusName() const
virtual bool control(NamedList ¶ms)
virtual bool processMessage(SS7MsgSCCP *message)
SS7ItuSccpManagement(const NamedList ¶ms)
virtual ~SS7ItuSccpManagement()
Definition yatesig.h:10321
virtual void handleSubsystemStatus(SccpSubsystem *subsystem, bool allowed, SccpRemote *remote, int smi)
virtual bool sendMessage(MsgType msgType, const NamedList ¶ms)
virtual void manageSccpRemoteStatus(SccpRemote *rsccp, SS7Route::State newState)
bool handleMessage(int msgType, NamedList ¶ms)
Abstract user of SS7 layer 2 (data link) message transfer part.
Definition yatesig.h:5636
virtual void attach(SS7Layer2 *link)=0
virtual bool recoveredMSU(const SS7MSU &msu, SS7Layer2 *link, int sls)=0
virtual void notify(SS7Layer2 *link)=0
virtual bool receivedMSU(const SS7MSU &msu, SS7Layer2 *link, int sls)=0
virtual void detach(SS7Layer2 *link)=0
Abstract user of SS7 layer 3 (network) message transfer part.
Definition yatesig.h:6151
static ObjList * getNetRoutes(SS7Layer3 *network, SS7PointCode::Type type)
static const ObjList * getNetRoutes(const SS7Layer3 *network, SS7PointCode::Type type)
virtual void attach(SS7Layer3 *network)=0
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)=0
virtual void notify(SS7Layer3 *link, int sls)
virtual void routeStatusChanged(SS7PointCode::Type type, const SS7PointCode &node, SS7Route::State state)
Definition yatesig.h:6209
virtual void receivedUPU(SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label &label, int sls)
Definition yatesig.h:6192
virtual bool recoveredMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
Definition yatesig.h:6180
SS7 Routing Label.
Definition yatesig.h:3700
bool compatible(SS7PointCode::Type type) const
unsigned char size() const
Definition yatesig.h:3883
unsigned char spare() const
Definition yatesig.h:3855
bool store(unsigned char *dest) const
SS7Label(SS7PointCode::Type type, const SS7PointCode &dpc, const SS7PointCode &opc, unsigned char sls, unsigned char spare=0)
const SS7PointCode & opc() const
Definition yatesig.h:3827
bool assign(SS7PointCode::Type type, const unsigned char *src, int len=-1)
SS7Label(SS7PointCode::Type type, unsigned int dpc, unsigned int opc, unsigned char sls, unsigned char spare=0)
static unsigned int length(SS7PointCode::Type type)
void setSls(unsigned char sls)
Definition yatesig.h:3848
static unsigned char size(SS7PointCode::Type type)
SS7Label(SS7PointCode::Type type, const SS7MSU &msu)
void setSpare(unsigned char spare)
Definition yatesig.h:3862
bool assign(SS7PointCode::Type type, const SS7MSU &msu)
const SS7PointCode & dpc() const
Definition yatesig.h:3813
unsigned char sls() const
Definition yatesig.h:3841
SS7PointCode::Type type() const
Definition yatesig.h:3806
SS7Label(const SS7Label &original)
SS7PointCode & opc()
Definition yatesig.h:3834
void assign(SS7PointCode::Type type, const SS7PointCode &dpc, const SS7PointCode &opc, unsigned char sls, unsigned char spare=0)
unsigned int length() const
Definition yatesig.h:3869
void assign(SS7PointCode::Type type, unsigned int dpc, unsigned int opc, unsigned char sls, unsigned char spare=0)
SS7Label(const SS7Label &original, unsigned char sls, unsigned char spare=0)
SS7PointCode & dpc()
Definition yatesig.h:3820
bool recoveredMSU(const SS7MSU &msu)
Definition yatesig.h:5891
SS7Layer2()
Definition yatesig.h:5860
bool m_autoEmergency
Definition yatesig.h:5924
SS7L2User * user() const
Definition yatesig.h:5793
virtual bool transmitMSU(const SS7MSU &msu)=0
virtual bool control(Operation oper, NamedList *params=0)
virtual unsigned int congestion()
Definition yatesig.h:5829
bool inhibit(int setFlags, int clrFlags=0)
bool inhibited(int flags) const
Definition yatesig.h:5822
unsigned int m_congestion
Definition yatesig.h:5934
Inhibitions
Definition yatesig.h:5723
virtual unsigned int status() const
virtual bool operational() const =0
const char * statusName(bool brief=false) const
Definition yatesig.h:5767
LinkStatus
Definition yatesig.h:5690
virtual const char * statusName(unsigned int status, bool brief) const
Operation
Definition yatesig.h:5709
int inhibited() const
Definition yatesig.h:5814
virtual int getSequence()
Definition yatesig.h:5836
void sls(int linkSel)
Definition yatesig.h:5807
virtual void timerTick(const Time &when)
void attach(SS7L2User *l2user)
unsigned int upTime() const
Definition yatesig.h:5780
bool receivedMSU(const SS7MSU &msu)
Definition yatesig.h:5878
virtual void recoverMSU(int sequence)
Definition yatesig.h:5745
bool getEmergency(NamedList *params=0, bool emg=false) const
int m_lastSeqRx
Definition yatesig.h:5929
virtual bool control(NamedList ¶ms)
int sls() const
Definition yatesig.h:5800
Abstract SS7 layer 3 (network) message transfer part.
Definition yatesig.h:6234
virtual void linkChecked(int sls, bool remote)
Definition yatesig.h:6548
unsigned int getRoutePriority(SS7PointCode::Type type, unsigned int packedPC)
virtual ~SS7Layer3()
Definition yatesig.h:6243
unsigned int getLocal(SS7PointCode::Type type) const
Definition yatesig.h:6482
bool inService(int sls, int ignore=0)
Definition yatesig.h:6302
void setType(SS7PointCode::Type type, unsigned char netType)
virtual bool allowedTo(SS7PointCode::Type type, unsigned int packedPC) const
Definition yatesig.h:6469
bool buildRoutes(const NamedList ¶ms)
virtual bool management(const SS7MSU &msu, const SS7Label &label, int sls)
bool hasType(SS7PointCode::Type pcType) const
virtual bool responder() const
Definition yatesig.h:6592
virtual void recoverMSU(int sls, int sequence)
Definition yatesig.h:6326
SS7PointCode::Type type(unsigned char netType) const
void setType(SS7PointCode::Type type)
virtual int inhibited(int sls) const
Definition yatesig.h:6274
void attach(SS7L3User *l3user)
virtual int getSequence(int sls) const
Definition yatesig.h:6318
void setNI(unsigned char defNI)
bool recoveredMSU(const SS7MSU &msu, const SS7Label &label, int sls)
Definition yatesig.h:6522
ObjList * getRoutes(SS7PointCode::Type type)
Definition yatesig.h:6609
HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, int sls)
Definition yatesig.h:6507
void notify(int sls=-1)
Definition yatesig.h:6534
unsigned int getRouteMaxLength(SS7PointCode::Type type, unsigned int packedPC)
virtual bool initialize(const NamedList *config)
virtual int transmitMSU(const SS7MSU &msu, const SS7Label &label, int sls=-1)=0
bool inhibited(int sls, int flags) const
Definition yatesig.h:6283
virtual bool unavailable(const SS7MSU &msu, const SS7Label &label, int sls, unsigned char cause=0)
virtual unsigned int getDefaultLocal(SS7PointCode::Type type) const
Definition yatesig.h:6490
ObjList m_route[YSS7_PCTYPE_COUNT]
Definition yatesig.h:6624
virtual bool prohibited(unsigned char ssf, const SS7Label &label, int sls)
virtual bool inhibit(int sls, int setFlags, int clrFlags=0)
Definition yatesig.h:6293
unsigned int getRoutePriority(SS7PointCode::Type type, const SS7PointCode &dest)
Definition yatesig.h:6439
SS7L3User * user() const
Definition yatesig.h:6347
virtual bool restart()
Definition yatesig.h:6333
unsigned char getNI() const
Definition yatesig.h:6397
virtual bool maintenance(const SS7MSU &msu, const SS7Label &label, int sls)
SS7Layer3(SS7PointCode::Type type=SS7PointCode::Other)
SS7Route::State getRouteState(SS7PointCode::Type type, const SS7PointCode &dest, bool checkAdjacent=false)
Definition yatesig.h:6460
const ObjList * getRoutes(SS7PointCode::Type type) const
Definition yatesig.h:6617
virtual bool operational(int sls=-1) const =0
Mutex m_routeMutex
Definition yatesig.h:6621
virtual unsigned int congestion(int sls)
Definition yatesig.h:6310
virtual unsigned char getNI(SS7PointCode::Type pcType, unsigned char defNI) const
SS7Route * findRoute(SS7PointCode::Type type, unsigned int packed)
SS7Route::State getRouteState(SS7PointCode::Type type, unsigned int packedPC, bool checkAdjacent=false)
unsigned char getNI(SS7PointCode::Type pcType) const
Definition yatesig.h:6390
Abstract SS7 layer 4 (application) protocol.
Definition yatesig.h:6640
unsigned char sio() const
Definition yatesig.h:6672
unsigned char ssf() const
Definition yatesig.h:6686
unsigned char prio() const
Definition yatesig.h:6693
SS7Layer4(unsigned char sio=SS7MSU::National, const NamedList *params=0)
static unsigned char getSIO(const NamedList ¶ms, unsigned char sif, unsigned char ssf)
Definition yatesig.h:6720
unsigned char getSIO(const NamedList ¶ms) const
Definition yatesig.h:6737
unsigned char sif() const
Definition yatesig.h:6679
virtual bool initialize(const NamedList *config)
static unsigned char getSIO(const NamedList ¶ms, unsigned char sif, unsigned char prio, unsigned char ni)
SS7Layer3 * network() const
Definition yatesig.h:6665
unsigned char m_sio
Definition yatesig.h:6766
static unsigned char getSIO(const NamedList ¶ms, unsigned char sio)
Definition yatesig.h:6729
virtual void attach(SS7Layer3 *network)
unsigned char ni() const
Definition yatesig.h:6700
int transmitMSU(const SS7MSU &msu, const SS7Label &label, int sls=-1)
Definition yatesig.h:6755
bool processLinkStatus(DataBlock &data, int streamId)
static u_int32_t increment(u_int32_t &nr)
Definition yatesig.h:7329
virtual bool transmitMSU(const SS7MSU &msu)
virtual bool operational() const
virtual bool aligned() const
void transmitLS(int streamId=0)
bool decodeSeq(const DataBlock &data, u_int8_t msgType)
void setHeader(DataBlock &data)
SS7M2PA(const NamedList ¶ms)
virtual bool control(SS7Layer2::Operation oper, NamedList *params=0)
Definition yatesig.h:7233
bool removeFrame(u_int32_t bsn)
virtual unsigned int status() const
virtual bool initialize(const NamedList *config)
bool processSLinkStatus(DataBlock &data, int streamId)
virtual bool processMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId)
static u_int32_t getNext(u_int32_t nr)
Definition yatesig.h:7337
virtual bool control(M2PAOperations oper, NamedList *params=0)
void abortAlignment(const char *info=0)
bool nextBsn(u_int32_t bsn) const
virtual void timerTick(const Time &when)
virtual void notifyLayer(SignallingInterface::Notification status)
virtual void recoverMSU(int sequence)
void startAlignment(bool emergency=false)
virtual bool control(NamedList ¶ms)
SS7M2UAClient(const NamedList ¶ms)
Definition yatesig.h:7429
virtual bool processMSG(unsigned char msgVersion, unsigned char msgClass, unsigned char msgType, const DataBlock &msg, int streamId)
virtual bool transmitMSU(const SS7MSU &msu)
virtual bool operational() const
virtual bool control(Operation oper, NamedList *params=0)
virtual unsigned int status() const
virtual bool initialize(const NamedList *config)
int32_t iid() const
Definition yatesig.h:7511
virtual int getSequence()
virtual void timerTick(const Time &when)
SS7M2UA(const NamedList ¶ms)
virtual void recoverMSU(int sequence)
virtual void activeChange(bool active)
SIGTRAN MTP3 User Adaptation Layer.
Definition yatesig.h:7548
A block of data that holds a Message Signal Unit.
Definition yatesig.h:3916
const char * getIndicatorName() const
int getSSF() const
Definition yatesig.h:4105
const char * getServiceName() const
Priority
Definition yatesig.h:3956
SS7MSU(void *value, unsigned int len, bool copyData=true)
Definition yatesig.h:4001
SS7MSU(const SS7MSU &value)
Definition yatesig.h:3983
SS7MSU(unsigned char sio, const SS7Label label, void *value=0, unsigned int len=0)
SS7MSU()
Definition yatesig.h:3976
int getSIO() const
Definition yatesig.h:4091
unsigned char * getData(unsigned int offs, unsigned int len=1)
Definition yatesig.h:4057
static unsigned char getPriority(const char *name, unsigned char defVal=Regular)
static unsigned char getNetIndicator(const char *name, unsigned char defVal=National)
int getNI() const
Definition yatesig.h:4119
SS7MSU & operator=(const SS7MSU &value)
Definition yatesig.h:4034
SS7MSU(const DataBlock &value)
Definition yatesig.h:3991
int getPrio() const
Definition yatesig.h:4112
int getSIF() const
Definition yatesig.h:4098
const unsigned char * getData(unsigned int offs, unsigned int len=1) const
Definition yatesig.h:4066
unsigned char * getData(const SS7Label &label, unsigned int len=1)
Definition yatesig.h:4075
NetIndicator
Definition yatesig.h:3966
SS7MSU(unsigned char sif, unsigned char ssf, const SS7Label label, void *value=0, unsigned int len=0)
SS7MSU & operator=(const DataBlock &value)
Definition yatesig.h:4042
const unsigned char * getData(const SS7Label &label, unsigned int len=1) const
Definition yatesig.h:4084
Services
Definition yatesig.h:3922
const char * getPriorityName() const
bool transmitLSSU()
Definition yatesig.h:7682
virtual bool notify(SignallingInterface::Notification event)
virtual void processFISU()
virtual void processLSSU(unsigned int status)
virtual bool transmitMSU(const SS7MSU &msu)
virtual void destroyed()
Definition yatesig.h:7641
virtual bool operational() const
ErrorCorrection
Definition yatesig.h:7563
virtual bool aligned() const
virtual bool control(Operation oper, NamedList *params=0)
void abortAlignment(bool retry=true)
virtual unsigned int status() const
virtual bool initialize(const NamedList *config)
bool transmitLSSU(unsigned int status)
virtual void timerTick(const Time &when)
virtual void recoverMSU(int sequence)
void startAlignment(bool emergency=false)
virtual bool receivedPacket(const DataBlock &packet)
SS7MTP2(const NamedList ¶ms, unsigned int status=OutOfService)
virtual void detach(SS7Layer2 *link)
virtual void linkChecked(int sls, bool remote)
virtual void attach(SS7Layer2 *link)
virtual bool allowedTo(SS7PointCode::Type type, unsigned int packedPC) const
virtual bool responder() const
Definition yatesig.h:7938
virtual void recoverMSU(int sls, int sequence)
virtual bool control(Operation oper, NamedList *params=0)
virtual int inhibited(int sls) const
virtual void notify(SS7Layer2 *link)
unsigned int countLinks()
virtual int getSequence(int sls) const
virtual bool receivedMSU(const SS7MSU &msu, SS7Layer2 *link, int sls)
virtual bool operational(int sls=-1) const
unsigned int linksTotal() const
Definition yatesig.h:7891
SS7MTP3(const NamedList ¶ms)
virtual bool initialize(const NamedList *config)
virtual bool recoveredMSU(const SS7MSU &msu, SS7Layer2 *link, int sls)
const ObjList * links() const
Definition yatesig.h:7912
virtual int transmitMSU(const SS7MSU &msu, const SS7Label &label, int sls=-1)
Operation
Definition yatesig.h:7769
virtual bool inhibit(int sls, int setFlags, int clrFlags=0)
virtual void timerTick(const Time &when)
virtual unsigned int congestion(int sls)
unsigned int linksActive() const
Definition yatesig.h:7905
virtual bool control(NamedList ¶ms)
unsigned int linksChecked() const
Definition yatesig.h:7898
SS7 SNM implementation.
Definition yatesig.h:8459
void recover(const SS7Label &link, int sequence)
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
virtual void notify(SS7Layer3 *link, int sls)
bool inhibit(const SS7Label &link, int setFlags, int clrFlags=0)
bool inhibited(const SS7Label &link, int flags)
SS7Management(const NamedList ¶ms, unsigned char sio=SS7MSU::SNM|SS7MSU::National)
virtual void timerTick(const Time &when)
virtual bool control(NamedList ¶ms)
ISUP signalling message.
Definition yatesig.h:8176
static Type lookup(const char *name, Type defvalue=Unknown)
Definition yatesig.h:8446
void toString(String &dest, const SS7Label &label, bool params, const void *raw=0, unsigned int rawLen=0) const
Type
Definition yatesig.h:8183
static const TokenDict * names()
unsigned int cic() const
Definition yatesig.h:8411
virtual ~SS7MsgISUP()
Definition yatesig.h:8397
Parameters
Definition yatesig.h:8258
static const char * lookup(Type type, const char *defvalue=0)
Definition yatesig.h:8437
Type type() const
Definition yatesig.h:8404
SS7MsgISUP(Type type, unsigned int cic)
Definition yatesig.h:8390
MTN signalling message.
Definition yatesig.h:8139
static Type lookup(const char *name, Type defvalue=Unknown)
Definition yatesig.h:8167
Type
Definition yatesig.h:8144
static const char * lookup(Type type, const char *defvalue=0)
Definition yatesig.h:8158
Definition yatesig.h:9659
static Type lookup(const char *name, Type defvalue=Unknown)
Definition yatesig.h:9795
void setData(DataBlock *data)
Definition yatesig.h:9802
void toString(String &dest, const SS7Label &label, bool params, const void *raw=0, unsigned int rawLen=0) const
Type
Definition yatesig.h:9665
bool canBeUDT() const
Definition yatesig.h:9759
static const TokenDict * names()
SS7MsgSCCP(Type type)
Definition yatesig.h:9719
DataBlock * extractData()
Definition yatesig.h:9822
DataBlock * getData()
Definition yatesig.h:9815
void removeData()
Definition yatesig.h:9808
bool isLongDataMessage() const
Definition yatesig.h:9750
void updateType(Type type)
Definition yatesig.h:9743
static const char * lookup(Type type, const char *defvalue=0)
Definition yatesig.h:9786
Type type() const
Definition yatesig.h:9736
static Type lookup(const char *name, Type defvalue=Unknown)
Definition yatesig.h:8127
Type
Definition yatesig.h:8007
static const TokenDict * names()
static SS7MsgSNM * parse(SS7Management *receiver, unsigned char type, SS7PointCode::Type pcType, const unsigned char *buf, unsigned int len)
unsigned char type() const
Definition yatesig.h:8076
unsigned char group() const
Definition yatesig.h:8083
Group
Definition yatesig.h:8054
static const char * lookup(Type type, const char *defvalue=0)
Definition yatesig.h:8118
void toString(String &dest, const SS7Label &label, bool params) const
SS7MsgSNM(unsigned char type)
bool haveAllSegments()
Definition yatesig.h:9884
virtual ~SS7MsgSccpReassemble()
bool timeout()
Definition yatesig.h:9877
Return appendSegment(SS7MsgSCCP *msg, const SS7Label &label)
SS7MsgSccpReassemble(SS7MsgSCCP *msg, const SS7Label &label, unsigned int timeToLive)
bool canProcess(const SS7MsgSCCP *msg, const SS7Label &label)
SS7 Code Point.
Definition yatesig.h:3498
bool compatible(Type type) const
Type
Definition yatesig.h:3504
bool assign(Type type, const unsigned char *src, int len=-1, unsigned char *spare=0)
unsigned char network() const
Definition yatesig.h:3553
bool assign(const String &src, Type type=Other)
static unsigned char length(Type type)
static unsigned char size(Type type)
bool operator==(const SS7PointCode &original) const
Definition yatesig.h:3608
void assign(unsigned char network, unsigned char cluster, unsigned char member)
Definition yatesig.h:3576
SS7PointCode(const SS7PointCode &original)
Definition yatesig.h:3539
SS7PointCode(Type type, unsigned int packed)
Definition yatesig.h:3531
unsigned char cluster() const
Definition yatesig.h:3560
SS7PointCode & operator=(const SS7PointCode &original)
Definition yatesig.h:3601
static Type lookup(const char *text)
Definition yatesig.h:3667
static const char * lookup(Type type)
Definition yatesig.h:3675
SS7PointCode(unsigned char network=0, unsigned char cluster=0, unsigned char member=0)
Definition yatesig.h:3522
bool store(Type type, unsigned char *dest, unsigned char spare=0) const
unsigned char member() const
Definition yatesig.h:3567
~SS7PointCode()
Definition yatesig.h:3546
bool unpack(Type type, unsigned int packed)
bool operator!=(const SS7PointCode &original) const
Definition yatesig.h:3615
unsigned int pack(Type type) const
void attach(SS7Layer3 *network, SS7PointCode::Type type)
bool hasNetwork(const SS7Layer3 *network)
unsigned int packed() const
Definition yatesig.h:6056
const char * stateName() const
Definition yatesig.h:6027
State
Definition yatesig.h:5960
bool hasNetwork(const SS7Layer3 *network) const
bool operational(int sls=-1)
int transmitMSU(const SS7Router *router, const SS7MSU &msu, const SS7Label &label, int sls, State states, const SS7Layer3 *source=0)
unsigned int priority() const
Definition yatesig.h:6042
static const char * stateName(State state)
Definition yatesig.h:6035
bool detach(SS7Layer3 *network)
virtual ~SS7Route()
Definition yatesig.h:6007
State state() const
Definition yatesig.h:6014
SS7Route(const SS7Route &original)
Definition yatesig.h:5997
SS7Route(unsigned int packed, SS7PointCode::Type type, unsigned int priority=0, unsigned int shift=0, unsigned int maxDataLength=MAX_TDM_MSU_SIZE)
Definition yatesig.h:5985
unsigned int getMaxDataLength() const
Definition yatesig.h:6049
unsigned int shift() const
Definition yatesig.h:6063
static const TokenDict * stateNames()
void recoverMSU(const SS7Label &link, int sequence)
bool transferring() const
Definition yatesig.h:6928
bool m_started
Definition yatesig.h:7100
void loadLocalPC(const NamedList ¶ms)
int getSequence(const SS7Label &link)
bool transfer() const
Definition yatesig.h:6921
bool uninhibit(SS7Layer3 *network, int sls, bool remote)
SignallingTimer m_restart
Definition yatesig.h:7102
virtual void detach(SS7Layer3 *network)
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
bool starting() const
Definition yatesig.h:6935
void updateRoutes(SS7Layer3 *network)
SS7Router(const NamedList ¶ms)
virtual bool operational(int sls=-1) const
void clearView(const SS7Layer3 *network)
ObjList m_layer3
Definition yatesig.h:7090
void detach(SS7Layer4 *service)
void notifyRoutes(SS7Route::State states=SS7Route::AnyState, unsigned int onlyPC=0)
virtual bool initialize(const NamedList *config)
bool inhibited(const SS7Label &link, int flags)
bool setRouteState(SS7PointCode::Type type, unsigned int packedPC, SS7Route::State state, unsigned int remotePC=0, const SS7Layer3 *network=0)
ObjList m_layer4
Definition yatesig.h:7092
virtual int transmitMSU(const SS7MSU &msu, const SS7Label &label, int sls=-1)
Operation
Definition yatesig.h:6785
bool m_phase2
Definition yatesig.h:7098
virtual unsigned int getDefaultLocal(SS7PointCode::Type type) const
virtual void notify(SS7Layer3 *network, int sls)
bool inhibit(const SS7Label &link, int setFlags, int clrFlags=0, bool notLast=false)
virtual void attach(SS7Layer3 *network)
void attach(SS7Layer4 *service)
virtual void timerTick(const Time &when)
virtual void receivedUPU(SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label &label, int sls)
SS7Route::State getRouteView(SS7PointCode::Type type, unsigned int packedPC, unsigned int remotePC=0, const SS7Layer3 *network=0)
int m_changes
Definition yatesig.h:7094
void removeRoutes(SS7Layer3 *network)
SignallingTimer m_isolate
Definition yatesig.h:7104
void notifyRoutes(SS7Route::State states, const SS7Layer3 *network)
bool setRouteState(SS7PointCode::Type type, const SS7PointCode &dest, SS7Route::State state, unsigned int remotePC=0, const SS7Layer3 *network=0)
Definition yatesig.h:7000
virtual unsigned char getNI(SS7PointCode::Type pcType, unsigned char defNI) const
virtual void routeChanged(const SS7Route *route, SS7PointCode::Type type, unsigned int remotePC=0, const SS7Layer3 *network=0, unsigned int onlyPC=0, bool forced=false)
SS7Management * getManagement() const
Definition yatesig.h:6942
virtual bool control(NamedList ¶ms)
bool m_transfer
Definition yatesig.h:7096
SS7SCCPDataSegment(unsigned int index, unsigned int length)
Definition yatesig.h:10377
void fillSegment(DataBlock &temp, const DataBlock &orig)
Definition yatesig.h:10392
virtual ~SS7SCCPDataSegment()
Definition yatesig.h:10384
SS7 SCCP implementation.
Definition yatesig.h:10405
SS7MsgSccpReassemble::Return reassembleSegment(SS7MsgSCCP *segment, const SS7Label &label, SS7MsgSCCP *&msg)
virtual int sendMessage(DataBlock &data, const NamedList ¶ms)
int routeLocal(SS7MsgSCCP *msg)
bool isLayer3Up()
Definition yatesig.h:10605
unsigned int errors()
Definition yatesig.h:10570
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
virtual void notify(SS7Layer3 *link, int sls)
unsigned int messagesReceived()
Definition yatesig.h:10563
virtual bool isEndpoint()
Definition yatesig.h:10641
int transmitMessage(SS7MsgSCCP *msg, bool local=false)
virtual bool initialize(const NamedList *config)
int segmentMessage(SS7MsgSCCP *origMsg, const SS7Label &label, bool local)
virtual bool managementStatus(Type type, NamedList ¶ms)
SS7SCCP(const NamedList &config)
unsigned int messagesSend()
Definition yatesig.h:10556
const SS7PointCode * getLocalPointCode() const
Definition yatesig.h:10584
virtual void routeStatusChanged(SS7PointCode::Type type, const SS7PointCode &node, SS7Route::State state)
unsigned int translations()
Definition yatesig.h:10577
int getPackedPointCode()
Definition yatesig.h:10598
virtual void attach(SS7Layer3 *network)
const bool ITU() const
Definition yatesig.h:10528
bool ignoreUnknownAddrSignals() const
Definition yatesig.h:10535
virtual void timerTick(const Time &when)
virtual void receivedUPU(SS7PointCode::Type type, const SS7PointCode node, SS7MSU::Services part, unsigned char cause, const SS7Label &label, int sls)
bool extendedMonitoring()
Definition yatesig.h:10619
SS7PointCode::Type getLocalPointCodeType()
Definition yatesig.h:10591
virtual bool control(NamedList ¶ms)
SIGTRAN SCCP User Adaptation Layer.
Definition yatesig.h:10734
SS7TCAPANSI(const NamedList ¶ms)
virtual SS7TCAPTransaction * buildTransaction(SS7TCAP::TCAPUserTransActions type, const String &transactID, NamedList ¶ms, bool initLocal=true)
SS7 TCAP component implementation.
Definition yatesig.h:11595
virtual const String & correlationID() const
Definition yatesig.h:11687
bool timedOut()
Definition yatesig.h:11694
SS7TCAP::TCAPUserCompActions type()
Definition yatesig.h:11666
void setState(TCAPComponentState state)
void setType(SS7TCAP::TCAPUserCompActions type)
Definition yatesig.h:11660
TCAPComponentState state()
Definition yatesig.h:11707
void setTransaction(SS7TCAPTransaction *transact)
TCAPComponentState
Definition yatesig.h:11600
virtual void setInvokeID(String invokeID)
Definition yatesig.h:11673
static SS7TCAPComponent * componentFromNamedList(SS7TCAP::TCAPType type, SS7TCAPTransaction *tr, NamedList ¶ms, unsigned int index)
virtual const String & toString() const
Definition yatesig.h:11680
SS7TCAP::TCAPComponentOperationClass operationClass()
Definition yatesig.h:11721
SS7TCAPComponent(SS7TCAP::TCAPType type, SS7TCAPTransaction *trans, NamedList ¶ms, unsigned int index)
virtual void update(NamedList ¶ms, unsigned int index)
void resetTimer(NamedList ¶ms, unsigned int index)
virtual void fill(unsigned int index, NamedList &fillIn)
static const TokenDict s_compStates[]
Definition yatesig.h:11727
virtual ~SS7TCAPComponent()
SS7TCAPTransaction * transaction()
Definition yatesig.h:11184
void setError(ErrorType error)
Definition yatesig.h:11265
SS7TCAPError(SS7TCAP::TCAPType tcapType, ErrorType error)
SS7TCAPError(SS7TCAP::TCAPType tcapType)
static u_int16_t codeFromError(SS7TCAP::TCAPType tcapType, int err)
static int errorFromCode(SS7TCAP::TCAPType tcapType, u_int16_t code)
ErrorType error()
Definition yatesig.h:11258
static const TokenDict s_errorTypes[]
Definition yatesig.h:11299
virtual SS7TCAPTransaction * buildTransaction(SS7TCAP::TCAPUserTransActions type, const String &transactID, NamedList ¶ms, bool initLocal=true)
SS7TCAPITU(const NamedList ¶ms)
TCAP message wrapper.
Definition yatesig.h:10742
DataBlock & msgData()
Definition yatesig.h:10765
NamedList & msgParams()
Definition yatesig.h:10758
SS7TCAPMessage(NamedList ¶ms, DataBlock &data, bool notice=false)
Definition yatesig.h:10750
bool & isNotice()
Definition yatesig.h:10772
virtual SS7TCAPError handleData(NamedList ¶ms, DataBlock &data)
~SS7TCAPTransactionANSI()
static void encodePAbort(SS7TCAPTransaction *tr, NamedList ¶ms, DataBlock &data)
virtual void updateState(bool byUser)
static SS7TCAPError decodePAbort(SS7TCAPTransaction *tr, NamedList ¶ms, DataBlock &data)
SS7TCAPTransactionANSI(SS7TCAP *tcap, SS7TCAP::TCAPUserTransActions type, const String &transactID, NamedList ¶ms, u_int64_t timeout, bool initLocal=true)
virtual void requestContent(NamedList ¶ms, DataBlock &data)
virtual SS7TCAPError update(SS7TCAP::TCAPUserTransActions type, NamedList ¶ms, bool updateByUser=true)
virtual void updateToEnd()
virtual SS7TCAPError handleDialogPortion(NamedList ¶ms, bool byUser=true)
static const TokenDict s_ansiTransactTypes[]
Definition yatesig.h:11930
virtual SS7TCAPError handleData(NamedList ¶ms, DataBlock &data)
void encodeDialogPortion(NamedList ¶ms, DataBlock &data)
static void encodePAbort(SS7TCAPTransaction *tr, NamedList ¶ms, DataBlock &data)
static const TokenDict s_dialogPDUs[]
Definition yatesig.h:12172
SS7TCAPError decodeDialogPortion(NamedList ¶ms, DataBlock &data)
SS7TCAPTransactionITU(SS7TCAP *tcap, SS7TCAP::TCAPUserTransActions type, const String &transactID, NamedList ¶ms, u_int64_t timeout, bool initLocal=true)
static SS7TCAPError decodePAbort(SS7TCAPTransaction *tr, NamedList ¶ms, DataBlock &data)
void updateState(bool byUser=false)
virtual void abnormalDialogInfo(NamedList ¶ms)
bool dialogPresent()
Definition yatesig.h:12125
virtual void requestContent(NamedList ¶ms, DataBlock &data)
virtual SS7TCAPError update(SS7TCAP::TCAPUserTransActions type, NamedList ¶ms, bool updateByUser=true)
bool testForDialog(DataBlock &data)
virtual void updateToEnd()
static const TokenDict s_resultPDUValues[]
Definition yatesig.h:12177
virtual SS7TCAPError handleDialogPortion(NamedList ¶ms, bool byUser=true)
SS7 TCAP transaction implementation.
Definition yatesig.h:11311
virtual SS7TCAPError decodeComponents(NamedList ¶ms, DataBlock &data)=0
const String & userName()
Definition yatesig.h:11482
virtual SS7TCAPError handleComponents(NamedList ¶ms, bool updateByUser=true)
bool timedOut()
Definition yatesig.h:11517
virtual SS7TCAPError buildComponentError(SS7TCAPError &error, NamedList ¶ms, DataBlock &data)
const String & toString() const
Definition yatesig.h:11468
TransactionState transactionState()
Definition yatesig.h:11441
void setState(TransactionState state)
Definition yatesig.h:11428
virtual void requestContent(NamedList ¶ms, DataBlock &data)=0
virtual SS7TCAPError decodeDialogPortion(NamedList ¶ms, DataBlock &data)=0
virtual void encodeComponents(NamedList ¶ms, DataBlock &data)=0
void setTransactionType(SS7TCAP::TCAPUserTransActions type)
Definition yatesig.h:11414
bool endNow()
Definition yatesig.h:11503
virtual void requestComponents(NamedList ¶ms, DataBlock &data)
SS7TCAP::TCAPUserTransActions transactionType()
Definition yatesig.h:11421
virtual SS7TCAPError update(SS7TCAP::TCAPUserTransActions type, NamedList ¶ms, bool updateByUser=true)=0
SS7TCAPComponent * findComponent(const String &id)
virtual void transactionData(NamedList ¶ms)
virtual void updateState(bool byUser=true)=0
virtual void encodeDialogPortion(NamedList ¶ms, DataBlock &data)=0
TransactionTransmit transmitState()
Definition yatesig.h:11454
void addSCCPAddressing(NamedList &fillParams, bool local)
virtual SS7TCAPError handleDialogPortion(NamedList ¶ms, bool byUser=true)=0
virtual void checkComponents()
virtual void abnormalDialogInfo(NamedList ¶ms)
SS7TCAP * tcap()
Definition yatesig.h:11461
void endNow(bool endNow)
Definition yatesig.h:11510
bool basicEnd()
Definition yatesig.h:11489
SS7TCAPTransaction(SS7TCAP *tcap, SS7TCAP::TCAPUserTransActions type, const String &transactID, NamedList ¶ms, u_int64_t timeout, bool initLocal=true)
void setUserName(const String &name)
Definition yatesig.h:11475
void setTransmitState(TransactionTransmit state)
virtual SS7TCAPError handleData(NamedList ¶ms, DataBlock &data)=0
virtual void updateToEnd()
SS7 TCAP implementation.
Definition yatesig.h:10786
SS7TCAPTransaction * getTransaction(const String &tid)
virtual void buildSCCPData(NamedList ¶ms, SS7TCAPTransaction *tr)
virtual const String allocTransactionID()
virtual HandledMSU receivedData(DataBlock &data, NamedList ¶ms)
virtual void userStatus(NamedList &status)
TCAPCounter
Definition yatesig.h:10847
static const char * lookupComponent(int comp)
Definition yatesig.h:11133
virtual HandledMSU notifyData(DataBlock &data, NamedList ¶ms)
virtual void updateUserStatus(TCAPUser *user, SCCPManagement::LocalBroadcast status, NamedList ¶ms)
TCAPUserTransActions
Definition yatesig.h:10818
void allocTransactionID(String &str)
virtual void status(NamedList &status)
TCAPType
Definition yatesig.h:10792
virtual HandledMSU handleError(SS7TCAPError &error, NamedList ¶ms, DataBlock &data, SS7TCAPTransaction *tr=0)
static int lookupComponent(const char *comp)
Definition yatesig.h:11141
static const char * lookupTransaction(int tr)
Definition yatesig.h:11117
static int lookupTransaction(const char *tr)
Definition yatesig.h:11125
TCAPUserCompActions
Definition yatesig.h:10801
void attach(TCAPUser *user)
virtual bool sendData(DataBlock &data, NamedList ¶ms)
void detach(TCAPUser *user)
SS7TCAP(const NamedList ¶ms)
virtual bool sendToUser(NamedList ¶ms)
TCAPType tcapType()
Definition yatesig.h:10933
virtual bool initialize(const NamedList *config)
virtual SS7TCAPTransaction * buildTransaction(SS7TCAP::TCAPUserTransActions type, const String &transactID, NamedList ¶ms, bool initLocal=true)=0
void incCounter(TCAPCounter counterType)
Definition yatesig.h:11065
TCAPComponentOperationClass
Definition yatesig.h:10837
void removeTransaction(SS7TCAPTransaction *tr)
void setTCAPType(TCAPType type)
Definition yatesig.h:10940
static const TokenDict s_transPrimitives[]
Definition yatesig.h:10980
static const TokenDict s_tcapVersion[]
Definition yatesig.h:10970
virtual HandledMSU processSCCPData(SS7TCAPMessage *sccpData)
static const TokenDict s_compPrimitives[]
Definition yatesig.h:10975
virtual void enqueue(SS7TCAPMessage *msg)
virtual SS7TCAPMessage * dequeue()
static const TokenDict s_compOperClasses[]
Definition yatesig.h:10985
virtual void timerTick(const Time &when)
unsigned int count(TCAPCounter counterType)
Definition yatesig.h:11093
bool managementNotify(SCCP::Type type, NamedList ¶ms)
virtual SS7TCAPError userRequest(NamedList &requestParams)
SS7TUP(const NamedList ¶ms, unsigned char sif=SS7MSU::TUP)
virtual HandledMSU receivedMSU(const SS7MSU &msu, const SS7Label &label, SS7Layer3 *network, int sls)
virtual void notify(SS7Layer3 *link, int sls)
SS7Testing(const NamedList ¶ms, unsigned char sio=SS7MSU::MTP_T|SS7MSU::National)
Definition yatesig.h:8545
virtual bool initialize(const NamedList *config)
virtual void timerTick(const Time &when)
virtual bool control(NamedList ¶ms)
SCCPManagement::SccpStates getState()
Definition yatesig.h:10037
void appendBackup(RemoteBackupSubsystem *backup)
Definition yatesig.h:10115
void setState(SCCPManagement::SccpStates newState)
Definition yatesig.h:10030
unsigned char getSmi()
Definition yatesig.h:10080
void stopCoordTimer()
Definition yatesig.h:10073
unsigned char getSSN()
Definition yatesig.h:10023
void manageTimeout(SCCPManagement *mgm)
bool receivedSOG(unsigned char ssn, int pointcode)
void clearBackups()
Definition yatesig.h:10105
virtual ~SccpLocalSubsystem()
void resetTimers()
Definition yatesig.h:10100
bool ignoreTests()
Definition yatesig.h:10049
SccpLocalSubsystem(unsigned char ssn, u_int64_t coordInterval, u_int64_t istInterval, unsigned char smi=0)
void setIgnoreTests(bool ignore)
void startCoord()
Definition yatesig.h:10043
Definition yatesig.h:10134
ObjList & getSubsystems()
Definition yatesig.h:10224
unsigned int getCongestion()
Definition yatesig.h:10244
SCCPManagement::SccpStates getState()
Definition yatesig.h:10168
bool initialize(const String ¶ms)
void setState(SCCPManagement::SccpStates state)
SccpRemote(unsigned int pointcode, SS7PointCode::Type pcType)
void setCongestion(unsigned int cl)
Definition yatesig.h:10231
const char * getPointCodeType()
Definition yatesig.h:10202
void resetCongestion()
Definition yatesig.h:10237
SccpSubsystem * getSubsystem(int ssn)
const SS7PointCode & getPointCode()
Definition yatesig.h:10188
int getPackedPointcode()
Definition yatesig.h:10195
SccpRemote(SS7PointCode::Type pcType)
bool changeSubsystemState(int ssn, SCCPManagement::SccpStates newState)
void dump(String &dest, bool extended=false)
Definition yatesig.h:9896
SCCPManagement::SccpStates getState()
Definition yatesig.h:9923
void setState(SCCPManagement::SccpStates state)
Definition yatesig.h:9930
unsigned char getSmi()
Definition yatesig.h:9937
SccpSubsystem(int ssn, SCCPManagement::SccpStates state=SCCPManagement::Allowed, unsigned char smi=0)
Definition yatesig.h:9905
unsigned char getSSN()
Definition yatesig.h:9916
void dump(String &dest)
Definition yatesig.h:9944
Abstract phone call signalling.
Definition yatesig.h:1022
SignallingCircuitGroup * circuits() const
Definition yatesig.h:1104
virtual SignallingEvent * getEvent(const Time &when)
virtual SignallingCall * call(SignallingMessage *msg, String &reason)
Definition yatesig.h:1187
const ObjList & calls() const
Definition yatesig.h:1111
virtual void buildVerifyEvent(NamedList ¶ms)
Definition yatesig.h:1194
String m_msgPrefix
Definition yatesig.h:1254
bool reserveCircuit(SignallingCircuit *&cic, const char *range=0, int checkLock=-1, const String *list=0, bool mandatory=true, bool reverseRestrict=false)
virtual ~SignallingCallControl()
bool exiting() const
Definition yatesig.h:1069
const String & location() const
Definition yatesig.h:1056
MediaRequired mediaRequired() const
Definition yatesig.h:1089
virtual void cleanup(const char *reason="net-out-of-order")
Definition yatesig.h:1171
const String & msgPrefix() const
Definition yatesig.h:1097
void setExiting()
Definition yatesig.h:1062
String m_location
Definition yatesig.h:1275
bool verify()
Definition yatesig.h:1076
virtual bool processEvent(SignallingEvent *event)
Definition yatesig.h:1212
int strategy() const
Definition yatesig.h:1202
void setVerify(bool restartTimer=false, bool fireNow=false, const Time *time=0)
bool releaseCircuit(unsigned int code, bool sync=false)
static const TokenDict s_mediaRequired[]
Definition yatesig.h:1280
SignallingCallControl(const NamedList ¶ms, const char *msgPrefix=0)
MediaRequired
Definition yatesig.h:1032
SignallingTimer m_verifyTimer
Definition yatesig.h:1270
bool releaseCircuit(SignallingCircuit *&cic, bool sync=false)
virtual const char * statusName() const =0
virtual SignallingEvent * processCircuitEvent(SignallingCircuitEvent *&event, SignallingCall *call=0)
Definition yatesig.h:1221
bool m_verifyEvent
Definition yatesig.h:1265
MediaRequired m_mediaRequired
Definition yatesig.h:1259
SignallingCircuitGroup * attach(SignallingCircuitGroup *circuits)
void removeCall(SignallingCall *call, bool del=false)
ObjList m_calls
Definition yatesig.h:1248
Abstract single phone call.
Definition yatesig.h:1293
void * userdata() const
Definition yatesig.h:1332
SignallingMessage * dequeue(bool remove=true)
SignallingEvent * m_lastEvent
Definition yatesig.h:1401
void clearQueue()
Definition yatesig.h:1392
void enqueue(SignallingMessage *msg)
bool m_overlap
Definition yatesig.h:1406
void userdata(void *data)
Definition yatesig.h:1325
SignallingCall(SignallingCallControl *controller, bool outgoing, bool signalOnly=false)
virtual SignallingEvent * getEvent(const Time &when)=0
virtual void eventTerminated(SignallingEvent *event)
bool signalOnly() const
Definition yatesig.h:1339
SignallingCallControl * controller() const
Definition yatesig.h:1318
bool overlapDialing() const
Definition yatesig.h:1346
bool outgoing() const
Definition yatesig.h:1312
virtual ~SignallingCall()
virtual bool sendEvent(SignallingEvent *event)
Definition yatesig.h:1354
A single signalling circuit related event.
Definition yatesig.h:1549
Type
Definition yatesig.h:1554
SignallingCircuit * circuit()
Definition yatesig.h:1608
virtual ~SignallingCircuitEvent()
SignallingCircuitEvent(SignallingCircuit *cic, Type type, const char *name=0)
Type type() const
Definition yatesig.h:1601
Group of data circuits used by signalling.
Definition yatesig.h:2116
void removeSpan(SignallingCircuitSpan *span, bool delCics=true, bool delSpan=false)
void removeSpanCircuits(SignallingCircuitSpan *span)
void remove(SignallingCircuit *circuit)
virtual void destroyed()
Definition yatesig.h:2348
void getCicList(String &dest)
SignallingCircuitSpan * buildSpan(const String &name, unsigned int start=0, NamedList *params=0)
SignallingCircuitRange * findRange(const char *name)
bool status(unsigned int cic, SignallingCircuit::Status newStat, bool sync=false)
void insertRange(SignallingCircuitSpan *span, const char *name, int strategy=-1)
bool insert(SignallingCircuit *circuit)
SignallingCircuit * reserve(int checkLock=-1, int strategy=-1, SignallingCircuitRange *range=0)
virtual ~SignallingCircuitGroup()
unsigned int base() const
Definition yatesig.h:2166
SignallingCircuit::Status status(unsigned int cic)
int strategy() const
Definition yatesig.h:2180
unsigned int last() const
Definition yatesig.h:2173
static const TokenDict s_strategy[]
Definition yatesig.h:2342
SignallingCircuitGroup(unsigned int base=0, int strategy=Increment, const char *name="circgroup")
SignallingCircuit * reserve(const String &list, bool mandatory, int checkLock=-1, int strategy=-1, SignallingCircuitRange *range=0)
unsigned int count() const
Definition yatesig.h:2159
Strategy
Definition yatesig.h:2126
bool insertSpan(SignallingCircuitSpan *span)
static int str2strategy(const char *name, int def=Increment)
Definition yatesig.h:2336
ObjList & circuits()
Definition yatesig.h:2193
SignallingCircuit * find(unsigned int cic, bool local=false)
void setStrategy(int strategy)
Definition yatesig.h:2187
bool release(SignallingCircuit *cic, bool sync=false)
Definition yatesig.h:2327
void insertRange(const String &range, const char *name, int strategy=-1)
A circuit range (set of circuits)
Definition yatesig.h:1984
virtual ~SignallingCircuitRange()
Definition yatesig.h:2000
void remove(unsigned int code)
void add(unsigned int first, unsigned int last)
virtual void destruct()
Definition yatesig.h:2095
SignallingCircuitRange(const String &rangeStr, const char *name=0, int strategy=-1)
unsigned int operator[](unsigned int index)
Definition yatesig.h:2037
bool find(unsigned int code)
bool set(const String &rangeStr)
Definition yatesig.h:2045
void add(unsigned int *codes, unsigned int len)
const unsigned int * range() const
Definition yatesig.h:2014
void clear()
Definition yatesig.h:2029
void add(unsigned int code)
Definition yatesig.h:2069
unsigned int count() const
Definition yatesig.h:2007
unsigned int * copyRange(unsigned int &count) const
bool add(const String &rangeStr)
A span in a circuit group.
Definition yatesig.h:2370
SignallingCircuitGroup * group() const
Definition yatesig.h:2382
unsigned int m_increment
Definition yatesig.h:2415
unsigned int increment() const
Definition yatesig.h:2396
const String & id() const
Definition yatesig.h:2389
virtual ~SignallingCircuitSpan()
SignallingCircuitSpan(const char *id=0, SignallingCircuitGroup *group=0)
SignallingCircuitGroup * m_group
Definition yatesig.h:2410
Abstract data circuit used by signalling.
Definition yatesig.h:1627
virtual bool getParam(const String ¶m, String &value) const
Definition yatesig.h:1764
virtual bool updateFormat(const char *format, int direction)
Definition yatesig.h:1739
bool hwLock(bool set, bool remote, bool changed=false, bool setChanged=false)
bool disconnect()
Definition yatesig.h:1862
Type
Definition yatesig.h:1635
virtual bool setParam(const String ¶m, const String &value)
Definition yatesig.h:1748
const SignallingCircuitGroup * group() const
Definition yatesig.h:1812
virtual void clearEvents()
virtual bool getBoolParam(const String ¶m, bool defValue=false) const
Definition yatesig.h:1773
SignallingCircuitSpan * span()
Definition yatesig.h:1805
bool reserve()
Definition yatesig.h:1847
virtual bool getParams(NamedList ¶ms, const String &category=String::empty())
Definition yatesig.h:1791
SignallingCircuitEvent * getEvent(const Time &when)
Status
Definition yatesig.h:1646
virtual int getIntParam(const String ¶m, int defValue=0) const
Definition yatesig.h:1782
void resetLock(int flags)
Definition yatesig.h:1730
Mutex m_mutex
Definition yatesig.h:1962
bool maintLock(bool set, bool remote, bool changed=false, bool setChanged=false)
static const TokenDict s_lockNames[]
Definition yatesig.h:1932
static const char * lookupType(int type)
bool connect(const char *format=0)
Definition yatesig.h:1855
virtual bool status(Status newStat, bool sync=false)
Definition yatesig.h:1694
void setLock(int flags)
Definition yatesig.h:1723
SignallingCircuit(Type type, unsigned int code, SignallingCircuitGroup *group=0, SignallingCircuitSpan *span=0)
bool available() const
Definition yatesig.h:1833
bool connected() const
Definition yatesig.h:1840
SignallingCircuitGroup * group()
Definition yatesig.h:1798
LockFlags
Definition yatesig.h:1660
const SignallingCircuitSpan * span() const
Definition yatesig.h:1819
virtual bool sendEvent(SignallingCircuitEvent::Type type, NamedList *params=0)
int locked(int flags=-1) const
Definition yatesig.h:1716
virtual ~SignallingCircuit()
virtual bool setParams(const NamedList ¶ms)
void addEvent(SignallingCircuitEvent *event)
Status status() const
Definition yatesig.h:1708
Type type() const
Definition yatesig.h:1701
unsigned int code() const
Definition yatesig.h:1826
bool disable()
Definition yatesig.h:1869
static const char * lookupStatus(int status)
SignallingCircuit(Type type, unsigned int code, Status status, SignallingCircuitGroup *group=0, SignallingCircuitSpan *span=0)
void eventTerminated(SignallingCircuitEvent *event)
Abstract signalling component that can be managed by the engine.
Definition yatesig.h:635
const String & componentType() const
Definition yatesig.h:713
static bool resolveConfig(const String &cmpName, NamedList ¶ms, const NamedList *config)
virtual bool controlExecute(NamedList *params)
virtual NamedList * controlCreate(const char *oper=0)
void insert(SignallingComponent *component)
SignallingComponent(const char *name=0, const NamedList *params=0, const char *type="unknown")
void setCompType(const char *type)
Definition yatesig.h:762
virtual void engine(SignallingEngine *eng)
virtual bool initialize(const NamedList *config)
virtual const String & toString() const
SignallingEngine * engine() const
Definition yatesig.h:698
virtual ~SignallingComponent()
void setName(const char *name)
unsigned long tickSleep(unsigned long usec=1000000) const
virtual void timerTick(const Time &when)
int debugLevel(int level)
Definition yatesig.h:706
virtual bool control(NamedList ¶ms)
A counter class.
Definition yatesig.h:504
bool empty() const
Definition yatesig.h:570
SignallingCounter(u_int32_t maxVal)
Definition yatesig.h:510
bool full() const
Definition yatesig.h:577
bool inc()
Definition yatesig.h:546
u_int32_t count() const
Definition yatesig.h:532
void maxVal(u_int32_t value)
Definition yatesig.h:518
bool dec()
Definition yatesig.h:558
void reset(bool down=true)
Definition yatesig.h:539
u_int32_t maxVal() const
Definition yatesig.h:525
~SignallingDumpable()
Definition yatesig.h:297
bool dump(void *buf, unsigned int len, bool sent=false, int link=0)
Definition yatesig.h:318
bool control(NamedList ¶ms, SignallingComponent *owner=0)
void setDumpNetwork(bool network)
Definition yatesig.h:335
bool setDumper(const String &name, bool create=true, bool append=false)
bool dump(const DataBlock &data, bool sent=false, int link=0)
Definition yatesig.h:328
void setDumper(SignallingDumper *dumper=0)
SignallingDumpable(SignallingDumper::Type type, bool network=false)
Definition yatesig.h:306
A generic data dumper.
Definition yatesig.h:177
Type
Definition yatesig.h:182
bool network() const
Definition yatesig.h:216
bool dump(void *buf, unsigned int len, bool sent=false, int link=0)
static SignallingDumper * create(Stream *stream, Type type, bool network=false, bool writeHeader=true)
bool dump(const DataBlock &data, bool sent=false, int link=0)
Definition yatesig.h:254
void setStream(Stream *stream=0, bool writeHeader=true)
SignallingDumper(Type type=Hexa, bool network=false)
static SignallingDumper * create(DebugEnabler *dbg, const char *filename, Type type, bool network=false, bool create=true, bool append=false)
Type type() const
Definition yatesig.h:209
Main signalling component holder.
Definition yatesig.h:785
static void destruct(Obj *&obj)
Definition yatesig.h:943
SignallingComponent * find(const String &name)
void removeNotifier(SignallingNotifier *notifier)
Definition yatesig.h:898
bool start(const char *name="Sig Engine", Thread::Priority prio=Thread::Normal, unsigned long usec=0)
SignallingEngine(const char *name="signalling")
ObjList m_components
Definition yatesig.h:963
void remove(SignallingComponent *component)
void insert(SignallingComponent *component)
virtual unsigned long timerTick(const Time &when)
SignallingComponent * find(const String &name, const String &type, const SignallingComponent *start=0)
void setNotifier(SignallingNotifier *notifier)
Definition yatesig.h:891
bool remove(const String &name)
virtual ~SignallingEngine()
bool control(NamedList ¶ms)
static SignallingEngine * self(bool create=false)
bool find(const SignallingComponent *component)
SignallingComponent * build(const String &type, NamedList ¶ms, bool init=false, bool ref=true)
unsigned long tickDefault() const
Definition yatesig.h:922
static void maxLockWait(long maxWait)
unsigned long tickSleep(unsigned long usec=1000000)
static long maxLockWait()
Definition yatesig.h:929
void notify(SignallingComponent *component, NamedList notifs)
A single signalling related event.
Definition yatesig.h:1422
SignallingCall * call() const
Definition yatesig.h:1500
Type
Definition yatesig.h:1427
SignallingMessage * message() const
Definition yatesig.h:1506
SignallingEvent(Type type, SignallingMessage *message, SignallingCallControl *controller=0)
const char * name() const
Definition yatesig.h:1487
virtual ~SignallingEvent()
SignallingEvent(Type type, SignallingMessage *message, SignallingCall *call)
SignallingEvent(SignallingCircuitEvent *&event, SignallingCall *call)
Type type() const
Definition yatesig.h:1494
SignallingCallControl * controller() const
Definition yatesig.h:1512
static const char * typeName(Type t)
Definition yatesig.h:1526
SignallingCircuitEvent * cicEvent() const
Definition yatesig.h:1518
static SignallingComponent * build(const String &type, NamedList *name=0)
SignallingFactory(bool fallback=false)
virtual SignallingComponent * create(const String &type, NamedList &name)=0
virtual ~SignallingFactory()
static void * buildInternal(const String &type, NamedList *name)
PacketType
Definition yatesig.h:2471
virtual bool transmitPacket(const DataBlock &packet, bool repeat, PacketType type)=0
static const TokenDict s_notifName[]
Definition yatesig.h:2518
bool notify(Notification event)
virtual bool control(Operation oper, NamedList *params=0)
virtual ~SignallingInterface()
virtual void attach(SignallingReceiver *receiver)
SignallingReceiver * receiver() const
Definition yatesig.h:2501
Notification
Definition yatesig.h:2452
Operation
Definition yatesig.h:2433
SignallingInterface()
Definition yatesig.h:2482
bool receivedPacket(const DataBlock &packet)
A pending signalling message list.
Definition yatesig.h:2943
SignallingMessageTimer * add(SignallingMessageTimer *m, const Time &when=Time())
SignallingMessageTimerList()
Definition yatesig.h:2948
SignallingMessageTimer * add(u_int64_t interval, const Time &when=Time())
Definition yatesig.h:2957
SignallingMessageTimer * timeout(const Time &when=Time())
A pending signalling message.
Definition yatesig.h:2875
const SignallingTimer & global() const
Definition yatesig.h:2919
SignallingMessageTimer(u_int64_t interval, u_int64_t global=0)
Definition yatesig.h:2882
SignallingMessage * message() const
Definition yatesig.h:2897
SignallingTimer & global()
Definition yatesig.h:2912
u_int64_t fireTime() const
Definition yatesig.h:2926
void message(SignallingMessage *msg)
Definition yatesig.h:2904
virtual ~SignallingMessageTimer()
Definition yatesig.h:2890
Abstract signalling message.
Definition yatesig.h:978
SignallingMessage(const char *name=0)
Definition yatesig.h:985
const char * name() const
Definition yatesig.h:993
NamedList m_params
Definition yatesig.h:1014
const NamedList & params() const
Definition yatesig.h:1007
NamedList & params()
Definition yatesig.h:1000
Notifier class.
Definition yatesig.h:373
virtual ~SignallingNotifier()
Definition yatesig.h:378
virtual void notify(NamedList ¬ifs)
virtual bool notify(SignallingInterface::Notification event)
bool transmitPacket(const DataBlock &packet, bool repeat, SignallingInterface::PacketType type=SignallingInterface::Unknown)
bool control(SignallingInterface::Operation oper, NamedList *params=0)
virtual ~SignallingReceiver()
SignallingReceiver(const char *name=0)
virtual bool receivedPacket(const DataBlock &packet)=0
SignallingInterface * iface() const
Definition yatesig.h:2581
virtual SignallingInterface * attach(SignallingInterface *iface)
A signalling timer.
Definition yatesig.h:396
void interval(const NamedList ¶ms, const char *param, unsigned int minVal, unsigned int defVal, bool allowDisable, bool sec=false)
Definition yatesig.h:424
SignallingTimer(u_int64_t interval, u_int64_t time=0)
Definition yatesig.h:403
u_int64_t fireTime() const
Definition yatesig.h:442
void stop()
Definition yatesig.h:462
bool timeout(u_int64_t time=Time::msecNow()) const
Definition yatesig.h:477
void fire(u_int64_t time=Time::msecNow())
Definition yatesig.h:456
static unsigned int getInterval(const NamedList ¶ms, const char *param, unsigned int minVal, unsigned int defVal, unsigned int maxVal=0, bool allowDisable=false)
u_int64_t interval() const
Definition yatesig.h:435
bool started() const
Definition yatesig.h:469
void start(u_int64_t time=Time::msecNow())
Definition yatesig.h:449
void interval(u_int64_t value)
Definition yatesig.h:411
Library wide services and data provider.
Definition yatesig.h:2651
static bool appendFlag(NamedList &list, const char *param, const char *flag)
static bool decodeCaps(const SignallingComponent *comp, NamedList &list, const unsigned char *buf, unsigned int len, const char *prefix, bool isup)
static unsigned int encodeFlags(const SignallingComponent *comp, const String &flags, const SignallingFlags *dict, const char *paramName=0)
static bool encodeCause(const SignallingComponent *comp, DataBlock &buf, const NamedList ¶ms, const char *prefix, bool isup, bool fail=false)
static bool hasFlag(const NamedList &list, const char *param, const char *flag)
static const TokenDict * locations()
static const TokenDict * dict(unsigned int index, unsigned char coding=0)
Definition yatesig.h:2676
static bool decodeCause(const SignallingComponent *comp, NamedList &list, const unsigned char *buf, unsigned int len, const char *prefix, bool isup)
static bool encodeCaps(const SignallingComponent *comp, DataBlock &buf, const NamedList ¶ms, const char *prefix, bool isup)
static void dumpData(const SignallingComponent *comp, NamedList &list, const char *param, const unsigned char *buf, unsigned int len, char sep=' ')
static void addKeyword(NamedList &list, const char *param, const TokenDict *tokens, unsigned int val)
static bool appendFlag(String &flags, const char *flag)
static unsigned int * parseUIntArray(const String &source, unsigned int minVal, unsigned int maxVal, unsigned int &count, bool discardDup)
static unsigned int dumpDataExt(const SignallingComponent *comp, NamedList &list, const char *param, const unsigned char *buf, unsigned int len, char sep=' ')
static bool hasFlag(const String &flags, const char *flag)
static const TokenDict * codings()
static void encodeFlags(const SignallingComponent *comp, int &dest, const String &flags, const TokenDict *dict)
static bool decodeFlags(const SignallingComponent *comp, NamedList &list, const char *param, const SignallingFlags *flags, const unsigned char *buf, unsigned int len)
static bool removeFlag(String &flags, const char *flag)
A socket address holder.
Definition yateclass.h:6400
An abstract stream class capable of reading and writing.
Definition yateclass.h:6874
A C-style string handling class.
Definition yateclass.h:2131
const char * c_str() const
Definition yateclass.h:2236
static const String & empty()
bool startTest(SccpRemote *remoteSccp, SccpSubsystem *rSubsystem)
void setAllowed(bool allowed)
Definition yatesig.h:5431
SccpRemote * getRemote()
Definition yatesig.h:5400
bool markAllowed()
Definition yatesig.h:5424
SccpSubsystem * getSubsystem()
Definition yatesig.h:5413
virtual ~SubsystemStatusTest()
bool timeout()
Definition yatesig.h:5407
SubsystemStatusTest(u_int32_t interval)
Definition yatesig.h:5378
Abstract SS7 TCAP user interface.
Definition yatesig.h:5565
virtual bool tcapIndication(NamedList ¶ms)
virtual void attach(SS7TCAP *tcap)
SS7TCAP * tcap() const
Definition yatesig.h:5595
virtual bool managementNotify(SCCP::Type type, NamedList ¶ms)
virtual int managementState()
Thread support class.
Definition yateclass.h:6005
Priority
Definition yateclass.h:6014
A time holding class.
Definition yateclass.h:3927
static u_int32_t secNow()
static u_int64_t msecNow()
String & operator<<(String &str, const Complex &c)
Definition yatemath.h:1685
Description of parameter flags.
Definition yatesig.h:2629
unsigned int value
Definition yatesig.h:2638
const char * name
Definition yatesig.h:2643
unsigned int mask
Definition yatesig.h:2633
Definition yateclass.h:848