Using [queues] and [providers] is optional. If you do not need it, leave both parts out. If you use it with smsd version below 3.1.7, you need to write both parts together into the config file and both parts need to have exactly the same number of lines with the same names. With smsd version 3.1.7 or later, default value for the provider is "catch-all", which is the same as "0,1,2,3,4,5,6,7,8,9,s". See also example 3 and example 4.
Configuring providers enable a sort function in smsd. It takes a look at the destination phone numbers and sorts them into many queue directories - one queue for each phone network provider.
The individual queues allow you to assign modems specially to individual phone network providers, which can save a lot of money in some countries.
You can configure up to 64 providers, 64 queues and 64 phone numbers for each provider. These limits are changeable.
[queues] name = directory name = directory ... [providers] name = number prefixes name = number prefixes ... |
The name is only a short name for the queue directory. You would typically place the name of the phone network provider here. Spaces and control characters are not allowed here.
The number prefixes are the first digits of phone numbers that belong to the provider. This can be a single number or a comma separated list of many numbers. Write them in international format but without the first "+" character.
Example:
[queues] telecom = /var/spool/sms/telecom vodafone = /var/spool/sms/vodafone [providers] telecom = 49160, 49170, 49171, 49175, 49151 vodafone = 491520, 49162, 49172, 49173, 49174, s |
From the version >= 3.0 it is possible to define 's' for short numbers.
Example 2:
[queues] finland = /var/spool/sms/finland other = /var/spool/sms/other [providers] finland = 358, s other = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 |
In this second example one queue is used to send messages to finnish destinations. Also messages to short numbers are sent using this queue. Another queue is used to send all other messages.
As defined in the How to configure, list of queues used should be defined for modems, in this case:
[GSM1] queues = finland ... [GSM2] queues = other ... |
Automatic queue sorting can be overridden in the message file. For example, header line Queue: other causes modem GSM2 to be used.
In some cases a modem should be selectable in the message file. This kind of usage overrides a queue sorting, and if a modem is always selected, sorting is not required. However, queue directories should still be defined, because they are used to store messages of each modem.
With smsd version 3.1.7 or later, the configuration could be:
[queues] GSM1 = /var/spool/sms/GSM1 GSM2 = /var/spool/sms/GSM2 GSM3 = /var/spool/sms/GSM3 |
A section [providers] is left out, because all definitions can default to "catch-all".
Modem definitions in the configuration could be:
[default] queues = modemname ... [GSM1] ... and so on... |
A modem can be selected using the Queue: <modemname> header in the message file. NOTE: if a queue is not selected, a message is sent using GSM1 because it's the first queue in the list.
In this example provider sorting is not used. All modems will serve the MAIN queue. First two modems will also serve the GROUP1 queue. GSM1 will serve GROUP1 queue after MAIN queue is empty. GSM2 will serve MAIN queue after GROUP1 queue is empty. In addition, each modem has its own queue which is served first.
[queues] MAIN = /var/spool/sms/queues/MAIN GROUP1 = /var/spool/sms/queues/GROUP1 GSM1 = /var/spool/sms/queues/GSM1 GSM2 = /var/spool/sms/queues/GSM2 GSM3 = /var/spool/sms/queues/GSM3 GSM4 = /var/spool/sms/queues/GSM4 |
A section [default] is handy when the setup has lot of modems with the same settings:
[default] gueues = modemname, MAIN |
Modems GSM1 and GSM2 need their own definition for queues:
[GSM1] queues = modemname, MAIN, GROUP1 ... [GSM2] queues = modemname, GROUP1, MAIN ... [GSM3] ... [GSM4] ... |
Messages without the Queue: header are placed into the MAIN queue.
If it's needed that messages to short numbers and without Queue header are always sent using GSM4, this addition can be used:Ghange the order of queue definitions: place GSM4 right after MAIN, otherwise GROUP1 will be used to send messages to short numbers.
Define providers:
[providers] MAIN = 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 GSM4 = s |