# # This is the main Jasmin SMS gateway configuration file. # For any modifications to this file, refer to Jasmin Documentation. # If that does not help, post your question on Jasmin's web forum # hosted at Google Groups: https://groups.google.com/group/jasmin-sms-gateway # # Do NOT simply read the instructions in here without understanding # what they do. They're here only as hints or reminders. If you are unsure # consult the online docs. [smpp-server] # SMPP Server identifier #id = "smpps_01" # If you want you can bind a single interface, you can specify its IP here #bind = 0.0.0.0 # Accept connections on the specified port, default is 2775 #port = 2775 # Activate billing feature # May be disabled if not needed/used #billing_feature = True # Timeout for response to bind request #sessionInitTimerSecs = 30 # Enquire link interval #enquireLinkTimerSecs = 30 # Maximum time lapse allowed between transactions, after which, # the connection is considered as inactive #inactivityTimerSecs = 300 # Timeout for responses to any request PDU #responseTimerSecs = 60 # Timeout for reading a single PDU, this is the maximum lapse of time between # receiving PDU's header and its complete read, if the PDU reading timed out, # the connection is considered as 'corrupt' and will reconnect #pduReadTimerSecs = 10 # When message is routed to a SMPP Client connecter: How much time it is kept in # redis waiting for receipt #dlr_expiry = 86400 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/default-smpps_01.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = midnight # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S #log_privacy = False [smpp-server-pb] # If you want you can bind a single interface, you can specify its IP here #bind = 0.0.0.0 # Accept connections on the specified port, default is 14000 #port = 14000 # If authentication is True, access will require entering a username and password # as defined in admin_username and admin_password, you can disable this security # layer by setting authentication to False, in this case admin_* values are ignored. #authentication = True #admin_username = smppsadmin # This is a MD5 password digest hex encoded #admin_password = e97ab122faa16beea8682d84f3d2eea4 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/smpp-server-pb.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S [client-management] # Jasmin persists its configuration profiles in /etc/jasmin/store by # default. You can specify a custom location here #store_path = /etc/jasmin/store # If you want you can bind a single interface, you can specify its IP here #bind = 0.0.0.0 # Accept connections on the specified port, default is 8989 #port = 8989 # If authentication is True, access will require entering a username and password # as defined in admin_username and admin_password, you can disable this security # layer by setting authentication to False, in this case admin_* values are ignored. #authentication = True #admin_username = cmadmin # This is a MD5 password digest hex encoded #admin_password = e1c5136acafb7016bc965597c992eb82 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/smppclient-manager.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S # The protocol version used to pickle objects before transfering # them to client side, this is used in the client manager only, # the pickle protocol defined in SMPPClientManagerPBProxy is set # to 2 and is not configurable #pickle_protocol = 2 [service-smppclient] # For each smppclient connector a service is associated # refer to "Message flows" documentation for more details # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/service-smppclients.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S [sm-listener] # SM listener consumes submit_sm and deliver_sm messages from amqp broker # refer to "Message flows" documentation for more details # If publish_submit_sm_resp is True, any received SubmitSm PDU will be published # to the 'messaging' exchange on 'submit.sm.resp.CID' route, useful when you have # a third party application waiting for these messages. #publish_submit_sm_resp = False # If the error is defined in submit_error_retrial, Jasmin will retry sending submit_sm if it # gets one of these errors. # submit_sm retrial will be executed 'count' times and delayed for 'delay' seconds each time. #submit_error_retrial = { # 'ESME_RSYSERR': {'count': 2, 'delay': 30}, # 'ESME_RTHROTTLED': {'count': 20, 'delay': 30}, # 'ESME_RMSGQFUL': {'count': 2, 'delay': 180}, # 'ESME_RINVSCHED': {'count': 2, 'delay': 300}, # } # The maximum number of seconds a message can stay in queue waiting for SMPPC to get ready for # delivey (connected and bound). #submit_max_age_smppc_not_ready = 1200 # Delay (seconds) when retrying a submit with a not-yet ready SMPPc # Hint: for large scale messaging deployment, it is advised to set this value to few seconds # in order to keep Jasmin free. #submit_retrial_delay_smppc_not_ready = 30 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/messages.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = midnight # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S #log_privacy = False [dlr] # DLRLookup process id #pid = main # DLRLookup mechanism configuration #dlr_lookup_retry_delay = 10 #dlr_lookup_max_retries = 2 # If smpp_receipt_on_success_submit_sm_resp is True, every connected user to smpp server will # receive a receipt (data_sm or deliver_sm) whenever a submit_sm_resp is received # for a message he sent and requested receipt for it. #smpp_receipt_on_success_submit_sm_resp = False # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/messages.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = midnight # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S #log_privacy = False [amqp-broker] host=rabbitmq port=5672 # The following directives define the way how Jasmin is connecting to the AMQP Broker, # default values must work with a freshly installed RabbitMQ server. #host = 127.0.0.1 #vhost = / #spec = /etc/jasmin/resource/amqp0-9-1.xml #port = 5672 #username = guest #password = guest #heartbeat = 0 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/amqp-client.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S #connection_loss_retry = True #connection_failure_retry = True #connection_loss_retry_delay = 10 #connection_loss_failure_delay = 10 [http-api] # If you want you can bind a single interface, you can specify its IP here #bind = 0.0.0.0 # Accept connections on the specified port, default is 1401 #port = 1401 # Activate billing feature # May be disabled if not needed/used #billing_feature = True # How many message parts you can get for a long message, default is 5 so you # can't exceed 800 characters (160x5) when sending a long latin message. #long_content_max_parts = 5 # Splitting long content can be made through SAR options or UDH # Possible values are: sar and udh #long_content_split = udh # Specify the access log file path #access_log = /var/log/jasmin/http-access.log # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/http-api.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S #log_privacy = False [router] # Jasmin router persists its routing configuration profiles in /etc/jasmin/store by # default. You can specify a custom location here #store_path = /etc/jasmin/store # Router will automatically persist users and groups to disk whenever a critical information # is updated (ex: user balance), persistence is executed every persistence_timer_secs #persistence_timer_secs = 60 # If you want you can bind a single interface, you can specify its IP here #bind = 0.0.0.0 # Accept connections on the specified port, default is 8988 #port = 8988 # If authentication is True, access will require entering a username and password # as defined in admin_username and admin_password, you can disable this security # layer by setting authentication to False, in this case admin_* values are ignored. #authentication = True #admin_username = radmin # This is a MD5 password digest hex encoded #admin_password = 82a606ca5a0deea2b5777756788af5c8 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/router.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S # The protocol version used to pickle objects before transfering # them to client side, this is used in the client manager only, # the pickle protocol defined in SMPPClientManagerPBProxy is set # to 2 and is not configurable #pickle_protocol = 2 [deliversm-thrower] # The following directives define the process of delivery SMS-MO through http to third party # application, it is explained in "HTTP API" documentation # Sets socket timeout in seconds for outgoing client http connections. #http_timeout = 30 # Define how many seconds should pass within the queuing system for retrying a failed throw. #retry_delay = 30 # Define how many retries should be performed for failing throws of SMS-MO. #max_retries = 3 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/deliversm-thrower.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S [dlr-thrower] # The following directives define the process of delivering delivery-receipts through http to third party # application, it is explained in "HTTP API" documentation # Sets socket timeout in seconds for outgoing client http connections. #http_timeout = 30 # Define how many seconds should pass within the queuing system for retrying a failed throw. #retry_delay = 30 # Define how many retries should be performed for failing throws of DLR. #max_retries = 3 # Specify the pdu type to consider when throwing a receipt through SMPPs, possible values: # - data_sm # - deliver_sm (default pdu) dlr_pdu = data_sm # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/dlr-thrower.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S [redis-client] host=redis port=6379 # The following directives define the way how Jasmin is connecting to the redis server, # default values must work with a freshly installed redis server. #host = 127.0.0.1 #port = 6379 #dbid = 0 #password = None #poolsize = 10 # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/redis-client.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S [jcli] bind=0.0.0.0 # If you want you can bind a single interface, you can specify its IP here #bind = 127.0.0.1 # Accept connections on the specified port, default is 8990 #port = 8990 # If authentication is True, access will require entering a username and password # as defined in admin_username and admin_password, you can disable this security # layer by setting authentication to False, in this case admin_* values are ignored. #authentication = True #admin_username = jcliadmin # This is a MD5 password digest hex encoded #admin_password = 79e9b0aa3f3e7c53e916f7ac47439bcb # Specify the server verbosity level. # This can be one of: # NOTSET (disable logging) # DEBUG (a lot of information, useful for development/testing) # INFO (moderately verbose, what you want in production probably) # WARNING (only very important / critical messages and errors are logged) # ERROR (only errors / critical messages are logged) # CRITICAL (only critical messages are logged) #log_level = INFO # Specify the log file path #log_file = /var/log/jasmin/jcli.log # When to rotate the log file, possible values: # S: Seconds # M: Minutes # H: Hours # D: Days # W0-W6: Weekday (0=Monday) # midnight: Roll over at midnight #log_rotate = W6 # The following directives define logging patterns including: # - log_format: using python logging's attributes # refer to https://docs.python.org/2/library/logging.html#logrecord-attributes # -log_date_format: using python strftime formating directives # refer to https://docs.python.org/2/library/time.html#time.strftime #log_format = %(asctime)s %(levelname)-8s %(process)d %(message)s #log_date_format = %Y-%m-%d %H:%M:%S [interceptor-client] # The following directives define client connector to InterceptorPB, it's used when jasmind # is started with --enable-interceptor-client #host = 127.0.0.1 #port = 8987 #username = iadmin #password = ipwd