Comments (5)
Terms for updating:
-
SMPP submit_sm message has a field "priority_flag" with values:
0 - non-priority
1 - priority level 1
2 - priority level 2
3 - priority level 3
For SS7 or SIP originated messages we can assign a general SMSC GW level priority_flag value.
For each priority level we can configure a separate
subscriberBusyDueDelay
firstDueDelay
secondDueDelay
maxDueDelay
dueDelayMultiplicator
parameter values
If there are several messages with different priority level then the highest is used for all messages.
If some messages are pending for delivery after a failure and a new message has come we can establish a new configurable value (for each new message priority level) "new_message_reschedule" (in seconds).
If the pending messages are scheduled in a less time then "new_message_reschedule" then the new message will be scheduled into the due_slot along with the pending messages
If the pending messages are scheduled in a more time then "new_message_reschedule" then the new message and the pending messages will be (re)scheduled into a firstDueDelay due_slot -
a possibility for "double delivery attempt" of message delivery (SS7 destination only) inside a delivery attempt. This possibility must be configurable for each priority level. If it is allowed then the messages will be tried to delivery 2 times per an attept in a configurable interval (like 1 min)
For this funcionality we need add fields into Sms table:
"priority_level" int
"delivery_attempt int" - 0 or 1 depending on which attempt has beeb scheduled
from smscgateway.
zz ***** Version 2 *****
Terms for updating:
- SMPP submit_sm message has a field "priority_flag" with values:
0 - non-priority
1 - priority level 1
2 - priority level 2
3 - priority level 3
For SS7 or SIP originated messages we can assign a general SMSC GW level priority_flag value.
Each of
I suggest to make the count of priority level configurable (with making effect after SMSC GW is restarted)
For each priority level we can configure a separate
subscriberBusyDueDelay
firstDueDelay
secondDueDelay
maxDueDelay
dueDelayMultiplicator
new_message_reschedule (new parameter)
parameter values.
We will config only for levels that are activated
For each level we will establish a separate set of tables DST_SLOT_TABLE_YYYY_MM_DD and SLOT_MESSAGES_TABLE_YYYY_MM_DD.
For low priority - the old names: DST_SLOT_TABLE_YYYY_MM_DD and SLOT_MESSAGES_TABLE_YYYY_MM_DD
For more priority - the name for priority 1 is like : DST_SLOT_TABLE_YYYY_MM_DD_1 and SLOT_MESSAGES_TABLE_YYYY_MM_DD_1 etc
Messages with priority level X will be processed independed of messages to the same destination except of one possible feature. If we have just successfully delivered messages to SS7 destination for dest address XX - then we try to load messages for address XX with other priorities.
When SMSC GW is fetching messages from database for delivering:
it has each separate processing due_slot for each priority
firstly SMSC GW fetches messages for the highest priority due_slot
if no more messages for the highest priority due_slot - then it looks for lower level.
this leads that the highest priority due_slot may be always without delay but lower priotiry levels with delays if hight SMSC load
from smscgateway.
- If some messages are pending for delivery for a priority level X after a failure and a new message for this priority level has come - then we can establish a new configurable value (for each new message priority level) "new_message_reschedule" (in seconds).
If the pending messages are scheduled in a less time then "new_message_reschedule" then the new message will be scheduled into the due_slot along with the pending messages
If the pending messages are scheduled in a more time then "new_message_reschedule" then the new message and the pending messages will be (re)scheduled into a firstDueDelay due_slot
from smscgateway.
- a possibility for "double delivery attempt" of message delivery (SS7 destination only) inside a delivery attempt. This possibility must be configurable for each priority level. If it is allowed then the messages will be tried to delivery 2 times per an attept in a configurable interval (like 1 min)
For this funcionality we need add a field into Sms table:
"delivery_attempt int" - 0 or 1 depending on which attempt has beeb scheduled
from smscgateway.
we need to think of how to make some restrictions of pending messages for one destination in one due_slot. We can write already stored message count and then if it is too big - shift to some next due_slot for next messages.
from smscgateway.
Related Issues (20)
- MAP Error msg: facilitynotsup HOT 2
- Message sending failed from jss7-simulator to JITSI HOT 2
- How to start smsc gateway HOT 1
- Ported numbers in RestComm SMSC HOT 1
- SMSC Gateway In Simulator mode not starting HOT 2
- Container providing a null PersistenceUnitRootUrl: discovery impossible HOT 1
- SMSC generate 2 CDRs in case of permanent error
- Flag to tag timeouts as permanent failure
- Apparently missing library in SchedulerResourceAdaptor under Java 8/Wildlfy HOT 1
- Support for "HUB" type of SMPP connection in addition to "CLIENT" and "SERVER"
- Cannot compile smscgateway - missing dependency - version 154 smpp-extensions HOT 2
- Cannot compile smscgateway - TxSmppServerSbbTest no suitable constructor found for Esme HOT 3
- Possible bug where SMSC can go into loop sending multiple SRIs
- Is it an smpp server? HOT 1
- javax.management.InstanceNotFoundException : org.mobicents.smsc:layer=DatabaseSmsRoutingRule,name=SmscManagement is not registered
- Can't find paths mentioned in 6.3. Configuring the Gateway
- Missing dependencies for smscgateway 7.3.153 HOT 1
- any help plz
- Delivery Issue
- Do I have to separately install jSS7 (RESTCOMM-SS7) before installing the RESTCOMM-SMSC itself ???
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from smscgateway.